Re: [PATCH v3 2/2] drivers:iio:dac: Add AD3552R driver support

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

 



Hi Mihail,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on ef226dcf3d88697a06335fbc55c4263ab164b135]

url:    https://github.com/0day-ci/linux/commits/Mihail-Chindris/drivers-iio-dac-Add-AD3552R-driver-support/20211021-151417
base:   ef226dcf3d88697a06335fbc55c4263ab164b135
config: nios2-allyesconfig (attached as .config)
compiler: nios2-linux-gcc (GCC) 11.2.0
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
        # https://github.com/0day-ci/linux/commit/6c22b3c7b44166beec8e31f25025042cc0da1ba7
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Mihail-Chindris/drivers-iio-dac-Add-AD3552R-driver-support/20211021-151417
        git checkout 6c22b3c7b44166beec8e31f25025042cc0da1ba7
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=nios2 

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

All errors (new ones prefixed by >>):

   drivers/iio/dac/ad3552r.c: In function 'ad3552r_configure_device':
>> drivers/iio/dac/ad3552r.c:978:14: error: variable 'is_custom' set but not used [-Werror=unused-but-set-variable]
     978 |         bool is_custom;
         |              ^~~~~~~~~
   cc1: all warnings being treated as errors


vim +/is_custom +978 drivers/iio/dac/ad3552r.c

   970	
   971	static int ad3552r_configure_device(struct ad3552r_desc *dac)
   972	{
   973		struct device *dev = &dac->spi->dev;
   974		struct fwnode_handle *child;
   975		struct regulator *vref;
   976		int err, cnt = 0, voltage, delta = 100000;
   977		u32 vals[2], val, ch;
 > 978		bool is_custom;
   979	
   980		dac->gpio_ldac = devm_gpiod_get_optional(dev, "ldac", GPIOD_OUT_HIGH);
   981		if (IS_ERR(dac->gpio_ldac))
   982			return dev_err_probe(dev, PTR_ERR(dac->gpio_ldac),
   983					     "Error getting gpio ldac");
   984	
   985		vref = devm_regulator_get_optional(dev, "vref");
   986		if (IS_ERR(vref)) {
   987			if (PTR_ERR(vref) != -ENODEV)
   988				return dev_err_probe(dev, PTR_ERR(vref),
   989						     "Error getting vref");
   990			vref = NULL;
   991		}
   992		if (vref) {
   993			voltage = regulator_get_voltage(vref);
   994			if (voltage > 2500000 + delta || voltage < 2500000 - delta) {
   995				dev_warn(dev, "vref-supply must be 2.5V");
   996				return -EINVAL;
   997			}
   998			val = AD3552R_EXTERNAL_VREF_PIN_INPUT;
   999		} else {
  1000			if (device_property_read_bool(dev, "adi,vref-out-en"))
  1001				val = AD3552R_INTERNAL_VREF_PIN_2P5V;
  1002			else
  1003				val = AD3552R_INTERNAL_VREF_PIN_FLOATING;
  1004		}
  1005		err = ad3552r_update_reg_field(dac,
  1006					       addr_mask_map[AD3552R_VREF_SELECT][0],
  1007					       addr_mask_map[AD3552R_VREF_SELECT][1],
  1008					       val);
  1009		if (err)
  1010			return err;
  1011	
  1012		err = device_property_read_u32(dev, "adi,sdo-drive-strength", &val);
  1013		if (!err) {
  1014			if (val > 3)
  1015				return dev_err_probe(dev, -EINVAL,
  1016						     "adi,sdo-drive-strength must be less than 4\n");
  1017	
  1018			err = ad3552r_update_reg_field(dac,
  1019						       addr_mask_map[AD3552R_SDO_DRIVE_STRENGTH][0],
  1020						       addr_mask_map[AD3552R_SDO_DRIVE_STRENGTH][1],
  1021						       val);
  1022			if (err)
  1023				return err;
  1024		}
  1025	
  1026		dac->num_ch = device_get_child_node_count(dev);
  1027		if (!dac->num_ch)
  1028			return dev_err_probe(dev, -ENODEV, "No channels defined\n");
  1029	
  1030		device_for_each_child_node(dev, child) {
  1031			err = fwnode_property_read_u32(child, "reg", &ch);
  1032			if (err) {
  1033				dev_err_probe(dev, err,
  1034					      "mandatory reg property missing\n");
  1035				goto put_child;
  1036			}
  1037			if (ch >= AD3552R_NUM_CH) {
  1038				dev_err_probe(dev, err, "reg must be less than %d\n",
  1039					      AD3552R_NUM_CH);
  1040				err = -EINVAL;
  1041				goto put_child;
  1042			}
  1043	
  1044			if (fwnode_property_present(child, "adi,output-range-microvolt")) {
  1045				is_custom = false;
  1046				err = fwnode_property_read_u32_array(child,
  1047								     "adi,output-range-microvolt",
  1048								     vals,
  1049								     2);
  1050				if (err) {
  1051					dev_err_probe(dev, err,
  1052						      "mandatory adi,output-range-microvolt property missing\n");
  1053					goto put_child;
  1054				}
  1055	
  1056				val = ad3552r_find_range(dac->chip_id, vals);
  1057				if ((s32)val < 0) {
  1058					err = -EINVAL;
  1059					dev_err_probe(dev, err,
  1060						      "Invalid adi,output-range-microvolt value\n");
  1061					goto put_child;
  1062				}
  1063				err = ad3552r_set_ch_value(dac,
  1064							   AD3552R_CH_OUTPUT_RANGE_SEL,
  1065							   ch, val);
  1066				if (err)
  1067					goto put_child;
  1068	
  1069				dac->ch_data[ch].range = val;
  1070			} else {
  1071				is_custom = true;
  1072				err = ad3552r_configure_custom_gain(dac, child, ch);
  1073				if (err)
  1074					goto put_child;
  1075			}
  1076	
  1077			ad3552r_calc_gain_and_offset(dac, ch);
  1078			dac->enabled_ch |= BIT(ch);
  1079	
  1080			err = ad3552r_set_ch_value(dac, AD3552R_CH_SELECT, ch, 1);
  1081			if (err < 0)
  1082				return err;
  1083	
  1084			dac->channels[cnt] = AD3552R_CH_DAC(ch);
  1085			++cnt;
  1086	
  1087		}
  1088	
  1089		/* Disable unused channels */
  1090		for_each_clear_bit(ch, &dac->enabled_ch, AD3552R_NUM_CH) {
  1091			err = ad3552r_set_ch_value(dac, AD3552R_CH_AMPLIFIER_POWERDOWN,
  1092						   ch, 0);
  1093			if (err)
  1094				return err;
  1095		}
  1096	
  1097		dac->num_ch = cnt;
  1098	
  1099		return 0;
  1100	put_child:
  1101		fwnode_handle_put(child);
  1102	
  1103		return err;
  1104	}
  1105	

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

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux