forked from Minki/linux
thermal: thermal_hwmon: Convert to hwmon_device_register_with_info()
Booting Linux on a mx6q based board leads to the following warning: (NULL device *): hwmon_device_register() is deprecated. Please convert the driver to use hwmon_device_register_with_info(). , so do the conversion as suggested. Also, this results in the core taking care of creating the 'name' attribute, so drop the code doing that from the thermal driver. The initial attempt to convert this driver to hwmon_device_register_with_info() caused issues on the N900 platform in commit7611fb6806
("thermal: thermal_hwmon: Convert to hwmon_device_register_with_info()"): bq27xxx-battery 2-0055: failed to register battery bq27xxx-battery: probe of 2-0055 failed with error -22 ... rx51-battery: probe of n900-battery failed with error -22 , leading to a revert in commit3feb479cea
("Revert "thermal: thermal_hwmon: Convert to hwmon_device_register_with_info()""). The probe errors happened due to the '-' character being present in the name of the power supply devices: bq27200-0 and rx51-battery. Since commit74d3b64197
("hwmon: Relax name attribute validation for new APIs") hwmon will no longer treat these names as errors, allowing the transition for hwmon_device_register_with_info() to happen in a safely manner. Cc: Pavel Machek <pavel@ucw.cz> Cc: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com> Acked-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Zhang Rui <rui.zhang@intel.com>
This commit is contained in:
parent
a5de11d67d
commit
e782bc169c
@ -58,14 +58,6 @@ static LIST_HEAD(thermal_hwmon_list);
|
||||
|
||||
static DEFINE_MUTEX(thermal_hwmon_list_lock);
|
||||
|
||||
static ssize_t
|
||||
name_show(struct device *dev, struct device_attribute *attr, char *buf)
|
||||
{
|
||||
struct thermal_hwmon_device *hwmon = dev_get_drvdata(dev);
|
||||
return sprintf(buf, "%s\n", hwmon->type);
|
||||
}
|
||||
static DEVICE_ATTR_RO(name);
|
||||
|
||||
static ssize_t
|
||||
temp_input_show(struct device *dev, struct device_attribute *attr, char *buf)
|
||||
{
|
||||
@ -165,15 +157,12 @@ int thermal_add_hwmon_sysfs(struct thermal_zone_device *tz)
|
||||
|
||||
INIT_LIST_HEAD(&hwmon->tz_list);
|
||||
strlcpy(hwmon->type, tz->type, THERMAL_NAME_LENGTH);
|
||||
hwmon->device = hwmon_device_register(NULL);
|
||||
hwmon->device = hwmon_device_register_with_info(NULL, hwmon->type,
|
||||
hwmon, NULL, NULL);
|
||||
if (IS_ERR(hwmon->device)) {
|
||||
result = PTR_ERR(hwmon->device);
|
||||
goto free_mem;
|
||||
}
|
||||
dev_set_drvdata(hwmon->device, hwmon);
|
||||
result = device_create_file(hwmon->device, &dev_attr_name);
|
||||
if (result)
|
||||
goto free_mem;
|
||||
|
||||
register_sys_interface:
|
||||
temp = kzalloc(sizeof(*temp), GFP_KERNEL);
|
||||
@ -222,10 +211,8 @@ int thermal_add_hwmon_sysfs(struct thermal_zone_device *tz)
|
||||
free_temp_mem:
|
||||
kfree(temp);
|
||||
unregister_name:
|
||||
if (new_hwmon_device) {
|
||||
device_remove_file(hwmon->device, &dev_attr_name);
|
||||
if (new_hwmon_device)
|
||||
hwmon_device_unregister(hwmon->device);
|
||||
}
|
||||
free_mem:
|
||||
if (new_hwmon_device)
|
||||
kfree(hwmon);
|
||||
@ -267,7 +254,6 @@ void thermal_remove_hwmon_sysfs(struct thermal_zone_device *tz)
|
||||
list_del(&hwmon->node);
|
||||
mutex_unlock(&thermal_hwmon_list_lock);
|
||||
|
||||
device_remove_file(hwmon->device, &dev_attr_name);
|
||||
hwmon_device_unregister(hwmon->device);
|
||||
kfree(hwmon);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user