Message ID | 20250207223634.600218-13-maxime.chevallier@bootlin.com |
---|---|
State | New |
Headers | show |
Series | Introduce an ethernet port representation | expand |
Hi Maxime, kernel test robot noticed the following build errors: [auto build test ERROR on net-next/main] url: https://github.com/intel-lab-lkp/linux/commits/Maxime-Chevallier/net-ethtool-Introduce-ETHTOOL_LINK_MEDIUM_-values/20250208-064223 base: net-next/main patch link: https://lore.kernel.org/r/20250207223634.600218-13-maxime.chevallier%40bootlin.com patch subject: [PATCH net-next 12/13] net: phy: dp83822: Add SFP support through the phy_port interface config: i386-buildonly-randconfig-004-20250208 (https://download.01.org/0day-ci/archive/20250209/202502090056.jTCOvIPk-lkp@intel.com/config) compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250209/202502090056.jTCOvIPk-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202502090056.jTCOvIPk-lkp@intel.com/ All errors (new ones prefixed by >>): >> drivers/net/phy/dp83822.c:916:43: error: use of undeclared identifier 'interfaces' 916 | __set_bit(PHY_INTERFACE_MODE_100BASEFX, interfaces); | ^ >> drivers/net/phy/dp83822.c:916:13: error: use of undeclared identifier 'PHY_INTERFACE_MODE_100BASEFX'; did you mean 'PHY_INTERFACE_MODE_100BASEX'? 916 | __set_bit(PHY_INTERFACE_MODE_100BASEFX, interfaces); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ | PHY_INTERFACE_MODE_100BASEX include/linux/bitops.h:54:48: note: expanded from macro '__set_bit' 54 | #define __set_bit(nr, addr) bitop(___set_bit, nr, addr) | ^ include/linux/bitops.h:44:25: note: expanded from macro 'bitop' 44 | ((__builtin_constant_p(nr) && \ | ^ include/linux/phy.h:140:2: note: 'PHY_INTERFACE_MODE_100BASEX' declared here 140 | PHY_INTERFACE_MODE_100BASEX, | ^ >> drivers/net/phy/dp83822.c:916:43: error: use of undeclared identifier 'interfaces' 916 | __set_bit(PHY_INTERFACE_MODE_100BASEFX, interfaces); | ^ >> drivers/net/phy/dp83822.c:916:43: error: use of undeclared identifier 'interfaces' drivers/net/phy/dp83822.c:916:13: error: use of undeclared identifier 'PHY_INTERFACE_MODE_100BASEFX' 916 | __set_bit(PHY_INTERFACE_MODE_100BASEFX, interfaces); | ^ >> drivers/net/phy/dp83822.c:916:43: error: use of undeclared identifier 'interfaces' 916 | __set_bit(PHY_INTERFACE_MODE_100BASEFX, interfaces); | ^ drivers/net/phy/dp83822.c:916:13: error: use of undeclared identifier 'PHY_INTERFACE_MODE_100BASEFX' 916 | __set_bit(PHY_INTERFACE_MODE_100BASEFX, interfaces); | ^ >> drivers/net/phy/dp83822.c:916:43: error: use of undeclared identifier 'interfaces' 916 | __set_bit(PHY_INTERFACE_MODE_100BASEFX, interfaces); | ^ 8 errors generated. vim +/interfaces +916 drivers/net/phy/dp83822.c 899 900 if (dp83822->fx_enabled) { 901 port->lanes = 1; 902 port->mediums = BIT(ETHTOOL_LINK_MEDIUM_BASEF) | 903 BIT(ETHTOOL_LINK_MEDIUM_BASEX); 904 } else { 905 /* This PHY can only to 100BaseTX max, so on 2 lanes */ 906 port->lanes = 2; 907 port->mediums = BIT(ETHTOOL_LINK_MEDIUM_BASET); 908 } 909 } 910 911 /* If attached from SFP, is_serdes is set, but not the mediums. */ 912 if (port->is_serdes) 913 dp83822->fx_enabled = true; 914 915 if (dp83822->fx_enabled) > 916 __set_bit(PHY_INTERFACE_MODE_100BASEFX, interfaces); 917 918 return 0; 919 } 920
diff --git a/drivers/net/phy/dp83822.c b/drivers/net/phy/dp83822.c index af535b0a3914..873ba467cd57 100644 --- a/drivers/net/phy/dp83822.c +++ b/drivers/net/phy/dp83822.c @@ -908,6 +908,13 @@ static int dp83822_attach_port(struct phy_device *phydev, struct phy_port *port) } } + /* If attached from SFP, is_serdes is set, but not the mediums. */ + if (port->is_serdes) + dp83822->fx_enabled = true; + + if (dp83822->fx_enabled) + __set_bit(PHY_INTERFACE_MODE_100BASEFX, interfaces); + return 0; }
The DP83822 can support 100BaseFX. This mode was only accessible through custom DT properties, but there also exist SFP modules that support these modes. As this only requires setting the relevant supported interface in the driver, expose the port capability with the new phy_port API, allowing SFP support. Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com> --- drivers/net/phy/dp83822.c | 7 +++++++ 1 file changed, 7 insertions(+)