[PATCH 5/9] net: dsa: felix: configure the in-band autoneg property based on OF node info

Ramon Fried rfried.dev at gmail.com
Tue Sep 28 15:34:58 CEST 2021


On Tue, Sep 28, 2021 at 2:48 AM Vladimir Oltean <vladimir.oltean at nxp.com> wrote:
>
> Instead of trying to guess which operating modes need in-band
> negotiation to be active and which ones don't, parse the available
> information from the device tree. That will be correct in the cases we
> can already guess, and more.
>
> Signed-off-by: Vladimir Oltean <vladimir.oltean at nxp.com>
> ---
>  drivers/net/mscc_eswitch/felix_switch.c | 10 ++++------
>  1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/net/mscc_eswitch/felix_switch.c b/drivers/net/mscc_eswitch/felix_switch.c
> index 6aa79784460d..1df7d03fc40c 100644
> --- a/drivers/net/mscc_eswitch/felix_switch.c
> +++ b/drivers/net/mscc_eswitch/felix_switch.c
> @@ -16,6 +16,7 @@
>   */
>
>  #include <dm/device_compat.h>
> +#include <dm/of_extra.h>
>  #include <linux/delay.h>
>  #include <net/dsa.h>
>  #include <asm/io.h>
> @@ -210,17 +211,14 @@ static int felix_init_sxgmii(struct mii_dev *imdio, int pidx)
>  static void felix_start_pcs(struct udevice *dev, int port,
>                             struct phy_device *phy, struct mii_dev *imdio)
>  {
> -       bool autoneg = true;
> -
> -       if (phy->phy_id == PHY_FIXED_ID ||
> -           phy->interface == PHY_INTERFACE_MODE_SGMII_2500)
> -               autoneg = false;
> +       ofnode node = dsa_port_get_ofnode(dev, port);
> +       bool inband_an = ofnode_eth_uses_inband_aneg(node);
>
>         switch (phy->interface) {
>         case PHY_INTERFACE_MODE_SGMII:
>         case PHY_INTERFACE_MODE_SGMII_2500:
>         case PHY_INTERFACE_MODE_QSGMII:
> -               felix_init_sgmii(imdio, port, autoneg);
> +               felix_init_sgmii(imdio, port, inband_an);
>                 break;
>         case PHY_INTERFACE_MODE_XGMII:
>         case PHY_INTERFACE_MODE_XFI:
> --
> 2.25.1
>
Reviewed-by: Ramon Fried <rfried.dev at gmail.com>


More information about the U-Boot mailing list