aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/serial
diff options
context:
space:
mode:
authorJohan Hovold <jhovold@gmail.com>2014-05-26 13:23:24 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-05-27 18:04:07 -0400
commitae75c940181c3d4044f7b1adf07ada877ad9cb83 (patch)
tree3e68802c18a074f05c869134d25363c5816abfb4 /drivers/usb/serial
parent2b4aceabb1bde8fb205f4e947f2db4b1b7a0c2f9 (diff)
USB: usb_wwan: kill interrupt urb explicitly at suspend
As the port interrupt URB is submitted by the subdriver at open, we should also kill it explicitly at suspend (even though this will be taken care of by USB serial core otherwise). Signed-off-by: Johan Hovold <jhovold@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/serial')
-rw-r--r--drivers/usb/serial/usb_wwan.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/usb/serial/usb_wwan.c b/drivers/usb/serial/usb_wwan.c
index c4a815c1da5b..b671d59e356e 100644
--- a/drivers/usb/serial/usb_wwan.c
+++ b/drivers/usb/serial/usb_wwan.c
@@ -562,7 +562,7 @@ int usb_wwan_port_remove(struct usb_serial_port *port)
562EXPORT_SYMBOL(usb_wwan_port_remove); 562EXPORT_SYMBOL(usb_wwan_port_remove);
563 563
564#ifdef CONFIG_PM 564#ifdef CONFIG_PM
565static void stop_read_write_urbs(struct usb_serial *serial) 565static void stop_urbs(struct usb_serial *serial)
566{ 566{
567 int i, j; 567 int i, j;
568 struct usb_serial_port *port; 568 struct usb_serial_port *port;
@@ -578,6 +578,7 @@ static void stop_read_write_urbs(struct usb_serial *serial)
578 usb_kill_urb(portdata->in_urbs[j]); 578 usb_kill_urb(portdata->in_urbs[j]);
579 for (j = 0; j < N_OUT_URB; j++) 579 for (j = 0; j < N_OUT_URB; j++)
580 usb_kill_urb(portdata->out_urbs[j]); 580 usb_kill_urb(portdata->out_urbs[j]);
581 usb_kill_urb(port->interrupt_in_urb);
581 } 582 }
582} 583}
583 584
@@ -595,7 +596,7 @@ int usb_wwan_suspend(struct usb_serial *serial, pm_message_t message)
595 intfdata->suspended = 1; 596 intfdata->suspended = 1;
596 spin_unlock_irq(&intfdata->susp_lock); 597 spin_unlock_irq(&intfdata->susp_lock);
597 598
598 stop_read_write_urbs(serial); 599 stop_urbs(serial);
599 600
600 return 0; 601 return 0;
601} 602}