[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20190321144246.3547-1-paul@crapouillou.net>
Date: Thu, 21 Mar 2019 15:42:46 +0100
From: Paul Cercueil <paul@...pouillou.net>
To: Bin Liu <b-liu@...com>
Cc: linux-usb@...r.kernel.org, linux-kernel@...r.kernel.org,
od@...c.me, Paul Cercueil <paul@...pouillou.net>
Subject: [PATCH] usb: musb: Force-disable pullup on shutdown
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@...pouillou.net>
---
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
Powered by blists - more mailing lists