summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Agner <stefan.agner@toradex.com>2015-08-13 14:57:19 +0200
committerStefan Agner <stefan.agner@toradex.com>2015-08-13 14:57:19 +0200
commit0ad945cd2095e1fa3edf83d0f90f9b5eba28777b (patch)
tree8b0a6a64fe117d6131bb73dc9d4c8181e91f69f5
parent2cb415fc83bc733147f015a3380fc4e1bafff389 (diff)
video: fsl-dcu-fb: fix layer reset and initialization on resume
For LPSTOP2, layers need to be reinitialized on resume (like in probe). Furthermore do not enable the controller twice and use the correct order in suspend and resume path.
-rw-r--r--drivers/video/fbdev/fsl-dcu-fb.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/video/fbdev/fsl-dcu-fb.c b/drivers/video/fbdev/fsl-dcu-fb.c
index df40920206ec..a1da36f131f0 100644
--- a/drivers/video/fbdev/fsl-dcu-fb.c
+++ b/drivers/video/fbdev/fsl-dcu-fb.c
@@ -1061,9 +1061,8 @@ static int fsl_dcu_suspend(struct device *dev)
fb_set_suspend(fbi, 1);
console_unlock();
- disable_panel(fbi);
-
disable_controller(dcufb->fsl_dcu_info[0]);
+ disable_panel(fbi);
clk_disable_unprepare(dcufb->clk);
return 0;
@@ -1083,14 +1082,14 @@ static int fsl_dcu_resume(struct device *dev)
goto failed_bypasstcon;
}
- enable_controller(dcufb->fsl_dcu_info[0]);
+ reset_layers(dcufb);
+
+ fsl_dcu_set_par(fbi);
console_lock();
fb_set_suspend(fbi, 0);
console_unlock();
- fsl_dcu_set_par(fbi);
-
failed_bypasstcon:
return ret;
}