diff mbox series

usb: dwc3-meson-g12a: skip phy on -ENODATA aswell

Message ID 20210505084150.3862010-1-narmstrong@baylibre.com
State Accepted
Commit 60e531fabfaa6b844fa263279f752e868e6d555c
Delegated to: Neil Armstrong
Headers show
Series usb: dwc3-meson-g12a: skip phy on -ENODATA aswell | expand

Commit Message

Neil Armstrong May 5, 2021, 8:41 a.m. UTC
If the PHY isn't specified in the DT, -ENODATA means it should be skipped,
handle it like -ENOENT.

With that, devices without USB3 supported can have USB working (Odroid-HC4).

Fixes: adb049abf7 ("usb: dwc3: Add Meson G12A USB Glue")
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
---
 drivers/usb/dwc3/dwc3-meson-g12a.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Marek Vasut May 5, 2021, 10:06 a.m. UTC | #1
On 5/5/21 10:41 AM, Neil Armstrong wrote:
> If the PHY isn't specified in the DT, -ENODATA means it should be skipped,
> handle it like -ENOENT.
> 
> With that, devices without USB3 supported can have USB working (Odroid-HC4).

Shouldn't you rather specify NOP PHY in the DT ?
Neil Armstrong May 7, 2021, 2:55 p.m. UTC | #2
On 05/05/2021 12:06, Marek Vasut wrote:
> On 5/5/21 10:41 AM, Neil Armstrong wrote:
>> If the PHY isn't specified in the DT, -ENODATA means it should be skipped,
>> handle it like -ENOENT.
>>
>> With that, devices without USB3 supported can have USB working (Odroid-HC4).
> 
> Shouldn't you rather specify NOP PHY in the DT ?

Who NOP I would have no idea if the port is disabled or used.
The PHY control is mixed between the actual PHY driver and the DWC3/DWC2 glue, so the bindings were designed
to make some PHYs phandle optionals if unused.

Neil
Neil Armstrong May 14, 2021, 3:42 p.m. UTC | #3
On 05/05/2021 10:41, Neil Armstrong wrote:
> If the PHY isn't specified in the DT, -ENODATA means it should be skipped,
> handle it like -ENOENT.
> 
> With that, devices without USB3 supported can have USB working (Odroid-HC4).
> 
> Fixes: adb049abf7 ("usb: dwc3: Add Meson G12A USB Glue")
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> ---
>  drivers/usb/dwc3/dwc3-meson-g12a.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/usb/dwc3/dwc3-meson-g12a.c b/drivers/usb/dwc3/dwc3-meson-g12a.c
> index bd8bf227c8..90418ddc1d 100644
> --- a/drivers/usb/dwc3/dwc3-meson-g12a.c
> +++ b/drivers/usb/dwc3/dwc3-meson-g12a.c
> @@ -298,7 +298,7 @@ static int dwc3_meson_g12a_get_phys(struct dwc3_meson_g12a *priv)
>  	for (i = 0 ; i < PHY_COUNT ; ++i) {
>  		ret = generic_phy_get_by_name(priv->dev, phy_names[i],
>  					      &priv->phys[i]);
> -		if (ret == -ENOENT)
> +		if (ret == -ENOENT || ret == -ENODATA)
>  			continue;
>  
>  		if (ret)
> 

Applied to u-boot-amlogic

Neil
diff mbox series

Patch

diff --git a/drivers/usb/dwc3/dwc3-meson-g12a.c b/drivers/usb/dwc3/dwc3-meson-g12a.c
index bd8bf227c8..90418ddc1d 100644
--- a/drivers/usb/dwc3/dwc3-meson-g12a.c
+++ b/drivers/usb/dwc3/dwc3-meson-g12a.c
@@ -298,7 +298,7 @@  static int dwc3_meson_g12a_get_phys(struct dwc3_meson_g12a *priv)
 	for (i = 0 ; i < PHY_COUNT ; ++i) {
 		ret = generic_phy_get_by_name(priv->dev, phy_names[i],
 					      &priv->phys[i]);
-		if (ret == -ENOENT)
+		if (ret == -ENOENT || ret == -ENODATA)
 			continue;
 
 		if (ret)