All we have to do is, really, drop session bit
and let the session restart.

Big thanks goes to Bin Liu <b-...@ti.com> for
inspiring this work.

Signed-off-by: Felipe Balbi <ba...@ti.com>
---
 drivers/usb/musb/musb_dsps.c | 15 +--------------
 1 file changed, 1 insertion(+), 14 deletions(-)

diff --git a/drivers/usb/musb/musb_dsps.c b/drivers/usb/musb/musb_dsps.c
index b52eecaf11a4..d34b0c04caaf 100644
--- a/drivers/usb/musb/musb_dsps.c
+++ b/drivers/usb/musb/musb_dsps.c
@@ -587,25 +587,12 @@ static int dsps_musb_reset(struct musb *musb)
 {
        struct device *dev = musb->controller;
        struct dsps_glue *glue = dev_get_drvdata(dev->parent);
-       const struct dsps_musb_wrapper *wrp = glue->wrp;
        int session_restart = 0;
 
        if (glue->sw_babble_enabled)
                session_restart = dsps_sw_babble_control(musb);
-       /*
-        * In case of new silicon version babble condition can be recovered
-        * without resetting the MUSB. But for older silicon versions, MUSB
-        * reset is needed
-        */
-       if (session_restart || !glue->sw_babble_enabled) {
-               dev_info(musb->controller, "Restarting MUSB to recover from 
Babble\n");
-               dsps_writel(musb->ctrl_base, wrp->control, (1 << wrp->reset));
-               usleep_range(100, 200);
-               usb_phy_shutdown(musb->xceiv);
-               usleep_range(100, 200);
-               usb_phy_init(musb->xceiv);
+       else
                session_restart = 1;
-       }
 
        return session_restart ? 0 : -EPIPE;
 }
-- 
2.3.0

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to