diff options
author | Sakethram Bommisetti <sakethram.bommisetti@stericsson.com> | 2010-11-09 12:33:59 +0530 |
---|---|---|
committer | Sundar Iyer <sundar.iyer@stericsson.com> | 2010-11-29 16:47:28 +0530 |
commit | 041223060ed205eec893e0095f54a8d03700b29a (patch) | |
tree | afc7d42b3b9c8ca32c6c00e4232a3698a594527e /drivers/usb | |
parent | e49b3a0edc2dcad6b5fea0f155a1698614bf4b92 (diff) |
Generic:USB:Suspend and Resume from USB
When the usb cable is connected system is not allow to suspend.
Code clean up in musb_db8500.c
ST-Ericsson ID: 276518
Change-Id: I4294b13d47dc416da12b4b6714baee5677db4228
Signed-off-by: Sakethram Bommisetti <sakethram.bommisetti@stericsson.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/8814
Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/musb/musb_core.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c index e18eb3bf84e..b956e61315a 100644 --- a/drivers/usb/musb/musb_core.c +++ b/drivers/usb/musb/musb_core.c @@ -2457,13 +2457,27 @@ static int musb_suspend(struct device *dev) spin_lock_irqsave(&musb->lock, flags); if (is_peripheral_active(musb)) { - /* FIXME force disconnect unless we know USB will wake + /* + * FIXME force disconnect unless we know USB will wake * the system up quickly enough to respond ... + * For ux500 platform if usb is connected return busy + * state */ + if (musb->is_active == 1) { + spin_unlock_irqrestore(&musb->lock, flags); + return -EBUSY; + } } else if (is_host_active(musb)) { - /* we know all the children are suspended; sometimes + /* + * we know all the children are suspended; sometimes * they will even be wakeup-enabled. + * For ux500 platform if usb is connected return busy + * state */ + if (musb->is_active == 1) { + spin_unlock_irqrestore(&musb->lock, flags); + return -EBUSY; + } } musb_save_context(musb); |