drm: atmel-hlcdc: Add pinctrl PM select sleep,default state in CRTC suspend/resume
authorSylvain Rochet <sylvain.rochet@finsecur.com>
Sun, 22 Feb 2015 17:51:04 +0000 (18:51 +0100)
committerBoris Brezillon <boris.brezillon@free-electrons.com>
Tue, 24 Feb 2015 10:24:38 +0000 (11:24 +0100)
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>
drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c

index a120246474e44d0e5c5103126cf9e2cb68e1b398..b81cea6baeea78032be6615e3abc0a3e6688017e 100644 (file)
@@ -21,6 +21,7 @@
 #include <linux/clk.h>
 #include <linux/pm.h>
 #include <linux/pm_runtime.h>
+#include <linux/pinctrl/consumer.h>
 
 #include <drm/drm_crtc.h>
 #include <drm/drm_crtc_helper.h>
@@ -157,6 +158,7 @@ static void atmel_hlcdc_crtc_disable(struct drm_crtc *c)
                cpu_relax();
 
        clk_disable_unprepare(crtc->dc->hlcdc->sys_clk);
+       pinctrl_pm_select_sleep_state(dev->dev);
 
        pm_runtime_allow(dev->dev);
 
@@ -179,6 +181,7 @@ static void atmel_hlcdc_crtc_enable(struct drm_crtc *c)
 
        pm_runtime_forbid(dev->dev);
 
+       pinctrl_pm_select_default_state(dev->dev);
        clk_prepare_enable(crtc->dc->hlcdc->sys_clk);
 
        regmap_write(regmap, ATMEL_HLCDC_EN, ATMEL_HLCDC_PIXEL_CLK);