Skip to content

Commit

Permalink
USB: remove CONFIG_USB_DEVICE_CLASS
Browse files Browse the repository at this point in the history
This option has been deprecated for many years now, and no userspace
tools use it anymore, so it should be safe to finally remove it.

Reported-by: Kay Sievers <kay@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Greg Kroah-Hartman committed Apr 30, 2012
1 parent fb28d58 commit 007bab9
Show file tree
Hide file tree
Showing 3 changed files with 0 additions and 75 deletions.
23 changes: 0 additions & 23 deletions drivers/usb/core/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -27,29 +27,6 @@ config USB_ANNOUNCE_NEW_DEVICES
comment "Miscellaneous USB options"
depends on USB

config USB_DEVICE_CLASS
bool "USB device class-devices (DEPRECATED)"
depends on USB
default y
---help---
Userspace access to USB devices is granted by device-nodes exported
directly from the usbdev in sysfs. Old versions of the driver
core and udev needed additional class devices to export device nodes.

These additional devices are difficult to handle in userspace, if
information about USB interfaces must be available. One device
contains the device node, the other device contains the interface
data. Both devices are at the same level in sysfs (siblings) and one
can't access the other. The device node created directly by the
usb device is the parent device of the interface and therefore
easily accessible from the interface event.

This option provides backward compatibility for libusb device
nodes (lsusb) when usbfs is not used, and the following udev rule
doesn't exist:
SUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", \
NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", MODE="0644"

config USB_DYNAMIC_MINORS
bool "Dynamic USB minor allocation"
depends on USB
Expand Down
49 changes: 0 additions & 49 deletions drivers/usb/core/devio.c
Original file line number Diff line number Diff line change
Expand Up @@ -2051,44 +2051,13 @@ static void usbdev_remove(struct usb_device *udev)
}
}

#ifdef CONFIG_USB_DEVICE_CLASS
static struct class *usb_classdev_class;

static int usb_classdev_add(struct usb_device *dev)
{
struct device *cldev;

cldev = device_create(usb_classdev_class, &dev->dev, dev->dev.devt,
NULL, "usbdev%d.%d", dev->bus->busnum,
dev->devnum);
if (IS_ERR(cldev))
return PTR_ERR(cldev);
dev->usb_classdev = cldev;
return 0;
}

static void usb_classdev_remove(struct usb_device *dev)
{
if (dev->usb_classdev)
device_unregister(dev->usb_classdev);
}

#else
#define usb_classdev_add(dev) 0
#define usb_classdev_remove(dev) do {} while (0)

#endif

static int usbdev_notify(struct notifier_block *self,
unsigned long action, void *dev)
{
switch (action) {
case USB_DEVICE_ADD:
if (usb_classdev_add(dev))
return NOTIFY_BAD;
break;
case USB_DEVICE_REMOVE:
usb_classdev_remove(dev);
usbdev_remove(dev);
break;
}
Expand Down Expand Up @@ -2118,21 +2087,6 @@ int __init usb_devio_init(void)
USB_DEVICE_MAJOR);
goto error_cdev;
}
#ifdef CONFIG_USB_DEVICE_CLASS
usb_classdev_class = class_create(THIS_MODULE, "usb_device");
if (IS_ERR(usb_classdev_class)) {
printk(KERN_ERR "Unable to register usb_device class\n");
retval = PTR_ERR(usb_classdev_class);
cdev_del(&usb_device_cdev);
usb_classdev_class = NULL;
goto out;
}
/* devices of this class shadow the major:minor of their parent
* device, so clear ->dev_kobj to prevent adding duplicate entries
* to /sys/dev
*/
usb_classdev_class->dev_kobj = NULL;
#endif
usb_register_notify(&usbdev_nb);
out:
return retval;
Expand All @@ -2145,9 +2099,6 @@ int __init usb_devio_init(void)
void usb_devio_cleanup(void)
{
usb_unregister_notify(&usbdev_nb);
#ifdef CONFIG_USB_DEVICE_CLASS
class_destroy(usb_classdev_class);
#endif
cdev_del(&usb_device_cdev);
unregister_chrdev_region(USB_DEVICE_DEV, USB_DEVICE_MAX);
}
3 changes: 0 additions & 3 deletions include/linux/usb.h
Original file line number Diff line number Diff line change
Expand Up @@ -489,9 +489,6 @@ struct usb_device {
char *serial;

struct list_head filelist;
#ifdef CONFIG_USB_DEVICE_CLASS
struct device *usb_classdev;
#endif

int maxchild;
struct usb_device **children;
Expand Down

0 comments on commit 007bab9

Please sign in to comment.