Skip to contentSkip to conversation

usb: host: dwc3: fix phys init

PATCH New Neil Armstrong 4 participants 4 messages Apr 25, 2018 – Apr 26, 2018

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 usb: host: dwc3: fix phys init

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")
---
 drivers/usb/host/xhci-dwc3.c | 23 +++++++++++++----------
 1 file changed, 13 insertions(+), 10 deletions(-)
drivers/usb/host/xhci-dwc3.c +13 -10
index c100735..adfa4a7 100644
@@ -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;
 
Signature · 1 line
2.7.4
#1 lore raw

PATCH 1/1 usb: host: dwc3: fix phys init

2018-04-25 18:39 GMT+09:00 Neil Armstrong <[email protected]>:

Quoted 6 lines

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.

Quoted 8 lines

This patch should fix the DWC3 support on the UniPhier SoC family.

Fixes 7c839ea70c49 ("usb: host: dwc3: Add support for multiple PHYs")
---
 drivers/usb/host/xhci-dwc3.c | 23 +++++++++++++----------
 1 file changed, 13 insertions(+), 10 deletions(-)
Signature · 2 lines
Best Regards
Masahiro Yamada
#2 lore raw

PATCH 1/1 usb: host: dwc3: fix phys init

In reply to Neil Armstrong
Quoted 6 lines · Neil Armstrong

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.

Quoted 9 lines

This patch should fix the DWC3 support on the UniPhier SoC family.

Fixes 7c839ea70c49 ("usb: host: dwc3: Add support for multiple PHYs")
---
 drivers/usb/host/xhci-dwc3.c | 23 +++++++++++++----------
 1 file changed, 13 insertions(+), 10 deletions(-)
Applied
#3 lore raw

PATCH 1/1 usb: host: dwc3: fix phys init

Quoted 17 lines · Bin Meng
Quoted 6 lines · Neil Armstrong

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.

Quoted 9 lines

This patch should fix the DWC3 support on the UniPhier SoC family.

Fixes 7c839ea70c49 ("usb: host: dwc3: Add support for multiple PHYs")
---
 drivers/usb/host/xhci-dwc3.c | 23 +++++++++++++----------
 1 file changed, 13 insertions(+), 10 deletions(-)
Quoted 2 lines

Applied, thanks

Signature · 2 lines
Best regards,
Marek Vasut