/* NOTE: If you called usb_register_dev(), you still need to call usb_deregister_dev() to clean up your driver's allocated minor numbers, this * call will no longer do it for you.  */
void usb_deregister(struct usb_driver *driver)
/* NOTE: If you called usb_register_dev(), you still need to call usb_deregister_dev() to clean up your driver's allocated minor numbers, this * call will no longer do it for you.  */
void usb_deregister(struct usb_driver *driver)
{
	pr_info("%s: deregistering interface driver %s\n",
			usbcore_name, driver->name);
	usb_remove_removeid_file(driver);
	usb_remove_newid_file(driver);
	usb_free_dynids(driver);
	driver_unregister(&driver->drvwrap.driver);
	usbfs_update_special();
}