/* This function is a standard USB function called when the USB device is disconnected. We will get rid of the URV, de-register the input device, and free up allocated memory  */
static void gtco_disconnect(struct usb_interface *interface)
/* This function is a standard USB function called when the USB device is disconnected. We will get rid of the URV, de-register the input device, and free up allocated memory  */
static void gtco_disconnect(struct usb_interface *interface)
{
	struct gtco *gtco = usb_get_intfdata(interface);
	if (gtco) {
		input_unregister_device(gtco->inputdevice);
		usb_kill_urb(gtco->urbinfo);
		usb_free_urb(gtco->urbinfo);
		usb_buffer_free(gtco->usbdev, REPORT_MAX_SIZE,
				gtco->buffer, gtco->buf_dma);
		kfree(gtco);
	}
	dev_info(&interface->dev, "gtco driver disconnected\n");
}