[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20200710094540.GO2549@kadam>
Date: Fri, 10 Jul 2020 12:45:40 +0300
From: Dan Carpenter <dan.carpenter@...cle.com>
To: kbuild@...ts.01.org,
René van Dorst <opensource@...rst.com>
Cc: lkp@...el.com, kbuild-all@...ts.01.org,
linux-kernel@...r.kernel.org
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@...el.com>
Reported-by: Dan Carpenter <dan.carpenter@...cle.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
Download attachment ".config.gz" of type "application/gzip" (32802 bytes)
Powered by blists - more mailing lists