All of lore.kernel.org
 help / color / mirror / Atom feed
* drivers/net/ethernet/mediatek/mtk_eth_soc.c:310 mtk_mac_config() error: uninitialized symbol 'err'.
@ 2020-07-10  9:45 ` Dan Carpenter
  0 siblings, 0 replies; 4+ messages in thread
From: Dan Carpenter @ 2020-07-10  9:45 UTC (permalink / raw)
  To: kbuild, René van Dorst; +Cc: lkp, kbuild-all, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 14025 bytes --]

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

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 32802 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* drivers/net/ethernet/mediatek/mtk_eth_soc.c:310 mtk_mac_config() error: uninitialized symbol 'err'.
@ 2020-07-10  9:45 ` Dan Carpenter
  0 siblings, 0 replies; 4+ messages in thread
From: Dan Carpenter @ 2020-07-10  9:45 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 14390 bytes --]

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(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 32802 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* drivers/net/ethernet/mediatek/mtk_eth_soc.c:310 mtk_mac_config() error: uninitialized symbol 'err'.
@ 2020-07-10  9:45 ` Dan Carpenter
  0 siblings, 0 replies; 4+ messages in thread
From: Dan Carpenter @ 2020-07-10  9:45 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 14390 bytes --]

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(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 32802 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* drivers/net/ethernet/mediatek/mtk_eth_soc.c:310 mtk_mac_config() error: uninitialized symbol 'err'.
@ 2020-07-08 19:22 kernel test robot
  0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2020-07-08 19:22 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 14602 bytes --]

CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: "René van Dorst" <opensource@vdorst.com>

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
date:   11 months ago
:::::: branch date: 21 hours ago
:::::: commit date: 11 months ago
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

f430dea7c150da Sean Wang      2016-09-22  189  
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  			}
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);
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  }
656e705243fd0c John Crispin   2016-03-08  362  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 32802 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-07-10  9:46 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-10  9:45 drivers/net/ethernet/mediatek/mtk_eth_soc.c:310 mtk_mac_config() error: uninitialized symbol 'err' Dan Carpenter
2020-07-10  9:45 ` Dan Carpenter
2020-07-10  9:45 ` Dan Carpenter
  -- strict thread matches above, loose matches on Subject: below --
2020-07-08 19:22 kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.