Skip to content

Commit

Permalink
[PATCH] USB: convert usb class devices to real devices
Browse files Browse the repository at this point in the history
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Greg Kroah-Hartman committed Jun 21, 2006
1 parent c182274 commit bd00949
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 9 deletions.
13 changes: 6 additions & 7 deletions drivers/usb/core/file.c
Original file line number Diff line number Diff line change
Expand Up @@ -158,14 +158,13 @@ int usb_register_dev(struct usb_interface *intf,
++temp;
else
temp = name;
intf->class_dev = class_device_create(usb_class, NULL,
MKDEV(USB_MAJOR, minor),
&intf->dev, "%s", temp);
if (IS_ERR(intf->class_dev)) {
intf->usb_dev = device_create(usb_class, &intf->dev,
MKDEV(USB_MAJOR, minor), "%s", temp);
if (IS_ERR(intf->usb_dev)) {
spin_lock (&minor_lock);
usb_minors[intf->minor] = NULL;
spin_unlock (&minor_lock);
retval = PTR_ERR(intf->class_dev);
retval = PTR_ERR(intf->usb_dev);
}
exit:
return retval;
Expand Down Expand Up @@ -206,8 +205,8 @@ void usb_deregister_dev(struct usb_interface *intf,
spin_unlock (&minor_lock);

snprintf(name, BUS_ID_SIZE, class_driver->name, intf->minor - minor_base);
class_device_destroy(usb_class, MKDEV(USB_MAJOR, intf->minor));
intf->class_dev = NULL;
device_destroy(usb_class, MKDEV(USB_MAJOR, intf->minor));
intf->usb_dev = NULL;
intf->minor = -1;
}
EXPORT_SYMBOL(usb_deregister_dev);
Expand Down
5 changes: 3 additions & 2 deletions include/linux/usb.h
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,8 @@ enum usb_interface_condition {
* @condition: binding state of the interface: not bound, binding
* (in probe()), bound to a driver, or unbinding (in disconnect())
* @dev: driver model's view of this device
* @class_dev: driver model's class view of this device.
* @usb_dev: if an interface is bound to the USB major, this will point
* to the sysfs representation for that device.
*
* USB device drivers attach to interfaces on a physical device. Each
* interface encapsulates a single high level function, such as feeding
Expand Down Expand Up @@ -143,7 +144,7 @@ struct usb_interface {
* bound to */
enum usb_interface_condition condition; /* state of binding */
struct device dev; /* interface specific device info */
struct class_device *class_dev;
struct device *usb_dev; /* pointer to the usb class's device, if any */
};
#define to_usb_interface(d) container_of(d, struct usb_interface, dev)
#define interface_to_usbdev(intf) \
Expand Down

0 comments on commit bd00949

Please sign in to comment.