[PATCH] usb: musb: Force-disable pullup on shutdown

From: Paul Cercueil
Date: Thu Mar 21 2019 - 10:42:59 EST


When the musb is shutdown, for instance when the driver is unloaded,
force-disable the pullup. Otherwise, the host will still see the gadget
device even after the shutdown.

Signed-off-by: Paul Cercueil <paul@xxxxxxxxxxxxxxx>
---
drivers/usb/musb/musb_gadget.c | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
index ffe462a657b1..a78a7391031b 100644
--- a/drivers/usb/musb/musb_gadget.c
+++ b/drivers/usb/musb/musb_gadget.c
@@ -1808,11 +1808,18 @@ int musb_gadget_setup(struct musb *musb)

void musb_gadget_cleanup(struct musb *musb)
{
+ unsigned long flags;
+
if (musb->port_mode == MUSB_HOST)
return;

cancel_delayed_work_sync(&musb->gadget_work);
usb_del_gadget_udc(&musb->g);
+
+ /* Force-disable the pull-up */
+ spin_lock_irqsave(&musb->lock, flags);
+ musb_pullup(musb, 0);
+ spin_unlock_irqrestore(&musb->lock, flags);
}

/*
--
2.11.0