[net-next PATCH v10 8/9] net: dsa: Add Airoha AN8855 5-Port Gigabit DSA Switch driver

kernel test robot lkp at intel.com
Sun Dec 8 20:38:51 PST 2024


Hi Christian,

kernel test robot noticed the following build errors:

[auto build test ERROR on net-next/main]

url:    https://github.com/intel-lab-lkp/linux/commits/Christian-Marangi/dt-bindings-nvmem-Document-support-for-Airoha-AN8855-Switch-EFUSE/20241208-082533
base:   net-next/main
patch link:    https://lore.kernel.org/r/20241208002105.18074-9-ansuelsmth%40gmail.com
patch subject: [net-next PATCH v10 8/9] net: dsa: Add Airoha AN8855 5-Port Gigabit DSA Switch driver
config: sh-allmodconfig (https://download.01.org/0day-ci/archive/20241208/202412081038.lJvmpuB2-lkp@intel.com/config)
compiler: sh4-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241208/202412081038.lJvmpuB2-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 at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202412081038.lJvmpuB2-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

   drivers/net/dsa/an8855.c: In function 'an8855_switch_probe':
>> drivers/net/dsa/an8855.c:2227:34: error: invalid use of undefined type 'struct platform_device'
    2227 |         priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
         |                                  ^~
   drivers/net/dsa/an8855.c:2231:26: error: invalid use of undefined type 'struct platform_device'
    2231 |         priv->dev = &pdev->dev;
         |                          ^~
   drivers/net/dsa/an8855.c: In function 'an8855_switch_remove':
   drivers/net/dsa/an8855.c:2282:57: error: invalid use of undefined type 'struct platform_device'
    2282 |         struct an8855_priv *priv = dev_get_drvdata(&pdev->dev);
         |                                                         ^~
   drivers/net/dsa/an8855.c: At top level:
>> drivers/net/dsa/an8855.c:2295:15: error: variable 'an8855_switch_driver' has initializer but incomplete type
    2295 | static struct platform_driver an8855_switch_driver = {
         |               ^~~~~~~~~~~~~~~
>> drivers/net/dsa/an8855.c:2296:10: error: 'struct platform_driver' has no member named 'probe'
    2296 |         .probe = an8855_switch_probe,
         |          ^~~~~
>> drivers/net/dsa/an8855.c:2296:18: warning: excess elements in struct initializer
    2296 |         .probe = an8855_switch_probe,
         |                  ^~~~~~~~~~~~~~~~~~~
   drivers/net/dsa/an8855.c:2296:18: note: (near initialization for 'an8855_switch_driver')
>> drivers/net/dsa/an8855.c:2297:10: error: 'struct platform_driver' has no member named 'remove'
    2297 |         .remove = an8855_switch_remove,
         |          ^~~~~~
   drivers/net/dsa/an8855.c:2297:19: warning: excess elements in struct initializer
    2297 |         .remove = an8855_switch_remove,
         |                   ^~~~~~~~~~~~~~~~~~~~
   drivers/net/dsa/an8855.c:2297:19: note: (near initialization for 'an8855_switch_driver')
>> drivers/net/dsa/an8855.c:2298:10: error: 'struct platform_driver' has no member named 'driver'
    2298 |         .driver = {
         |          ^~~~~~
>> drivers/net/dsa/an8855.c:2298:19: error: extra brace group at end of initializer
    2298 |         .driver = {
         |                   ^
   drivers/net/dsa/an8855.c:2298:19: note: (near initialization for 'an8855_switch_driver')
   drivers/net/dsa/an8855.c:2298:19: warning: excess elements in struct initializer
   drivers/net/dsa/an8855.c:2298:19: note: (near initialization for 'an8855_switch_driver')
>> drivers/net/dsa/an8855.c:2303:1: warning: data definition has no type or storage class
    2303 | module_platform_driver(an8855_switch_driver);
         | ^~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/dsa/an8855.c:2303:1: error: type defaults to 'int' in declaration of 'module_platform_driver' [-Wimplicit-int]
>> drivers/net/dsa/an8855.c:2303:1: error: parameter names (without types) in function declaration [-Wdeclaration-missing-parameter-type]
>> drivers/net/dsa/an8855.c:2295:31: error: storage size of 'an8855_switch_driver' isn't known
    2295 | static struct platform_driver an8855_switch_driver = {
         |                               ^~~~~~~~~~~~~~~~~~~~
>> drivers/net/dsa/an8855.c:2295:31: warning: 'an8855_switch_driver' defined but not used [-Wunused-variable]


vim +2227 drivers/net/dsa/an8855.c

  2220	
  2221	static int an8855_switch_probe(struct platform_device *pdev)
  2222	{
  2223		struct an8855_priv *priv;
  2224		u32 val;
  2225		int ret;
  2226	
> 2227		priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
  2228		if (!priv)
  2229			return -ENOMEM;
  2230	
> 2231		priv->dev = &pdev->dev;
  2232		priv->phy_require_calib = of_property_read_bool(priv->dev->of_node,
  2233								"airoha,ext-surge");
  2234	
  2235		priv->reset_gpio = devm_gpiod_get_optional(priv->dev, "reset",
  2236							   GPIOD_OUT_LOW);
  2237		if (IS_ERR(priv->reset_gpio))
  2238			return PTR_ERR(priv->reset_gpio);
  2239	
  2240		/* Get regmap from MFD */
  2241		priv->regmap = dev_get_regmap(priv->dev->parent, NULL);
  2242	
  2243		if (priv->reset_gpio) {
  2244			usleep_range(100000, 150000);
  2245			gpiod_set_value_cansleep(priv->reset_gpio, 0);
  2246			usleep_range(100000, 150000);
  2247			gpiod_set_value_cansleep(priv->reset_gpio, 1);
  2248	
  2249			/* Poll HWTRAP reg to wait for Switch to fully Init */
  2250			ret = regmap_read_poll_timeout(priv->regmap, AN8855_HWTRAP, val,
  2251						       val, 20, 200000);
  2252			if (ret)
  2253				return ret;
  2254		}
  2255	
  2256		ret = an8855_read_switch_id(priv);
  2257		if (ret)
  2258			return ret;
  2259	
  2260		priv->ds = devm_kzalloc(priv->dev, sizeof(*priv->ds), GFP_KERNEL);
  2261		if (!priv->ds)
  2262			return -ENOMEM;
  2263	
  2264		priv->ds->dev = priv->dev;
  2265		priv->ds->num_ports = AN8855_NUM_PORTS;
  2266		priv->ds->priv = priv;
  2267		priv->ds->ops = &an8855_switch_ops;
  2268		devm_mutex_init(priv->dev, &priv->reg_mutex);
  2269		priv->ds->phylink_mac_ops = &an8855_phylink_mac_ops;
  2270	
  2271		priv->pcs.ops = &an8855_pcs_ops;
  2272		priv->pcs.neg_mode = true;
  2273		priv->pcs.poll = true;
  2274	
  2275		dev_set_drvdata(priv->dev, priv);
  2276	
  2277		return dsa_register_switch(priv->ds);
  2278	}
  2279	
  2280	static void an8855_switch_remove(struct platform_device *pdev)
  2281	{
> 2282		struct an8855_priv *priv = dev_get_drvdata(&pdev->dev);
  2283	
  2284		if (!priv)
  2285			return;
  2286	
  2287		dsa_unregister_switch(priv->ds);
  2288	}
  2289	
  2290	static const struct of_device_id an8855_switch_of_match[] = {
  2291		{ .compatible = "airoha,an8855-switch" },
  2292		{ /* sentinel */ }
  2293	};
  2294	
> 2295	static struct platform_driver an8855_switch_driver = {
> 2296		.probe = an8855_switch_probe,
> 2297		.remove = an8855_switch_remove,
> 2298		.driver = {
  2299			.name = "an8855-switch",
  2300			.of_match_table = an8855_switch_of_match,
  2301		},
  2302	};
> 2303	module_platform_driver(an8855_switch_driver);
  2304	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki



More information about the Linux-mediatek mailing list