video: stop sh_mobile_lcdcfb only if started
Subsystems (2)
PATCH 1/1 video: stop sh_mobile_lcdcfb only if started
From: Magnus Damm <[email protected]>
This patch fixes the LCDC driver to avoid calling the function sh_mobile_lcdc_start_stop(priv, 0) unless the same function has been called before to start the LCDC hardware.
Triggered when sh_mobile_lcdcfb.c failed to probe() due to missing MSTP clocks.
Signed-off-by Magnus Damm <[email protected]>
---
drivers/video/sh_mobile_lcdcfb.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
drivers/video/sh_mobile_lcdcfb.c +6 -1
@@ -47,6 +47,7 @@ struct sh_mobile_lcdc_priv {#endif unsigned long lddckr;struct sh_mobile_lcdc_chan ch[2 ]; +int started; };/* shared registers */
@@ -451,6 +452,7 @@ static int sh_mobile_lcdc_start(struct s/* start the lcdc */ sh_mobile_lcdc_start_stop (priv,1 ); + priv->started =1 ;/* tell the board code to enable the panel */ for (k =0 ; k <ARRAY_SIZE (priv->ch); k++) {
@@ -493,7 +495,10 @@ static void sh_mobile_lcdc_stop(struct s }/* stop the lcdc */ -sh_mobile_lcdc_start_stop (priv,0 ); +if (priv->started) { +sh_mobile_lcdc_start_stop (priv,0 ); + priv->started =0 ; + }/* stop clocks */ for (k =0 ; k <ARRAY_SIZE (priv->ch); k++)