All of lore.kernel.org
 help / color / mirror / Atom feed
* [robh:for-next 57/58] drivers/hwmon/pmbus/max20730.c:321:13: warning: cast to smaller integer type 'enum chips' from 'const void *'
@ 2020-03-20 16:15 kbuild test robot
  0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2020-03-20 16:15 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 10917 bytes --]

Hi Rob,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
head:   ac5fe2e6d8244c4d366f7f28400d891502e84481
commit: d047cd8a2760f58d17b8ade21d2f15b818575abc [57/58] scripts/dtc: Update to upstream version v1.6.0-2-g87a656ae5ff9
config: x86_64-randconfig-c002-20200320 (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 6e0aaafbc782bdd2852a48c87a3f6cc8fa667bee)
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout d047cd8a2760f58d17b8ade21d2f15b818575abc
        # save the attached .config to linux build tree
        COMPILER=clang make.cross ARCH=x86_64 

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

All warnings (new ones prefixed by >>):

>> drivers/hwmon/pmbus/max20730.c:321:13: warning: cast to smaller integer type 'enum chips' from 'const void *' [-Wvoid-pointer-to-enum-cast]
                   chip_id = (enum chips)of_device_get_match_data(dev);
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   1 warning generated.
--
>> drivers/media/platform/mtk-mdp/mtk_mdp_core.c:139:15: warning: cast to smaller integer type 'enum mtk_mdp_comp_type' from 'const void *' [-Wvoid-pointer-to-enum-cast]
                   comp_type = (enum mtk_mdp_comp_type)of_id->data;
                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   1 warning generated.
--
>> drivers/i2c/busses/i2c-pxa.c:1227:15: warning: cast to smaller integer type 'enum pxa_i2c_types' from 'const void *' [-Wvoid-pointer-to-enum-cast]
           *i2c_types = (enum pxa_i2c_types)(of_id->data);
                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   1 warning generated.
--
>> drivers/phy/broadcom/phy-brcm-sata.c:767:19: warning: cast to smaller integer type 'enum brcm_sata_phy_version' from 'const void *' [-Wvoid-pointer-to-enum-cast]
                   priv->version = (enum brcm_sata_phy_version)of_id->data;
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   1 warning generated.
--
>> drivers/dma/mmp_tdma.c:640:10: warning: cast to smaller integer type 'enum mmp_tdma_type' from 'const void *' [-Wvoid-pointer-to-enum-cast]
                   type = (enum mmp_tdma_type) of_id->data;
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   1 warning generated.
--
>> drivers/phy/marvell/phy-pxa-usb.c:300:26: warning: cast to smaller integer type 'enum pxa_usb_phy_version' from 'const void *' [-Wvoid-pointer-to-enum-cast]
                   pxa_usb_phy->version = (enum pxa_usb_phy_version)of_id->data;
                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   1 warning generated.
--
>> drivers/regulator/lp872x.c:876:5: warning: cast to smaller integer type 'enum lp872x_regulator_id' from 'void *' [-Wvoid-pointer-to-enum-cast]
                                   (enum lp872x_regulator_id)match[i].driver_data;
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   1 warning generated.
--
>> drivers/hwmon/ad7418.c:255:16: warning: cast to smaller integer type 'enum chips' from 'const void *' [-Wvoid-pointer-to-enum-cast]
                   data->type = (enum chips)of_device_get_match_data(dev);
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   1 warning generated.
--
>> drivers/hwmon/ads7828.c:141:10: warning: cast to smaller integer type 'enum ads7828_chips' from 'const void *' [-Wvoid-pointer-to-enum-cast]
                   chip = (enum ads7828_chips)
                          ^~~~~~~~~~~~~~~~~~~~
   1 warning generated.
--
>> drivers/hwmon/ina2xx.c:445:10: warning: cast to smaller integer type 'enum ina2xx_ids' from 'const void *' [-Wvoid-pointer-to-enum-cast]
                   chip = (enum ina2xx_ids)of_device_get_match_data(&client->dev);
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   1 warning generated.
--
>> drivers/hwmon/lm63.c:1107:16: warning: cast to smaller integer type 'enum chips' from 'const void *' [-Wvoid-pointer-to-enum-cast]
                   data->kind = (enum chips)of_device_get_match_data(&client->dev);
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   1 warning generated.
..

vim +321 drivers/hwmon/pmbus/max20730.c

cce209581a61d0 Guenter Roeck 2019-12-05  261  
cce209581a61d0 Guenter Roeck 2019-12-05  262  static int max20730_probe(struct i2c_client *client,
cce209581a61d0 Guenter Roeck 2019-12-05  263  			  const struct i2c_device_id *id)
cce209581a61d0 Guenter Roeck 2019-12-05  264  {
cce209581a61d0 Guenter Roeck 2019-12-05  265  	struct device *dev = &client->dev;
cce209581a61d0 Guenter Roeck 2019-12-05  266  	u8 buf[I2C_SMBUS_BLOCK_MAX + 1];
cce209581a61d0 Guenter Roeck 2019-12-05  267  	struct max20730_data *data;
cce209581a61d0 Guenter Roeck 2019-12-05  268  	enum chips chip_id;
cce209581a61d0 Guenter Roeck 2019-12-05  269  	int ret;
cce209581a61d0 Guenter Roeck 2019-12-05  270  
cce209581a61d0 Guenter Roeck 2019-12-05  271  	if (!i2c_check_functionality(client->adapter,
cce209581a61d0 Guenter Roeck 2019-12-05  272  				     I2C_FUNC_SMBUS_READ_BYTE_DATA |
cce209581a61d0 Guenter Roeck 2019-12-05  273  				     I2C_FUNC_SMBUS_READ_WORD_DATA |
cce209581a61d0 Guenter Roeck 2019-12-05  274  				     I2C_FUNC_SMBUS_BLOCK_DATA))
cce209581a61d0 Guenter Roeck 2019-12-05  275  		return -ENODEV;
cce209581a61d0 Guenter Roeck 2019-12-05  276  
cce209581a61d0 Guenter Roeck 2019-12-05  277  	ret = i2c_smbus_read_block_data(client, PMBUS_MFR_ID, buf);
cce209581a61d0 Guenter Roeck 2019-12-05  278  	if (ret < 0) {
cce209581a61d0 Guenter Roeck 2019-12-05  279  		dev_err(&client->dev, "Failed to read Manufacturer ID\n");
cce209581a61d0 Guenter Roeck 2019-12-05  280  		return ret;
cce209581a61d0 Guenter Roeck 2019-12-05  281  	}
cce209581a61d0 Guenter Roeck 2019-12-05  282  	if (ret != 5 || strncmp(buf, "MAXIM", 5)) {
cce209581a61d0 Guenter Roeck 2019-12-05  283  		buf[ret] = '\0';
cce209581a61d0 Guenter Roeck 2019-12-05  284  		dev_err(dev, "Unsupported Manufacturer ID '%s'\n", buf);
cce209581a61d0 Guenter Roeck 2019-12-05  285  		return -ENODEV;
cce209581a61d0 Guenter Roeck 2019-12-05  286  	}
cce209581a61d0 Guenter Roeck 2019-12-05  287  
cce209581a61d0 Guenter Roeck 2019-12-05  288  	/*
cce209581a61d0 Guenter Roeck 2019-12-05  289  	 * The chips support reading PMBUS_MFR_MODEL. On both MAX20730
cce209581a61d0 Guenter Roeck 2019-12-05  290  	 * and MAX20734, reading it returns M20743. Presumably that is
cce209581a61d0 Guenter Roeck 2019-12-05  291  	 * the reason why the command is not documented. Unfortunately,
cce209581a61d0 Guenter Roeck 2019-12-05  292  	 * that means that there is no reliable means to detect the chip.
cce209581a61d0 Guenter Roeck 2019-12-05  293  	 * However, we can at least detect the chip series. Compare
cce209581a61d0 Guenter Roeck 2019-12-05  294  	 * the returned value against 'M20743' and bail out if there is
cce209581a61d0 Guenter Roeck 2019-12-05  295  	 * a mismatch. If that doesn't work for all chips, we may have
cce209581a61d0 Guenter Roeck 2019-12-05  296  	 * to remove this check.
cce209581a61d0 Guenter Roeck 2019-12-05  297  	 */
cce209581a61d0 Guenter Roeck 2019-12-05  298  	ret = i2c_smbus_read_block_data(client, PMBUS_MFR_MODEL, buf);
cce209581a61d0 Guenter Roeck 2019-12-05  299  	if (ret < 0) {
cce209581a61d0 Guenter Roeck 2019-12-05  300  		dev_err(dev, "Failed to read Manufacturer Model\n");
cce209581a61d0 Guenter Roeck 2019-12-05  301  		return ret;
cce209581a61d0 Guenter Roeck 2019-12-05  302  	}
cce209581a61d0 Guenter Roeck 2019-12-05  303  	if (ret != 6 || strncmp(buf, "M20743", 6)) {
cce209581a61d0 Guenter Roeck 2019-12-05  304  		buf[ret] = '\0';
cce209581a61d0 Guenter Roeck 2019-12-05  305  		dev_err(dev, "Unsupported Manufacturer Model '%s'\n", buf);
cce209581a61d0 Guenter Roeck 2019-12-05  306  		return -ENODEV;
cce209581a61d0 Guenter Roeck 2019-12-05  307  	}
cce209581a61d0 Guenter Roeck 2019-12-05  308  
cce209581a61d0 Guenter Roeck 2019-12-05  309  	ret = i2c_smbus_read_block_data(client, PMBUS_MFR_REVISION, buf);
cce209581a61d0 Guenter Roeck 2019-12-05  310  	if (ret < 0) {
cce209581a61d0 Guenter Roeck 2019-12-05  311  		dev_err(dev, "Failed to read Manufacturer Revision\n");
cce209581a61d0 Guenter Roeck 2019-12-05  312  		return ret;
cce209581a61d0 Guenter Roeck 2019-12-05  313  	}
cce209581a61d0 Guenter Roeck 2019-12-05  314  	if (ret != 1 || buf[0] != 'F') {
cce209581a61d0 Guenter Roeck 2019-12-05  315  		buf[ret] = '\0';
cce209581a61d0 Guenter Roeck 2019-12-05  316  		dev_err(dev, "Unsupported Manufacturer Revision '%s'\n", buf);
cce209581a61d0 Guenter Roeck 2019-12-05  317  		return -ENODEV;
cce209581a61d0 Guenter Roeck 2019-12-05  318  	}
cce209581a61d0 Guenter Roeck 2019-12-05  319  
cce209581a61d0 Guenter Roeck 2019-12-05  320  	if (client->dev.of_node)
cce209581a61d0 Guenter Roeck 2019-12-05 @321  		chip_id = (enum chips)of_device_get_match_data(dev);
cce209581a61d0 Guenter Roeck 2019-12-05  322  	else
cce209581a61d0 Guenter Roeck 2019-12-05  323  		chip_id = id->driver_data;
cce209581a61d0 Guenter Roeck 2019-12-05  324  
cce209581a61d0 Guenter Roeck 2019-12-05  325  	data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
cce209581a61d0 Guenter Roeck 2019-12-05  326  	if (!data)
cce209581a61d0 Guenter Roeck 2019-12-05  327  		return -ENOMEM;
cce209581a61d0 Guenter Roeck 2019-12-05  328  	data->id = chip_id;
cce209581a61d0 Guenter Roeck 2019-12-05  329  	mutex_init(&data->lock);
cce209581a61d0 Guenter Roeck 2019-12-05  330  	memcpy(&data->info, &max20730_info[chip_id], sizeof(data->info));
cce209581a61d0 Guenter Roeck 2019-12-05  331  
cce209581a61d0 Guenter Roeck 2019-12-05  332  	ret = i2c_smbus_read_word_data(client, MAX20730_MFR_DEVSET1);
cce209581a61d0 Guenter Roeck 2019-12-05  333  	if (ret < 0)
cce209581a61d0 Guenter Roeck 2019-12-05  334  		return ret;
cce209581a61d0 Guenter Roeck 2019-12-05  335  	data->mfr_devset1 = ret;
cce209581a61d0 Guenter Roeck 2019-12-05  336  
cce209581a61d0 Guenter Roeck 2019-12-05  337  	return pmbus_do_probe(client, id, &data->info);
cce209581a61d0 Guenter Roeck 2019-12-05  338  }
cce209581a61d0 Guenter Roeck 2019-12-05  339  

:::::: The code at line 321 was first introduced by commit
:::::: cce209581a61d01f2b7309bed68d22fd8af34ee4 hwmon: (pmbus) Driver for MAX20730, MAX20734, and MAX20743

:::::: TO: Guenter Roeck <linux@roeck-us.net>
:::::: CC: Guenter Roeck <linux@roeck-us.net>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 42033 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-03-20 16:15 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-20 16:15 [robh:for-next 57/58] drivers/hwmon/pmbus/max20730.c:321:13: warning: cast to smaller integer type 'enum chips' from 'const void *' kbuild test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.