All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] thermal: thermal_hwmon: Convert to hwmon_device_register_with_info()
@ 2018-01-03 10:44 Fabio Estevam
  2018-01-10 19:29 ` Eduardo Valentin
  2018-01-13 13:47 ` Zhang Rui
  0 siblings, 2 replies; 9+ messages in thread
From: Fabio Estevam @ 2018-01-03 10:44 UTC (permalink / raw)
  To: rui.zhang
  Cc: edubezval, linux-pm, arthurborsboom, Fabio Estevam, Pavel Machek,
	Guenter Roeck

From: Fabio Estevam <fabio.estevam@nxp.com>

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 commit 611fb68062f ("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 commit 3feb479cea37 ("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 commit 74d3b6419772 ("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>
---
Pavel,

Could you please test this patch on your N900 platform?

Thanks

 drivers/thermal/thermal_hwmon.c | 20 +++-----------------
 1 file changed, 3 insertions(+), 17 deletions(-)

diff --git a/drivers/thermal/thermal_hwmon.c b/drivers/thermal/thermal_hwmon.c
index 541af59..c4a508a 100644
--- a/drivers/thermal/thermal_hwmon.c
+++ b/drivers/thermal/thermal_hwmon.c
@@ -59,14 +59,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)
 {
 	int temperature;
@@ -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);
 }
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH] thermal: thermal_hwmon: Convert to hwmon_device_register_with_info()
  2018-01-03 10:44 [PATCH] thermal: thermal_hwmon: Convert to hwmon_device_register_with_info() Fabio Estevam
@ 2018-01-10 19:29 ` Eduardo Valentin
  2018-01-11  5:14   ` Guenter Roeck
  2018-01-13 13:47 ` Zhang Rui
  1 sibling, 1 reply; 9+ messages in thread
From: Eduardo Valentin @ 2018-01-10 19:29 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: rui.zhang, linux-pm, arthurborsboom, Fabio Estevam, Pavel Machek,
	Guenter Roeck

On Wed, Jan 03, 2018 at 08:44:54AM -0200, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam@nxp.com>
> 
> 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 commit 611fb68062f ("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 commit 3feb479cea37 ("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 commit 74d3b6419772 ("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. 

I am mostly fine with the patch as long as we get an ack from hwmon
folks.

> 
> Cc: Pavel Machek <pavel@ucw.cz>
> Cc: Guenter Roeck <linux@roeck-us.net>
> Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
> ---
> Pavel,
> 
> Could you please test this patch on your N900 platform?
> 
> Thanks
> 
>  drivers/thermal/thermal_hwmon.c | 20 +++-----------------
>  1 file changed, 3 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/thermal/thermal_hwmon.c b/drivers/thermal/thermal_hwmon.c
> index 541af59..c4a508a 100644
> --- a/drivers/thermal/thermal_hwmon.c
> +++ b/drivers/thermal/thermal_hwmon.c
> @@ -59,14 +59,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)
>  {
>  	int temperature;
> @@ -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);
>  }
> -- 
> 2.7.4
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] thermal: thermal_hwmon: Convert to hwmon_device_register_with_info()
  2018-01-10 19:29 ` Eduardo Valentin
@ 2018-01-11  5:14   ` Guenter Roeck
  0 siblings, 0 replies; 9+ messages in thread
From: Guenter Roeck @ 2018-01-11  5:14 UTC (permalink / raw)
  To: Eduardo Valentin, Fabio Estevam
  Cc: rui.zhang, linux-pm, arthurborsboom, Fabio Estevam, Pavel Machek

On 01/10/2018 11:29 AM, Eduardo Valentin wrote:
> On Wed, Jan 03, 2018 at 08:44:54AM -0200, Fabio Estevam wrote:
>> From: Fabio Estevam <fabio.estevam@nxp.com>
>>
>> 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 commit 611fb68062f ("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 commit 3feb479cea37 ("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 commit 74d3b6419772 ("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.
> 
> I am mostly fine with the patch as long as we get an ack from hwmon
> folks.
> 

An official one ?

I am not really happy with the patch. The conversion to the _info API should
be a real conversion, not just one to silence the warning. However, that would
require a 'dev' argument, and I have absolutely no idea how to do that.
Given that,

Acked-by: Guenter Roeck <linux@roeck-us.net>

Guenter

>>
>> Cc: Pavel Machek <pavel@ucw.cz>
>> Cc: Guenter Roeck <linux@roeck-us.net>
>> Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
>> ---
>> Pavel,
>>
>> Could you please test this patch on your N900 platform?
>>
>> Thanks
>>
>>   drivers/thermal/thermal_hwmon.c | 20 +++-----------------
>>   1 file changed, 3 insertions(+), 17 deletions(-)
>>
>> diff --git a/drivers/thermal/thermal_hwmon.c b/drivers/thermal/thermal_hwmon.c
>> index 541af59..c4a508a 100644
>> --- a/drivers/thermal/thermal_hwmon.c
>> +++ b/drivers/thermal/thermal_hwmon.c
>> @@ -59,14 +59,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)
>>   {
>>   	int temperature;
>> @@ -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);
>>   }
>> -- 
>> 2.7.4
>>
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] thermal: thermal_hwmon: Convert to hwmon_device_register_with_info()
  2018-01-03 10:44 [PATCH] thermal: thermal_hwmon: Convert to hwmon_device_register_with_info() Fabio Estevam
  2018-01-10 19:29 ` Eduardo Valentin
@ 2018-01-13 13:47 ` Zhang Rui
  2018-01-13 14:04   ` Fabio Estevam
  2018-01-13 21:17   ` Guenter Roeck
  1 sibling, 2 replies; 9+ messages in thread
From: Zhang Rui @ 2018-01-13 13:47 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: edubezval, linux-pm, arthurborsboom, Fabio Estevam, Pavel Machek,
	Guenter Roeck

On Wed, 2018-01-03 at 08:44 -0200, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam@nxp.com>
> 
> 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 commit 611fb68062f ("thermal: thermal_hwmon: Convert to
> hwmon_device_register_with_info()"):

the commit id is 7611fb68062f.

> 
> 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 commit 3feb479cea37 ("Revert "thermal:
> thermal_hwmon: Convert to hwmon_device_register_with_info()"").
> 
don't know why but checkpatch.pl always complains

ERROR: Please use git commit description style 'commit <12+ chars of
sha1> ("<title line>")' - ie: 'commit 3feb479cea37 ("Revert "thermal:
thermal_hwmon: Convert to hwmon_device_register_with_info()"")'
#37: 
, leading to a revert in commit 3feb479cea37 ("Revert "thermal:

total: 1 errors, 0 warnings, 49 lines checked

thanks,
rui
> The probe errors happened due to the '-' character being present in
> the name of the power supply devices: bq27200-0 and rx51-battery.
> 
> Since commit 74d3b6419772 ("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>
> ---
> Pavel,
> 
> Could you please test this patch on your N900 platform?
> 
> Thanks
> 
>  drivers/thermal/thermal_hwmon.c | 20 +++-----------------
>  1 file changed, 3 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/thermal/thermal_hwmon.c
> b/drivers/thermal/thermal_hwmon.c
> index 541af59..c4a508a 100644
> --- a/drivers/thermal/thermal_hwmon.c
> +++ b/drivers/thermal/thermal_hwmon.c
> @@ -59,14 +59,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)
>  {
>  	int temperature;
> @@ -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);
>  }

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] thermal: thermal_hwmon: Convert to hwmon_device_register_with_info()
  2018-01-13 13:47 ` Zhang Rui
@ 2018-01-13 14:04   ` Fabio Estevam
  2018-01-13 21:17   ` Guenter Roeck
  1 sibling, 0 replies; 9+ messages in thread
From: Fabio Estevam @ 2018-01-13 14:04 UTC (permalink / raw)
  To: Zhang Rui
  Cc: Eduardo Valentin, linux-pm, Arthur Borsboom, Fabio Estevam,
	Pavel Machek, Guenter Roeck

Hi Rui,

On Sat, Jan 13, 2018 at 11:47 AM, Zhang Rui <rui.zhang@intel.com> wrote:

> the commit id is 7611fb68062f.

Thanks, will fix it in v2.

> don't know why but checkpatch.pl always complains
>
> ERROR: Please use git commit description style 'commit <12+ chars of
> sha1> ("<title line>")' - ie: 'commit 3feb479cea37 ("Revert "thermal:
> thermal_hwmon: Convert to hwmon_device_register_with_info()"")'
> #37:
> , leading to a revert in commit 3feb479cea37 ("Revert "thermal:
>
> total: 1 errors, 0 warnings, 49 lines checked

Yes, not sure why checkpatch complains on this one too.

I am not able to see anything wrong with the commit description.

Thanks

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] thermal: thermal_hwmon: Convert to hwmon_device_register_with_info()
  2018-01-13 13:47 ` Zhang Rui
  2018-01-13 14:04   ` Fabio Estevam
@ 2018-01-13 21:17   ` Guenter Roeck
  2018-01-15 18:09     ` Fabio Estevam
  1 sibling, 1 reply; 9+ messages in thread
From: Guenter Roeck @ 2018-01-13 21:17 UTC (permalink / raw)
  To: Zhang Rui, Fabio Estevam
  Cc: edubezval, linux-pm, arthurborsboom, Fabio Estevam, Pavel Machek

On 01/13/2018 05:47 AM, Zhang Rui wrote:
> On Wed, 2018-01-03 at 08:44 -0200, Fabio Estevam wrote:
>> From: Fabio Estevam <fabio.estevam@nxp.com>
>>
>> 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 commit 611fb68062f ("thermal: thermal_hwmon: Convert to
>> hwmon_device_register_with_info()"):
> 
> the commit id is 7611fb68062f.
> 
>>
>> 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 commit 3feb479cea37 ("Revert "thermal:
>> thermal_hwmon: Convert to hwmon_device_register_with_info()"").
>>
> don't know why but checkpatch.pl always complains
> 
> ERROR: Please use git commit description style 'commit <12+ chars of
> sha1> ("<title line>")' - ie: 'commit 3feb479cea37 ("Revert "thermal:
> thermal_hwmon: Convert to hwmon_device_register_with_info()"")'
> #37:
> , leading to a revert in commit 3feb479cea37 ("Revert "thermal:
> 
> total: 1 errors, 0 warnings, 49 lines checked
> 
I bet it gets confused by the quotes.

Guenter

> thanks,
> rui
>> The probe errors happened due to the '-' character being present in
>> the name of the power supply devices: bq27200-0 and rx51-battery.
>>
>> Since commit 74d3b6419772 ("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>
>> ---
>> Pavel,
>>
>> Could you please test this patch on your N900 platform?
>>
>> Thanks
>>
>>   drivers/thermal/thermal_hwmon.c | 20 +++-----------------
>>   1 file changed, 3 insertions(+), 17 deletions(-)
>>
>> diff --git a/drivers/thermal/thermal_hwmon.c
>> b/drivers/thermal/thermal_hwmon.c
>> index 541af59..c4a508a 100644
>> --- a/drivers/thermal/thermal_hwmon.c
>> +++ b/drivers/thermal/thermal_hwmon.c
>> @@ -59,14 +59,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)
>>   {
>>   	int temperature;
>> @@ -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);
>>   }
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] thermal: thermal_hwmon: Convert to hwmon_device_register_with_info()
  2018-01-13 21:17   ` Guenter Roeck
@ 2018-01-15 18:09     ` Fabio Estevam
  0 siblings, 0 replies; 9+ messages in thread
From: Fabio Estevam @ 2018-01-15 18:09 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: Zhang Rui, Eduardo Valentin, linux-pm, Arthur Borsboom,
	Fabio Estevam, Pavel Machek

On Sat, Jan 13, 2018 at 7:17 PM, Guenter Roeck <linux@roeck-us.net> wrote:

> I bet it gets confused by the quotes.

In this particular case I think we should ignore checkpatch reported error.

Thanks

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] thermal: thermal_hwmon: Convert to hwmon_device_register_with_info()
  2016-12-27 16:24 Fabio Estevam
@ 2016-12-27 17:01 ` Guenter Roeck
  0 siblings, 0 replies; 9+ messages in thread
From: Guenter Roeck @ 2016-12-27 17:01 UTC (permalink / raw)
  To: Fabio Estevam; +Cc: edubezval, rui.zhang, linux-pm, Fabio Estevam

Hi Fabio,

On Tue, Dec 27, 2016 at 02:24:12PM -0200, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam@nxp.com>
> 
> 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 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.
> 
> Suggested-by: Guenter Roeck <linux@roeck-us.net>
> Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
> ---
> Changes since RFC:
> - Properly use hwmon_device_register_with_info()
> - Remove device_create_file() from the thermal driver as the hwmon core
> will take care of it
> 
>  drivers/thermal/thermal_hwmon.c | 19 +++----------------
>  1 file changed, 3 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/thermal/thermal_hwmon.c b/drivers/thermal/thermal_hwmon.c
> index 541af59..39d8a90 100644
> --- a/drivers/thermal/thermal_hwmon.c
> +++ b/drivers/thermal/thermal_hwmon.c
> @@ -59,14 +59,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)
>  {
>  	int temperature;
> @@ -165,15 +157,13 @@ 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);

You can drop this as well; it is done by the core.

Thanks,
Guenter

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH] thermal: thermal_hwmon: Convert to hwmon_device_register_with_info()
@ 2016-12-27 16:24 Fabio Estevam
  2016-12-27 17:01 ` Guenter Roeck
  0 siblings, 1 reply; 9+ messages in thread
From: Fabio Estevam @ 2016-12-27 16:24 UTC (permalink / raw)
  To: edubezval; +Cc: rui.zhang, linux, linux-pm, Fabio Estevam

From: Fabio Estevam <fabio.estevam@nxp.com>

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 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.

Suggested-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
---
Changes since RFC:
- Properly use hwmon_device_register_with_info()
- Remove device_create_file() from the thermal driver as the hwmon core
will take care of it

 drivers/thermal/thermal_hwmon.c | 19 +++----------------
 1 file changed, 3 insertions(+), 16 deletions(-)

diff --git a/drivers/thermal/thermal_hwmon.c b/drivers/thermal/thermal_hwmon.c
index 541af59..39d8a90 100644
--- a/drivers/thermal/thermal_hwmon.c
+++ b/drivers/thermal/thermal_hwmon.c
@@ -59,14 +59,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)
 {
 	int temperature;
@@ -165,15 +157,13 @@ 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 +212,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 +255,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);
 }
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2018-01-15 18:09 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-03 10:44 [PATCH] thermal: thermal_hwmon: Convert to hwmon_device_register_with_info() Fabio Estevam
2018-01-10 19:29 ` Eduardo Valentin
2018-01-11  5:14   ` Guenter Roeck
2018-01-13 13:47 ` Zhang Rui
2018-01-13 14:04   ` Fabio Estevam
2018-01-13 21:17   ` Guenter Roeck
2018-01-15 18:09     ` Fabio Estevam
  -- strict thread matches above, loose matches on Subject: below --
2016-12-27 16:24 Fabio Estevam
2016-12-27 17:01 ` Guenter Roeck

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.