mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-03-18 21:14:28 +00:00
hwmon: (max16065) Convert to use devm_kzalloc
Marginally less code and eliminate the possibility of memory leaks. Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
parent
b8a5a7cebd
commit
918ddef35f
1 changed files with 7 additions and 16 deletions
|
@ -554,7 +554,7 @@ static int max16065_probe(struct i2c_client *client,
|
||||||
| I2C_FUNC_SMBUS_READ_WORD_DATA))
|
| I2C_FUNC_SMBUS_READ_WORD_DATA))
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
data = kzalloc(sizeof(*data), GFP_KERNEL);
|
data = devm_kzalloc(&client->dev, sizeof(*data), GFP_KERNEL);
|
||||||
if (unlikely(!data))
|
if (unlikely(!data))
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
@ -567,20 +567,16 @@ static int max16065_probe(struct i2c_client *client,
|
||||||
|
|
||||||
if (have_secondary) {
|
if (have_secondary) {
|
||||||
val = i2c_smbus_read_byte_data(client, MAX16065_SW_ENABLE);
|
val = i2c_smbus_read_byte_data(client, MAX16065_SW_ENABLE);
|
||||||
if (unlikely(val < 0)) {
|
if (unlikely(val < 0))
|
||||||
ret = val;
|
return val;
|
||||||
goto out_free;
|
|
||||||
}
|
|
||||||
secondary_is_max = val & MAX16065_WARNING_OV;
|
secondary_is_max = val & MAX16065_WARNING_OV;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Read scale registers, convert to range */
|
/* Read scale registers, convert to range */
|
||||||
for (i = 0; i < DIV_ROUND_UP(data->num_adc, 4); i++) {
|
for (i = 0; i < DIV_ROUND_UP(data->num_adc, 4); i++) {
|
||||||
val = i2c_smbus_read_byte_data(client, MAX16065_SCALE(i));
|
val = i2c_smbus_read_byte_data(client, MAX16065_SCALE(i));
|
||||||
if (unlikely(val < 0)) {
|
if (unlikely(val < 0))
|
||||||
ret = val;
|
return val;
|
||||||
goto out_free;
|
|
||||||
}
|
|
||||||
for (j = 0; j < 4 && i * 4 + j < data->num_adc; j++) {
|
for (j = 0; j < 4 && i * 4 + j < data->num_adc; j++) {
|
||||||
data->range[i * 4 + j] =
|
data->range[i * 4 + j] =
|
||||||
max16065_adc_range[(val >> (j * 2)) & 0x3];
|
max16065_adc_range[(val >> (j * 2)) & 0x3];
|
||||||
|
@ -595,10 +591,8 @@ static int max16065_probe(struct i2c_client *client,
|
||||||
for (j = 0; j < data->num_adc; j++) {
|
for (j = 0; j < data->num_adc; j++) {
|
||||||
val = i2c_smbus_read_byte_data(client,
|
val = i2c_smbus_read_byte_data(client,
|
||||||
MAX16065_LIMIT(i, j));
|
MAX16065_LIMIT(i, j));
|
||||||
if (unlikely(val < 0)) {
|
if (unlikely(val < 0))
|
||||||
ret = val;
|
return val;
|
||||||
goto out_free;
|
|
||||||
}
|
|
||||||
data->limit[i][j] = LIMIT_TO_MV(val, data->range[j]);
|
data->limit[i][j] = LIMIT_TO_MV(val, data->range[j]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -661,8 +655,6 @@ static int max16065_probe(struct i2c_client *client,
|
||||||
|
|
||||||
out:
|
out:
|
||||||
max16065_cleanup(client);
|
max16065_cleanup(client);
|
||||||
out_free:
|
|
||||||
kfree(data);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -672,7 +664,6 @@ static int max16065_remove(struct i2c_client *client)
|
||||||
|
|
||||||
hwmon_device_unregister(data->hwmon_dev);
|
hwmon_device_unregister(data->hwmon_dev);
|
||||||
max16065_cleanup(client);
|
max16065_cleanup(client);
|
||||||
kfree(data);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue