usb: musb: Always clear the data toggle bit when configuring ep
authorPali Rohár <pali@kernel.org>
Sun, 7 Feb 2021 13:50:04 +0000 (14:50 +0100)
committerMarek Vasut <marex@denx.de>
Wed, 3 Mar 2021 03:12:45 +0000 (04:12 +0100)
Without this patch clearing was done only when U-Boot was compiled with
MUSB Host Controller. But clearing of data toggle bit is needed also for
MUSB Device Controller otherwise Device Controller does not work correctly.

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Acked-by: Pavel Machek <pavel@ucw.cz>
drivers/usb/musb/musb_core.c

index 147b2eb..cc6dc38 100644 (file)
@@ -81,10 +81,8 @@ void musb_configure_ep(const struct musb_epinfo *epinfo, u8 cnt)
                        config_fifo(tx, idx, fifoaddr);
 
                        csr = readw(&musbr->txcsr);
-#if defined(CONFIG_USB_MUSB_HCD)
                        /* clear the data toggle bit */
                        writew(csr | MUSB_TXCSR_CLRDATATOG, &musbr->txcsr);
-#endif
                        /* Flush fifo if required */
                        if (csr & MUSB_TXCSR_TXPKTRDY)
                                writew(csr | MUSB_TXCSR_FLUSHFIFO,
@@ -94,10 +92,8 @@ void musb_configure_ep(const struct musb_epinfo *epinfo, u8 cnt)
                        config_fifo(rx, idx, fifoaddr);
 
                        csr = readw(&musbr->rxcsr);
-#if defined(CONFIG_USB_MUSB_HCD)
                        /* clear the data toggle bit */
                        writew(csr | MUSB_RXCSR_CLRDATATOG, &musbr->rxcsr);
-#endif
                        /* Flush fifo if required */
                        if (csr & MUSB_RXCSR_RXPKTRDY)
                                writew(csr | MUSB_RXCSR_FLUSHFIFO,