[PATCH 1/2] drivers: net: phy: aquantia: drop XGMII as a valid system interface proto

Use either USXGMII or XFI in aquantia_set_proto and drop XGMII as a valid protocol configuration. The PHY doesn't support it, it's just used as an alias for one of the other two protocols.
Signed-off-by: Florin Chiculita florinlaurentiu.chiculita@nxp.com Signed-off-by: Alex Marginean alexandru.marginean@nxp.com ---
Depends on: https://patchwork.ozlabs.org/project/uboot/list/?series=142879
drivers/net/phy/aquantia.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/drivers/net/phy/aquantia.c b/drivers/net/phy/aquantia.c index 7817d3cb8d..2af09907a1 100644 --- a/drivers/net/phy/aquantia.c +++ b/drivers/net/phy/aquantia.c @@ -303,30 +303,29 @@ struct { AQUANTIA_VND1_GSTART_RATE_1G}, [PHY_INTERFACE_MODE_SGMII_2500] = {0x144, AQUANTIA_VND1_GSYSCFG_2_5G, AQUANTIA_VND1_GSTART_RATE_2_5G}, - [PHY_INTERFACE_MODE_XGMII] = {0x100, AQUANTIA_VND1_GSYSCFG_10G, - AQUANTIA_VND1_GSTART_RATE_10G}, [PHY_INTERFACE_MODE_XFI] = {0x100, AQUANTIA_VND1_GSYSCFG_10G, AQUANTIA_VND1_GSTART_RATE_10G}, [PHY_INTERFACE_MODE_USXGMII] = {0x080, AQUANTIA_VND1_GSYSCFG_10G, AQUANTIA_VND1_GSTART_RATE_10G}, };
-static int aquantia_set_proto(struct phy_device *phydev) +static int aquantia_set_proto(struct phy_device *phydev, + phy_interface_t interface) { int i;
- if (!aquantia_syscfg[phydev->interface].cnt) + if (!aquantia_syscfg[interface].cnt) return 0;
/* set the default rate to enable the SI link */ phy_write(phydev, MDIO_MMD_VEND1, AQUANTIA_VND1_GSTART_RATE, - aquantia_syscfg[phydev->interface].start_rate); + aquantia_syscfg[interface].start_rate);
/* set selected protocol for all relevant line side link speeds */ - for (i = 0; i <= aquantia_syscfg[phydev->interface].cnt; i++) + for (i = 0; i <= aquantia_syscfg[interface].cnt; i++) phy_write(phydev, MDIO_MMD_VEND1, AQUANTIA_VND1_GSYSCFG_BASE + i, - aquantia_syscfg[phydev->interface].syscfg); + aquantia_syscfg[interface].syscfg); return 0; }
@@ -429,6 +428,8 @@ int aquantia_config(struct phy_device *phydev) * on FW config */ if (interface == PHY_INTERFACE_MODE_XGMII) { + debug("use XFI or USXGMII SI protos, XGMII is not valid\n"); + reg_val1 = phy_read(phydev, MDIO_MMD_PHYXS, AQUANTIA_SYSTEM_INTERFACE_SR); if ((reg_val1 & AQUANTIA_SI_IN_USE_MASK) == AQUANTIA_SI_USXGMII) @@ -451,7 +452,7 @@ int aquantia_config(struct phy_device *phydev) mdelay(10);
/* configure protocol based on phydev->interface */ - aquantia_set_proto(phydev); + aquantia_set_proto(phydev, interface); /* apply custom configuration based on DT */ aquantia_dts_config(phydev);

The driver now unconditionally prints some information that's not universally useful. Replace printf with debug.
Signed-off-by: Alex Marginean alexandru.marginean@nxp.com --- drivers/net/phy/aquantia.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/drivers/net/phy/aquantia.c b/drivers/net/phy/aquantia.c index 2af09907a1..aa0deb1f78 100644 --- a/drivers/net/phy/aquantia.c +++ b/drivers/net/phy/aquantia.c @@ -409,9 +409,9 @@ int aquantia_config(struct phy_device *phydev) fault = phy_read(phydev, MDIO_MMD_VEND1, GLOBAL_FAULT);
if (id != 0) - printf("%s running firmware version %X.%X.%X\n", - phydev->dev->name, (id >> 8), id & 0xff, - (rstatus >> 4) & 0xf); + debug("%s running firmware version %X.%X.%X\n", + phydev->dev->name, (id >> 8), id & 0xff, + (rstatus >> 4) & 0xf);
if (fault != 0) printf("%s fault 0x%04x detected\n", phydev->dev->name, fault); @@ -492,12 +492,12 @@ int aquantia_config(struct phy_device *phydev)
if (usx_an) { reg_val1 |= AQUANTIA_USX_AUTONEG_CONTROL_ENA; - printf("%s: system interface USXGMII\n", - phydev->dev->name); + debug("%s: system interface USXGMII\n", + phydev->dev->name); } else { reg_val1 &= ~AQUANTIA_USX_AUTONEG_CONTROL_ENA; - printf("%s: system interface XFI\n", - phydev->dev->name); + debug("%s: system interface XFI\n", + phydev->dev->name); }
phy_write(phydev, MDIO_MMD_PHYXS, @@ -524,11 +524,11 @@ int aquantia_config(struct phy_device *phydev) val = phy_read(phydev, MDIO_MMD_VEND1, AQUANTIA_RESERVED_STATUS); reg_val1 = phy_read(phydev, MDIO_MMD_VEND1, AQUANTIA_FIRMWARE_ID);
- printf("%s: %s Firmware Version %x.%x.%x\n", phydev->dev->name, - phydev->drv->name, - (reg_val1 & AQUANTIA_FIRMWARE_MAJOR_MASK) >> 8, - reg_val1 & AQUANTIA_FIRMWARE_MINOR_MASK, - (val & AQUANTIA_FIRMWARE_BUILD_MASK) >> 4); + debug("%s: %s Firmware Version %x.%x.%x\n", phydev->dev->name, + phydev->drv->name, + (reg_val1 & AQUANTIA_FIRMWARE_MAJOR_MASK) >> 8, + reg_val1 & AQUANTIA_FIRMWARE_MINOR_MASK, + (val & AQUANTIA_FIRMWARE_BUILD_MASK) >> 4);
return 0; }

-----Original Message----- From: U-Boot u-boot-bounces@lists.denx.de On Behalf Of Alex Marginean Sent: Wednesday, December 4, 2019 7:02 PM To: u-boot@lists.denx.de Cc: Joe Hershberger joe.hershberger@ni.com Subject: [PATCH 2/2] drivers: net: phy: aquantia: make it less verbose
The driver now unconditionally prints some information that's not universally useful. Replace printf with debug.
Signed-off-by: Alex Marginean alexandru.marginean@nxp.com
drivers/net/phy/aquantia.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/drivers/net/phy/aquantia.c b/drivers/net/phy/aquantia.c index 2af09907a1..aa0deb1f78 100644 --- a/drivers/net/phy/aquantia.c +++ b/drivers/net/phy/aquantia.c @@ -409,9 +409,9 @@ int aquantia_config(struct phy_device *phydev) fault = phy_read(phydev, MDIO_MMD_VEND1, GLOBAL_FAULT);
if (id != 0)
printf("%s running firmware version %X.%X.%X\n",
phydev->dev->name, (id >> 8), id & 0xff,
(rstatus >> 4) & 0xf);
debug("%s running firmware version %X.%X.%X\n",
phydev->dev->name, (id >> 8), id & 0xff,
(rstatus >> 4) & 0xf);
if (fault != 0) printf("%s fault 0x%04x detected\n", phydev->dev->name,
fault); @@ -492,12 +492,12 @@ int aquantia_config(struct phy_device *phydev)
if (usx_an) { reg_val1 |=
AQUANTIA_USX_AUTONEG_CONTROL_ENA;
printf("%s: system interface USXGMII\n",
phydev->dev->name);
debug("%s: system interface USXGMII\n",
} else { reg_val1 &=phydev->dev->name);
~AQUANTIA_USX_AUTONEG_CONTROL_ENA;
printf("%s: system interface XFI\n",
phydev->dev->name);
debug("%s: system interface XFI\n",
phydev->dev->name);
}
phy_write(phydev, MDIO_MMD_PHYXS,
@@ -524,11 +524,11 @@ int aquantia_config(struct phy_device *phydev) val = phy_read(phydev, MDIO_MMD_VEND1, AQUANTIA_RESERVED_STATUS); reg_val1 = phy_read(phydev, MDIO_MMD_VEND1, AQUANTIA_FIRMWARE_ID);
- printf("%s: %s Firmware Version %x.%x.%x\n", phydev->dev->name,
phydev->drv->name,
(reg_val1 & AQUANTIA_FIRMWARE_MAJOR_MASK) >> 8,
reg_val1 & AQUANTIA_FIRMWARE_MINOR_MASK,
(val & AQUANTIA_FIRMWARE_BUILD_MASK) >> 4);
debug("%s: %s Firmware Version %x.%x.%x\n", phydev->dev->name,
phydev->drv->name,
(reg_val1 & AQUANTIA_FIRMWARE_MAJOR_MASK) >> 8,
reg_val1 & AQUANTIA_FIRMWARE_MINOR_MASK,
(val & AQUANTIA_FIRMWARE_BUILD_MASK) >> 4);
return 0;
}
2.17.1
Reviewed-by: Priyanka Jain priyanka.jain@nxp.com

On Wed, Dec 4, 2019 at 7:42 AM Alex Marginean alexandru.marginean@nxp.com wrote:
The driver now unconditionally prints some information that's not universally useful. Replace printf with debug.
Signed-off-by: Alex Marginean alexandru.marginean@nxp.com
Acked-by: Joe Hershberger joe.hershberger@ni.com

-----Original Message----- From: U-Boot u-boot-bounces@lists.denx.de On Behalf Of Alex Marginean Sent: Wednesday, December 4, 2019 7:02 PM To: u-boot@lists.denx.de Cc: Joe Hershberger joe.hershberger@ni.com Subject: [PATCH 1/2] drivers: net: phy: aquantia: drop XGMII as a valid system interface proto
Use either USXGMII or XFI in aquantia_set_proto and drop XGMII as a valid protocol configuration. The PHY doesn't support it, it's just used as an alias for one of the other two protocols.
Signed-off-by: Florin Chiculita florinlaurentiu.chiculita@nxp.com Signed-off-by: Alex Marginean alexandru.marginean@nxp.com
Depends on: https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpatchw ork.ozlabs.org%2Fproject%2Fuboot%2Flist%2F%3Fseries%3D142879&data =02%7C01%7Cpriyanka.jain%40nxp.com%7Ca188babb8ac44ea01a0f08d778c32 b7a%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C637110651953798 880&sdata=09%2Fd1o844AoHOs4YdedTEK5FznY3FBHqlzBcC82EVZs%3D& amp;reserved=0
drivers/net/phy/aquantia.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/drivers/net/phy/aquantia.c b/drivers/net/phy/aquantia.c index 7817d3cb8d..2af09907a1 100644 --- a/drivers/net/phy/aquantia.c +++ b/drivers/net/phy/aquantia.c @@ -303,30 +303,29 @@ struct {
AQUANTIA_VND1_GSTART_RATE_1G}, [PHY_INTERFACE_MODE_SGMII_2500] = {0x144, AQUANTIA_VND1_GSYSCFG_2_5G,
AQUANTIA_VND1_GSTART_RATE_2_5G},
- [PHY_INTERFACE_MODE_XGMII] = {0x100,
AQUANTIA_VND1_GSYSCFG_10G,
AQUANTIA_VND1_GSTART_RATE_10G}, [PHY_INTERFACE_MODE_XFI] = {0x100, AQUANTIA_VND1_GSYSCFG_10G,
AQUANTIA_VND1_GSTART_RATE_10G}, [PHY_INTERFACE_MODE_USXGMII] = {0x080, AQUANTIA_VND1_GSYSCFG_10G,
AQUANTIA_VND1_GSTART_RATE_10G}, };
-static int aquantia_set_proto(struct phy_device *phydev) +static int aquantia_set_proto(struct phy_device *phydev,
phy_interface_t interface)
{ int i;
- if (!aquantia_syscfg[phydev->interface].cnt)
if (!aquantia_syscfg[interface].cnt) return 0;
/* set the default rate to enable the SI link */ phy_write(phydev, MDIO_MMD_VEND1,
AQUANTIA_VND1_GSTART_RATE,
aquantia_syscfg[phydev->interface].start_rate);
aquantia_syscfg[interface].start_rate);
/* set selected protocol for all relevant line side link speeds */
- for (i = 0; i <= aquantia_syscfg[phydev->interface].cnt; i++)
- for (i = 0; i <= aquantia_syscfg[interface].cnt; i++) phy_write(phydev, MDIO_MMD_VEND1, AQUANTIA_VND1_GSYSCFG_BASE + i,
aquantia_syscfg[phydev->interface].syscfg);
return 0;aquantia_syscfg[interface].syscfg);
}
@@ -429,6 +428,8 @@ int aquantia_config(struct phy_device *phydev) * on FW config */ if (interface == PHY_INTERFACE_MODE_XGMII) {
debug("use XFI or USXGMII SI protos, XGMII is not valid\n");
- reg_val1 = phy_read(phydev, MDIO_MMD_PHYXS, AQUANTIA_SYSTEM_INTERFACE_SR); if ((reg_val1 & AQUANTIA_SI_IN_USE_MASK) ==
AQUANTIA_SI_USXGMII) @@ -451,7 +452,7 @@ int aquantia_config(struct phy_device *phydev) mdelay(10);
/* configure protocol based on phydev->interface */
aquantia_set_proto(phydev);
/* apply custom configuration based on DT */ aquantia_dts_config(phydev);aquantia_set_proto(phydev, interface);
-- 2.17.1
Reviewed-by: Priyanka Jain priyanka.jain@nxp.com

On Wed, Dec 4, 2019 at 8:06 AM Alex Marginean alexandru.marginean@nxp.com wrote:
Use either USXGMII or XFI in aquantia_set_proto and drop XGMII as a valid protocol configuration. The PHY doesn't support it, it's just used as an alias for one of the other two protocols.
Signed-off-by: Florin Chiculita florinlaurentiu.chiculita@nxp.com Signed-off-by: Alex Marginean alexandru.marginean@nxp.com
Acked-by: Joe Hershberger joe.hershberger@ni.com
participants (3)
-
Alex Marginean
-
Joe Hershberger
-
Priyanka Jain