On Wed, Jun 17, 2020 at 04:17:07PM +0800, Macpaul Lin wrote:
Bin Liu b-liu@ti.com 於 2020年5月25日 週一 上午10:53寫道:
From: Macpaul Lin macpaul.lin@mediatek.com
When receiving reset interrupt, FADDR need to be reset to zero in peripheral mode. Otherwise ep0 cannot do enumeration when re-plugging USB cable.
Signed-off-by: Macpaul Lin macpaul.lin@mediatek.com Acked-by: Min Guo min.guo@mediatek.com Signed-off-by: Bin Liu b-liu@ti.com
drivers/usb/musb/mediatek.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/drivers/usb/musb/mediatek.c b/drivers/usb/musb/mediatek.c index 6196b0e8d77d..eebeadd26946 100644 --- a/drivers/usb/musb/mediatek.c +++ b/drivers/usb/musb/mediatek.c @@ -208,6 +208,12 @@ static irqreturn_t generic_interrupt(int irq, void *__hci) musb->int_rx = musb_clearw(musb->mregs, MUSB_INTRRX); musb->int_tx = musb_clearw(musb->mregs, MUSB_INTRTX);
if ((musb->int_usb & MUSB_INTR_RESET) && !is_host_active(musb)) {
/* ep0 FADDR must be 0 when (re)entering peripheral mode */
musb_ep_select(musb->mregs, 0);
musb_writeb(musb->mregs, MUSB_FADDR, 0);
}
if (musb->int_usb || musb->int_tx || musb->int_rx) retval = musb_interrupt(musb);
-- 2.17.1
Could this bug fix also been applied to stable kernel?
Sure, what is the git commit of it in Linus's tree?
thanks,
greg k-h