Commit 772a9e631ccad0423ed6d08acb3a4b1084ae2613
Committed by
Russell King
1 parent
246b49768b
Exists in
master
and in
7 other branches
[PATCH] ARM: 2687/1: i.MX framebuffer: make dmacr register platform configurable
Patch from Sascha Hauer The dmacr needs different settings on some boards. This patch makes the register configurable by the platform part. Also we have imxfb_disable_controller(), so lets use it. Signed-off-by: Steven Scholz Signed-off-by: Sascha Hauer Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Showing 3 changed files with 9 additions and 7 deletions Side-by-side Diff
drivers/video/imxfb.c
... | ... | @@ -249,9 +249,6 @@ |
249 | 249 | /* disable hardware cursor */ |
250 | 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 | 252 | LCDC_RMCR = RMCR_LCDC_EN; |
256 | 253 | |
257 | 254 | if(fbi->backlight_power) |
... | ... | @@ -359,6 +356,7 @@ |
359 | 356 | LCDC_PCR = fbi->pcr; |
360 | 357 | LCDC_PWMR = fbi->pwmr; |
361 | 358 | LCDC_LSCR1 = fbi->lscr1; |
359 | + LCDC_DMACR = fbi->dmacr; | |
362 | 360 | |
363 | 361 | return 0; |
364 | 362 | } |
... | ... | @@ -509,6 +507,7 @@ |
509 | 507 | fbi->cmap_inverse = inf->cmap_inverse; |
510 | 508 | fbi->pcr = inf->pcr; |
511 | 509 | fbi->lscr1 = inf->lscr1; |
510 | + fbi->dmacr = inf->dmacr; | |
512 | 511 | fbi->pwmr = inf->pwmr; |
513 | 512 | fbi->lcd_power = inf->lcd_power; |
514 | 513 | fbi->backlight_power = inf->backlight_power; |
515 | 514 | |
... | ... | @@ -642,12 +641,12 @@ |
642 | 641 | { |
643 | 642 | struct platform_device *pdev = to_platform_device(dev); |
644 | 643 | struct fb_info *info = dev_get_drvdata(dev); |
644 | + struct imxfb_info *fbi = info->par; | |
645 | 645 | struct resource *res; |
646 | 646 | |
647 | 647 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
648 | 648 | |
649 | - /* disable LCD controller */ | |
650 | - LCDC_RMCR &= ~RMCR_LCDC_EN; | |
649 | + imxfb_disable_controller(fbi); | |
651 | 650 | |
652 | 651 | unregister_framebuffer(info); |
653 | 652 | |
... | ... | @@ -663,8 +662,9 @@ |
663 | 662 | |
664 | 663 | void imxfb_shutdown(struct device * dev) |
665 | 664 | { |
666 | - /* disable LCD Controller */ | |
667 | - LCDC_RMCR &= ~RMCR_LCDC_EN; | |
665 | + struct fb_info *info = dev_get_drvdata(dev); | |
666 | + struct imxfb_info *fbi = info->par; | |
667 | + imxfb_disable_controller(fbi); | |
668 | 668 | } |
669 | 669 | |
670 | 670 | static struct device_driver imxfb_driver = { |
drivers/video/imxfb.h