Messages in this thread | | | Date | Fri, 10 Jul 2020 12:45:40 +0300 | From | Dan Carpenter <> | Subject | drivers/net/ethernet/mediatek/mtk_eth_soc.c:310 mtk_mac_config() error: uninitialized symbol 'err'. |
| |
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: dcde237b9b0eb1d19306e6f48c0a4e058907619f commit: 7e538372694b3e449783eed3981d59d2597c2882 net: ethernet: mediatek: Re-add support SGMII config: arm64-randconfig-m031-20200708 (attached as .config) compiler: aarch64-linux-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings: drivers/net/ethernet/mediatek/mtk_eth_soc.c:310 mtk_mac_config() error: uninitialized symbol 'err'.
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7e538372694b3e449783eed3981d59d2597c2882 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git remote update linus git checkout 7e538372694b3e449783eed3981d59d2597c2882 vim +/err +310 drivers/net/ethernet/mediatek/mtk_eth_soc.c
b8fc9f30821ec0 René van Dorst 2019-08-25 190 static void mtk_mac_config(struct phylink_config *config, unsigned int mode, b8fc9f30821ec0 René van Dorst 2019-08-25 191 const struct phylink_link_state *state) 656e705243fd0c John Crispin 2016-03-08 192 { b8fc9f30821ec0 René van Dorst 2019-08-25 193 struct mtk_mac *mac = container_of(config, struct mtk_mac, b8fc9f30821ec0 René van Dorst 2019-08-25 194 phylink_config); b8fc9f30821ec0 René van Dorst 2019-08-25 195 struct mtk_eth *eth = mac->hw; 7e538372694b3e René van Dorst 2019-08-25 196 u32 mcr_cur, mcr_new, sid; 7e538372694b3e René van Dorst 2019-08-25 197 int val, ge_mode, err; b8fc9f30821ec0 René van Dorst 2019-08-25 198 b8fc9f30821ec0 René van Dorst 2019-08-25 199 /* MT76x8 has no hardware settings between for the MAC */ b8fc9f30821ec0 René van Dorst 2019-08-25 200 if (!MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628) && b8fc9f30821ec0 René van Dorst 2019-08-25 201 mac->interface != state->interface) { b8fc9f30821ec0 René van Dorst 2019-08-25 202 /* Setup soc pin functions */ b8fc9f30821ec0 René van Dorst 2019-08-25 203 switch (state->interface) { b8fc9f30821ec0 René van Dorst 2019-08-25 204 case PHY_INTERFACE_MODE_TRGMII: b8fc9f30821ec0 René van Dorst 2019-08-25 205 if (mac->id) b8fc9f30821ec0 René van Dorst 2019-08-25 206 goto err_phy; b8fc9f30821ec0 René van Dorst 2019-08-25 207 if (!MTK_HAS_CAPS(mac->hw->soc->caps, b8fc9f30821ec0 René van Dorst 2019-08-25 208 MTK_GMAC1_TRGMII)) b8fc9f30821ec0 René van Dorst 2019-08-25 209 goto err_phy; b8fc9f30821ec0 René van Dorst 2019-08-25 210 /* fall through */ b8fc9f30821ec0 René van Dorst 2019-08-25 211 case PHY_INTERFACE_MODE_RGMII_TXID: b8fc9f30821ec0 René van Dorst 2019-08-25 212 case PHY_INTERFACE_MODE_RGMII_RXID: b8fc9f30821ec0 René van Dorst 2019-08-25 213 case PHY_INTERFACE_MODE_RGMII_ID: b8fc9f30821ec0 René van Dorst 2019-08-25 214 case PHY_INTERFACE_MODE_RGMII: b8fc9f30821ec0 René van Dorst 2019-08-25 215 case PHY_INTERFACE_MODE_MII: b8fc9f30821ec0 René van Dorst 2019-08-25 216 case PHY_INTERFACE_MODE_REVMII: b8fc9f30821ec0 René van Dorst 2019-08-25 217 case PHY_INTERFACE_MODE_RMII: 7e538372694b3e René van Dorst 2019-08-25 218 if (MTK_HAS_CAPS(eth->soc->caps, MTK_RGMII)) { 7e538372694b3e René van Dorst 2019-08-25 219 err = mtk_gmac_rgmii_path_setup(eth, mac->id); 7e538372694b3e René van Dorst 2019-08-25 220 if (err) 7e538372694b3e René van Dorst 2019-08-25 221 goto init_err; 7e538372694b3e René van Dorst 2019-08-25 222 }
err not set if MTK_HAS_CAPS() is false.
7e538372694b3e René van Dorst 2019-08-25 223 break; 7e538372694b3e René van Dorst 2019-08-25 224 case PHY_INTERFACE_MODE_1000BASEX: 7e538372694b3e René van Dorst 2019-08-25 225 case PHY_INTERFACE_MODE_2500BASEX: 7e538372694b3e René van Dorst 2019-08-25 226 case PHY_INTERFACE_MODE_SGMII: 7e538372694b3e René van Dorst 2019-08-25 227 if (MTK_HAS_CAPS(eth->soc->caps, MTK_SGMII)) { 7e538372694b3e René van Dorst 2019-08-25 228 err = mtk_gmac_sgmii_path_setup(eth, mac->id); 7e538372694b3e René van Dorst 2019-08-25 229 if (err) 7e538372694b3e René van Dorst 2019-08-25 230 goto init_err; 7e538372694b3e René van Dorst 2019-08-25 231 } 7e538372694b3e René van Dorst 2019-08-25 232 break; 7e538372694b3e René van Dorst 2019-08-25 233 case PHY_INTERFACE_MODE_GMII: 7e538372694b3e René van Dorst 2019-08-25 234 if (MTK_HAS_CAPS(eth->soc->caps, MTK_GEPHY)) { 7e538372694b3e René van Dorst 2019-08-25 235 err = mtk_gmac_gephy_path_setup(eth, mac->id); 7e538372694b3e René van Dorst 2019-08-25 236 if (err) 7e538372694b3e René van Dorst 2019-08-25 237 goto init_err; 7e538372694b3e René van Dorst 2019-08-25 238 } b8fc9f30821ec0 René van Dorst 2019-08-25 239 break; b8fc9f30821ec0 René van Dorst 2019-08-25 240 default: b8fc9f30821ec0 René van Dorst 2019-08-25 241 goto err_phy; f819cd926ca7c9 YueHaibing 2019-03-01 242 } 656e705243fd0c John Crispin 2016-03-08 243 b8fc9f30821ec0 René van Dorst 2019-08-25 244 /* Setup clock for 1st gmac */ 7e538372694b3e René van Dorst 2019-08-25 245 if (!mac->id && state->interface != PHY_INTERFACE_MODE_SGMII && 7e538372694b3e René van Dorst 2019-08-25 246 !phy_interface_mode_is_8023z(state->interface) && b8fc9f30821ec0 René van Dorst 2019-08-25 247 MTK_HAS_CAPS(mac->hw->soc->caps, MTK_GMAC1_TRGMII)) { b8fc9f30821ec0 René van Dorst 2019-08-25 248 if (MTK_HAS_CAPS(mac->hw->soc->caps, b8fc9f30821ec0 René van Dorst 2019-08-25 249 MTK_TRGMII_MT7621_CLK)) { 8efaa653a8a540 René van Dorst 2019-06-20 250 if (mt7621_gmac0_rgmii_adjust(mac->hw, b8fc9f30821ec0 René van Dorst 2019-08-25 251 state->interface)) b8fc9f30821ec0 René van Dorst 2019-08-25 252 goto err_phy; 8efaa653a8a540 René van Dorst 2019-06-20 253 } else { b8fc9f30821ec0 René van Dorst 2019-08-25 254 if (state->interface != b8fc9f30821ec0 René van Dorst 2019-08-25 255 PHY_INTERFACE_MODE_TRGMII) 8efaa653a8a540 René van Dorst 2019-06-20 256 mtk_gmac0_rgmii_adjust(mac->hw, b8fc9f30821ec0 René van Dorst 2019-08-25 257 state->speed); 8efaa653a8a540 René van Dorst 2019-06-20 258 } 8efaa653a8a540 René van Dorst 2019-06-20 259 } f430dea7c150da Sean Wang 2016-09-22 260 7e538372694b3e René van Dorst 2019-08-25 261 ge_mode = 0; 7e538372694b3e René van Dorst 2019-08-25 262 switch (state->interface) { 7e538372694b3e René van Dorst 2019-08-25 263 case PHY_INTERFACE_MODE_MII: 7e538372694b3e René van Dorst 2019-08-25 264 ge_mode = 1; 7e538372694b3e René van Dorst 2019-08-25 265 break; 7e538372694b3e René van Dorst 2019-08-25 266 case PHY_INTERFACE_MODE_REVMII: 7e538372694b3e René van Dorst 2019-08-25 267 ge_mode = 2; 7e538372694b3e René van Dorst 2019-08-25 268 break; 7e538372694b3e René van Dorst 2019-08-25 269 case PHY_INTERFACE_MODE_RMII: 7e538372694b3e René van Dorst 2019-08-25 270 if (mac->id) 7e538372694b3e René van Dorst 2019-08-25 271 goto err_phy; 7e538372694b3e René van Dorst 2019-08-25 272 ge_mode = 3; 7e538372694b3e René van Dorst 2019-08-25 273 break; 7e538372694b3e René van Dorst 2019-08-25 274 default: 7e538372694b3e René van Dorst 2019-08-25 275 break; 7e538372694b3e René van Dorst 2019-08-25 276 } 7e538372694b3e René van Dorst 2019-08-25 277 b8fc9f30821ec0 René van Dorst 2019-08-25 278 /* put the gmac into the right mode */ b8fc9f30821ec0 René van Dorst 2019-08-25 279 regmap_read(eth->ethsys, ETHSYS_SYSCFG0, &val); b8fc9f30821ec0 René van Dorst 2019-08-25 280 val &= ~SYSCFG0_GE_MODE(SYSCFG0_GE_MASK, mac->id); b8fc9f30821ec0 René van Dorst 2019-08-25 281 val |= SYSCFG0_GE_MODE(ge_mode, mac->id); b8fc9f30821ec0 René van Dorst 2019-08-25 282 regmap_write(eth->ethsys, ETHSYS_SYSCFG0, val); b8fc9f30821ec0 René van Dorst 2019-08-25 283 b8fc9f30821ec0 René van Dorst 2019-08-25 284 mac->interface = state->interface; b8fc9f30821ec0 René van Dorst 2019-08-25 285 } 656e705243fd0c John Crispin 2016-03-08 286 7e538372694b3e René van Dorst 2019-08-25 287 /* SGMII */ 7e538372694b3e René van Dorst 2019-08-25 288 if (state->interface == PHY_INTERFACE_MODE_SGMII || 7e538372694b3e René van Dorst 2019-08-25 289 phy_interface_mode_is_8023z(state->interface)) { 7e538372694b3e René van Dorst 2019-08-25 290 /* The path GMAC to SGMII will be enabled once the SGMIISYS is 7e538372694b3e René van Dorst 2019-08-25 291 * being setup done. 7e538372694b3e René van Dorst 2019-08-25 292 */ 7e538372694b3e René van Dorst 2019-08-25 293 regmap_read(eth->ethsys, ETHSYS_SYSCFG0, &val); 7e538372694b3e René van Dorst 2019-08-25 294 7e538372694b3e René van Dorst 2019-08-25 295 regmap_update_bits(eth->ethsys, ETHSYS_SYSCFG0, 7e538372694b3e René van Dorst 2019-08-25 296 SYSCFG0_SGMII_MASK, 7e538372694b3e René van Dorst 2019-08-25 297 ~(u32)SYSCFG0_SGMII_MASK); 7e538372694b3e René van Dorst 2019-08-25 298 7e538372694b3e René van Dorst 2019-08-25 299 /* Decide how GMAC and SGMIISYS be mapped */ 7e538372694b3e René van Dorst 2019-08-25 300 sid = (MTK_HAS_CAPS(eth->soc->caps, MTK_SHARED_SGMII)) ? 7e538372694b3e René van Dorst 2019-08-25 301 0 : mac->id; 7e538372694b3e René van Dorst 2019-08-25 302 7e538372694b3e René van Dorst 2019-08-25 303 /* Setup SGMIISYS with the determined property */ 7e538372694b3e René van Dorst 2019-08-25 304 if (state->interface != PHY_INTERFACE_MODE_SGMII) 7e538372694b3e René van Dorst 2019-08-25 305 err = mtk_sgmii_setup_mode_force(eth->sgmii, sid, 7e538372694b3e René van Dorst 2019-08-25 306 state); 7e538372694b3e René van Dorst 2019-08-25 307 else if (phylink_autoneg_inband(mode)) 7e538372694b3e René van Dorst 2019-08-25 308 err = mtk_sgmii_setup_mode_an(eth->sgmii, sid);
"err" not set if both conditions are false.
7e538372694b3e René van Dorst 2019-08-25 309 7e538372694b3e René van Dorst 2019-08-25 @310 if (err) 7e538372694b3e René van Dorst 2019-08-25 311 goto init_err; 7e538372694b3e René van Dorst 2019-08-25 312 7e538372694b3e René van Dorst 2019-08-25 313 regmap_update_bits(eth->ethsys, ETHSYS_SYSCFG0, 7e538372694b3e René van Dorst 2019-08-25 314 SYSCFG0_SGMII_MASK, val); 7e538372694b3e René van Dorst 2019-08-25 315 } else if (phylink_autoneg_inband(mode)) { 7e538372694b3e René van Dorst 2019-08-25 316 dev_err(eth->dev, 7e538372694b3e René van Dorst 2019-08-25 317 "In-band mode not supported in non SGMII mode!\n"); 7e538372694b3e René van Dorst 2019-08-25 318 return; 7e538372694b3e René van Dorst 2019-08-25 319 } 7e538372694b3e René van Dorst 2019-08-25 320 b8fc9f30821ec0 René van Dorst 2019-08-25 321 /* Setup gmac */ b8fc9f30821ec0 René van Dorst 2019-08-25 322 mcr_cur = mtk_r32(mac->hw, MTK_MAC_MCR(mac->id)); b8fc9f30821ec0 René van Dorst 2019-08-25 323 mcr_new = mcr_cur; b8fc9f30821ec0 René van Dorst 2019-08-25 324 mcr_new &= ~(MAC_MCR_SPEED_100 | MAC_MCR_SPEED_1000 | b8fc9f30821ec0 René van Dorst 2019-08-25 325 MAC_MCR_FORCE_DPX | MAC_MCR_FORCE_TX_FC | b8fc9f30821ec0 René van Dorst 2019-08-25 326 MAC_MCR_FORCE_RX_FC); b8fc9f30821ec0 René van Dorst 2019-08-25 327 mcr_new |= MAC_MCR_MAX_RX_1536 | MAC_MCR_IPG_CFG | MAC_MCR_FORCE_MODE | b8fc9f30821ec0 René van Dorst 2019-08-25 328 MAC_MCR_BACKOFF_EN | MAC_MCR_BACKPR_EN | MAC_MCR_FORCE_LINK; 656e705243fd0c John Crispin 2016-03-08 329 b8fc9f30821ec0 René van Dorst 2019-08-25 330 switch (state->speed) { 7e538372694b3e René van Dorst 2019-08-25 331 case SPEED_2500: b8fc9f30821ec0 René van Dorst 2019-08-25 332 case SPEED_1000: b8fc9f30821ec0 René van Dorst 2019-08-25 333 mcr_new |= MAC_MCR_SPEED_1000; b8fc9f30821ec0 René van Dorst 2019-08-25 334 break; b8fc9f30821ec0 René van Dorst 2019-08-25 335 case SPEED_100: b8fc9f30821ec0 René van Dorst 2019-08-25 336 mcr_new |= MAC_MCR_SPEED_100; b8fc9f30821ec0 René van Dorst 2019-08-25 337 break; b8fc9f30821ec0 René van Dorst 2019-08-25 338 } b8fc9f30821ec0 René van Dorst 2019-08-25 339 if (state->duplex == DUPLEX_FULL) { b8fc9f30821ec0 René van Dorst 2019-08-25 340 mcr_new |= MAC_MCR_FORCE_DPX; b8fc9f30821ec0 René van Dorst 2019-08-25 341 if (state->pause & MLO_PAUSE_TX) b8fc9f30821ec0 René van Dorst 2019-08-25 342 mcr_new |= MAC_MCR_FORCE_TX_FC; b8fc9f30821ec0 René van Dorst 2019-08-25 343 if (state->pause & MLO_PAUSE_RX) b8fc9f30821ec0 René van Dorst 2019-08-25 344 mcr_new |= MAC_MCR_FORCE_RX_FC; b8fc9f30821ec0 René van Dorst 2019-08-25 345 } 08ef55c6f257ac John Crispin 2016-06-03 346 b8fc9f30821ec0 René van Dorst 2019-08-25 347 /* Only update control register when needed! */ b8fc9f30821ec0 René van Dorst 2019-08-25 348 if (mcr_new != mcr_cur) b8fc9f30821ec0 René van Dorst 2019-08-25 349 mtk_w32(mac->hw, mcr_new, MTK_MAC_MCR(mac->id)); 08ef55c6f257ac John Crispin 2016-06-03 350 b8fc9f30821ec0 René van Dorst 2019-08-25 351 return; 08ef55c6f257ac John Crispin 2016-06-03 352 b8fc9f30821ec0 René van Dorst 2019-08-25 353 err_phy: b8fc9f30821ec0 René van Dorst 2019-08-25 354 dev_err(eth->dev, "%s: GMAC%d mode %s not supported!\n", __func__, b8fc9f30821ec0 René van Dorst 2019-08-25 355 mac->id, phy_modes(state->interface)); 7e538372694b3e René van Dorst 2019-08-25 356 return; 7e538372694b3e René van Dorst 2019-08-25 357 7e538372694b3e René van Dorst 2019-08-25 358 init_err: 7e538372694b3e René van Dorst 2019-08-25 359 dev_err(eth->dev, "%s: GMAC%d mode %s err: %d!\n", __func__, 7e538372694b3e René van Dorst 2019-08-25 360 mac->id, phy_modes(state->interface), err); 08ef55c6f257ac John Crispin 2016-06-03 361 }
--- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [unhandled content-type:application/gzip] | |