diff options
-rw-r--r-- | drivers/video/mxsfb.c | 13 |
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 | ||
883 | static 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 | |||
883 | static struct platform_device_id mxsfb_devtype[] = { | 895 | static 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); | |||
896 | static struct platform_driver mxsfb_driver = { | 908 | static 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, |