Hi, On Thu, Apr 28, 2016 at 10:33:14AM -0700, Tony Lindgren wrote: > We have remove() already calling shutdown(), so let's drop it > and move the code to remove(). > > Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx> > --- > drivers/usb/musb/musb_core.c | 39 ++++++++++++++------------------------- > 1 file changed, 14 insertions(+), 25 deletions(-) > > diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c > index 5fa6187..d7af8ed 100644 > --- a/drivers/usb/musb/musb_core.c > +++ b/drivers/usb/musb/musb_core.c > @@ -1090,29 +1090,6 @@ void musb_stop(struct musb *musb) > musb_platform_try_idle(musb, 0); > } > > -static void musb_shutdown(struct platform_device *pdev) > -{ > - struct musb *musb = dev_to_musb(&pdev->dev); > - unsigned long flags; > - > - pm_runtime_get_sync(musb->controller); > - > - musb_host_cleanup(musb); > - musb_gadget_cleanup(musb); > - > - spin_lock_irqsave(&musb->lock, flags); > - musb_platform_disable(musb); > - musb_generic_disable(musb); > - spin_unlock_irqrestore(&musb->lock, flags); > - > - musb_writeb(musb->mregs, MUSB_DEVCTL, 0); > - musb_platform_exit(musb); > - > - pm_runtime_put(musb->controller); > - /* FIXME power down */ > -} > - > - > /*-------------------------------------------------------------------------*/ > > /* > @@ -2312,6 +2289,7 @@ static int musb_remove(struct platform_device *pdev) > { > struct device *dev = &pdev->dev; > struct musb *musb = dev_to_musb(dev); > + unsigned long flags; > > /* this gets called on rmmod. > * - Host mode: host may still be active > @@ -2319,7 +2297,19 @@ static int musb_remove(struct platform_device *pdev) > * - OTG mode: both roles are deactivated (or never-activated) > */ > musb_exit_debugfs(musb); > - musb_shutdown(pdev); > + > + pm_runtime_get_sync(musb->controller); > + musb_host_cleanup(musb); > + musb_gadget_cleanup(musb); > + spin_lock_irqsave(&musb->lock, flags); > + musb_platform_disable(musb); > + musb_generic_disable(musb); > + spin_unlock_irqrestore(&musb->lock, flags); > + musb_writeb(musb->mregs, MUSB_DEVCTL, 0); > + musb_platform_exit(musb); > + pm_runtime_put(musb->controller); > + /* FIXME power down */ Do we know what to be fixed? If not, I think we can drop this FIXME. Regards, -Bin. > + > musb_phy_callback = NULL; > > if (musb->dma_controller) > @@ -2612,7 +2602,6 @@ static struct platform_driver musb_driver = { > }, > .probe = musb_probe, > .remove = musb_remove, > - .shutdown = musb_shutdown, > }; > > module_platform_driver(musb_driver); > -- > 2.8.1 > -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html