[PATCH 3/3] net: ksz9477: add port_probe function to config phy
Ramon Fried
rfried.dev at gmail.com
Sat Feb 18 21:05:26 CET 2023
On Wed, Feb 8, 2023 at 1:37 AM Tim Harvey <tharvey at gateworks.com> 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 <tharvey at gateworks.com>
> ---
> 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);
> 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 <rfried.dev at gmail.com>
More information about the U-Boot
mailing list