[PATCH] phy: Reset init count on phy exit failure
Siddharth Vadapalli
s-vadapalli at ti.com
Sun Sep 7 09:18:07 CEST 2025
On Sun, Sep 07, 2025 at 01:00:44AM +0200, Marek Vasut wrote:
Hello Marek,
> In case the PHY exit callback reports failure, reset init_count to 0 anyway,
> so the next attempt at PHY initialization might try to reinitialize the PHY
> and restore it to normal operation.
>
> Signed-off-by: Marek Vasut <marek.vasut at mailbox.org>
> ---
> Cc: Mattijs Korpershoek <mkorpershoek at kernel.org>
> Cc: Roger Quadros <rogerq at kernel.org>
> Cc: Siddharth Vadapalli <s-vadapalli at ti.com>
> Cc: Tom Rini <trini at konsulko.com>
> Cc: u-boot at lists.denx.de
> ---
> drivers/phy/phy-uclass.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/phy/phy-uclass.c b/drivers/phy/phy-uclass.c
> index 714be123856..f8d4fb3b41b 100644
> --- a/drivers/phy/phy-uclass.c
> +++ b/drivers/phy/phy-uclass.c
> @@ -274,7 +274,7 @@ int generic_phy_exit(struct phy *phy)
> {
> struct phy_counts *counts;
> struct phy_ops const *ops;
> - int ret;
> + int ret = 0;
>
> if (!generic_phy_valid(phy))
> return 0;
> @@ -292,12 +292,11 @@ int generic_phy_exit(struct phy *phy)
> if (ret) {
> dev_err(phy->dev, "PHY: Failed to exit %s: %d.\n",
> phy->dev->name, ret);
> - return ret;
I assume that a generic_phy_reset() may be required for generic_phy_init()
to succeed after generic_phy_exit() has failed. While I understand that
the current patch allows retrying, this may not be complete in allowing
users to make use of the change being brought about by this patch.
Nevertheless, the change being proposed in this patch looks good to me.
Reviewed-by: Siddharth Vadapalli <s-vadapalli at ti.com>
> }
> }
> counts->init_count = 0;
>
> - return 0;
> + return ret;
> }
>
> int generic_phy_power_on(struct phy *phy)
Regards,
Siddharth.
More information about the U-Boot
mailing list