On 25/03/2026 02:09, Marek Vasut wrote:
> At the very early stage when PHY ID is being auto-detected, the
> PHY device is not yet instantiated and rswitch_etha .phydev is
> still NULL. Add missing check for this condition and perform C22
> fallback access in this PHY ID auto-detection case.
> 
> Signed-off-by: Marek Vasut <[email protected]>
> ---
> Cc: Andrew Goodbody <[email protected]>
> Cc: Hai Pham <[email protected]>
> Cc: Jerome Forissier <[email protected]>
> Cc: Nobuhiro Iwamatsu <[email protected]>
> Cc: Phong Hoang <[email protected]>
> Cc: Tam Nguyen <[email protected]>
> Cc: Thanh Quan <[email protected]>
> Cc: Tom Rini <[email protected]>
> Cc: [email protected]
> ---
>  drivers/net/rswitch.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

Added to net-next, thanks!

-- 
Jerome

> diff --git a/drivers/net/rswitch.c b/drivers/net/rswitch.c
> index 801c22bbdc7..c51908ed8f3 100644
> --- a/drivers/net/rswitch.c
> +++ b/drivers/net/rswitch.c
> @@ -482,7 +482,7 @@ static int rswitch_mii_read_c45(struct mii_dev *miidev, 
> int phyad, int devad, in
>       /* Access PHY register */
>       if (devad != MDIO_DEVAD_NONE)   /* Definitelly C45 */
>               val = rswitch_mii_access_c45(etha_mii, true, phyad, devad, 
> regad, 0);
> -     else if (etha->phydev->is_c45)  /* C22 access to C45 PHY */
> +     else if (etha->phydev && etha->phydev->is_c45)  /* C22 access to C45 
> PHY */
>               val = rswitch_mii_access_c45(etha_mii, true, phyad, 1, regad, 
> 0);
>       else
>               val = rswitch_mii_access_c22(etha_mii, true, phyad, regad, 0);
> @@ -516,7 +516,7 @@ int rswitch_mii_write_c45(struct mii_dev *miidev, int 
> phyad, int devad, int rega
>       /* Access PHY register */
>       if (devad != MDIO_DEVAD_NONE)   /* Definitelly C45 */
>               rswitch_mii_access_c45(etha_mii, false, phyad, devad, regad, 
> data);
> -     else if (etha->phydev->is_c45)  /* C22 access to C45 PHY */
> +     else if (etha->phydev && etha->phydev->is_c45)  /* C22 access to C45 
> PHY */
>               rswitch_mii_access_c45(etha_mii, false, phyad, 1, regad, data);
>       else
>               rswitch_mii_access_c22(etha_mii, false, phyad, regad, data);

Reply via email to