USB: serial: sierra driver adding reset_resume function
authorElina Pasheva <epasheva@sierrawireless.com>
Fri, 12 Feb 2010 02:37:40 +0000 (18:37 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 2 Mar 2010 22:55:03 +0000 (14:55 -0800)
This patch adds a new function to the sierra.c driver, sierra_reset_resume().
This new function completes the suite of Dynamic Power Management commands
in the sierra.c driver.

Signed-off-by: Elina Pasheva <epasheva@sierrawireless.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
 drivers/usb/serial/sierra.c |   30 ++++++++++++++++++++----------
 1 file changed, 20 insertions(+), 10 deletions(-)

drivers/usb/serial/sierra.c

index bb0d56c..6aeea40 100644 (file)
@@ -304,16 +304,6 @@ static const struct usb_device_id id_table[] = {
 };
 MODULE_DEVICE_TABLE(usb, id_table);
 
-static struct usb_driver sierra_driver = {
-       .name       = "sierra",
-       .probe      = usb_serial_probe,
-       .disconnect = usb_serial_disconnect,
-       .suspend    = usb_serial_suspend,
-       .resume     = usb_serial_resume,
-       .id_table   = id_table,
-       .no_dynamic_id =        1,
-       .supports_autosuspend = 1,
-};
 
 struct sierra_port_private {
        spinlock_t lock;        /* lock the structure */
@@ -1061,11 +1051,31 @@ static int sierra_resume(struct usb_serial *serial)
 
        return ec ? -EIO : 0;
 }
+
+static int sierra_reset_resume(struct usb_interface *intf)
+{
+       struct usb_serial *serial = usb_get_intfdata(intf);
+       dev_err(&serial->dev->dev, "%s\n", __func__);
+       return usb_serial_resume(intf);
+}
 #else
 #define sierra_suspend NULL
 #define sierra_resume NULL
+#define sierra_reset_resume NULL
 #endif
 
+static struct usb_driver sierra_driver = {
+       .name       = "sierra",
+       .probe      = usb_serial_probe,
+       .disconnect = usb_serial_disconnect,
+       .suspend    = usb_serial_suspend,
+       .resume     = usb_serial_resume,
+       .reset_resume = sierra_reset_resume,
+       .id_table   = id_table,
+       .no_dynamic_id =        1,
+       .supports_autosuspend = 1,
+};
+
 static struct usb_serial_driver sierra_device = {
        .driver = {
                .owner =        THIS_MODULE,