Thread (4 messages) 4 messages, 2 authors, 2017-03-27

RE: [RESEND PATCH V5 7/8] thermal: da9062/61: Thermal junction temperature monitoring driver

flat view

From: Steve Twiss <hidden>
Date: 2017-03-27 10:11:15
Also in: linux-devicetree, linux-pm, linux-watchdog, lkml

On 19 February 2017 01:40, Eduardo Valentin wrote:

Hi Eduardo,

My apologies in taking so long to reply.
There were *no* problems with implementing your requests. See below.
I will have sent these changes as PATCH V6.

https://lkml.org/lkml/2017/3/27/253

Regards,
Steve
To: Steve Twiss
Subject: Re: [RESEND PATCH V5 7/8] thermal: da9062/61: Thermal junction
temperature monitoring driver
[...]
I see no reason why this driver cannot have the COMPILE_TEST flag.
Tested myself here so:

+	depends on MFD_DA9062 || COMPILE_TEST
Added.
please cleanup the minor issues checkpatch complains:
/scripts/checkpatch.pl --strict <your patch>
I have fixed all of those for latest checkpatch.pl script, this time using "--strict".

[...]
quoted hunk ↗ jump to hunk
quoted
+static void da9062_thermal_poll_on(struct work_struct *work)
+{
+	struct da9062_thermal *thermal = container_of(work,
+						struct da9062_thermal,
+						work.work);
+	unsigned int val;
+	int ret;
+
+	/* clear E_TEMP */
+	ret = regmap_write(thermal->hw->regmap,
+				DA9062AA_EVENT_B,
+				DA9062AA_E_TEMP_MASK);
+	if (ret < 0) {
+		dev_err(thermal->dev,
+			"Cannot clear the TJUNC temperature status\n");
+		goto err_enable_irq;
+	}
+
+	/* Now read E_TEMP again: it is acting like a status bit.
+	 * If over-temperature, then this status will be true.
+	 * If not over-temperature, this status will be false.
+	 */
+	ret = regmap_read(thermal->hw->regmap,
+			  DA9062AA_EVENT_B,
+			  &val);
+	if (ret < 0) {
+		dev_err(thermal->dev,
+			"Cannot check the TJUNC temperature status\n");
+		goto err_enable_irq;
+	} else {
+		if (val & DA9062AA_E_TEMP_MASK) {
+			mutex_lock(&thermal->lock);
+			thermal->temperature = DA9062_MILLI_CELSIUS(125);
+			mutex_unlock(&thermal->lock);
+			thermal_zone_device_update(thermal->zone,
+				THERMAL_EVENT_UNSPECIFIED);
+
+			schedule_delayed_work(&thermal->work,
+				msecs_to_jiffies(thermal->zone->passive_delay));
+			return;
+		} else {
+			mutex_lock(&thermal->lock);
+			thermal->temperature = DA9062_MILLI_CELSIUS(0);
+			mutex_unlock(&thermal->lock);
+			thermal_zone_device_update(thermal->zone,
+				THERMAL_EVENT_UNSPECIFIED);
+		}
+	}
The above code is a little confusing, can it be maybe, better read like
this?
diff --git a/drivers/thermal/da9062-thermal.c b/drivers/thermal/da9062-
thermal.c
index 52a095d..6ac8574 100644
--- a/drivers/thermal/da9062-thermal.c
+++ b/drivers/thermal/da9062-thermal.c
@@ -95,26 +95,26 @@ static void da9062_thermal_poll_on(struct work_struct
*work)
 		dev_err(thermal->dev,
 			"Cannot check the TJUNC temperature status\n");
 		goto err_enable_irq;
-	} else {
-		if (val & DA9062AA_E_TEMP_MASK) {
-			mutex_lock(&thermal->lock);
-			thermal->temperature = DA9062_MILLI_CELSIUS(125);
-			mutex_unlock(&thermal->lock);
-			thermal_zone_device_update(thermal->zone,
-				THERMAL_EVENT_UNSPECIFIED);
-
-			schedule_delayed_work(&thermal->work,
+	}
+
+	if (val & DA9062AA_E_TEMP_MASK) {
+		mutex_lock(&thermal->lock);
+		thermal->temperature = DA9062_MILLI_CELSIUS(125);
+		mutex_unlock(&thermal->lock);
+		thermal_zone_device_update(thermal->zone,
+				THERMAL_EVENT_UNSPECIFIED);
+
+		schedule_delayed_work(&thermal->work,
 				msecs_to_jiffies(thermal->zone->passive_delay));
-			return;
-		} else {
-			mutex_lock(&thermal->lock);
-			thermal->temperature = DA9062_MILLI_CELSIUS(0);
-			mutex_unlock(&thermal->lock);
-			thermal_zone_device_update(thermal->zone,
-			THERMAL_EVENT_UNSPECIFIED);
-		}
+		return;
 	}

+	mutex_lock(&thermal->lock);
+	thermal->temperature = DA9062_MILLI_CELSIUS(0);
+	mutex_unlock(&thermal->lock);
+	thermal_zone_device_update(thermal->zone,
+			THERMAL_EVENT_UNSPECIFIED);
+
 err_enable_irq:
 	enable_irq(thermal->irq);
 }
That makes more sense getting rid of those else clauses.
Applied that, thanks.

Regards,
Steve
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help