Re: [PATCH 3/3] net: ksz9477: add port_probe function to config phy

2023-02-18 Thread Ramon Fried
On Wed, Feb 8, 2023 at 1:37 AM Tim Harvey  wrote:
>
> Add a port_probe function to configure the phy. This leads to
> earlier link negotiation so the port is more likely to be ready
> when used.
>
> Signed-off-by: Tim Harvey 
> ---
>  drivers/net/ksz9477.c | 26 +-
>  1 file changed, 13 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/net/ksz9477.c b/drivers/net/ksz9477.c
> index 5b0ef78ab93b..6b59b5fcd265 100644
> --- a/drivers/net/ksz9477.c
> +++ b/drivers/net/ksz9477.c
> @@ -337,11 +337,21 @@ static int ksz_port_setup(struct udevice *dev, int port,
> return 0;
>  }
>
> +static int ksz_port_probe(struct udevice *dev, int port, struct phy_device 
> *phy)
> +{
> +   int supported = PHY_GBIT_FEATURES;
> +
> +   /* configure phy */
> +   phy->supported &= supported;
> +   phy->advertising &= supported;
> +
> +   return phy_config(phy);
> +}
> +
>  static int ksz_port_enable(struct udevice *dev, int port, struct phy_device 
> *phy)
>  {
> struct dsa_pdata *pdata = dev_get_uclass_plat(dev);
> struct ksz_dsa_priv *priv = dev_get_priv(dev);
> -   int supported = PHY_GBIT_FEATURES;
> u8 data8;
> int ret;
>
> @@ -365,23 +375,12 @@ static int ksz_port_enable(struct udevice *dev, int 
> port, struct phy_device *phy
> if (port == pdata->cpu_port)
> return 0;
>
> -   /* configure phy */
> -   phy->supported &= supported;
> -   phy->advertising &= supported;
> -   ret = phy_config(phy);
> -   if (ret)
> -   return ret;
> -
> -   ret = phy_startup(phy);
> -   if (ret)
> -   return ret;
> -
> /* start switch */
> ksz_read8(priv->dev, REG_SW_OPERATION, );
> data8 |= SW_START;
> ksz_write8(priv->dev, REG_SW_OPERATION, data8);
>
> -   return 0;
> +   return phy_startup(phy);
>  }
>
>  static void ksz_port_disable(struct udevice *dev, int port, struct 
> phy_device *phy)
> @@ -410,6 +409,7 @@ static void ksz_port_disable(struct udevice *dev, int 
> port, struct phy_device *p
>  }
>
>  static const struct dsa_ops ksz_dsa_ops = {
> +   .port_probe = ksz_port_probe,
> .port_enable = ksz_port_enable,
> .port_disable = ksz_port_disable,
>  };
> --
> 2.25.1
>
Reviewed-by: Ramon Fried 


[PATCH 3/3] net: ksz9477: add port_probe function to config phy

2023-02-07 Thread Tim Harvey
Add a port_probe function to configure the phy. This leads to
earlier link negotiation so the port is more likely to be ready
when used.

Signed-off-by: Tim Harvey 
---
 drivers/net/ksz9477.c | 26 +-
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/drivers/net/ksz9477.c b/drivers/net/ksz9477.c
index 5b0ef78ab93b..6b59b5fcd265 100644
--- a/drivers/net/ksz9477.c
+++ b/drivers/net/ksz9477.c
@@ -337,11 +337,21 @@ static int ksz_port_setup(struct udevice *dev, int port,
return 0;
 }
 
+static int ksz_port_probe(struct udevice *dev, int port, struct phy_device 
*phy)
+{
+   int supported = PHY_GBIT_FEATURES;
+
+   /* configure phy */
+   phy->supported &= supported;
+   phy->advertising &= supported;
+
+   return phy_config(phy);
+}
+
 static int ksz_port_enable(struct udevice *dev, int port, struct phy_device 
*phy)
 {
struct dsa_pdata *pdata = dev_get_uclass_plat(dev);
struct ksz_dsa_priv *priv = dev_get_priv(dev);
-   int supported = PHY_GBIT_FEATURES;
u8 data8;
int ret;
 
@@ -365,23 +375,12 @@ static int ksz_port_enable(struct udevice *dev, int port, 
struct phy_device *phy
if (port == pdata->cpu_port)
return 0;
 
-   /* configure phy */
-   phy->supported &= supported;
-   phy->advertising &= supported;
-   ret = phy_config(phy);
-   if (ret)
-   return ret;
-
-   ret = phy_startup(phy);
-   if (ret)
-   return ret;
-
/* start switch */
ksz_read8(priv->dev, REG_SW_OPERATION, );
data8 |= SW_START;
ksz_write8(priv->dev, REG_SW_OPERATION, data8);
 
-   return 0;
+   return phy_startup(phy);
 }
 
 static void ksz_port_disable(struct udevice *dev, int port, struct phy_device 
*phy)
@@ -410,6 +409,7 @@ static void ksz_port_disable(struct udevice *dev, int port, 
struct phy_device *p
 }
 
 static const struct dsa_ops ksz_dsa_ops = {
+   .port_probe = ksz_port_probe,
.port_enable = ksz_port_enable,
.port_disable = ksz_port_disable,
 };
-- 
2.25.1