Message ID | 1524649148-27897-1-git-send-email-narmstrong@baylibre.com |
---|---|
State | Accepted |
Commit | 003659bda94a1444ebdfefea3f0928f8e90f9d8f |
Delegated to: | Marek Vasut |
Headers | show |
Series | [U-Boot] usb: host: dwc3: fix phys init | expand |
2018-04-25 18:39 GMT+09:00 Neil Armstrong <narmstrong@baylibre.com>: > When no PHYs are declared in the dwc3 node, the phy init fails. > This patch checks if the "phys" property is presend and reports > the error returned by dev_count_phandle_with_args(). > > This patchs also fixes the styles issues added in last commit. > > This patch should fix the DWC3 support on the UniPhier SoC family. > > Fixes: 7c839ea70c49 ("usb: host: dwc3: Add support for multiple PHYs") > Reported-by: Masahiro Yamada <yamada.masahiro@socionext.com> > Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> > --- > drivers/usb/host/xhci-dwc3.c | 23 +++++++++++++---------- > 1 file changed, 13 insertions(+), 10 deletions(-) Tested-by: Masahiro Yamada <yamada.masahiro@socionext.com>
On Wed, Apr 25, 2018 at 5:39 PM, Neil Armstrong <narmstrong@baylibre.com> wrote: > When no PHYs are declared in the dwc3 node, the phy init fails. > This patch checks if the "phys" property is presend and reports > the error returned by dev_count_phandle_with_args(). > > This patchs also fixes the styles issues added in last commit. > > This patch should fix the DWC3 support on the UniPhier SoC family. > > Fixes: 7c839ea70c49 ("usb: host: dwc3: Add support for multiple PHYs") > Reported-by: Masahiro Yamada <yamada.masahiro@socionext.com> > Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> > --- > drivers/usb/host/xhci-dwc3.c | 23 +++++++++++++---------- > 1 file changed, 13 insertions(+), 10 deletions(-) > Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
On 04/26/2018 04:00 AM, Bin Meng wrote: > On Wed, Apr 25, 2018 at 5:39 PM, Neil Armstrong <narmstrong@baylibre.com> wrote: >> When no PHYs are declared in the dwc3 node, the phy init fails. >> This patch checks if the "phys" property is presend and reports >> the error returned by dev_count_phandle_with_args(). >> >> This patchs also fixes the styles issues added in last commit. >> >> This patch should fix the DWC3 support on the UniPhier SoC family. >> >> Fixes: 7c839ea70c49 ("usb: host: dwc3: Add support for multiple PHYs") >> Reported-by: Masahiro Yamada <yamada.masahiro@socionext.com> >> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> >> --- >> drivers/usb/host/xhci-dwc3.c | 23 +++++++++++++---------- >> 1 file changed, 13 insertions(+), 10 deletions(-) >> > > Reviewed-by: Bin Meng <bmeng.cn@gmail.com> > Applied, thanks
diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c index c100735..adfa4a7 100644 --- a/drivers/usb/host/xhci-dwc3.c +++ b/drivers/usb/host/xhci-dwc3.c @@ -113,16 +113,21 @@ void dwc3_set_fladj(struct dwc3 *dwc3_reg, u32 val) } #ifdef CONFIG_DM_USB -static int xhci_dwc3_setup_phy(struct udevice *dev, int count) +static int xhci_dwc3_setup_phy(struct udevice *dev) { struct xhci_dwc3_platdata *plat = dev_get_platdata(dev); - int i, ret; + int i, ret, count; - if (!count) + /* Return if no phy declared */ + if (!dev_read_prop(dev, "phys", NULL)) return 0; + count = dev_count_phandle_with_args(dev, "phys", "#phy-cells"); + if (count <= 0) + return count; + plat->usb_phys = devm_kcalloc(dev, count, sizeof(struct phy), - GFP_KERNEL); + GFP_KERNEL); if (!plat->usb_phys) return -ENOMEM; @@ -136,7 +141,7 @@ static int xhci_dwc3_setup_phy(struct udevice *dev, int count) ++plat->num_phys; } - + for (i = 0; i < plat->num_phys; i++) { ret = generic_phy_init(&plat->usb_phys[i]); if (ret) { @@ -145,7 +150,7 @@ static int xhci_dwc3_setup_phy(struct udevice *dev, int count) goto phys_init_err; } } - + for (i = 0; i < plat->num_phys; i++) { ret = generic_phy_power_on(&plat->usb_phys[i]); if (ret) { @@ -157,7 +162,6 @@ static int xhci_dwc3_setup_phy(struct udevice *dev, int count) return 0; - phys_poweron_err: for (; i >= 0; i--) generic_phy_power_off(&plat->usb_phys[i]); @@ -187,7 +191,7 @@ static int xhci_dwc3_shutdown_phy(struct udevice *dev) ret |= generic_phy_exit(&plat->usb_phys[i]); if (ret) { pr_err("Can't shutdown USB PHY%d for %s\n", - i, dev->name); + i, dev->name); } } @@ -206,8 +210,7 @@ static int xhci_dwc3_probe(struct udevice *dev) hcor = (struct xhci_hcor *)((uintptr_t)hccr + HC_LENGTH(xhci_readl(&(hccr)->cr_capbase))); - ret = xhci_dwc3_setup_phy(dev, dev_count_phandle_with_args( - dev, "phys", "#phy-cells")); + ret = xhci_dwc3_setup_phy(dev); if (ret) return ret;
When no PHYs are declared in the dwc3 node, the phy init fails. This patch checks if the "phys" property is presend and reports the error returned by dev_count_phandle_with_args(). This patchs also fixes the styles issues added in last commit. This patch should fix the DWC3 support on the UniPhier SoC family. Fixes: 7c839ea70c49 ("usb: host: dwc3: Add support for multiple PHYs") Reported-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> --- drivers/usb/host/xhci-dwc3.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-)