Re: [PATCH v2 4/4] hwmon: (lm75) Convert to use regmap

From: kbuild test robot
Date: Thu Jun 30 2016 - 01:39:46 EST


Hi,

[auto build test ERROR on hwmon/hwmon-next]
[also build test ERROR on v4.7-rc5 next-20160629]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/Guenter-Roeck/hwmon-lm75-Handle-cleanup-with-devm_add_action/20160630-114916
base: https://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git hwmon-next
config: m32r-m32104ut_defconfig (attached as .config)
compiler: m32r-linux-gcc (GCC) 4.9.0
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=m32r

All error/warnings (new ones prefixed by >>):

>> drivers/hwmon/lm75.c:198:21: error: variable 'lm75_regmap_config' has initializer but incomplete type
static const struct regmap_config lm75_regmap_config = {
^
>> drivers/hwmon/lm75.c:199:2: error: unknown field 'reg_bits' specified in initializer
.reg_bits = 8,
^
>> drivers/hwmon/lm75.c:199:2: warning: excess elements in struct initializer
drivers/hwmon/lm75.c:199:2: warning: (near initialization for 'lm75_regmap_config')
>> drivers/hwmon/lm75.c:200:2: error: unknown field 'val_bits' specified in initializer
.val_bits = 16,
^
drivers/hwmon/lm75.c:200:2: warning: excess elements in struct initializer
drivers/hwmon/lm75.c:200:2: warning: (near initialization for 'lm75_regmap_config')
>> drivers/hwmon/lm75.c:201:2: error: unknown field 'max_register' specified in initializer
.max_register = LM75_REG_MAX,
^
drivers/hwmon/lm75.c:201:2: warning: excess elements in struct initializer
drivers/hwmon/lm75.c:201:2: warning: (near initialization for 'lm75_regmap_config')
>> drivers/hwmon/lm75.c:202:2: error: unknown field 'writeable_reg' specified in initializer
.writeable_reg = lm75_is_writeable_reg,
^
drivers/hwmon/lm75.c:202:2: warning: excess elements in struct initializer
drivers/hwmon/lm75.c:202:2: warning: (near initialization for 'lm75_regmap_config')
>> drivers/hwmon/lm75.c:203:2: error: unknown field 'volatile_reg' specified in initializer
.volatile_reg = lm75_is_volatile_reg,
^
drivers/hwmon/lm75.c:203:2: warning: excess elements in struct initializer
drivers/hwmon/lm75.c:203:2: warning: (near initialization for 'lm75_regmap_config')
>> drivers/hwmon/lm75.c:204:2: error: unknown field 'val_format_endian' specified in initializer
.val_format_endian = REGMAP_ENDIAN_BIG,
^
>> drivers/hwmon/lm75.c:204:23: error: 'REGMAP_ENDIAN_BIG' undeclared here (not in a function)
.val_format_endian = REGMAP_ENDIAN_BIG,
^
drivers/hwmon/lm75.c:204:2: warning: excess elements in struct initializer
.val_format_endian = REGMAP_ENDIAN_BIG,
^
drivers/hwmon/lm75.c:204:2: warning: (near initialization for 'lm75_regmap_config')
>> drivers/hwmon/lm75.c:205:2: error: unknown field 'cache_type' specified in initializer
.cache_type = REGCACHE_RBTREE,
^
drivers/hwmon/lm75.c:205:2: warning: excess elements in struct initializer
drivers/hwmon/lm75.c:205:2: warning: (near initialization for 'lm75_regmap_config')
>> drivers/hwmon/lm75.c:206:2: error: unknown field 'use_single_rw' specified in initializer
.use_single_rw = true,
^
drivers/hwmon/lm75.c:206:2: warning: excess elements in struct initializer
drivers/hwmon/lm75.c:206:2: warning: (near initialization for 'lm75_regmap_config')
drivers/hwmon/lm75.c: In function 'lm75_probe':
>> drivers/hwmon/lm75.c:238:2: error: implicit declaration of function 'devm_regmap_init_i2c' [-Werror=implicit-function-declaration]
data->regmap = devm_regmap_init_i2c(client, &lm75_regmap_config);
^
>> drivers/hwmon/lm75.c:238:15: warning: assignment makes pointer from integer without a cast
data->regmap = devm_regmap_init_i2c(client, &lm75_regmap_config);
^
cc1: some warnings being treated as errors

vim +/lm75_regmap_config +198 drivers/hwmon/lm75.c

192
193 static bool lm75_is_volatile_reg(struct device *dev, unsigned int reg)
194 {
195 return reg == LM75_REG_TEMP;
196 }
197
> 198 static const struct regmap_config lm75_regmap_config = {
> 199 .reg_bits = 8,
> 200 .val_bits = 16,
> 201 .max_register = LM75_REG_MAX,
> 202 .writeable_reg = lm75_is_writeable_reg,
> 203 .volatile_reg = lm75_is_volatile_reg,
> 204 .val_format_endian = REGMAP_ENDIAN_BIG,
> 205 .cache_type = REGCACHE_RBTREE,
> 206 .use_single_rw = true,
207 };
208
209 static void lm75_remove(void *data)
210 {
211 struct lm75_data *lm75 = data;
212 struct i2c_client *client = lm75->client;
213
214 i2c_smbus_write_byte_data(client, LM75_REG_CONF, lm75->orig_conf);
215 }
216
217 static int
218 lm75_probe(struct i2c_client *client, const struct i2c_device_id *id)
219 {
220 struct device *dev = &client->dev;
221 struct device *hwmon_dev;
222 struct lm75_data *data;
223 int status;
224 u8 set_mask, clr_mask;
225 int new;
226 enum lm75_type kind = id->driver_data;
227
228 if (!i2c_check_functionality(client->adapter,
229 I2C_FUNC_SMBUS_BYTE_DATA | I2C_FUNC_SMBUS_WORD_DATA))
230 return -EIO;
231
232 data = devm_kzalloc(dev, sizeof(struct lm75_data), GFP_KERNEL);
233 if (!data)
234 return -ENOMEM;
235
236 data->client = client;
237
> 238 data->regmap = devm_regmap_init_i2c(client, &lm75_regmap_config);
239 if (IS_ERR(data->regmap))
240 return PTR_ERR(data->regmap);
241

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: Binary data