aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/musb/musb_host.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/musb/musb_host.c')
-rw-r--r--drivers/usb/musb/musb_host.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c
index 6582a20bec05..ed455724017b 100644
--- a/drivers/usb/musb/musb_host.c
+++ b/drivers/usb/musb/musb_host.c
@@ -39,7 +39,6 @@
39#include <linux/sched.h> 39#include <linux/sched.h>
40#include <linux/slab.h> 40#include <linux/slab.h>
41#include <linux/errno.h> 41#include <linux/errno.h>
42#include <linux/init.h>
43#include <linux/list.h> 42#include <linux/list.h>
44#include <linux/dma-mapping.h> 43#include <linux/dma-mapping.h>
45 44
@@ -2013,7 +2012,7 @@ static int musb_schedule(
2013 head = &musb->out_bulk; 2012 head = &musb->out_bulk;
2014 2013
2015 /* Enable bulk RX/TX NAK timeout scheme when bulk requests are 2014 /* Enable bulk RX/TX NAK timeout scheme when bulk requests are
2016 * multiplexed. This scheme doen't work in high speed to full 2015 * multiplexed. This scheme does not work in high speed to full
2017 * speed scenario as NAK interrupts are not coming from a 2016 * speed scenario as NAK interrupts are not coming from a
2018 * full speed device connected to a high speed device. 2017 * full speed device connected to a high speed device.
2019 * NAK timeout interval is 8 (128 uframe or 16ms) for HS and 2018 * NAK timeout interval is 8 (128 uframe or 16ms) for HS and
@@ -2433,6 +2432,8 @@ static int musb_bus_suspend(struct usb_hcd *hcd)
2433 struct musb *musb = hcd_to_musb(hcd); 2432 struct musb *musb = hcd_to_musb(hcd);
2434 u8 devctl; 2433 u8 devctl;
2435 2434
2435 musb_port_suspend(musb, true);
2436
2436 if (!is_host_active(musb)) 2437 if (!is_host_active(musb))
2437 return 0; 2438 return 0;
2438 2439
@@ -2462,7 +2463,12 @@ static int musb_bus_suspend(struct usb_hcd *hcd)
2462 2463
2463static int musb_bus_resume(struct usb_hcd *hcd) 2464static int musb_bus_resume(struct usb_hcd *hcd)
2464{ 2465{
2465 /* resuming child port does the work */ 2466 struct musb *musb = hcd_to_musb(hcd);
2467
2468 if (musb->config &&
2469 musb->config->host_port_deassert_reset_at_resume)
2470 musb_port_reset(musb, false);
2471
2466 return 0; 2472 return 0;
2467} 2473}
2468 2474
@@ -2657,6 +2663,7 @@ int musb_host_setup(struct musb *musb, int power_budget)
2657 if (ret < 0) 2663 if (ret < 0)
2658 return ret; 2664 return ret;
2659 2665
2666 device_wakeup_enable(hcd->self.controller);
2660 return 0; 2667 return 0;
2661} 2668}
2662 2669