diff options
-rw-r--r-- | drivers/usb/core/file.c | 13 | ||||
-rw-r--r-- | include/linux/usb.h | 5 |
2 files changed, 9 insertions, 9 deletions
diff --git a/drivers/usb/core/file.c b/drivers/usb/core/file.c index b263a54a13c0..70898716dd9a 100644 --- a/drivers/usb/core/file.c +++ b/drivers/usb/core/file.c | |||
@@ -158,14 +158,13 @@ int usb_register_dev(struct usb_interface *intf, | |||
158 | ++temp; | 158 | ++temp; |
159 | else | 159 | else |
160 | temp = name; | 160 | temp = name; |
161 | intf->class_dev = class_device_create(usb_class, NULL, | 161 | intf->usb_dev = device_create(usb_class, &intf->dev, |
162 | MKDEV(USB_MAJOR, minor), | 162 | MKDEV(USB_MAJOR, minor), "%s", temp); |
163 | &intf->dev, "%s", temp); | 163 | if (IS_ERR(intf->usb_dev)) { |
164 | if (IS_ERR(intf->class_dev)) { | ||
165 | spin_lock (&minor_lock); | 164 | spin_lock (&minor_lock); |
166 | usb_minors[intf->minor] = NULL; | 165 | usb_minors[intf->minor] = NULL; |
167 | spin_unlock (&minor_lock); | 166 | spin_unlock (&minor_lock); |
168 | retval = PTR_ERR(intf->class_dev); | 167 | retval = PTR_ERR(intf->usb_dev); |
169 | } | 168 | } |
170 | exit: | 169 | exit: |
171 | return retval; | 170 | return retval; |
@@ -206,8 +205,8 @@ void usb_deregister_dev(struct usb_interface *intf, | |||
206 | spin_unlock (&minor_lock); | 205 | spin_unlock (&minor_lock); |
207 | 206 | ||
208 | snprintf(name, BUS_ID_SIZE, class_driver->name, intf->minor - minor_base); | 207 | snprintf(name, BUS_ID_SIZE, class_driver->name, intf->minor - minor_base); |
209 | class_device_destroy(usb_class, MKDEV(USB_MAJOR, intf->minor)); | 208 | device_destroy(usb_class, MKDEV(USB_MAJOR, intf->minor)); |
210 | intf->class_dev = NULL; | 209 | intf->usb_dev = NULL; |
211 | intf->minor = -1; | 210 | intf->minor = -1; |
212 | } | 211 | } |
213 | EXPORT_SYMBOL(usb_deregister_dev); | 212 | EXPORT_SYMBOL(usb_deregister_dev); |
diff --git a/include/linux/usb.h b/include/linux/usb.h index b69b6cfb0bd7..8dead32e7ebf 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h | |||
@@ -103,7 +103,8 @@ enum usb_interface_condition { | |||
103 | * @condition: binding state of the interface: not bound, binding | 103 | * @condition: binding state of the interface: not bound, binding |
104 | * (in probe()), bound to a driver, or unbinding (in disconnect()) | 104 | * (in probe()), bound to a driver, or unbinding (in disconnect()) |
105 | * @dev: driver model's view of this device | 105 | * @dev: driver model's view of this device |
106 | * @class_dev: driver model's class view of this device. | 106 | * @usb_dev: if an interface is bound to the USB major, this will point |
107 | * to the sysfs representation for that device. | ||
107 | * | 108 | * |
108 | * USB device drivers attach to interfaces on a physical device. Each | 109 | * USB device drivers attach to interfaces on a physical device. Each |
109 | * interface encapsulates a single high level function, such as feeding | 110 | * interface encapsulates a single high level function, such as feeding |
@@ -143,7 +144,7 @@ struct usb_interface { | |||
143 | * bound to */ | 144 | * bound to */ |
144 | enum usb_interface_condition condition; /* state of binding */ | 145 | enum usb_interface_condition condition; /* state of binding */ |
145 | struct device dev; /* interface specific device info */ | 146 | struct device dev; /* interface specific device info */ |
146 | struct class_device *class_dev; | 147 | struct device *usb_dev; /* pointer to the usb class's device, if any */ |
147 | }; | 148 | }; |
148 | #define to_usb_interface(d) container_of(d, struct usb_interface, dev) | 149 | #define to_usb_interface(d) container_of(d, struct usb_interface, dev) |
149 | #define interface_to_usbdev(intf) \ | 150 | #define interface_to_usbdev(intf) \ |