Message ID | 20170127104705.25162-1-zajec5@gmail.com |
---|---|
State | Superseded, archived |
Delegated to: | David Miller |
Headers | show |
Hi Rafał, [auto build test WARNING on net-next/master] [also build test WARNING on v4.10-rc5 next-20170125] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Rafa-Mi-ecki/net-phy-broadcom-add-support-for-BCM54210E/20170127-190002 config: x86_64-randconfig-s5-01271950 (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All warnings (new ones prefixed by >>): In file included from include/linux/phy.h:19:0, from drivers/net/phy/bcm-phy-lib.h:17, from drivers/net/phy/broadcom.c:17: drivers/net/phy/broadcom.c: In function 'bcm54xx_config_init': drivers/net/phy/broadcom.c:249:32: error: 'PHY_ID_BCM54210E' undeclared (first use in this function) if (BRCM_PHY_MODEL(phydev) == PHY_ID_BCM54210E) { ^ include/linux/compiler.h:149:30: note: in definition of macro '__trace_if' if (__builtin_constant_p(!!(cond)) ? !!(cond) : \ ^~~~ >> drivers/net/phy/broadcom.c:249:2: note: in expansion of macro 'if' if (BRCM_PHY_MODEL(phydev) == PHY_ID_BCM54210E) { ^~ drivers/net/phy/broadcom.c:249:32: note: each undeclared identifier is reported only once for each function it appears in if (BRCM_PHY_MODEL(phydev) == PHY_ID_BCM54210E) { ^ include/linux/compiler.h:149:30: note: in definition of macro '__trace_if' if (__builtin_constant_p(!!(cond)) ? !!(cond) : \ ^~~~ >> drivers/net/phy/broadcom.c:249:2: note: in expansion of macro 'if' if (BRCM_PHY_MODEL(phydev) == PHY_ID_BCM54210E) { ^~ drivers/net/phy/broadcom.c: At top level: drivers/net/phy/broadcom.c:565:13: error: 'PHY_ID_BCM54210E' undeclared here (not in a function) .phy_id = PHY_ID_BCM54210E, ^~~~~~~~~~~~~~~~ drivers/net/phy/broadcom.c:714:4: error: initializer element is not constant { PHY_ID_BCM54210E, 0xfffffff0 }, ^~~~~~~~~~~~~~~~ drivers/net/phy/broadcom.c:714:4: note: (near initialization for 'broadcom_tbl[2].phy_id') vim +/if +249 drivers/net/phy/broadcom.c 233 MII_BCM54XX_INT_SPEED | 234 MII_BCM54XX_INT_LINK); 235 err = phy_write(phydev, MII_BCM54XX_IMR, reg); 236 if (err < 0) 237 return err; 238 239 if ((BRCM_PHY_MODEL(phydev) == PHY_ID_BCM50610 || 240 BRCM_PHY_MODEL(phydev) == PHY_ID_BCM50610M) && 241 (phydev->dev_flags & PHY_BRCM_CLEAR_RGMII_MODE)) 242 bcm_phy_write_shadow(phydev, BCM54XX_SHD_RGMII_MODE, 0); 243 244 if ((phydev->dev_flags & PHY_BRCM_RX_REFCLK_UNUSED) || 245 (phydev->dev_flags & PHY_BRCM_DIS_TXCRXC_NOENRGY) || 246 (phydev->dev_flags & PHY_BRCM_AUTO_PWRDWN_ENABLE)) 247 bcm54xx_adjust_rxrefclk(phydev); 248 > 249 if (BRCM_PHY_MODEL(phydev) == PHY_ID_BCM54210E) { 250 err = bcm54210e_config_init(phydev); 251 if (err) 252 return err; 253 } else if (BRCM_PHY_MODEL(phydev) == PHY_ID_BCM54810) { 254 err = bcm54810_config(phydev); 255 if (err) 256 return err; 257 } --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Hi Rafał, [auto build test ERROR on net-next/master] [also build test ERROR on v4.10-rc5 next-20170125] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Rafa-Mi-ecki/net-phy-broadcom-add-support-for-BCM54210E/20170127-190002 config: x86_64-lkp (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All errors (new ones prefixed by >>): drivers/net/phy/broadcom.c: In function 'bcm54xx_config_init': >> drivers/net/phy/broadcom.c:249:32: error: 'PHY_ID_BCM54210E' undeclared (first use in this function) if (BRCM_PHY_MODEL(phydev) == PHY_ID_BCM54210E) { ^~~~~~~~~~~~~~~~ drivers/net/phy/broadcom.c:249:32: note: each undeclared identifier is reported only once for each function it appears in drivers/net/phy/broadcom.c: At top level: >> drivers/net/phy/broadcom.c:565:13: error: 'PHY_ID_BCM54210E' undeclared here (not in a function) .phy_id = PHY_ID_BCM54210E, ^~~~~~~~~~~~~~~~ >> drivers/net/phy/broadcom.c:714:4: error: initializer element is not constant { PHY_ID_BCM54210E, 0xfffffff0 }, ^~~~~~~~~~~~~~~~ drivers/net/phy/broadcom.c:714:4: note: (near initialization for 'broadcom_tbl[2].phy_id') vim +/PHY_ID_BCM54210E +249 drivers/net/phy/broadcom.c 243 244 if ((phydev->dev_flags & PHY_BRCM_RX_REFCLK_UNUSED) || 245 (phydev->dev_flags & PHY_BRCM_DIS_TXCRXC_NOENRGY) || 246 (phydev->dev_flags & PHY_BRCM_AUTO_PWRDWN_ENABLE)) 247 bcm54xx_adjust_rxrefclk(phydev); 248 > 249 if (BRCM_PHY_MODEL(phydev) == PHY_ID_BCM54210E) { 250 err = bcm54210e_config_init(phydev); 251 if (err) 252 return err; --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
diff --git a/drivers/net/phy/broadcom.c b/drivers/net/phy/broadcom.c index 97d1c057c0a1..794b9ec81ba5 100644 --- a/drivers/net/phy/broadcom.c +++ b/drivers/net/phy/broadcom.c @@ -30,6 +30,22 @@ MODULE_DESCRIPTION("Broadcom PHY driver"); MODULE_AUTHOR("Maciej W. Rozycki"); MODULE_LICENSE("GPL"); +static int bcm54210e_config_init(struct phy_device *phydev) +{ + int val; + + val = bcm54xx_auxctl_read(phydev, MII_BCM54XX_AUXCTL_SHDWSEL_MISC); + val &= ~MII_BCM54XX_AUXCTL_SHDWSEL_MISC_RGMII_SKEW_EN; + val |= MII_BCM54XX_AUXCTL_MISC_WREN; + bcm54xx_auxctl_write(phydev, MII_BCM54XX_AUXCTL_SHDWSEL_MISC, val); + + val = bcm_phy_read_shadow(phydev, BCM54810_SHD_CLK_CTL); + val &= ~BCM54810_SHD_CLK_CTL_GTXCLK_EN; + bcm_phy_write_shadow(phydev, BCM54810_SHD_CLK_CTL, val); + + return 0; +} + static int bcm54810_config(struct phy_device *phydev) { int rc, val; @@ -230,7 +246,11 @@ static int bcm54xx_config_init(struct phy_device *phydev) (phydev->dev_flags & PHY_BRCM_AUTO_PWRDWN_ENABLE)) bcm54xx_adjust_rxrefclk(phydev); - if (BRCM_PHY_MODEL(phydev) == PHY_ID_BCM54810) { + if (BRCM_PHY_MODEL(phydev) == PHY_ID_BCM54210E) { + err = bcm54210e_config_init(phydev); + if (err) + return err; + } else if (BRCM_PHY_MODEL(phydev) == PHY_ID_BCM54810) { err = bcm54810_config(phydev); if (err) return err; @@ -542,6 +562,17 @@ static struct phy_driver broadcom_drivers[] = { .ack_interrupt = bcm_phy_ack_intr, .config_intr = bcm_phy_config_intr, }, { + .phy_id = PHY_ID_BCM54210E, + .phy_id_mask = 0xfffffff0, + .name = "Broadcom BCM54210E", + .features = PHY_GBIT_FEATURES, + .flags = PHY_HAS_MAGICANEG | PHY_HAS_INTERRUPT, + .config_init = bcm54xx_config_init, + .config_aneg = genphy_config_aneg, + .read_status = genphy_read_status, + .ack_interrupt = bcm_phy_ack_intr, + .config_intr = bcm_phy_config_intr, +}, { .phy_id = PHY_ID_BCM5461, .phy_id_mask = 0xfffffff0, .name = "Broadcom BCM5461", @@ -680,6 +711,7 @@ module_phy_driver(broadcom_drivers); static struct mdio_device_id __maybe_unused broadcom_tbl[] = { { PHY_ID_BCM5411, 0xfffffff0 }, { PHY_ID_BCM5421, 0xfffffff0 }, + { PHY_ID_BCM54210E, 0xfffffff0 }, { PHY_ID_BCM5461, 0xfffffff0 }, { PHY_ID_BCM54612E, 0xfffffff0 }, { PHY_ID_BCM54616S, 0xfffffff0 },