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.va...@mailbox.org>
> ---
> Cc: Mattijs Korpershoek <mkorpersh...@kernel.org>
> Cc: Roger Quadros <rog...@kernel.org>
> Cc: Siddharth Vadapalli <s-vadapa...@ti.com>
> Cc: Tom Rini <tr...@konsulko.com>
> Cc: u-boot@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-vadapa...@ti.com>

>               }
>       }
>       counts->init_count = 0;
>  
> -     return 0;
> +     return ret;
>  }
>  
>  int generic_phy_power_on(struct phy *phy)

Regards,
Siddharth.

Reply via email to