BCC: lkp@intel.com CC: oe-kbuild-all@lists.linux.dev In-Reply-To: <20221028092621.1061-1-Frank.Sae@motor-comm.com> References: <20221028092621.1061-1-Frank.Sae@motor-comm.com> TO: Frank TO: Peter Geis TO: Andrew Lunn TO: Heiner Kallweit TO: Russell King TO: "David S . Miller" TO: Eric Dumazet TO: Jakub Kicinski TO: Paolo Abeni CC: yinghong.zhang@motor-comm.com CC: fei.zhang@motor-comm.com CC: hua.sun@motor-comm.com CC: netdev@vger.kernel.org CC: linux-kernel@vger.kernel.org CC: Frank Hi Frank, I love your patch! Perhaps something to improve: [auto build test WARNING on net-next/master] url: https://github.com/intel-lab-lkp/linux/commits/Frank/net-phy-Add-driver-for-Motorcomm-yt8521-gigabit-ethernet-phy/20221028-172904 patch link: https://lore.kernel.org/r/20221028092621.1061-1-Frank.Sae%40motor-comm.com patch subject: [PATCH net-next v8.2] net: phy: Add driver for Motorcomm yt8521 gigabit ethernet phy :::::: branch date: 3 days ago :::::: commit date: 3 days ago config: i386-randconfig-c001 compiler: gcc-11 (Debian 11.3.0-8) 11.3.0 If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot | Reported-by: Julia Lawall cocci warnings: (new ones prefixed by >>) >> drivers/net/phy/motorcomm.c:1122:8-35: duplicated argument to & or | drivers/net/phy/motorcomm.c:1126:8-35: duplicated argument to & or | drivers/net/phy/motorcomm.c:1130:8-34: duplicated argument to & or | drivers/net/phy/motorcomm.c:1134:8-34: duplicated argument to & or | vim +1122 drivers/net/phy/motorcomm.c 65cdbcf5624258 Frank 2022-10-28 1103 65cdbcf5624258 Frank 2022-10-28 1104 /** 65cdbcf5624258 Frank 2022-10-28 1105 * yt8521_config_init() - called to initialize the PHY 65cdbcf5624258 Frank 2022-10-28 1106 * @phydev: a pointer to a &struct phy_device 65cdbcf5624258 Frank 2022-10-28 1107 * 65cdbcf5624258 Frank 2022-10-28 1108 * returns 0 or negative errno code 65cdbcf5624258 Frank 2022-10-28 1109 */ 65cdbcf5624258 Frank 2022-10-28 1110 static int yt8521_config_init(struct phy_device *phydev) 65cdbcf5624258 Frank 2022-10-28 1111 { 65cdbcf5624258 Frank 2022-10-28 1112 int old_page; 65cdbcf5624258 Frank 2022-10-28 1113 int ret = 0; 65cdbcf5624258 Frank 2022-10-28 1114 u16 val; 65cdbcf5624258 Frank 2022-10-28 1115 65cdbcf5624258 Frank 2022-10-28 1116 old_page = phy_select_page(phydev, YT8521_RSSR_UTP_SPACE); 65cdbcf5624258 Frank 2022-10-28 1117 if (old_page < 0) 65cdbcf5624258 Frank 2022-10-28 1118 goto err_restore_page; 65cdbcf5624258 Frank 2022-10-28 1119 65cdbcf5624258 Frank 2022-10-28 1120 switch (phydev->interface) { 65cdbcf5624258 Frank 2022-10-28 1121 case PHY_INTERFACE_MODE_RGMII: 65cdbcf5624258 Frank 2022-10-28 @1122 val = YT8521_RC1R_GE_TX_DELAY_DIS | YT8521_RC1R_GE_TX_DELAY_DIS; 65cdbcf5624258 Frank 2022-10-28 1123 val |= YT8521_RC1R_RX_DELAY_DIS; 65cdbcf5624258 Frank 2022-10-28 1124 break; 65cdbcf5624258 Frank 2022-10-28 1125 case PHY_INTERFACE_MODE_RGMII_RXID: 65cdbcf5624258 Frank 2022-10-28 1126 val = YT8521_RC1R_GE_TX_DELAY_DIS | YT8521_RC1R_GE_TX_DELAY_DIS; 65cdbcf5624258 Frank 2022-10-28 1127 val |= YT8521_RC1R_RX_DELAY_EN; 65cdbcf5624258 Frank 2022-10-28 1128 break; 65cdbcf5624258 Frank 2022-10-28 1129 case PHY_INTERFACE_MODE_RGMII_TXID: 65cdbcf5624258 Frank 2022-10-28 1130 val = YT8521_RC1R_GE_TX_DELAY_EN | YT8521_RC1R_GE_TX_DELAY_EN; 65cdbcf5624258 Frank 2022-10-28 1131 val |= YT8521_RC1R_RX_DELAY_DIS; 65cdbcf5624258 Frank 2022-10-28 1132 break; 65cdbcf5624258 Frank 2022-10-28 1133 case PHY_INTERFACE_MODE_RGMII_ID: 65cdbcf5624258 Frank 2022-10-28 1134 val = YT8521_RC1R_GE_TX_DELAY_EN | YT8521_RC1R_GE_TX_DELAY_EN; 65cdbcf5624258 Frank 2022-10-28 1135 val |= YT8521_RC1R_RX_DELAY_EN; 65cdbcf5624258 Frank 2022-10-28 1136 break; 65cdbcf5624258 Frank 2022-10-28 1137 case PHY_INTERFACE_MODE_SGMII: 65cdbcf5624258 Frank 2022-10-28 1138 break; 65cdbcf5624258 Frank 2022-10-28 1139 default: /* do not support other modes */ 65cdbcf5624258 Frank 2022-10-28 1140 ret = -EOPNOTSUPP; 65cdbcf5624258 Frank 2022-10-28 1141 goto err_restore_page; 65cdbcf5624258 Frank 2022-10-28 1142 } 65cdbcf5624258 Frank 2022-10-28 1143 65cdbcf5624258 Frank 2022-10-28 1144 /* set rgmii delay mode */ 65cdbcf5624258 Frank 2022-10-28 1145 if (phydev->interface != PHY_INTERFACE_MODE_SGMII) { 65cdbcf5624258 Frank 2022-10-28 1146 ret = ytphy_modify_ext(phydev, YT8521_RGMII_CONFIG1_REG, 65cdbcf5624258 Frank 2022-10-28 1147 (YT8521_RC1R_RX_DELAY_MASK | 65cdbcf5624258 Frank 2022-10-28 1148 YT8521_RC1R_FE_TX_DELAY_MASK | 65cdbcf5624258 Frank 2022-10-28 1149 YT8521_RC1R_GE_TX_DELAY_MASK), 65cdbcf5624258 Frank 2022-10-28 1150 val); 65cdbcf5624258 Frank 2022-10-28 1151 if (ret < 0) 65cdbcf5624258 Frank 2022-10-28 1152 goto err_restore_page; 65cdbcf5624258 Frank 2022-10-28 1153 } 65cdbcf5624258 Frank 2022-10-28 1154 65cdbcf5624258 Frank 2022-10-28 1155 /* disable auto sleep */ 65cdbcf5624258 Frank 2022-10-28 1156 ret = ytphy_modify_ext(phydev, YT8521_EXTREG_SLEEP_CONTROL1_REG, 65cdbcf5624258 Frank 2022-10-28 1157 YT8521_ESC1R_SLEEP_SW, 0); 65cdbcf5624258 Frank 2022-10-28 1158 if (ret < 0) 65cdbcf5624258 Frank 2022-10-28 1159 goto err_restore_page; 65cdbcf5624258 Frank 2022-10-28 1160 65cdbcf5624258 Frank 2022-10-28 1161 /* enable RXC clock when no wire plug */ 65cdbcf5624258 Frank 2022-10-28 1162 ret = ytphy_modify_ext(phydev, YT8521_CLOCK_GATING_REG, 65cdbcf5624258 Frank 2022-10-28 1163 YT8521_CGR_RX_CLK_EN, 0); 65cdbcf5624258 Frank 2022-10-28 1164 if (ret < 0) 65cdbcf5624258 Frank 2022-10-28 1165 goto err_restore_page; 65cdbcf5624258 Frank 2022-10-28 1166 65cdbcf5624258 Frank 2022-10-28 1167 err_restore_page: 65cdbcf5624258 Frank 2022-10-28 1168 return phy_restore_page(phydev, old_page, ret); 65cdbcf5624258 Frank 2022-10-28 1169 } 65cdbcf5624258 Frank 2022-10-28 1170 -- 0-DAY CI Kernel Test Service https://01.org/lkp