Message ID | E1trbxk-005qYA-Up@rmk-PC.armlinux.org.uk |
---|---|
State | New |
Headers | show |
Series | net: stmmac: remove unnecessary of_get_phy_mode() calls | expand |
Hi Russell,
kernel test robot noticed the following build warnings:
[auto build test WARNING on net-next/main]
url: https://github.com/intel-lab-lkp/linux/commits/Russell-King-Oracle/net-stmmac-qcom-ethqos-remove-of_get_phy_mode/20250311-001446
base: net-next/main
patch link: https://lore.kernel.org/r/E1trbxk-005qYA-Up%40rmk-PC.armlinux.org.uk
patch subject: [PATCH net-next 3/9] net: stmmac: remove of_get_phy_mode()
config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20250312/202503120741.lpX5066n-lkp@intel.com/config)
compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250312/202503120741.lpX5066n-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202503120741.lpX5066n-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from drivers/net/ethernet/stmicro/stmmac/dwmac-anarion.c:11:
In file included from include/linux/of_net.h:9:
In file included from include/linux/phy.h:16:
In file included from include/linux/ethtool.h:18:
In file included from include/linux/if_ether.h:19:
In file included from include/linux/skbuff.h:17:
In file included from include/linux/bvec.h:10:
In file included from include/linux/highmem.h:10:
In file included from include/linux/mm.h:2224:
include/linux/vmstat.h:504:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
504 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
505 | item];
| ~~~~
include/linux/vmstat.h:511:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
511 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
512 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:524:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
524 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
525 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/ethernet/stmicro/stmmac/dwmac-anarion.c:94:4: warning: variable 'phy_mode' is uninitialized when used here [-Wuninitialized]
94 | phy_mode);
| ^~~~~~~~
include/linux/dev_printk.h:154:65: note: expanded from macro 'dev_err'
154 | dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~~~~
include/linux/dev_printk.h:110:23: note: expanded from macro 'dev_printk_index_wrap'
110 | _p_func(dev, fmt, ##__VA_ARGS__); \
| ^~~~~~~~~~~
drivers/net/ethernet/stmicro/stmmac/dwmac-anarion.c:67:2: note: variable 'phy_mode' is declared here
67 | phy_interface_t phy_mode;
| ^
4 warnings generated.
vim +/phy_mode +94 drivers/net/ethernet/stmicro/stmmac/dwmac-anarion.c
2d1611aff3f22a5 Alexandru Gagniuc 2017-08-04 61
41b984be408c088 Russell King (Oracle 2025-03-10 62) static struct anarion_gmac *
41b984be408c088 Russell King (Oracle 2025-03-10 63) anarion_config_dt(struct platform_device *pdev,
41b984be408c088 Russell King (Oracle 2025-03-10 64) struct plat_stmmacenet_data *plat_dat)
2d1611aff3f22a5 Alexandru Gagniuc 2017-08-04 65 {
2d1611aff3f22a5 Alexandru Gagniuc 2017-08-04 66 struct anarion_gmac *gmac;
0c65b2b90d13c1d Andrew Lunn 2019-11-04 67 phy_interface_t phy_mode;
0c65b2b90d13c1d Andrew Lunn 2019-11-04 68 void __iomem *ctl_block;
0c65b2b90d13c1d Andrew Lunn 2019-11-04 69 int err;
2d1611aff3f22a5 Alexandru Gagniuc 2017-08-04 70
ad124aa34e51439 YueHaibing 2019-08-21 71 ctl_block = devm_platform_ioremap_resource(pdev, 1);
2d1611aff3f22a5 Alexandru Gagniuc 2017-08-04 72 if (IS_ERR(ctl_block)) {
51fe084b17e795f Simon Horman 2023-04-06 73 err = PTR_ERR(ctl_block);
51fe084b17e795f Simon Horman 2023-04-06 74 dev_err(&pdev->dev, "Cannot get reset region (%d)!\n", err);
51fe084b17e795f Simon Horman 2023-04-06 75 return ERR_PTR(err);
2d1611aff3f22a5 Alexandru Gagniuc 2017-08-04 76 }
2d1611aff3f22a5 Alexandru Gagniuc 2017-08-04 77
2d1611aff3f22a5 Alexandru Gagniuc 2017-08-04 78 gmac = devm_kzalloc(&pdev->dev, sizeof(*gmac), GFP_KERNEL);
2d1611aff3f22a5 Alexandru Gagniuc 2017-08-04 79 if (!gmac)
2d1611aff3f22a5 Alexandru Gagniuc 2017-08-04 80 return ERR_PTR(-ENOMEM);
2d1611aff3f22a5 Alexandru Gagniuc 2017-08-04 81
9f12541d684b925 Simon Horman 2023-04-06 82 gmac->ctl_block = ctl_block;
2d1611aff3f22a5 Alexandru Gagniuc 2017-08-04 83
41b984be408c088 Russell King (Oracle 2025-03-10 84) switch (plat_dat->phy_interface) {
df561f6688fef77 Gustavo A. R. Silva 2020-08-23 85 case PHY_INTERFACE_MODE_RGMII:
df561f6688fef77 Gustavo A. R. Silva 2020-08-23 86 fallthrough;
df561f6688fef77 Gustavo A. R. Silva 2020-08-23 87 case PHY_INTERFACE_MODE_RGMII_ID:
df561f6688fef77 Gustavo A. R. Silva 2020-08-23 88 case PHY_INTERFACE_MODE_RGMII_RXID:
2d1611aff3f22a5 Alexandru Gagniuc 2017-08-04 89 case PHY_INTERFACE_MODE_RGMII_TXID:
2d1611aff3f22a5 Alexandru Gagniuc 2017-08-04 90 gmac->phy_intf_sel = GMAC_CONFIG_INTF_RGMII;
2d1611aff3f22a5 Alexandru Gagniuc 2017-08-04 91 break;
2d1611aff3f22a5 Alexandru Gagniuc 2017-08-04 92 default:
2d1611aff3f22a5 Alexandru Gagniuc 2017-08-04 93 dev_err(&pdev->dev, "Unsupported phy-mode (%d)\n",
2d1611aff3f22a5 Alexandru Gagniuc 2017-08-04 @94 phy_mode);
2d1611aff3f22a5 Alexandru Gagniuc 2017-08-04 95 return ERR_PTR(-ENOTSUPP);
2d1611aff3f22a5 Alexandru Gagniuc 2017-08-04 96 }
2d1611aff3f22a5 Alexandru Gagniuc 2017-08-04 97
2d1611aff3f22a5 Alexandru Gagniuc 2017-08-04 98 return gmac;
2d1611aff3f22a5 Alexandru Gagniuc 2017-08-04 99 }
2d1611aff3f22a5 Alexandru Gagniuc 2017-08-04 100
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-anarion.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-anarion.c index ef99ef3f1ab4..fe47a5c337f6 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-anarion.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-anarion.c @@ -59,7 +59,9 @@ static void anarion_gmac_exit(struct platform_device *pdev, void *priv) gmac_write_reg(gmac, GMAC_RESET_CONTROL_REG, 1); } -static struct anarion_gmac *anarion_config_dt(struct platform_device *pdev) +static struct anarion_gmac * +anarion_config_dt(struct platform_device *pdev, + struct plat_stmmacenet_data *plat_dat) { struct anarion_gmac *gmac; phy_interface_t phy_mode; @@ -79,11 +81,7 @@ static struct anarion_gmac *anarion_config_dt(struct platform_device *pdev) gmac->ctl_block = ctl_block; - err = of_get_phy_mode(pdev->dev.of_node, &phy_mode); - if (err) - return ERR_PTR(err); - - switch (phy_mode) { + switch (plat_dat->phy_interface) { case PHY_INTERFACE_MODE_RGMII: fallthrough; case PHY_INTERFACE_MODE_RGMII_ID: @@ -111,14 +109,14 @@ static int anarion_dwmac_probe(struct platform_device *pdev) if (ret) return ret; - gmac = anarion_config_dt(pdev); - if (IS_ERR(gmac)) - return PTR_ERR(gmac); - plat_dat = devm_stmmac_probe_config_dt(pdev, stmmac_res.mac); if (IS_ERR(plat_dat)) return PTR_ERR(plat_dat); + gmac = anarion_config_dt(pdev, plat_dat); + if (IS_ERR(gmac)) + return PTR_ERR(gmac); + plat_dat->init = anarion_gmac_init; plat_dat->exit = anarion_gmac_exit; anarion_gmac_init(pdev, gmac);
devm_stmmac_probe_config_dt() already gets the PHY mode from firmware, which is stored in plat_dat->phy_interface. Therefore, we don't need to get it in platform code. Rearrange the initialisation order so we can pass plat_dat into anarion_config_dt(), thereby providing plat_dat->phy_interface as necessary there. Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> --- .../ethernet/stmicro/stmmac/dwmac-anarion.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-)