[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