]> www.infradead.org Git - users/willy/xarray.git/commitdiff
usb: chipidea: move ci_ulpi_init after the phy initialization
authorMichael Grzeschik <m.grzeschik@pengutronix.de>
Tue, 2 Apr 2024 06:23:43 +0000 (08:23 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 9 Apr 2024 15:38:03 +0000 (17:38 +0200)
The function ci_usb_phy_init is already handling the
hw_phymode_configure path which is also only possible after we have
a valid phy. So we move the ci_ulpi_init after the phy initialization
to be really sure to be able to communicate with the ulpi phy.

Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Acked-by: Peter Chen <peter.chen@kernel.org>
Link: https://lore.kernel.org/r/20240328-chipidea-phy-misc-v1-1-907d9de5d4df@pengutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/chipidea/core.c
drivers/usb/chipidea/ulpi.c

index 835bf2428dc6eccee263b05024d42885884cd94d..bada13f704b62d51292a4de8d37c0f0d5b5d6706 100644 (file)
@@ -1084,10 +1084,6 @@ static int ci_hdrc_probe(struct platform_device *pdev)
                return -ENODEV;
        }
 
-       ret = ci_ulpi_init(ci);
-       if (ret)
-               return ret;
-
        if (ci->platdata->phy) {
                ci->phy = ci->platdata->phy;
        } else if (ci->platdata->usb_phy) {
@@ -1142,6 +1138,10 @@ static int ci_hdrc_probe(struct platform_device *pdev)
                goto ulpi_exit;
        }
 
+       ret = ci_ulpi_init(ci);
+       if (ret)
+               return ret;
+
        ci->hw_bank.phys = res->start;
 
        ci->irq = platform_get_irq(pdev, 0);
index dfec07e8ae1d268c459b495603bd5e8de154518f..89fb51e2c3ded097441478c5fd9c3ac1d568b876 100644 (file)
@@ -68,11 +68,6 @@ int ci_ulpi_init(struct ci_hdrc *ci)
        if (ci->platdata->phy_mode != USBPHY_INTERFACE_MODE_ULPI)
                return 0;
 
-       /*
-        * Set PORTSC correctly so we can read/write ULPI registers for
-        * identification purposes
-        */
-       hw_phymode_configure(ci);
 
        ci->ulpi_ops.read = ci_ulpi_read;
        ci->ulpi_ops.write = ci_ulpi_write;