diff options
| author | Greg Kroah-Hartman <gregkh@suse.de> | 2008-06-10 16:22:00 -0700 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2008-06-10 16:22:00 -0700 |
| commit | f52244b3c054199fceb284f67bb447fa900bdac4 (patch) | |
| tree | ef9fee19a0d5a9d0076f421776b6cad41d396d4f /usb | |
| parent | 4b3f4e994ea7349bf3193f454f233cb6eba1e97f (diff) | |
| download | patches-f52244b3c054199fceb284f67bb447fa900bdac4.tar.gz | |
added a usb revert patch to make things still work properly for usb hubs
Diffstat (limited to 'usb')
| -rw-r--r-- | usb/usb-add-usb_dev_reset_delayed.patch | 2 | ||||
| -rw-r--r-- | usb/usb-revert-don-t-use-reset-resume-if-drivers-don-t-support-it.patch | 78 |
2 files changed, 79 insertions, 1 deletions
diff --git a/usb/usb-add-usb_dev_reset_delayed.patch b/usb/usb-add-usb_dev_reset_delayed.patch index 72f5e13a8b79f4..0c5881a972edf3 100644 --- a/usb/usb-add-usb_dev_reset_delayed.patch +++ b/usb/usb-add-usb_dev_reset_delayed.patch @@ -27,7 +27,7 @@ Signed-off-by: Inaky Perez-Gonzalez <inaky@linux.intel.com> --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c -@@ -3402,3 +3402,86 @@ int usb_reset_composite_device(struct us +@@ -3406,3 +3406,86 @@ int usb_reset_composite_device(struct us return ret; } EXPORT_SYMBOL_GPL(usb_reset_composite_device); diff --git a/usb/usb-revert-don-t-use-reset-resume-if-drivers-don-t-support-it.patch b/usb/usb-revert-don-t-use-reset-resume-if-drivers-don-t-support-it.patch new file mode 100644 index 00000000000000..6ade0c5a8a5c04 --- /dev/null +++ b/usb/usb-revert-don-t-use-reset-resume-if-drivers-don-t-support-it.patch @@ -0,0 +1,78 @@ +From stern@rowland.harvard.edu Tue Jun 10 14:31:37 2008 +From: Greg Kroah-Hartman <gregkh@suse.de> +Date: Tue, 10 Jun 2008 14:59:43 -0400 (EDT) +Subject: USB: revert "don't use reset-resume if drivers don't support it" +To: Greg KH <greg@kroah.com> + +This reverts Linus's previous patch that is in mainline to make it +easier for the USB hub.c patches that follow this to apply cleanly. The +functionality will be added back in a followon patch in this series. + +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/usb/core/hub.c | 46 ++-------------------------------------------- + 1 file changed, 2 insertions(+), 44 deletions(-) + +--- a/drivers/usb/core/hub.c ++++ b/drivers/usb/core/hub.c +@@ -644,48 +644,6 @@ static void hub_stop(struct usb_hub *hub + + #ifdef CONFIG_PM + +-/* Try to identify which devices need USB-PERSIST handling */ +-static int persistent_device(struct usb_device *udev) +-{ +- int i; +- int retval; +- struct usb_host_config *actconfig; +- +- /* Explicitly not marked persistent? */ +- if (!udev->persist_enabled) +- return 0; +- +- /* No active config? */ +- actconfig = udev->actconfig; +- if (!actconfig) +- return 0; +- +- /* FIXME! We should check whether it's open here or not! */ +- +- /* +- * Check that all the interface drivers have a +- * 'reset_resume' entrypoint +- */ +- retval = 0; +- for (i = 0; i < actconfig->desc.bNumInterfaces; i++) { +- struct usb_interface *intf; +- struct usb_driver *driver; +- +- intf = actconfig->interface[i]; +- if (!intf->dev.driver) +- continue; +- driver = to_usb_driver(intf->dev.driver); +- if (!driver->reset_resume) +- return 0; +- /* +- * We have at least one driver, and that one +- * has a reset_resume method. +- */ +- retval = 1; +- } +- return retval; +-} +- + static void hub_restart(struct usb_hub *hub, int type) + { + struct usb_device *hdev = hub->hdev; +@@ -731,8 +689,8 @@ static void hub_restart(struct usb_hub * + * turn off the various status changes to prevent + * khubd from disconnecting it later. + */ +- if (status == 0 && !(portstatus & USB_PORT_STAT_ENABLE) && +- persistent_device(udev)) { ++ if (udev->persist_enabled && status == 0 && ++ !(portstatus & USB_PORT_STAT_ENABLE)) { + if (portchange & USB_PORT_STAT_C_ENABLE) + clear_port_feature(hub->hdev, port1, + USB_PORT_FEAT_C_ENABLE); |
