diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/video/imxfb.c | 14 | ||||
-rw-r--r-- | drivers/video/imxfb.h | 1 |
2 files changed, 8 insertions, 7 deletions
diff --git a/drivers/video/imxfb.c b/drivers/video/imxfb.c index 8fe1c12a17bd..cabd53cec991 100644 --- a/drivers/video/imxfb.c +++ b/drivers/video/imxfb.c | |||
@@ -249,9 +249,6 @@ static void imxfb_enable_controller(struct imxfb_info *fbi) | |||
249 | /* disable hardware cursor */ | 249 | /* disable hardware cursor */ |
250 | LCDC_CPOS &= ~(CPOS_CC0 | CPOS_CC1); | 250 | LCDC_CPOS &= ~(CPOS_CC0 | CPOS_CC1); |
251 | 251 | ||
252 | /* fixed burst length (see erratum 11) */ | ||
253 | LCDC_DMACR = DMACR_BURST | DMACR_HM(8) | DMACR_TM(2); | ||
254 | |||
255 | LCDC_RMCR = RMCR_LCDC_EN; | 252 | LCDC_RMCR = RMCR_LCDC_EN; |
256 | 253 | ||
257 | if(fbi->backlight_power) | 254 | if(fbi->backlight_power) |
@@ -359,6 +356,7 @@ static int imxfb_activate_var(struct fb_var_screeninfo *var, struct fb_info *inf | |||
359 | LCDC_PCR = fbi->pcr; | 356 | LCDC_PCR = fbi->pcr; |
360 | LCDC_PWMR = fbi->pwmr; | 357 | LCDC_PWMR = fbi->pwmr; |
361 | LCDC_LSCR1 = fbi->lscr1; | 358 | LCDC_LSCR1 = fbi->lscr1; |
359 | LCDC_DMACR = fbi->dmacr; | ||
362 | 360 | ||
363 | return 0; | 361 | return 0; |
364 | } | 362 | } |
@@ -509,6 +507,7 @@ static int __init imxfb_init_fbinfo(struct device *dev) | |||
509 | fbi->cmap_inverse = inf->cmap_inverse; | 507 | fbi->cmap_inverse = inf->cmap_inverse; |
510 | fbi->pcr = inf->pcr; | 508 | fbi->pcr = inf->pcr; |
511 | fbi->lscr1 = inf->lscr1; | 509 | fbi->lscr1 = inf->lscr1; |
510 | fbi->dmacr = inf->dmacr; | ||
512 | fbi->pwmr = inf->pwmr; | 511 | fbi->pwmr = inf->pwmr; |
513 | fbi->lcd_power = inf->lcd_power; | 512 | fbi->lcd_power = inf->lcd_power; |
514 | fbi->backlight_power = inf->backlight_power; | 513 | fbi->backlight_power = inf->backlight_power; |
@@ -642,12 +641,12 @@ static int imxfb_remove(struct device *dev) | |||
642 | { | 641 | { |
643 | struct platform_device *pdev = to_platform_device(dev); | 642 | struct platform_device *pdev = to_platform_device(dev); |
644 | struct fb_info *info = dev_get_drvdata(dev); | 643 | struct fb_info *info = dev_get_drvdata(dev); |
644 | struct imxfb_info *fbi = info->par; | ||
645 | struct resource *res; | 645 | struct resource *res; |
646 | 646 | ||
647 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 647 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
648 | 648 | ||
649 | /* disable LCD controller */ | 649 | imxfb_disable_controller(fbi); |
650 | LCDC_RMCR &= ~RMCR_LCDC_EN; | ||
651 | 650 | ||
652 | unregister_framebuffer(info); | 651 | unregister_framebuffer(info); |
653 | 652 | ||
@@ -663,8 +662,9 @@ static int imxfb_remove(struct device *dev) | |||
663 | 662 | ||
664 | void imxfb_shutdown(struct device * dev) | 663 | void imxfb_shutdown(struct device * dev) |
665 | { | 664 | { |
666 | /* disable LCD Controller */ | 665 | struct fb_info *info = dev_get_drvdata(dev); |
667 | LCDC_RMCR &= ~RMCR_LCDC_EN; | 666 | struct imxfb_info *fbi = info->par; |
667 | imxfb_disable_controller(fbi); | ||
668 | } | 668 | } |
669 | 669 | ||
670 | static struct device_driver imxfb_driver = { | 670 | static struct device_driver imxfb_driver = { |
diff --git a/drivers/video/imxfb.h b/drivers/video/imxfb.h index 128c3ee515c7..e837a8b48eb8 100644 --- a/drivers/video/imxfb.h +++ b/drivers/video/imxfb.h | |||
@@ -54,6 +54,7 @@ struct imxfb_info { | |||
54 | u_int pcr; | 54 | u_int pcr; |
55 | u_int pwmr; | 55 | u_int pwmr; |
56 | u_int lscr1; | 56 | u_int lscr1; |
57 | u_int dmacr; | ||
57 | u_int cmap_inverse:1, | 58 | u_int cmap_inverse:1, |
58 | cmap_static:1, | 59 | cmap_static:1, |
59 | unused:30; | 60 | unused:30; |