diff mbox

[2/2,v2] thermal: rcar: add pm_runtime_xxx() support

Message ID 87obe6itfy.wl%kuninori.morimoto.gx@renesas.com (mailing list archive)
State Accepted, archived
Delegated to: Zhang Rui
Headers show

Commit Message

Kuninori Morimoto March 26, 2013, 6:08 a.m. UTC
Current rcar_thermal() didn't care about own power.
Without this patch, rcar_thermal doesn't work on APE6 board

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
v1 -> v2

 - fixup pm_runtime_xxx() timing
 - fixup compile error

 drivers/thermal/rcar_thermal.c |   11 +++++++++++
 1 file changed, 11 insertions(+)

Comments

Zhang Rui April 2, 2013, 1:19 p.m. UTC | #1
On Mon, 2013-03-25 at 23:08 -0700, Kuninori Morimoto wrote:
> Current rcar_thermal() didn't care about own power.
> Without this patch, rcar_thermal doesn't work on APE6 board
> 
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

applied.

thanks,
rui
> ---
> v1 -> v2
> 
>  - fixup pm_runtime_xxx() timing
>  - fixup compile error
> 
>  drivers/thermal/rcar_thermal.c |   11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/drivers/thermal/rcar_thermal.c b/drivers/thermal/rcar_thermal.c
> index c199623..0f0f951 100644
> --- a/drivers/thermal/rcar_thermal.c
> +++ b/drivers/thermal/rcar_thermal.c
> @@ -24,6 +24,7 @@
>  #include <linux/io.h>
>  #include <linux/module.h>
>  #include <linux/platform_device.h>
> +#include <linux/pm_runtime.h>
>  #include <linux/reboot.h>
>  #include <linux/slab.h>
>  #include <linux/spinlock.h>
> @@ -377,6 +378,9 @@ static int rcar_thermal_probe(struct platform_device *pdev)
>  	spin_lock_init(&common->lock);
>  	common->dev = dev;
>  
> +	pm_runtime_enable(dev);
> +	pm_runtime_get_sync(dev);
> +
>  	irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
>  	if (irq) {
>  		int ret;
> @@ -468,12 +472,16 @@ error_unregister:
>  			rcar_thermal_irq_disable(priv);
>  	}
>  
> +	pm_runtime_put_sync(dev);
> +	pm_runtime_disable(dev);
> +
>  	return ret;
>  }
>  
>  static int rcar_thermal_remove(struct platform_device *pdev)
>  {
>  	struct rcar_thermal_common *common = platform_get_drvdata(pdev);
> +	struct device *dev = &pdev->dev;
>  	struct rcar_thermal_priv *priv;
>  
>  	rcar_thermal_for_each_priv(priv, common) {
> @@ -484,6 +492,9 @@ static int rcar_thermal_remove(struct platform_device *pdev)
>  
>  	platform_set_drvdata(pdev, NULL);
>  
> +	pm_runtime_put_sync(dev);
> +	pm_runtime_disable(dev);
> +
>  	return 0;
>  }
>  


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

Patch

diff --git a/drivers/thermal/rcar_thermal.c b/drivers/thermal/rcar_thermal.c
index c199623..0f0f951 100644
--- a/drivers/thermal/rcar_thermal.c
+++ b/drivers/thermal/rcar_thermal.c
@@ -24,6 +24,7 @@ 
 #include <linux/io.h>
 #include <linux/module.h>
 #include <linux/platform_device.h>
+#include <linux/pm_runtime.h>
 #include <linux/reboot.h>
 #include <linux/slab.h>
 #include <linux/spinlock.h>
@@ -377,6 +378,9 @@  static int rcar_thermal_probe(struct platform_device *pdev)
 	spin_lock_init(&common->lock);
 	common->dev = dev;
 
+	pm_runtime_enable(dev);
+	pm_runtime_get_sync(dev);
+
 	irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
 	if (irq) {
 		int ret;
@@ -468,12 +472,16 @@  error_unregister:
 			rcar_thermal_irq_disable(priv);
 	}
 
+	pm_runtime_put_sync(dev);
+	pm_runtime_disable(dev);
+
 	return ret;
 }
 
 static int rcar_thermal_remove(struct platform_device *pdev)
 {
 	struct rcar_thermal_common *common = platform_get_drvdata(pdev);
+	struct device *dev = &pdev->dev;
 	struct rcar_thermal_priv *priv;
 
 	rcar_thermal_for_each_priv(priv, common) {
@@ -484,6 +492,9 @@  static int rcar_thermal_remove(struct platform_device *pdev)
 
 	platform_set_drvdata(pdev, NULL);
 
+	pm_runtime_put_sync(dev);
+	pm_runtime_disable(dev);
+
 	return 0;
 }