Loading drivers/hwmon/pmbus/adm1275.c +3 −13 Original line number Diff line number Diff line Loading @@ -229,7 +229,8 @@ static int adm1275_probe(struct i2c_client *client, if (device_config < 0) return device_config; data = kzalloc(sizeof(struct adm1275_data), GFP_KERNEL); data = devm_kzalloc(&client->dev, sizeof(struct adm1275_data), GFP_KERNEL); if (!data) return -ENOMEM; Loading Loading @@ -297,23 +298,12 @@ static int adm1275_probe(struct i2c_client *client, break; } ret = pmbus_do_probe(client, id, info); if (ret) goto err_mem; return 0; err_mem: kfree(data); return ret; return pmbus_do_probe(client, id, info); } static int adm1275_remove(struct i2c_client *client) { const struct pmbus_driver_info *info = pmbus_get_driver_info(client); const struct adm1275_data *data = to_adm1275_data(info); pmbus_do_remove(client); kfree(data); return 0; } Loading drivers/hwmon/pmbus/lm25066.c +6 −20 Original line number Diff line number Diff line Loading @@ -176,7 +176,6 @@ static int lm25066_probe(struct i2c_client *client, const struct i2c_device_id *id) { int config; int ret; struct lm25066_data *data; struct pmbus_driver_info *info; Loading @@ -184,15 +183,14 @@ static int lm25066_probe(struct i2c_client *client, I2C_FUNC_SMBUS_READ_BYTE_DATA)) return -ENODEV; data = kzalloc(sizeof(struct lm25066_data), GFP_KERNEL); data = devm_kzalloc(&client->dev, sizeof(struct lm25066_data), GFP_KERNEL); if (!data) return -ENOMEM; config = i2c_smbus_read_byte_data(client, LM25066_DEVICE_SETUP); if (config < 0) { ret = config; goto err_mem; } if (config < 0) return config; data->id = id->driver_data; info = &data->info; Loading Loading @@ -291,27 +289,15 @@ static int lm25066_probe(struct i2c_client *client, } break; default: ret = -ENODEV; goto err_mem; return -ENODEV; } ret = pmbus_do_probe(client, id, info); if (ret) goto err_mem; return 0; err_mem: kfree(data); return ret; return pmbus_do_probe(client, id, info); } static int lm25066_remove(struct i2c_client *client) { const struct pmbus_driver_info *info = pmbus_get_driver_info(client); const struct lm25066_data *data = to_lm25066_data(info); pmbus_do_remove(client); kfree(data); return 0; } Loading drivers/hwmon/pmbus/ltc2978.c +8 −22 Original line number Diff line number Diff line Loading @@ -287,7 +287,7 @@ MODULE_DEVICE_TABLE(i2c, ltc2978_id); static int ltc2978_probe(struct i2c_client *client, const struct i2c_device_id *id) { int chip_id, ret, i; int chip_id, i; struct ltc2978_data *data; struct pmbus_driver_info *info; Loading @@ -295,15 +295,14 @@ static int ltc2978_probe(struct i2c_client *client, I2C_FUNC_SMBUS_READ_WORD_DATA)) return -ENODEV; data = kzalloc(sizeof(struct ltc2978_data), GFP_KERNEL); data = devm_kzalloc(&client->dev, sizeof(struct ltc2978_data), GFP_KERNEL); if (!data) return -ENOMEM; chip_id = i2c_smbus_read_word_data(client, LTC2978_MFR_SPECIAL_ID); if (chip_id < 0) { ret = chip_id; goto err_mem; } if (chip_id < 0) return chip_id; if (chip_id == LTC2978_ID_REV1 || chip_id == LTC2978_ID_REV2) { data->id = ltc2978; Loading @@ -311,8 +310,7 @@ static int ltc2978_probe(struct i2c_client *client, data->id = ltc3880; } else { dev_err(&client->dev, "Unsupported chip ID 0x%x\n", chip_id); ret = -ENODEV; goto err_mem; return -ENODEV; } if (data->id != id->driver_data) dev_warn(&client->dev, Loading Loading @@ -357,27 +355,15 @@ static int ltc2978_probe(struct i2c_client *client, data->vout_min[1] = 0xffff; break; default: ret = -ENODEV; goto err_mem; return -ENODEV; } ret = pmbus_do_probe(client, id, info); if (ret) goto err_mem; return 0; err_mem: kfree(data); return ret; return pmbus_do_probe(client, id, info); } static int ltc2978_remove(struct i2c_client *client) { const struct pmbus_driver_info *info = pmbus_get_driver_info(client); const struct ltc2978_data *data = to_ltc2978_data(info); pmbus_do_remove(client); kfree(data); return 0; } Loading drivers/hwmon/pmbus/pmbus.c +3 −14 Original line number Diff line number Diff line Loading @@ -166,32 +166,21 @@ static int pmbus_probe(struct i2c_client *client, const struct i2c_device_id *id) { struct pmbus_driver_info *info; int ret; info = kzalloc(sizeof(struct pmbus_driver_info), GFP_KERNEL); info = devm_kzalloc(&client->dev, sizeof(struct pmbus_driver_info), GFP_KERNEL); if (!info) return -ENOMEM; info->pages = id->driver_data; info->identify = pmbus_identify; ret = pmbus_do_probe(client, id, info); if (ret < 0) goto out; return 0; out: kfree(info); return ret; return pmbus_do_probe(client, id, info); } static int pmbus_remove(struct i2c_client *client) { const struct pmbus_driver_info *info; info = pmbus_get_driver_info(client); pmbus_do_remove(client); kfree(info); return 0; } Loading drivers/hwmon/pmbus/pmbus_core.c +18 −36 Original line number Diff line number Diff line Loading @@ -1676,7 +1676,7 @@ int pmbus_do_probe(struct i2c_client *client, const struct i2c_device_id *id, | I2C_FUNC_SMBUS_WORD_DATA)) return -ENODEV; data = kzalloc(sizeof(*data), GFP_KERNEL); data = devm_kzalloc(&client->dev, sizeof(*data), GFP_KERNEL); if (!data) { dev_err(&client->dev, "No memory to allocate driver data\n"); return -ENOMEM; Loading @@ -1688,8 +1688,7 @@ int pmbus_do_probe(struct i2c_client *client, const struct i2c_device_id *id, /* Bail out if PMBus status register does not exist. */ if (i2c_smbus_read_byte_data(client, PMBUS_STATUS_BYTE) < 0) { dev_err(&client->dev, "PMBus status register not found\n"); ret = -ENODEV; goto out_data; return -ENODEV; } if (pdata) Loading @@ -1702,50 +1701,49 @@ int pmbus_do_probe(struct i2c_client *client, const struct i2c_device_id *id, ret = (*info->identify)(client, info); if (ret < 0) { dev_err(&client->dev, "Chip identification failed\n"); goto out_data; return ret; } } if (info->pages <= 0 || info->pages > PMBUS_PAGES) { dev_err(&client->dev, "Bad number of PMBus pages: %d\n", info->pages); ret = -ENODEV; goto out_data; return -ENODEV; } ret = pmbus_identify_common(client, data); if (ret < 0) { dev_err(&client->dev, "Failed to identify chip capabilities\n"); goto out_data; return ret; } ret = -ENOMEM; data->sensors = kzalloc(sizeof(struct pmbus_sensor) * data->max_sensors, GFP_KERNEL); data->sensors = devm_kzalloc(&client->dev, sizeof(struct pmbus_sensor) * data->max_sensors, GFP_KERNEL); if (!data->sensors) { dev_err(&client->dev, "No memory to allocate sensor data\n"); goto out_data; return -ENOMEM; } data->booleans = kzalloc(sizeof(struct pmbus_boolean) data->booleans = devm_kzalloc(&client->dev, sizeof(struct pmbus_boolean) * data->max_booleans, GFP_KERNEL); if (!data->booleans) { dev_err(&client->dev, "No memory to allocate boolean data\n"); goto out_sensors; return -ENOMEM; } data->labels = kzalloc(sizeof(struct pmbus_label) * data->max_labels, GFP_KERNEL); data->labels = devm_kzalloc(&client->dev, sizeof(struct pmbus_label) * data->max_labels, GFP_KERNEL); if (!data->labels) { dev_err(&client->dev, "No memory to allocate label data\n"); goto out_booleans; return -ENOMEM; } data->attributes = kzalloc(sizeof(struct attribute *) data->attributes = devm_kzalloc(&client->dev, sizeof(struct attribute *) * data->max_attributes, GFP_KERNEL); if (!data->attributes) { dev_err(&client->dev, "No memory to allocate attribute data\n"); goto out_labels; return -ENOMEM; } pmbus_find_attributes(client, data); Loading @@ -1756,8 +1754,7 @@ int pmbus_do_probe(struct i2c_client *client, const struct i2c_device_id *id, */ if (!data->num_attributes) { dev_err(&client->dev, "No attributes found\n"); ret = -ENODEV; goto out_attributes; return -ENODEV; } /* Register sysfs hooks */ Loading @@ -1765,7 +1762,7 @@ int pmbus_do_probe(struct i2c_client *client, const struct i2c_device_id *id, ret = sysfs_create_group(&client->dev.kobj, &data->group); if (ret) { dev_err(&client->dev, "Failed to create sysfs entries\n"); goto out_attributes; return ret; } data->hwmon_dev = hwmon_device_register(&client->dev); if (IS_ERR(data->hwmon_dev)) { Loading @@ -1777,16 +1774,6 @@ int pmbus_do_probe(struct i2c_client *client, const struct i2c_device_id *id, out_hwmon_device_register: sysfs_remove_group(&client->dev.kobj, &data->group); out_attributes: kfree(data->attributes); out_labels: kfree(data->labels); out_booleans: kfree(data->booleans); out_sensors: kfree(data->sensors); out_data: kfree(data); return ret; } EXPORT_SYMBOL_GPL(pmbus_do_probe); Loading @@ -1796,11 +1783,6 @@ void pmbus_do_remove(struct i2c_client *client) struct pmbus_data *data = i2c_get_clientdata(client); hwmon_device_unregister(data->hwmon_dev); sysfs_remove_group(&client->dev.kobj, &data->group); kfree(data->attributes); kfree(data->labels); kfree(data->booleans); kfree(data->sensors); kfree(data); } EXPORT_SYMBOL_GPL(pmbus_do_remove); Loading Loading
drivers/hwmon/pmbus/adm1275.c +3 −13 Original line number Diff line number Diff line Loading @@ -229,7 +229,8 @@ static int adm1275_probe(struct i2c_client *client, if (device_config < 0) return device_config; data = kzalloc(sizeof(struct adm1275_data), GFP_KERNEL); data = devm_kzalloc(&client->dev, sizeof(struct adm1275_data), GFP_KERNEL); if (!data) return -ENOMEM; Loading Loading @@ -297,23 +298,12 @@ static int adm1275_probe(struct i2c_client *client, break; } ret = pmbus_do_probe(client, id, info); if (ret) goto err_mem; return 0; err_mem: kfree(data); return ret; return pmbus_do_probe(client, id, info); } static int adm1275_remove(struct i2c_client *client) { const struct pmbus_driver_info *info = pmbus_get_driver_info(client); const struct adm1275_data *data = to_adm1275_data(info); pmbus_do_remove(client); kfree(data); return 0; } Loading
drivers/hwmon/pmbus/lm25066.c +6 −20 Original line number Diff line number Diff line Loading @@ -176,7 +176,6 @@ static int lm25066_probe(struct i2c_client *client, const struct i2c_device_id *id) { int config; int ret; struct lm25066_data *data; struct pmbus_driver_info *info; Loading @@ -184,15 +183,14 @@ static int lm25066_probe(struct i2c_client *client, I2C_FUNC_SMBUS_READ_BYTE_DATA)) return -ENODEV; data = kzalloc(sizeof(struct lm25066_data), GFP_KERNEL); data = devm_kzalloc(&client->dev, sizeof(struct lm25066_data), GFP_KERNEL); if (!data) return -ENOMEM; config = i2c_smbus_read_byte_data(client, LM25066_DEVICE_SETUP); if (config < 0) { ret = config; goto err_mem; } if (config < 0) return config; data->id = id->driver_data; info = &data->info; Loading Loading @@ -291,27 +289,15 @@ static int lm25066_probe(struct i2c_client *client, } break; default: ret = -ENODEV; goto err_mem; return -ENODEV; } ret = pmbus_do_probe(client, id, info); if (ret) goto err_mem; return 0; err_mem: kfree(data); return ret; return pmbus_do_probe(client, id, info); } static int lm25066_remove(struct i2c_client *client) { const struct pmbus_driver_info *info = pmbus_get_driver_info(client); const struct lm25066_data *data = to_lm25066_data(info); pmbus_do_remove(client); kfree(data); return 0; } Loading
drivers/hwmon/pmbus/ltc2978.c +8 −22 Original line number Diff line number Diff line Loading @@ -287,7 +287,7 @@ MODULE_DEVICE_TABLE(i2c, ltc2978_id); static int ltc2978_probe(struct i2c_client *client, const struct i2c_device_id *id) { int chip_id, ret, i; int chip_id, i; struct ltc2978_data *data; struct pmbus_driver_info *info; Loading @@ -295,15 +295,14 @@ static int ltc2978_probe(struct i2c_client *client, I2C_FUNC_SMBUS_READ_WORD_DATA)) return -ENODEV; data = kzalloc(sizeof(struct ltc2978_data), GFP_KERNEL); data = devm_kzalloc(&client->dev, sizeof(struct ltc2978_data), GFP_KERNEL); if (!data) return -ENOMEM; chip_id = i2c_smbus_read_word_data(client, LTC2978_MFR_SPECIAL_ID); if (chip_id < 0) { ret = chip_id; goto err_mem; } if (chip_id < 0) return chip_id; if (chip_id == LTC2978_ID_REV1 || chip_id == LTC2978_ID_REV2) { data->id = ltc2978; Loading @@ -311,8 +310,7 @@ static int ltc2978_probe(struct i2c_client *client, data->id = ltc3880; } else { dev_err(&client->dev, "Unsupported chip ID 0x%x\n", chip_id); ret = -ENODEV; goto err_mem; return -ENODEV; } if (data->id != id->driver_data) dev_warn(&client->dev, Loading Loading @@ -357,27 +355,15 @@ static int ltc2978_probe(struct i2c_client *client, data->vout_min[1] = 0xffff; break; default: ret = -ENODEV; goto err_mem; return -ENODEV; } ret = pmbus_do_probe(client, id, info); if (ret) goto err_mem; return 0; err_mem: kfree(data); return ret; return pmbus_do_probe(client, id, info); } static int ltc2978_remove(struct i2c_client *client) { const struct pmbus_driver_info *info = pmbus_get_driver_info(client); const struct ltc2978_data *data = to_ltc2978_data(info); pmbus_do_remove(client); kfree(data); return 0; } Loading
drivers/hwmon/pmbus/pmbus.c +3 −14 Original line number Diff line number Diff line Loading @@ -166,32 +166,21 @@ static int pmbus_probe(struct i2c_client *client, const struct i2c_device_id *id) { struct pmbus_driver_info *info; int ret; info = kzalloc(sizeof(struct pmbus_driver_info), GFP_KERNEL); info = devm_kzalloc(&client->dev, sizeof(struct pmbus_driver_info), GFP_KERNEL); if (!info) return -ENOMEM; info->pages = id->driver_data; info->identify = pmbus_identify; ret = pmbus_do_probe(client, id, info); if (ret < 0) goto out; return 0; out: kfree(info); return ret; return pmbus_do_probe(client, id, info); } static int pmbus_remove(struct i2c_client *client) { const struct pmbus_driver_info *info; info = pmbus_get_driver_info(client); pmbus_do_remove(client); kfree(info); return 0; } Loading
drivers/hwmon/pmbus/pmbus_core.c +18 −36 Original line number Diff line number Diff line Loading @@ -1676,7 +1676,7 @@ int pmbus_do_probe(struct i2c_client *client, const struct i2c_device_id *id, | I2C_FUNC_SMBUS_WORD_DATA)) return -ENODEV; data = kzalloc(sizeof(*data), GFP_KERNEL); data = devm_kzalloc(&client->dev, sizeof(*data), GFP_KERNEL); if (!data) { dev_err(&client->dev, "No memory to allocate driver data\n"); return -ENOMEM; Loading @@ -1688,8 +1688,7 @@ int pmbus_do_probe(struct i2c_client *client, const struct i2c_device_id *id, /* Bail out if PMBus status register does not exist. */ if (i2c_smbus_read_byte_data(client, PMBUS_STATUS_BYTE) < 0) { dev_err(&client->dev, "PMBus status register not found\n"); ret = -ENODEV; goto out_data; return -ENODEV; } if (pdata) Loading @@ -1702,50 +1701,49 @@ int pmbus_do_probe(struct i2c_client *client, const struct i2c_device_id *id, ret = (*info->identify)(client, info); if (ret < 0) { dev_err(&client->dev, "Chip identification failed\n"); goto out_data; return ret; } } if (info->pages <= 0 || info->pages > PMBUS_PAGES) { dev_err(&client->dev, "Bad number of PMBus pages: %d\n", info->pages); ret = -ENODEV; goto out_data; return -ENODEV; } ret = pmbus_identify_common(client, data); if (ret < 0) { dev_err(&client->dev, "Failed to identify chip capabilities\n"); goto out_data; return ret; } ret = -ENOMEM; data->sensors = kzalloc(sizeof(struct pmbus_sensor) * data->max_sensors, GFP_KERNEL); data->sensors = devm_kzalloc(&client->dev, sizeof(struct pmbus_sensor) * data->max_sensors, GFP_KERNEL); if (!data->sensors) { dev_err(&client->dev, "No memory to allocate sensor data\n"); goto out_data; return -ENOMEM; } data->booleans = kzalloc(sizeof(struct pmbus_boolean) data->booleans = devm_kzalloc(&client->dev, sizeof(struct pmbus_boolean) * data->max_booleans, GFP_KERNEL); if (!data->booleans) { dev_err(&client->dev, "No memory to allocate boolean data\n"); goto out_sensors; return -ENOMEM; } data->labels = kzalloc(sizeof(struct pmbus_label) * data->max_labels, GFP_KERNEL); data->labels = devm_kzalloc(&client->dev, sizeof(struct pmbus_label) * data->max_labels, GFP_KERNEL); if (!data->labels) { dev_err(&client->dev, "No memory to allocate label data\n"); goto out_booleans; return -ENOMEM; } data->attributes = kzalloc(sizeof(struct attribute *) data->attributes = devm_kzalloc(&client->dev, sizeof(struct attribute *) * data->max_attributes, GFP_KERNEL); if (!data->attributes) { dev_err(&client->dev, "No memory to allocate attribute data\n"); goto out_labels; return -ENOMEM; } pmbus_find_attributes(client, data); Loading @@ -1756,8 +1754,7 @@ int pmbus_do_probe(struct i2c_client *client, const struct i2c_device_id *id, */ if (!data->num_attributes) { dev_err(&client->dev, "No attributes found\n"); ret = -ENODEV; goto out_attributes; return -ENODEV; } /* Register sysfs hooks */ Loading @@ -1765,7 +1762,7 @@ int pmbus_do_probe(struct i2c_client *client, const struct i2c_device_id *id, ret = sysfs_create_group(&client->dev.kobj, &data->group); if (ret) { dev_err(&client->dev, "Failed to create sysfs entries\n"); goto out_attributes; return ret; } data->hwmon_dev = hwmon_device_register(&client->dev); if (IS_ERR(data->hwmon_dev)) { Loading @@ -1777,16 +1774,6 @@ int pmbus_do_probe(struct i2c_client *client, const struct i2c_device_id *id, out_hwmon_device_register: sysfs_remove_group(&client->dev.kobj, &data->group); out_attributes: kfree(data->attributes); out_labels: kfree(data->labels); out_booleans: kfree(data->booleans); out_sensors: kfree(data->sensors); out_data: kfree(data); return ret; } EXPORT_SYMBOL_GPL(pmbus_do_probe); Loading @@ -1796,11 +1783,6 @@ void pmbus_do_remove(struct i2c_client *client) struct pmbus_data *data = i2c_get_clientdata(client); hwmon_device_unregister(data->hwmon_dev); sysfs_remove_group(&client->dev.kobj, &data->group); kfree(data->attributes); kfree(data->labels); kfree(data->booleans); kfree(data->sensors); kfree(data); } EXPORT_SYMBOL_GPL(pmbus_do_remove); Loading