usb: dwc2: Use generic PHY width in params setup
authorJules Maselbas <jmaselbas@kalray.eu>
Thu, 9 May 2019 09:15:28 +0000 (11:15 +0200)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Tue, 18 Jun 2019 07:27:14 +0000 (10:27 +0300)
Setting params.phy_utmi_width in dwc2_lowlevel_hw_init() is pointless since
it's value will be overwritten by dwc2_init_params().

This change make sure to take in account the generic PHY width information
during paraminitialisation, done in dwc2_set_param_phy_utmi_width().

By doing so, the phy_utmi_width params can still be overrided by
devicetree specific params and will also be checked against hardware
capabilities.

Fixes: 707d80f0a3c5 ("usb: dwc2: gadget: Replace phyif with phy_utmi_width")
Acked-by: Minas Harutyunyan <hminas@synopsys.com>
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Jules Maselbas <jmaselbas@kalray.eu>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/dwc2/params.c
drivers/usb/dwc2/platform.c

index 6900eea575267640b10b50e4a6717e10c42ea378..5949262ff669ea9fefa49029b8dfae9fe07b8ee8 100644 (file)
@@ -253,6 +253,15 @@ static void dwc2_set_param_phy_utmi_width(struct dwc2_hsotg *hsotg)
        val = (hsotg->hw_params.utmi_phy_data_width ==
               GHWCFG4_UTMI_PHY_DATA_WIDTH_8) ? 8 : 16;
 
+       if (hsotg->phy) {
+               /*
+                * If using the generic PHY framework, check if the PHY bus
+                * width is 8-bit and set the phyif appropriately.
+                */
+               if (phy_get_bus_width(hsotg->phy) == 8)
+                       val = 8;
+       }
+
        hsotg->params.phy_utmi_width = val;
 }
 
index d10a7f8daec34577d50aaf42a18b37c79eb2e285..e98d7812da2db1d4dce76a8bd32a20ba8e96c6ba 100644 (file)
@@ -271,15 +271,6 @@ static int dwc2_lowlevel_hw_init(struct dwc2_hsotg *hsotg)
 
        hsotg->plat = dev_get_platdata(hsotg->dev);
 
-       if (hsotg->phy) {
-               /*
-                * If using the generic PHY framework, check if the PHY bus
-                * width is 8-bit and set the phyif appropriately.
-                */
-               if (phy_get_bus_width(hsotg->phy) == 8)
-                       hsotg->params.phy_utmi_width = 8;
-       }
-
        /* Clock */
        hsotg->clk = devm_clk_get_optional(hsotg->dev, "otg");
        if (IS_ERR(hsotg->clk)) {