thermal: armada: fix broken temperature sensor in 4.19
diff mbox series

Message ID alpine.LRH.2.02.1811241838180.7275@file01.intranet.prod.int.rdu2.redhat.com
State New
Headers show
Series
  • thermal: armada: fix broken temperature sensor in 4.19
Related show

Commit Message

Mikulas Patocka Nov. 24, 2018, 11:45 p.m. UTC
The patch 8c0e64ac4075b7ca870098ed2ad6089868f5fa7b ("thermal: armada: get
rid of the ->is_valid() pointer") breaks temperature readings on the
MacchiatoBIN board. Reading the temperature with
	cat /sys/devices/virtual/thermal/thermal_zone*/temp
results in errors:

armada_thermal f06f808c.thermal: Temperature sensor reading not valid
armada_thermal f2400078.thermal: Temperature sensor reading not valid
armada_thermal f4400078.thermal: Temperature sensor reading not valid

The patch was meant as simple refactoring, but unfortunatelly, it reverses
the condition in armada_get_temp_legacy, so that the error is reported if
armada_is_valid returns true.

Fixes: 8c0e64ac4075 ("thermal: armada: get rid of the ->is_valid() pointer")
Cc: stable@vger.kernel.org	# 4.19

---
 drivers/thermal/armada_thermal.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Mikulas Patocka Nov. 24, 2018, 11:53 p.m. UTC | #1
On Sat, 24 Nov 2018, Mikulas Patocka wrote:

> The patch 8c0e64ac4075b7ca870098ed2ad6089868f5fa7b ("thermal: armada: get
> rid of the ->is_valid() pointer") breaks temperature readings on the
> MacchiatoBIN board. Reading the temperature with
> 	cat /sys/devices/virtual/thermal/thermal_zone*/temp
> results in errors:
> 
> armada_thermal f06f808c.thermal: Temperature sensor reading not valid
> armada_thermal f2400078.thermal: Temperature sensor reading not valid
> armada_thermal f4400078.thermal: Temperature sensor reading not valid
> 
> The patch was meant as simple refactoring, but unfortunatelly, it reverses
> the condition in armada_get_temp_legacy, so that the error is reported if
> armada_is_valid returns true.
> 
> Fixes: 8c0e64ac4075 ("thermal: armada: get rid of the ->is_valid() pointer")
> Cc: stable@vger.kernel.org	# 4.19

I should have added:

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>

> ---
>  drivers/thermal/armada_thermal.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> Index: linux-4.19.4/drivers/thermal/armada_thermal.c
> ===================================================================
> --- linux-4.19.4.orig/drivers/thermal/armada_thermal.c	2018-11-25 00:19:20.000000000 +0100
> +++ linux-4.19.4/drivers/thermal/armada_thermal.c	2018-11-25 00:39:49.000000000 +0100
> @@ -357,7 +357,7 @@ static int armada_get_temp_legacy(struct
>  	int ret;
>  
>  	/* Valid check */
> -	if (armada_is_valid(priv)) {
> +	if (!armada_is_valid(priv)) {
>  		dev_err(priv->dev,
>  			"Temperature sensor reading not valid\n");
>  		return -EIO;
>
Russell King - ARM Linux admin Nov. 25, 2018, 12:54 a.m. UTC | #2
On Sat, Nov 24, 2018 at 06:45:00PM -0500, Mikulas Patocka wrote:
> The patch 8c0e64ac4075b7ca870098ed2ad6089868f5fa7b ("thermal: armada: get
> rid of the ->is_valid() pointer") breaks temperature readings on the
> MacchiatoBIN board. Reading the temperature with
> 	cat /sys/devices/virtual/thermal/thermal_zone*/temp
> results in errors:
> 
> armada_thermal f06f808c.thermal: Temperature sensor reading not valid
> armada_thermal f2400078.thermal: Temperature sensor reading not valid
> armada_thermal f4400078.thermal: Temperature sensor reading not valid
> 
> The patch was meant as simple refactoring, but unfortunatelly, it reverses
> the condition in armada_get_temp_legacy, so that the error is reported if
> armada_is_valid returns true.

I sent a patch for exactly this issue on 9th November... it doesn't
seem to have made it into mainline yet.

> 
> Fixes: 8c0e64ac4075 ("thermal: armada: get rid of the ->is_valid() pointer")
> Cc: stable@vger.kernel.org	# 4.19
> 
> ---
>  drivers/thermal/armada_thermal.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> Index: linux-4.19.4/drivers/thermal/armada_thermal.c
> ===================================================================
> --- linux-4.19.4.orig/drivers/thermal/armada_thermal.c	2018-11-25 00:19:20.000000000 +0100
> +++ linux-4.19.4/drivers/thermal/armada_thermal.c	2018-11-25 00:39:49.000000000 +0100
> @@ -357,7 +357,7 @@ static int armada_get_temp_legacy(struct
>  	int ret;
>  
>  	/* Valid check */
> -	if (armada_is_valid(priv)) {
> +	if (!armada_is_valid(priv)) {
>  		dev_err(priv->dev,
>  			"Temperature sensor reading not valid\n");
>  		return -EIO;
Eduardo Valentin Dec. 5, 2018, 5:38 a.m. UTC | #3
On Sun, Nov 25, 2018 at 12:54:53AM +0000, Russell King - ARM Linux wrote:
> On Sat, Nov 24, 2018 at 06:45:00PM -0500, Mikulas Patocka wrote:
> > The patch 8c0e64ac4075b7ca870098ed2ad6089868f5fa7b ("thermal: armada: get
> > rid of the ->is_valid() pointer") breaks temperature readings on the
> > MacchiatoBIN board. Reading the temperature with
> > 	cat /sys/devices/virtual/thermal/thermal_zone*/temp
> > results in errors:
> > 
> > armada_thermal f06f808c.thermal: Temperature sensor reading not valid
> > armada_thermal f2400078.thermal: Temperature sensor reading not valid
> > armada_thermal f4400078.thermal: Temperature sensor reading not valid
> > 
> > The patch was meant as simple refactoring, but unfortunatelly, it reverses
> > the condition in armada_get_temp_legacy, so that the error is reported if
> > armada_is_valid returns true.
> 
> I sent a patch for exactly this issue on 9th November... it doesn't
> seem to have made it into mainline yet.

I applied Russell's patch.

> 
> > 
> > Fixes: 8c0e64ac4075 ("thermal: armada: get rid of the ->is_valid() pointer")
> > Cc: stable@vger.kernel.org	# 4.19
> > 
> > ---
> >  drivers/thermal/armada_thermal.c |    2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > Index: linux-4.19.4/drivers/thermal/armada_thermal.c
> > ===================================================================
> > --- linux-4.19.4.orig/drivers/thermal/armada_thermal.c	2018-11-25 00:19:20.000000000 +0100
> > +++ linux-4.19.4/drivers/thermal/armada_thermal.c	2018-11-25 00:39:49.000000000 +0100
> > @@ -357,7 +357,7 @@ static int armada_get_temp_legacy(struct
> >  	int ret;
> >  
> >  	/* Valid check */
> > -	if (armada_is_valid(priv)) {
> > +	if (!armada_is_valid(priv)) {
> >  		dev_err(priv->dev,
> >  			"Temperature sensor reading not valid\n");
> >  		return -EIO;
> 
> -- 
> RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
> FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up
> According to speedtest.net: 11.9Mbps down 500kbps up

Patch
diff mbox series

Index: linux-4.19.4/drivers/thermal/armada_thermal.c
===================================================================
--- linux-4.19.4.orig/drivers/thermal/armada_thermal.c	2018-11-25 00:19:20.000000000 +0100
+++ linux-4.19.4/drivers/thermal/armada_thermal.c	2018-11-25 00:39:49.000000000 +0100
@@ -357,7 +357,7 @@  static int armada_get_temp_legacy(struct
 	int ret;
 
 	/* Valid check */
-	if (armada_is_valid(priv)) {
+	if (!armada_is_valid(priv)) {
 		dev_err(priv->dev,
 			"Temperature sensor reading not valid\n");
 		return -EIO;