Skip to content

Commit

Permalink
[PATCH] ARM: 2687/1: i.MX framebuffer: make dmacr register platform c…
Browse files Browse the repository at this point in the history
…onfigurable

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>
  • Loading branch information
Sascha Hauer authored and Russell King committed Jul 17, 2005
1 parent 246b497 commit 772a9e6
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 7 deletions.
14 changes: 7 additions & 7 deletions drivers/video/imxfb.c
Original file line number Diff line number Diff line change
Expand Up @@ -249,9 +249,6 @@ static void imxfb_enable_controller(struct imxfb_info *fbi)
/* 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)
Expand Down Expand Up @@ -359,6 +356,7 @@ static int imxfb_activate_var(struct fb_var_screeninfo *var, struct fb_info *inf
LCDC_PCR = fbi->pcr;
LCDC_PWMR = fbi->pwmr;
LCDC_LSCR1 = fbi->lscr1;
LCDC_DMACR = fbi->dmacr;

return 0;
}
Expand Down Expand Up @@ -509,6 +507,7 @@ static int __init imxfb_init_fbinfo(struct device *dev)
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;
Expand Down Expand Up @@ -642,12 +641,12 @@ static int imxfb_remove(struct device *dev)
{
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);

Expand All @@ -663,8 +662,9 @@ static int imxfb_remove(struct device *dev)

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 = {
Expand Down
1 change: 1 addition & 0 deletions drivers/video/imxfb.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ struct imxfb_info {
u_int pcr;
u_int pwmr;
u_int lscr1;
u_int dmacr;
u_int cmap_inverse:1,
cmap_static:1,
unused:30;
Expand Down
1 change: 1 addition & 0 deletions include/asm-arm/arch-imx/imxfb.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ struct imxfb_mach_info {
u_int pcr;
u_int pwmr;
u_int lscr1;
u_int dmacr;

u_char * fixed_screen_cpu;
dma_addr_t fixed_screen_dma;
Expand Down

0 comments on commit 772a9e6

Please sign in to comment.