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 <[email protected]>

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/[email protected]

Attachment: .config.gz
Description: application/gzip

Reply via email to