/* disable hardware cursor */
LCDC_CPOS &= ~(CPOS_CC0 | CPOS_CC1);
- /* fixed burst length (see erratum 11) */
- LCDC_DMACR = DMACR_BURST | DMACR_HM(8) | DMACR_TM(2);
-
LCDC_RMCR = RMCR_LCDC_EN;
if(fbi->backlight_power)
LCDC_PCR = fbi->pcr;
LCDC_PWMR = fbi->pwmr;
LCDC_LSCR1 = fbi->lscr1;
+ LCDC_DMACR = fbi->dmacr;
return 0;
}
fbi->cmap_inverse = inf->cmap_inverse;
fbi->pcr = inf->pcr;
fbi->lscr1 = inf->lscr1;
+ fbi->dmacr = inf->dmacr;
fbi->pwmr = inf->pwmr;
fbi->lcd_power = inf->lcd_power;
fbi->backlight_power = inf->backlight_power;
{
struct platform_device *pdev = to_platform_device(dev);
struct fb_info *info = dev_get_drvdata(dev);
+ struct imxfb_info *fbi = info->par;
struct resource *res;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- /* disable LCD controller */
- LCDC_RMCR &= ~RMCR_LCDC_EN;
+ imxfb_disable_controller(fbi);
unregister_framebuffer(info);
void imxfb_shutdown(struct device * dev)
{
- /* disable LCD Controller */
- LCDC_RMCR &= ~RMCR_LCDC_EN;
+ struct fb_info *info = dev_get_drvdata(dev);
+ struct imxfb_info *fbi = info->par;
+ imxfb_disable_controller(fbi);
}
static struct device_driver imxfb_driver = {