diff options
| author | Sylvain Rochet <sylvain.rochet@finsecur.com> | 2015-02-22 12:51:04 -0500 |
|---|---|---|
| committer | Boris Brezillon <boris.brezillon@free-electrons.com> | 2015-02-24 05:24:38 -0500 |
| commit | 16e6004eb7a8686bae526ab9ea22c94ec901897b (patch) | |
| tree | 81a760b7b6df48c29f9372bb32f63fbd9bddcfba | |
| parent | 58486982586da444f940dc8fdea598649b4a2fe8 (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.c | 3 |
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); |
