All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] phy: core: Fix phy_get() to not return error on link creation failure
@ 2020-02-18 12:14 Kishon Vijay Abraham I
  2020-02-18 12:44 ` Alexandre Torgue
  0 siblings, 1 reply; 2+ messages in thread
From: Kishon Vijay Abraham I @ 2020-02-18 12:14 UTC (permalink / raw)
  To: Kishon Vijay Abraham I; +Cc: Alexandre Torgue, linux-kernel, youling257

commit 987351e1ea77 ("phy: core: Add consumer device link support")
added device link support between PHY consumer and PHY provider.
However certain peripherals (DWC3 ULPI) have cyclic dependency
between the PHY provider and PHY consumer causing the device link
creation to fail.

Instead of erroring out on failure to create device link, only add a
debug print to indicate device link creation failed to get USB
working again in multiple platforms.

Fixes: 987351e1ea77 ("phy: core: Add consumer device link support")
Cc: Alexandre Torgue <alexandre.torgue@st.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
---
 drivers/phy/phy-core.c | 18 ++++++------------
 1 file changed, 6 insertions(+), 12 deletions(-)

diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c
index cd5a6c95dbdc..a27b8d578d7f 100644
--- a/drivers/phy/phy-core.c
+++ b/drivers/phy/phy-core.c
@@ -688,11 +688,9 @@ struct phy *phy_get(struct device *dev, const char *string)
 	get_device(&phy->dev);
 
 	link = device_link_add(dev, &phy->dev, DL_FLAG_STATELESS);
-	if (!link) {
-		dev_err(dev, "failed to create device link to %s\n",
+	if (!link)
+		dev_dbg(dev, "failed to create device link to %s\n",
 			dev_name(phy->dev.parent));
-		return ERR_PTR(-EINVAL);
-	}
 
 	return phy;
 }
@@ -803,11 +801,9 @@ struct phy *devm_of_phy_get(struct device *dev, struct device_node *np,
 	}
 
 	link = device_link_add(dev, &phy->dev, DL_FLAG_STATELESS);
-	if (!link) {
-		dev_err(dev, "failed to create device link to %s\n",
+	if (!link)
+		dev_dbg(dev, "failed to create device link to %s\n",
 			dev_name(phy->dev.parent));
-		return ERR_PTR(-EINVAL);
-	}
 
 	return phy;
 }
@@ -852,11 +848,9 @@ struct phy *devm_of_phy_get_by_index(struct device *dev, struct device_node *np,
 	devres_add(dev, ptr);
 
 	link = device_link_add(dev, &phy->dev, DL_FLAG_STATELESS);
-	if (!link) {
-		dev_err(dev, "failed to create device link to %s\n",
+	if (!link)
+		dev_dbg(dev, "failed to create device link to %s\n",
 			dev_name(phy->dev.parent));
-		return ERR_PTR(-EINVAL);
-	}
 
 	return phy;
 }
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] phy: core: Fix phy_get() to not return error on link creation failure
  2020-02-18 12:14 [PATCH] phy: core: Fix phy_get() to not return error on link creation failure Kishon Vijay Abraham I
@ 2020-02-18 12:44 ` Alexandre Torgue
  0 siblings, 0 replies; 2+ messages in thread
From: Alexandre Torgue @ 2020-02-18 12:44 UTC (permalink / raw)
  To: Kishon Vijay Abraham I; +Cc: linux-kernel, youling257

Hi Kishon

On 2/18/20 1:14 PM, Kishon Vijay Abraham I wrote:
> commit 987351e1ea77 ("phy: core: Add consumer device link support")
> added device link support between PHY consumer and PHY provider.
> However certain peripherals (DWC3 ULPI) have cyclic dependency
> between the PHY provider and PHY consumer causing the device link
> creation to fail.
> 
> Instead of erroring out on failure to create device link, only add a
> debug print to indicate device link creation failed to get USB
> working again in multiple platforms.
> 
> Fixes: 987351e1ea77 ("phy: core: Add consumer device link support")
> Cc: Alexandre Torgue <alexandre.torgue@st.com>
> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
> ---

I was close to send it also :). Thanks for it.

Reviewed-by: Alexandre TORGUE <alexandre.torgue@st.com>

Thanks
Alex

>   drivers/phy/phy-core.c | 18 ++++++------------
>   1 file changed, 6 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c
> index cd5a6c95dbdc..a27b8d578d7f 100644
> --- a/drivers/phy/phy-core.c
> +++ b/drivers/phy/phy-core.c
> @@ -688,11 +688,9 @@ struct phy *phy_get(struct device *dev, const char *string)
>   	get_device(&phy->dev);
>   
>   	link = device_link_add(dev, &phy->dev, DL_FLAG_STATELESS);
> -	if (!link) {
> -		dev_err(dev, "failed to create device link to %s\n",
> +	if (!link)
> +		dev_dbg(dev, "failed to create device link to %s\n",
>   			dev_name(phy->dev.parent));
> -		return ERR_PTR(-EINVAL);
> -	}
>   
>   	return phy;
>   }
> @@ -803,11 +801,9 @@ struct phy *devm_of_phy_get(struct device *dev, struct device_node *np,
>   	}
>   
>   	link = device_link_add(dev, &phy->dev, DL_FLAG_STATELESS);
> -	if (!link) {
> -		dev_err(dev, "failed to create device link to %s\n",
> +	if (!link)
> +		dev_dbg(dev, "failed to create device link to %s\n",
>   			dev_name(phy->dev.parent));
> -		return ERR_PTR(-EINVAL);
> -	}
>   
>   	return phy;
>   }
> @@ -852,11 +848,9 @@ struct phy *devm_of_phy_get_by_index(struct device *dev, struct device_node *np,
>   	devres_add(dev, ptr);
>   
>   	link = device_link_add(dev, &phy->dev, DL_FLAG_STATELESS);
> -	if (!link) {
> -		dev_err(dev, "failed to create device link to %s\n",
> +	if (!link)
> +		dev_dbg(dev, "failed to create device link to %s\n",
>   			dev_name(phy->dev.parent));
> -		return ERR_PTR(-EINVAL);
> -	}
>   
>   	return phy;
>   }
> 

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-02-18 12:45 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-18 12:14 [PATCH] phy: core: Fix phy_get() to not return error on link creation failure Kishon Vijay Abraham I
2020-02-18 12:44 ` Alexandre Torgue

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.