usb: dwc3-meson-g12a: always configure dr-mode
authorMarek Szyprowski <m.szyprowski@samsung.com>
Thu, 10 Dec 2020 10:35:31 +0000 (11:35 +0100)
committerMarek Szyprowski <m.szyprowski@samsung.com>
Mon, 15 Nov 2021 10:37:12 +0000 (11:37 +0100)
dwc3_meson_g12a_force_mode() sets the dr-mode of the USB PHY. However
it skips setting the mode if it matches the one done during driver probe
(stored in private structure). This fails if the mode has been changed
to other value and then back to initial one. Fix this by configuring the
dr-mode always, regadless of the one set at the driver probe).

This fixes operation of USB gadget based drivers when they are initialized
for the second time.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I5188ca7cccf8e9b05a6cae9fd2b6f9d55fc75cb7

drivers/usb/dwc3/dwc3-meson-g12a.c

index 6567502..6f0bac2 100644 (file)
@@ -269,9 +269,6 @@ int dwc3_meson_g12a_force_mode(struct udevice *dev, enum usb_dr_mode mode)
        if (!priv->phys[USB2_OTG_PHY].dev)
                return -EINVAL;
 
-       if (mode == priv->otg_mode)
-               return 0;
-
        if (mode == USB_DR_MODE_HOST)
                debug("%s: switching to Host Mode\n", __func__);
        else