diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/usb/core/driver.c | 11 | ||||
-rw-r--r-- | drivers/usb/core/message.c | 24 | ||||
-rw-r--r-- | drivers/usb/core/usb.c | 25 |
3 files changed, 25 insertions, 35 deletions
diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c index 8586817698ad..c51f8e9312e0 100644 --- a/drivers/usb/core/driver.c +++ b/drivers/usb/core/driver.c | |||
@@ -585,9 +585,6 @@ static int usb_uevent(struct device *dev, struct kobj_uevent_env *env) | |||
585 | { | 585 | { |
586 | struct usb_device *usb_dev; | 586 | struct usb_device *usb_dev; |
587 | 587 | ||
588 | if (!dev) | ||
589 | return -ENODEV; | ||
590 | |||
591 | /* driver is often null here; dev_dbg() would oops */ | 588 | /* driver is often null here; dev_dbg() would oops */ |
592 | pr_debug ("usb %s: uevent\n", dev->bus_id); | 589 | pr_debug ("usb %s: uevent\n", dev->bus_id); |
593 | 590 | ||
@@ -631,14 +628,6 @@ static int usb_uevent(struct device *dev, struct kobj_uevent_env *env) | |||
631 | usb_dev->descriptor.bDeviceProtocol)) | 628 | usb_dev->descriptor.bDeviceProtocol)) |
632 | return -ENOMEM; | 629 | return -ENOMEM; |
633 | 630 | ||
634 | if (add_uevent_var(env, "BUSNUM=%03d", | ||
635 | usb_dev->bus->busnum)) | ||
636 | return -ENOMEM; | ||
637 | |||
638 | if (add_uevent_var(env, "DEVNUM=%03d", | ||
639 | usb_dev->devnum)) | ||
640 | return -ENOMEM; | ||
641 | |||
642 | return 0; | 631 | return 0; |
643 | } | 632 | } |
644 | 633 | ||
diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c index 40fd39de5bf9..fcd40ecbeecc 100644 --- a/drivers/usb/core/message.c +++ b/drivers/usb/core/message.c | |||
@@ -1346,34 +1346,10 @@ static int usb_if_uevent(struct device *dev, struct kobj_uevent_env *env) | |||
1346 | struct usb_interface *intf; | 1346 | struct usb_interface *intf; |
1347 | struct usb_host_interface *alt; | 1347 | struct usb_host_interface *alt; |
1348 | 1348 | ||
1349 | if (!dev) | ||
1350 | return -ENODEV; | ||
1351 | |||
1352 | /* driver is often null here; dev_dbg() would oops */ | ||
1353 | pr_debug ("usb %s: uevent\n", dev->bus_id); | ||
1354 | |||
1355 | intf = to_usb_interface(dev); | 1349 | intf = to_usb_interface(dev); |
1356 | usb_dev = interface_to_usbdev(intf); | 1350 | usb_dev = interface_to_usbdev(intf); |
1357 | alt = intf->cur_altsetting; | 1351 | alt = intf->cur_altsetting; |
1358 | 1352 | ||
1359 | #ifdef CONFIG_USB_DEVICEFS | ||
1360 | if (add_uevent_var(env, "DEVICE=/proc/bus/usb/%03d/%03d", | ||
1361 | usb_dev->bus->busnum, usb_dev->devnum)) | ||
1362 | return -ENOMEM; | ||
1363 | #endif | ||
1364 | |||
1365 | if (add_uevent_var(env, "PRODUCT=%x/%x/%x", | ||
1366 | le16_to_cpu(usb_dev->descriptor.idVendor), | ||
1367 | le16_to_cpu(usb_dev->descriptor.idProduct), | ||
1368 | le16_to_cpu(usb_dev->descriptor.bcdDevice))) | ||
1369 | return -ENOMEM; | ||
1370 | |||
1371 | if (add_uevent_var(env, "TYPE=%d/%d/%d", | ||
1372 | usb_dev->descriptor.bDeviceClass, | ||
1373 | usb_dev->descriptor.bDeviceSubClass, | ||
1374 | usb_dev->descriptor.bDeviceProtocol)) | ||
1375 | return -ENOMEM; | ||
1376 | |||
1377 | if (add_uevent_var(env, "INTERFACE=%d/%d/%d", | 1353 | if (add_uevent_var(env, "INTERFACE=%d/%d/%d", |
1378 | alt->desc.bInterfaceClass, | 1354 | alt->desc.bInterfaceClass, |
1379 | alt->desc.bInterfaceSubClass, | 1355 | alt->desc.bInterfaceSubClass, |
diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c index c4a6f1095b8b..8f142370103d 100644 --- a/drivers/usb/core/usb.c +++ b/drivers/usb/core/usb.c | |||
@@ -192,9 +192,34 @@ static void usb_release_dev(struct device *dev) | |||
192 | kfree(udev); | 192 | kfree(udev); |
193 | } | 193 | } |
194 | 194 | ||
195 | #ifdef CONFIG_HOTPLUG | ||
196 | static int usb_dev_uevent(struct device *dev, struct kobj_uevent_env *env) | ||
197 | { | ||
198 | struct usb_device *usb_dev; | ||
199 | |||
200 | usb_dev = to_usb_device(dev); | ||
201 | |||
202 | if (add_uevent_var(env, "BUSNUM=%03d", usb_dev->bus->busnum)) | ||
203 | return -ENOMEM; | ||
204 | |||
205 | if (add_uevent_var(env, "DEVNUM=%03d", usb_dev->devnum)) | ||
206 | return -ENOMEM; | ||
207 | |||
208 | return 0; | ||
209 | } | ||
210 | |||
211 | #else | ||
212 | |||
213 | static int usb_dev_uevent(struct device *dev, struct kobj_uevent_env *env) | ||
214 | { | ||
215 | return -ENODEV; | ||
216 | } | ||
217 | #endif /* CONFIG_HOTPLUG */ | ||
218 | |||
195 | struct device_type usb_device_type = { | 219 | struct device_type usb_device_type = { |
196 | .name = "usb_device", | 220 | .name = "usb_device", |
197 | .release = usb_release_dev, | 221 | .release = usb_release_dev, |
222 | .uevent = usb_dev_uevent, | ||
198 | }; | 223 | }; |
199 | 224 | ||
200 | #ifdef CONFIG_PM | 225 | #ifdef CONFIG_PM |