diff options
author | Ramneek Mehresh <ramneek.mehresh@freescale.com> | 2013-04-18 10:13:33 (GMT) |
---|---|---|
committer | Xie Xiaobo <xiaobo.xie@nxp.com> | 2017-09-25 07:25:27 (GMT) |
commit | 42a1431068088a5a9dbeaf94d9a52ba23a5b91eb (patch) | |
tree | d818031532102100d03ac071e342bd9876282be2 /drivers/usb/phy | |
parent | bb40cce21a9f174d07ea82173e5fe59cfbdbaaca (diff) | |
download | linux-42a1431068088a5a9dbeaf94d9a52ba23a5b91eb.tar.xz |
usb: host: Add support to add/remove usb host driver
Add workqueue to add/remove host driver (outside interrupt context)
upon each id change
Signed-off-by: Li Yang <leoli@freescale.com>
Signed-off-by: Ramneek Mehresh <ramneek.mehresh@freescale.com>
Signed-off-by: yinbo.zhu <yinbo.zhu@nxp.com>
Diffstat (limited to 'drivers/usb/phy')
-rw-r--r-- | drivers/usb/phy/phy-fsl-usb.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/usb/phy/phy-fsl-usb.c b/drivers/usb/phy/phy-fsl-usb.c index 7f70135..cb3a951 100644 --- a/drivers/usb/phy/phy-fsl-usb.c +++ b/drivers/usb/phy/phy-fsl-usb.c @@ -463,6 +463,7 @@ void otg_reset_controller(void) int fsl_otg_start_host(struct otg_fsm *fsm, int on) { struct usb_otg *otg = fsm->otg; + struct usb_bus *host = otg->host; struct device *dev; struct fsl_otg *otg_dev = container_of(otg->usb_phy, struct fsl_otg, phy); @@ -486,6 +487,7 @@ int fsl_otg_start_host(struct otg_fsm *fsm, int on) otg_reset_controller(); VDBG("host on......\n"); if (dev->driver->pm && dev->driver->pm->resume) { + host->is_otg = 1; retval = dev->driver->pm->resume(dev); if (fsm->id) { /* default-b */ @@ -510,8 +512,11 @@ int fsl_otg_start_host(struct otg_fsm *fsm, int on) else { VDBG("host off......\n"); if (dev && dev->driver) { - if (dev->driver->pm && dev->driver->pm->suspend) + if (dev->driver->pm && + dev->driver->pm->suspend) { + host->is_otg = 1; retval = dev->driver->pm->suspend(dev); + } if (fsm->id) /* default-b */ fsl_otg_drv_vbus(fsm, 0); |