lkml.org 
[lkml]   [2020]   [Jun]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 2/2] power: supply: max17040: Support compatible devices
Hi Iskren,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on power-supply/for-next]
[also build test WARNING on next-20200608]
[cannot apply to v5.7]
[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/Iskren-Chernev/dt-bindints-power-supply-Document-max17040-extensions/20200609-022950
base: https://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply.git for-next
config: x86_64-allyesconfig (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project e429cffd4f228f70c1d9df0e5d77c08590dd9766)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>, old ones prefixed by <<):

>> drivers/power/supply/max17040_battery.c:456:13: warning: cast to smaller integer type 'enum chip_id' from 'const void *' [-Wvoid-pointer-to-enum-cast]
chip_id = (enum chip_id) of_device_get_match_data(&client->dev);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.

vim +456 drivers/power/supply/max17040_battery.c

430
431 static int max17040_probe(struct i2c_client *client,
432 const struct i2c_device_id *id)
433 {
434 struct i2c_adapter *adapter = client->adapter;
435 struct power_supply_config psy_cfg = {};
436 struct max17040_chip *chip;
437 enum chip_id chip_id;
438 bool enable_irq = false;
439 int ret;
440
441 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE))
442 return -EIO;
443
444 chip = devm_kzalloc(&client->dev, sizeof(*chip), GFP_KERNEL);
445 if (!chip)
446 return -ENOMEM;
447
448 chip->client = client;
449 chip->regmap = devm_regmap_init_i2c(client, &max17040_regmap);
450 chip->pdata = client->dev.platform_data;
451 chip_id = (enum chip_id) id->driver_data;
452 if (client->dev.of_node) {
453 ret = max17040_get_of_data(chip);
454 if (ret)
455 return ret;
> 456 chip_id = (enum chip_id) of_device_get_match_data(&client->dev);
457 }
458 chip->data = max17040_family[chip_id];
459
460 i2c_set_clientdata(client, chip);
461 psy_cfg.drv_data = chip;
462
463 chip->battery = devm_power_supply_register(&client->dev,
464 &max17040_battery_desc, &psy_cfg);
465 if (IS_ERR(chip->battery)) {
466 dev_err(&client->dev, "failed: power supply register\n");
467 return PTR_ERR(chip->battery);
468 }
469
470 max17040_reset(chip);
471 max17040_get_version(chip);
472 max17040_set_rcomp(chip, chip->rcomp);
473
474 /* check interrupt */
475 if (client->irq && chip->data.has_low_soc_alert) {
476 ret = max17040_set_low_soc_alert(chip, chip->low_soc_alert);
477 if (ret) {
478 dev_err(&client->dev,
479 "Failed to set low SOC alert: err %d\n", ret);
480 return ret;
481 }
482 enable_irq = true;
483 }
484
485 if (client->irq && chip->data.has_soc_alert) {
486 ret = max17040_set_soc_alert(chip, 1);
487 if (ret) {
488 dev_err(&client->dev,
489 "Failed to set SOC alert: err %d\n", ret);
490 return ret;
491 }
492 enable_irq = true;
493 } else {
494 /* soc alerts negate the need for polling */
495 INIT_DEFERRABLE_WORK(&chip->work, max17040_work);
496 ret = devm_add_action(&client->dev, max17040_stop_work, chip);
497 if (ret)
498 return ret;
499 max17040_queue_work(chip);
500 }
501
502 if (enable_irq) {
503 ret = max17040_setup_irq(chip);
504 if (ret) {
505 client->irq = 0;
506 dev_warn(&client->dev,
507 "Failed to get IRQ err %d\n", ret);
508 }
509 }
510
511 return 0;
512 }
513

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[unhandled content-type:application/gzip]
\
 
 \ /
  Last update: 2020-06-09 02:21    [W:0.054 / U:25.576 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site