Skip to contentSkip to conversation

thermal: tango: add resume support

PATCH RESEND Superseded Marc Gonzalez 3 participants 5 messages Sep 7, 2016 – Sep 19, 2016 Thermal

lore
Share & tools
lore
#0 lore raw

PATCH RESEND v4 1/1 thermal: tango: add resume support

When this platform is suspended, firmware powers the entire SoC down, except a few hardware blocks waiting for wakeup events. There is no context to save for this particular block.

Therefore, there is nothing useful for the driver to do on suspend; so we define a NULL suspend hook. On resume, the driver initializes the block exactly as is done in the probe callback.

---
Add Kevin's Reviewed-by tag.
Earlier versions of this patch were reviewed by Kevin and Thierry. The current form is preferred by Arnd.
Rui, could you take this patch before the next merge window opens?

---
 drivers/thermal/tango_thermal.c | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)
drivers/thermal/tango_thermal.c +17 -2
index 70e0d9f406e9..201304aeafeb 100644
@@ -64,6 +64,12 @@ static const struct thermal_zone_of_device_ops ops = {
 	.get_temp	= tango_get_temp,
 };
 
+static void tango_thermal_init(struct tango_thermal_priv *priv)
+{
+	writel(0, priv->base + TEMPSI_CFG);
+	writel(CMD_ON, priv->base + TEMPSI_CMD);
+}
+
 static int tango_thermal_probe(struct platform_device *pdev)
 {
 	struct resource *res;
@@ -79,14 +85,22 @@ static int tango_thermal_probe(struct platform_device *pdev)
 	if (IS_ERR(priv->base))
 		return PTR_ERR(priv->base);
 
+	platform_set_drvdata(pdev, priv);
 	priv->thresh_idx = IDX_MIN;
-	writel(0, priv->base + TEMPSI_CFG);
-	writel(CMD_ON, priv->base + TEMPSI_CMD);
+	tango_thermal_init(priv);
 
 	tzdev = devm_thermal_zone_of_sensor_register(&pdev->dev, 0, priv, &ops);
 	return PTR_ERR_OR_ZERO(tzdev);
 }
 
+static int __maybe_unused tango_thermal_resume(struct device *dev)
+{
+	tango_thermal_init(dev_get_drvdata(dev));
+	return 0;
+}
+
+static SIMPLE_DEV_PM_OPS(tango_thermal_pm, NULL, tango_thermal_resume);
+
 static const struct of_device_id tango_sensor_ids[] = {
 	{
 		.compatible = "sigma,smp8758-thermal",
@@ -99,6 +113,7 @@ static struct platform_driver tango_thermal_driver = {
 	.driver	= {
 		.name		= "tango-thermal",
 		.of_match_table	= tango_sensor_ids,
+		.pm		= &tango_thermal_pm,
 	},
 };
 
Signature · 1 line
2.9.0
#1 lore raw

PATCH RESEND v4 1/1 thermal: tango: add resume support

Quoted 10 lines · CEST Marc Gonzalez

When this platform is suspended, firmware powers the entire SoC down, except a few hardware blocks waiting for wakeup events. There is no context to save for this particular block.

Therefore, there is nothing useful for the driver to do on suspend; so we define a NULL suspend hook. On resume, the driver initializes the block exactly as is done in the probe callback.

#2 lore raw

PATCH RESEND v4 1/1 thermal: tango: add resume support

Quoted 6 lines · Arnd Bergmann
Quoted 4 lines · CEST Marc Gonzalez

When this platform is suspended, firmware powers the entire SoC down, except a few hardware blocks waiting for wakeup events. There is no context to save for this particular block.

Quoted 8 lines
Quoted 6 lines

Therefore, there is nothing useful for the driver to do on suspend; so we define a NULL suspend hook. On resume, the driver initializes the block exactly as is done in the probe callback.

Hello Rui, Eduardo,

The present patch has been reviewed by both Kevin Hilman and Arnd Bergmann, two arm-soc maintainers. Can you pick it up in time for inclusion in v4.9?

Regards.

reviewer
#3 lore raw

PATCH RESEND v4 1/1 thermal: tango: add resume support

Quoted 21 lines · Marc Gonzalez
Quoted 19 lines · Arnd Bergmann
Quoted 15 lines · CEST Marc Gonzalez

When this platform is suspended, firmware powers the entire SoC down,
except a few hardware blocks waiting for wakeup events. There is no
context to save for this particular block.

Therefore, there is nothing useful for the driver to do on suspend;
so we define a NULL suspend hook. On resume, the driver initializes
the block exactly as is done in the probe callback.

Quoted 7 lines
Quoted 1 line

Hello Rui, Eduardo,

The present patch has been reviewed by both Kevin Hilman and Arnd Bergmann,
two arm-soc maintainers. Can you pick it up in time for inclusion in v4.9?

It has already been in thermal -release branch for a while, and queued for 4.9.

thanks,
rui

Quoted 8 lines

Regards.

--
To unsubscribe from this list: send the line "unsubscribe linux-pm" in
the body of a message to majordomo at vger.kernel.org More majordomo info at??http://vger.kernel.org/majordomo-info.html

#4 lore raw

PATCH RESEND v4 1/1 thermal: tango: add resume support

Quoted 9 lines · Zhang Rui
Quoted 4 lines · Marc Gonzalez

Hello Rui, Eduardo,

The present patch has been reviewed by both Kevin Hilman and Arnd Bergmann, two arm-soc maintainers. Can you pick it up in time for inclusion in v4.9?

It has already been in thermal -release branch for a while, and queued for 4.9.

Sorry, I was expecting an ACK on the list. It never occurred to me to check your tree. Thanks for taking the patch.

https://git.kernel.org/cgit/linux/kernel/git/rzhang/linux.git/commit/?h=release&id=186e2aa3954c3201583e5ec3149faa6caa67d2b9

Regards.