aboutsummaryrefslogtreecommitdiffstats
path: root/patches/0802-pwm-rcar-Use-PM-Runtime-to-control-module-clock.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/0802-pwm-rcar-Use-PM-Runtime-to-control-module-clock.patch')
-rw-r--r--patches/0802-pwm-rcar-Use-PM-Runtime-to-control-module-clock.patch46
1 files changed, 46 insertions, 0 deletions
diff --git a/patches/0802-pwm-rcar-Use-PM-Runtime-to-control-module-clock.patch b/patches/0802-pwm-rcar-Use-PM-Runtime-to-control-module-clock.patch
new file mode 100644
index 00000000000000..6483ab09df6927
--- /dev/null
+++ b/patches/0802-pwm-rcar-Use-PM-Runtime-to-control-module-clock.patch
@@ -0,0 +1,46 @@
+From 431ddf5dddf1928a8fb902ebb18493f4289ab057 Mon Sep 17 00:00:00 2001
+From: Hien Dang <hien.dang.eb@renesas.com>
+Date: Tue, 13 Mar 2018 17:18:17 +0900
+Subject: [PATCH 0802/1795] pwm: rcar: Use PM Runtime to control module clock
+
+Runtime PM API (pm_runtime_get_sync/pm_runtime_put) should be used
+to control module clock instead of clk_prepare_enable and
+clk_disable_unprepare.
+
+Signed-off-by: Hien Dang <hien.dang.eb@renesas.com>
+Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
+Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
+Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
+(cherry picked from commit f2e6142cdc10b1b7edea8d65b07293f152e4d110)
+Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
+Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
+---
+ drivers/pwm/pwm-rcar.c | 8 ++------
+ 1 file changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/pwm/pwm-rcar.c b/drivers/pwm/pwm-rcar.c
+index 0fcf94ffad32..f4d8767f804e 100644
+--- a/drivers/pwm/pwm-rcar.c
++++ b/drivers/pwm/pwm-rcar.c
+@@ -134,16 +134,12 @@ static int rcar_pwm_set_counter(struct rcar_pwm_chip *rp, int div, int duty_ns,
+
+ static int rcar_pwm_request(struct pwm_chip *chip, struct pwm_device *pwm)
+ {
+- struct rcar_pwm_chip *rp = to_rcar_pwm_chip(chip);
+-
+- return clk_prepare_enable(rp->clk);
++ return pm_runtime_get_sync(chip->dev);
+ }
+
+ static void rcar_pwm_free(struct pwm_chip *chip, struct pwm_device *pwm)
+ {
+- struct rcar_pwm_chip *rp = to_rcar_pwm_chip(chip);
+-
+- clk_disable_unprepare(rp->clk);
++ pm_runtime_put(chip->dev);
+ }
+
+ static int rcar_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm,
+--
+2.19.0
+