aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/video/mxsfb.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/video/mxsfb.c b/drivers/video/mxsfb.c
index 4a89f889852d..dcf29bf91939 100644
--- a/drivers/video/mxsfb.c
+++ b/drivers/video/mxsfb.c
@@ -880,6 +880,18 @@ static int __devexit mxsfb_remove(struct platform_device *pdev)
880 return 0; 880 return 0;
881} 881}
882 882
883static void mxsfb_shutdown(struct platform_device *pdev)
884{
885 struct fb_info *fb_info = platform_get_drvdata(pdev);
886 struct mxsfb_info *host = to_imxfb_host(fb_info);
887
888 /*
889 * Force stop the LCD controller as keeping it running during reboot
890 * might interfere with the BootROM's boot mode pads sampling.
891 */
892 writel(CTRL_RUN, host->base + LCDC_CTRL + REG_CLR);
893}
894
883static struct platform_device_id mxsfb_devtype[] = { 895static struct platform_device_id mxsfb_devtype[] = {
884 { 896 {
885 .name = "imx23-fb", 897 .name = "imx23-fb",
@@ -896,6 +908,7 @@ MODULE_DEVICE_TABLE(platform, mxsfb_devtype);
896static struct platform_driver mxsfb_driver = { 908static struct platform_driver mxsfb_driver = {
897 .probe = mxsfb_probe, 909 .probe = mxsfb_probe,
898 .remove = __devexit_p(mxsfb_remove), 910 .remove = __devexit_p(mxsfb_remove),
911 .shutdown = mxsfb_shutdown,
899 .id_table = mxsfb_devtype, 912 .id_table = mxsfb_devtype,
900 .driver = { 913 .driver = {
901 .name = DRIVER_NAME, 914 .name = DRIVER_NAME,