[linux-next:master 6248/7300] drivers/hwmon/max31827.c:394:16: sparse: sparse: dubious: x & !y

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   48e8992e33abf054bcc0bb2e77b2d43bb899212e
commit: 88548710d2aed71677f7594a78219bf081d4297f [6248/7300] hwmon: (max31827) Handle new properties from the devicetree
config: arc-randconfig-r131-20231212 (https://download.01.org/0day-ci/archive/20231214/202312140633.nmHowPIh-lkp@xxxxxxxxx/config)
compiler: arceb-elf-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20231214/202312140633.nmHowPIh-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202312140633.nmHowPIh-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
>> drivers/hwmon/max31827.c:394:16: sparse: sparse: dubious: x & !y
   drivers/hwmon/max31827.c:401:24: sparse: sparse: dubious: x & !y

vim +394 drivers/hwmon/max31827.c

   373	
   374	static int max31827_init_client(struct max31827_state *st,
   375					struct device *dev)
   376	{
   377		struct fwnode_handle *fwnode;
   378		unsigned int res = 0;
   379		u32 data, lsb_idx;
   380		bool prop;
   381		int ret;
   382	
   383		fwnode = dev_fwnode(dev);
   384	
   385		st->enable = true;
   386		res |= MAX31827_DEVICE_ENABLE(1);
   387	
   388		res |= MAX31827_CONFIGURATION_RESOLUTION_MASK;
   389	
   390		prop = fwnode_property_read_bool(fwnode, "adi,comp-int");
   391		res |= FIELD_PREP(MAX31827_CONFIGURATION_COMP_INT_MASK, prop);
   392	
   393		prop = fwnode_property_read_bool(fwnode, "adi,timeout-enable");
 > 394		res |= FIELD_PREP(MAX31827_CONFIGURATION_TIMEOUT_MASK, !prop);
   395	
   396		if (fwnode_property_present(fwnode, "adi,alarm-pol")) {
   397			ret = fwnode_property_read_u32(fwnode, "adi,alarm-pol", &data);
   398			if (ret)
   399				return ret;
   400	
   401			res |= FIELD_PREP(MAX31827_CONFIGURATION_ALRM_POL_MASK, !!data);
   402		} else {
   403			/*
   404			 * Set default value.
   405			 */
   406			res |= FIELD_PREP(MAX31827_CONFIGURATION_ALRM_POL_MASK,
   407					  MAX31827_ALRM_POL_LOW);
   408		}
   409	
   410		if (fwnode_property_present(fwnode, "adi,fault-q")) {
   411			ret = fwnode_property_read_u32(fwnode, "adi,fault-q", &data);
   412			if (ret)
   413				return ret;
   414	
   415			/*
   416			 * Convert the desired fault queue into register bits.
   417			 */
   418			if (data != 0)
   419				lsb_idx = __ffs(data);
   420	
   421			if (hweight32(data) != 1 || lsb_idx > 4) {
   422				dev_err(dev, "Invalid data in adi,fault-q\n");
   423				return -EINVAL;
   424			}
   425	
   426			res |= FIELD_PREP(MAX31827_CONFIGURATION_FLT_Q_MASK, lsb_idx);
   427		} else {
   428			/*
   429			 * Set default value.
   430			 */
   431			res |= FIELD_PREP(MAX31827_CONFIGURATION_FLT_Q_MASK,
   432					  MAX31827_FLT_Q_1);
   433		}
   434	
   435		return regmap_write(st->regmap, MAX31827_CONFIGURATION_REG, res);
   436	}
   437	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux