Hi Bartosz, I love your patch! Yet something to improve: [auto build test ERROR on iio/togreg] [cannot apply to v5.4-rc1 next-20191002] [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/Bartosz-Golaszewski/iio-pressure-bmp280-code-shrink/20191002-194508 base: https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git togreg config: sh-allmodconfig (attached as .config) compiler: sh4-linux-gcc (GCC) 7.4.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=7.4.0 make.cross ARCH=sh If you fix the issue, kindly add following tag Reported-by: kbuild test robot All errors (new ones prefixed by >>): drivers/iio/pressure/bmp280-core.c: In function 'bmp280_common_probe': >> drivers/iio/pressure/bmp280-core.c:1041:2: error: implicit declaration of function 'regulator_bulk_set_supply_names'; did you mean 'regulator_bulk_register_supply_alias'? [-Werror=implicit-function-declaration] regulator_bulk_set_supply_names(data->supplies, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ regulator_bulk_register_supply_alias cc1: some warnings being treated as errors vim +1041 drivers/iio/pressure/bmp280-core.c 986 987 int bmp280_common_probe(struct device *dev, 988 struct regmap *regmap, 989 unsigned int chip, 990 const char *name, 991 int irq) 992 { 993 int ret; 994 struct iio_dev *indio_dev; 995 struct bmp280_data *data; 996 unsigned int chip_id; 997 struct gpio_desc *gpiod; 998 999 indio_dev = devm_iio_device_alloc(dev, sizeof(*data)); 1000 if (!indio_dev) 1001 return -ENOMEM; 1002 1003 data = iio_priv(indio_dev); 1004 mutex_init(&data->lock); 1005 data->dev = dev; 1006 1007 indio_dev->dev.parent = dev; 1008 indio_dev->name = name; 1009 indio_dev->channels = bmp280_channels; 1010 indio_dev->info = &bmp280_info; 1011 indio_dev->modes = INDIO_DIRECT_MODE; 1012 1013 switch (chip) { 1014 case BMP180_CHIP_ID: 1015 indio_dev->num_channels = 2; 1016 data->chip_info = &bmp180_chip_info; 1017 data->oversampling_press = ilog2(8); 1018 data->oversampling_temp = ilog2(1); 1019 data->start_up_time = 10000; 1020 break; 1021 case BMP280_CHIP_ID: 1022 indio_dev->num_channels = 2; 1023 data->chip_info = &bmp280_chip_info; 1024 data->oversampling_press = ilog2(16); 1025 data->oversampling_temp = ilog2(2); 1026 data->start_up_time = 2000; 1027 break; 1028 case BME280_CHIP_ID: 1029 indio_dev->num_channels = 3; 1030 data->chip_info = &bme280_chip_info; 1031 data->oversampling_press = ilog2(16); 1032 data->oversampling_humid = ilog2(16); 1033 data->oversampling_temp = ilog2(2); 1034 data->start_up_time = 2000; 1035 break; 1036 default: 1037 return -EINVAL; 1038 } 1039 1040 /* Bring up regulators */ > 1041 regulator_bulk_set_supply_names(data->supplies, 1042 bmp280_supply_names, 1043 BMP280_NUM_SUPPLIES); 1044 1045 ret = devm_regulator_bulk_get(dev, 1046 BMP280_NUM_SUPPLIES, data->supplies); 1047 if (ret) { 1048 dev_err(dev, "failed to get regulators\n"); 1049 return ret; 1050 } 1051 1052 ret = regulator_bulk_enable(BMP280_NUM_SUPPLIES, data->supplies); 1053 if (ret) { 1054 dev_err(dev, "failed to enable regulators\n"); 1055 return ret; 1056 } 1057 1058 /* Wait to make sure we started up properly */ 1059 usleep_range(data->start_up_time, data->start_up_time + 100); 1060 1061 /* Bring chip out of reset if there is an assigned GPIO line */ 1062 gpiod = devm_gpiod_get(dev, "reset", GPIOD_OUT_HIGH); 1063 /* Deassert the signal */ 1064 if (!IS_ERR(gpiod)) { 1065 dev_info(dev, "release reset\n"); 1066 gpiod_set_value(gpiod, 0); 1067 } 1068 1069 data->regmap = regmap; 1070 ret = regmap_read(regmap, BMP280_REG_ID, &chip_id); 1071 if (ret < 0) 1072 goto out_disable_regulators; 1073 if (chip_id != chip) { 1074 dev_err(dev, "bad chip id: expected %x got %x\n", 1075 chip, chip_id); 1076 ret = -EINVAL; 1077 goto out_disable_regulators; 1078 } 1079 1080 ret = data->chip_info->chip_config(data); 1081 if (ret < 0) 1082 goto out_disable_regulators; 1083 1084 dev_set_drvdata(dev, indio_dev); 1085 1086 /* 1087 * Some chips have calibration parameters "programmed into the devices' 1088 * non-volatile memory during production". Let's read them out at probe 1089 * time once. They will not change. 1090 */ 1091 if (chip_id == BMP180_CHIP_ID) { 1092 ret = bmp180_read_calib(data, &data->calib.bmp180); 1093 if (ret < 0) { 1094 dev_err(data->dev, 1095 "failed to read calibration coefficients\n"); 1096 goto out_disable_regulators; 1097 } 1098 } else if (chip_id == BMP280_CHIP_ID || chip_id == BME280_CHIP_ID) { 1099 ret = bmp280_read_calib(data, &data->calib.bmp280, chip_id); 1100 if (ret < 0) { 1101 dev_err(data->dev, 1102 "failed to read calibration coefficients\n"); 1103 goto out_disable_regulators; 1104 } 1105 } 1106 1107 /* 1108 * Attempt to grab an optional EOC IRQ - only the BMP085 has this 1109 * however as it happens, the BMP085 shares the chip ID of BMP180 1110 * so we look for an IRQ if we have that. 1111 */ 1112 if (irq > 0 || (chip_id == BMP180_CHIP_ID)) { 1113 ret = bmp085_fetch_eoc_irq(dev, name, irq, data); 1114 if (ret) 1115 goto out_disable_regulators; 1116 } 1117 1118 /* Enable runtime PM */ 1119 pm_runtime_get_noresume(dev); 1120 pm_runtime_set_active(dev); 1121 pm_runtime_enable(dev); 1122 /* 1123 * Set autosuspend to two orders of magnitude larger than the 1124 * start-up time. 1125 */ 1126 pm_runtime_set_autosuspend_delay(dev, data->start_up_time / 10); 1127 pm_runtime_use_autosuspend(dev); 1128 pm_runtime_put(dev); 1129 1130 ret = iio_device_register(indio_dev); 1131 if (ret) 1132 goto out_runtime_pm_disable; 1133 1134 1135 return 0; 1136 1137 out_runtime_pm_disable: 1138 pm_runtime_get_sync(data->dev); 1139 pm_runtime_put_noidle(data->dev); 1140 pm_runtime_disable(data->dev); 1141 out_disable_regulators: 1142 regulator_bulk_disable(BMP280_NUM_SUPPLIES, data->supplies); 1143 return ret; 1144 } 1145 EXPORT_SYMBOL(bmp280_common_probe); 1146 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation