Re: [PATCH v6] mfd: mt6360: add pmic mt6360 driver

From: kbuild test robot
Date: Wed Dec 25 2019 - 21:49:19 EST


Hi Gene,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on ljones-mfd/for-mfd-next]
[also build test ERROR on v5.5-rc3 next-20191220]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url: https://github.com/0day-ci/linux/commits/Gene-Chen/mfd-mt6360-add-pmic-mt6360-driver/20191226-040639
base: https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git for-mfd-next
config: m68k-allmodconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 7.5.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=7.5.0 make.cross ARCH=m68k

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

drivers//mfd/mt6360-core.c: In function 'mt6360_pmu_probe':
>> drivers//mfd/mt6360-core.c:352:12: error: 'IRQF_TRIGGER_FALLING' undeclared (first use in this function); did you mean 'IRQD_TRIGGER_MASK'?
IRQF_TRIGGER_FALLING, 0,
^~~~~~~~~~~~~~~~~~~~
IRQD_TRIGGER_MASK
drivers//mfd/mt6360-core.c:352:12: note: each undeclared identifier is reported only once for each function it appears in
drivers//mfd/mt6360-core.c: In function 'mt6360_pmu_suspend':
>> drivers//mfd/mt6360-core.c:390:3: error: implicit declaration of function 'enable_irq_wake'; did you mean 'local_irq_save'? [-Werror=implicit-function-declaration]
enable_irq_wake(i2c->irq);
^~~~~~~~~~~~~~~
local_irq_save
drivers//mfd/mt6360-core.c: In function 'mt6360_pmu_resume':
>> drivers//mfd/mt6360-core.c:401:3: error: implicit declaration of function 'disable_irq_wake'; did you mean 'local_irq_save'? [-Werror=implicit-function-declaration]
disable_irq_wake(i2c->irq);
^~~~~~~~~~~~~~~~
local_irq_save
cc1: some warnings being treated as errors

vim +352 drivers//mfd/mt6360-core.c

318
319 static int mt6360_pmu_probe(struct i2c_client *client)
320 {
321 struct mt6360_pmu_data *mpd;
322 unsigned int reg_data;
323 int i, ret;
324
325 mpd = devm_kzalloc(&client->dev, sizeof(*mpd), GFP_KERNEL);
326 if (!mpd)
327 return -ENOMEM;
328
329 mpd->dev = &client->dev;
330 i2c_set_clientdata(client, mpd);
331
332 mpd->regmap = devm_regmap_init_i2c(client, &mt6360_pmu_regmap_config);
333 if (IS_ERR(mpd->regmap)) {
334 dev_err(&client->dev, "Failed to register regmap\n");
335 return PTR_ERR(mpd->regmap);
336 }
337
338 ret = regmap_read(mpd->regmap, MT6360_PMU_DEV_INFO, &reg_data);
339 if (ret) {
340 dev_err(&client->dev, "Device not found\n");
341 return ret;
342 }
343
344 mpd->chip_rev = reg_data & CHIP_REV_MASK;
345 if (mpd->chip_rev != CHIP_VEN_MT6360) {
346 dev_err(&client->dev, "Device not supported\n");
347 return -ENODEV;
348 }
349
350 mt6360_pmu_irq_chip.irq_drv_data = mpd;
351 ret = devm_regmap_add_irq_chip(&client->dev, mpd->regmap, client->irq,
> 352 IRQF_TRIGGER_FALLING, 0,
353 &mt6360_pmu_irq_chip, &mpd->irq_data);
354 if (ret) {
355 dev_err(&client->dev, "Failed to add Regmap IRQ Chip\n");
356 return ret;
357 }
358
359 mpd->i2c[0] = client;
360 for (i = 1; i < MT6360_SLAVE_MAX; i++) {
361 mpd->i2c[i] = devm_i2c_new_dummy_device(&client->dev,
362 client->adapter,
363 mt6360_slave_addr[i]);
364 if (IS_ERR(mpd->i2c[i])) {
365 dev_err(&client->dev,
366 "Failed to get new dummy I2C device for address 0x%x",
367 mt6360_slave_addr[i]);
368 return PTR_ERR(mpd->i2c[i]);
369 }
370 i2c_set_clientdata(mpd->i2c[i], mpd);
371 }
372
373 ret = devm_mfd_add_devices(&client->dev, PLATFORM_DEVID_AUTO,
374 mt6360_devs, ARRAY_SIZE(mt6360_devs), NULL,
375 0, regmap_irq_get_domain(mpd->irq_data));
376 if (ret) {
377 dev_err(&client->dev,
378 "Failed to register subordinate devices\n");
379 return ret;
380 }
381
382 return 0;
383 }
384
385 static int __maybe_unused mt6360_pmu_suspend(struct device *dev)
386 {
387 struct i2c_client *i2c = to_i2c_client(dev);
388
389 if (device_may_wakeup(dev))
> 390 enable_irq_wake(i2c->irq);
391
392 return 0;
393 }
394
395 static int __maybe_unused mt6360_pmu_resume(struct device *dev)
396 {
397
398 struct i2c_client *i2c = to_i2c_client(dev);
399
400 if (device_may_wakeup(dev))
> 401 disable_irq_wake(i2c->irq);
402
403 return 0;
404 }
405

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx Intel Corporation

Attachment: .config.gz
Description: application/gzip