diff options
author | Nicolas Ferre <nicolas.ferre@atmel.com> | 2008-05-14 19:05:38 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-05-14 22:11:13 -0400 |
commit | 90898709dfca860d9550c85f0924007f4c0467ea (patch) | |
tree | 8a22baa316ef15654c444caf0b22b1cb63feb84c /arch/arm | |
parent | 3ef0f720e47e895b613b0305eb0a483e3ec11f23 (diff) |
atmel_lcdfb: fix initialization of a pre-allocated framebuffer
Fix initialization of framebuffer not calling ioremap_writecombine() function
and not using internal SRAM for at91sam9rl.
This is a little rework of the "Don't initialize a pre-allocated framebuffer"
patch that corrects the call to ioremap_writecombine() function.
It also cuts the use of internal SRAM for at91sam9rl : it is a bit small
for a framebuffer.
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Cc: Andrew Victor <linux@maxim.org.za>
Cc: Haavard Skinnemoen <hskinnemoen@atmel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-at91/at91sam9261_devices.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-at91/at91sam9rl_devices.c | 21 |
2 files changed, 2 insertions, 23 deletions
diff --git a/arch/arm/mach-at91/at91sam9261_devices.c b/arch/arm/mach-at91/at91sam9261_devices.c index 728bb8f39441..0babb645b83c 100644 --- a/arch/arm/mach-at91/at91sam9261_devices.c +++ b/arch/arm/mach-at91/at91sam9261_devices.c | |||
@@ -544,10 +544,10 @@ void __init at91_add_device_lcdc(struct atmel_lcdfb_info *data) | |||
544 | struct resource *fb_res = &lcdc_resources[2]; | 544 | struct resource *fb_res = &lcdc_resources[2]; |
545 | size_t fb_len = fb_res->end - fb_res->start + 1; | 545 | size_t fb_len = fb_res->end - fb_res->start + 1; |
546 | 546 | ||
547 | fb = ioremap_writecombine(fb_res->start, fb_len); | 547 | fb = ioremap(fb_res->start, fb_len); |
548 | if (fb) { | 548 | if (fb) { |
549 | memset(fb, 0, fb_len); | 549 | memset(fb, 0, fb_len); |
550 | iounmap(fb, fb_len); | 550 | iounmap(fb); |
551 | } | 551 | } |
552 | } | 552 | } |
553 | lcdc_data = *data; | 553 | lcdc_data = *data; |
diff --git a/arch/arm/mach-at91/at91sam9rl_devices.c b/arch/arm/mach-at91/at91sam9rl_devices.c index 054689804e77..450db304936f 100644 --- a/arch/arm/mach-at91/at91sam9rl_devices.c +++ b/arch/arm/mach-at91/at91sam9rl_devices.c | |||
@@ -332,13 +332,6 @@ static struct resource lcdc_resources[] = { | |||
332 | .end = AT91SAM9RL_ID_LCDC, | 332 | .end = AT91SAM9RL_ID_LCDC, |
333 | .flags = IORESOURCE_IRQ, | 333 | .flags = IORESOURCE_IRQ, |
334 | }, | 334 | }, |
335 | #if defined(CONFIG_FB_INTSRAM) | ||
336 | [2] = { | ||
337 | .start = AT91SAM9RL_SRAM_BASE, | ||
338 | .end = AT91SAM9RL_SRAM_BASE + AT91SAM9RL_SRAM_SIZE - 1, | ||
339 | .flags = IORESOURCE_MEM, | ||
340 | }, | ||
341 | #endif | ||
342 | }; | 335 | }; |
343 | 336 | ||
344 | static struct platform_device at91_lcdc_device = { | 337 | static struct platform_device at91_lcdc_device = { |
@@ -381,20 +374,6 @@ void __init at91_add_device_lcdc(struct atmel_lcdfb_info *data) | |||
381 | at91_set_B_periph(AT91_PIN_PC24, 0); /* LCDD22 */ | 374 | at91_set_B_periph(AT91_PIN_PC24, 0); /* LCDD22 */ |
382 | at91_set_B_periph(AT91_PIN_PC25, 0); /* LCDD23 */ | 375 | at91_set_B_periph(AT91_PIN_PC25, 0); /* LCDD23 */ |
383 | 376 | ||
384 | #ifdef CONFIG_FB_INTSRAM | ||
385 | { | ||
386 | void __iomem *fb; | ||
387 | struct resource *fb_res = &lcdc_resources[2]; | ||
388 | size_t fb_len = fb_res->end - fb_res->start + 1; | ||
389 | |||
390 | fb = ioremap_writecombine(fb_res->start, fb_len); | ||
391 | if (fb) { | ||
392 | memset(fb, 0, fb_len); | ||
393 | iounmap(fb, fb_len); | ||
394 | } | ||
395 | } | ||
396 | #endif | ||
397 | |||
398 | lcdc_data = *data; | 377 | lcdc_data = *data; |
399 | platform_device_register(&at91_lcdc_device); | 378 | platform_device_register(&at91_lcdc_device); |
400 | } | 379 | } |