USB: remove dead code from suspend/resume path
authorOliver Neukum <oliver@neukum.org>
Mon, 2 Jan 2012 14:11:48 +0000 (15:11 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 4 Jan 2012 00:49:28 +0000 (16:49 -0800)
If a driver does not support the suspend/resume callbacks
it will be forcibly disconnected. There is no reason to check
for support of the callbacks after that.

Signed-off-by: Oliver Neukum <oneukum@suse.de>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/core/driver.c

index 73abd8a0647dc0d43582ecf41805dc35064a3f55..d40ff95688135ce82a1c4ccbfac6d129104cd874 100644 (file)
@@ -1079,17 +1079,10 @@ static int usb_suspend_interface(struct usb_device *udev,
                goto done;
        driver = to_usb_driver(intf->dev.driver);
 
-       if (driver->suspend) {
-               status = driver->suspend(intf, msg);
-               if (status && !PMSG_IS_AUTO(msg))
-                       dev_err(&intf->dev, "%s error %d\n",
-                                       "suspend", status);
-       } else {
-               /* Later we will unbind the driver and reprobe */
-               intf->needs_binding = 1;
-               dev_warn(&intf->dev, "no %s for driver %s?\n",
-                               "suspend", driver->name);
-       }
+       /* at this time we know the driver supports suspend */
+       status = driver->suspend(intf, msg);
+       if (status && !PMSG_IS_AUTO(msg))
+               dev_err(&intf->dev, "suspend error %d\n", status);
 
  done:
        dev_vdbg(&intf->dev, "%s: status %d\n", __func__, status);
@@ -1138,16 +1131,9 @@ static int usb_resume_interface(struct usb_device *udev,
                                        "reset_resume", driver->name);
                }
        } else {
-               if (driver->resume) {
-                       status = driver->resume(intf);
-                       if (status)
-                               dev_err(&intf->dev, "%s error %d\n",
-                                               "resume", status);
-               } else {
-                       intf->needs_binding = 1;
-                       dev_warn(&intf->dev, "no %s for driver %s?\n",
-                                       "resume", driver->name);
-               }
+               status = driver->resume(intf);
+               if (status)
+                       dev_err(&intf->dev, "resume error %d\n", status);
        }
 
 done: