aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSylvain Rochet <sylvain.rochet@finsecur.com>2015-02-22 12:51:04 -0500
committerBoris Brezillon <boris.brezillon@free-electrons.com>2015-02-24 05:24:38 -0500
commit16e6004eb7a8686bae526ab9ea22c94ec901897b (patch)
tree81a760b7b6df48c29f9372bb32f63fbd9bddcfba
parent58486982586da444f940dc8fdea598649b4a2fe8 (diff)
drm: atmel-hlcdc: Add pinctrl PM select sleep,default state in CRTC suspend/resume
Some LCD panels have back-powering issue when un-powered, allows users to use an alternate pinctrl "sleep" in order to clamp outputs to a wanted state at suspend. Signed-off-by: Sylvain Rochet <sylvain.rochet@finsecur.com> Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
-rw-r--r--drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
index a120246474e4..b81cea6baeea 100644
--- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
+++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c
@@ -21,6 +21,7 @@
21#include <linux/clk.h> 21#include <linux/clk.h>
22#include <linux/pm.h> 22#include <linux/pm.h>
23#include <linux/pm_runtime.h> 23#include <linux/pm_runtime.h>
24#include <linux/pinctrl/consumer.h>
24 25
25#include <drm/drm_crtc.h> 26#include <drm/drm_crtc.h>
26#include <drm/drm_crtc_helper.h> 27#include <drm/drm_crtc_helper.h>
@@ -157,6 +158,7 @@ static void atmel_hlcdc_crtc_disable(struct drm_crtc *c)
157 cpu_relax(); 158 cpu_relax();
158 159
159 clk_disable_unprepare(crtc->dc->hlcdc->sys_clk); 160 clk_disable_unprepare(crtc->dc->hlcdc->sys_clk);
161 pinctrl_pm_select_sleep_state(dev->dev);
160 162
161 pm_runtime_allow(dev->dev); 163 pm_runtime_allow(dev->dev);
162 164
@@ -179,6 +181,7 @@ static void atmel_hlcdc_crtc_enable(struct drm_crtc *c)
179 181
180 pm_runtime_forbid(dev->dev); 182 pm_runtime_forbid(dev->dev);
181 183
184 pinctrl_pm_select_default_state(dev->dev);
182 clk_prepare_enable(crtc->dc->hlcdc->sys_clk); 185 clk_prepare_enable(crtc->dc->hlcdc->sys_clk);
183 186
184 regmap_write(regmap, ATMEL_HLCDC_EN, ATMEL_HLCDC_PIXEL_CLK); 187 regmap_write(regmap, ATMEL_HLCDC_EN, ATMEL_HLCDC_PIXEL_CLK);