diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-03 18:14:00 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-03 18:14:00 +0200 |
commit | 63c422afe3739b68bec0b5c42807d1450c951caf (patch) | |
tree | 2cdbcbd4c6fcea69fbe0b164242336c38168f631 /arch | |
parent | Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-serial (diff) | |
parent | [ARM] 3848/1: pxafb: Add option of fixing video modes and spitz QVGA mode sup... (diff) | |
download | linux-63c422afe3739b68bec0b5c42807d1450c951caf.tar.xz linux-63c422afe3739b68bec0b5c42807d1450c951caf.zip |
Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm
* 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm:
[ARM] 3848/1: pxafb: Add option of fixing video modes and spitz QVGA mode support
[ARM] 3880/1: remove the last trace of iop31x support
[ARM] 3879/1: ep93xx: instantiate platform devices for ep93xx ethernet
[ARM] 3809/3: get rid of 4 megabyte kernel image size limit
[ARM] Fix XIP_KERNEL build error in arch/arm/mm/mmu.c
[ARM] 3874/1: Remove leftover usage of asm/timeofday.h
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/boot/compressed/head.S | 3 | ||||
-rw-r--r-- | arch/arm/kernel/head.S | 18 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/edb9315a.c | 30 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/gesbc9312.c | 27 | ||||
-rw-r--r-- | arch/arm/mach-ep93xx/ts72xx.c | 30 | ||||
-rw-r--r-- | arch/arm/mach-pxa/corgi_lcd.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-pxa/generic.c | 13 | ||||
-rw-r--r-- | arch/arm/mach-pxa/idp.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-pxa/lpd270.c | 42 | ||||
-rw-r--r-- | arch/arm/mach-pxa/lubbock.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-pxa/mainstone.c | 17 | ||||
-rw-r--r-- | arch/arm/mach-pxa/poodle.c | 12 | ||||
-rw-r--r-- | arch/arm/mach-pxa/spitz.c | 51 | ||||
-rw-r--r-- | arch/arm/mach-pxa/trizeps4.c | 7 | ||||
-rw-r--r-- | arch/arm/mm/mmu.c | 2 | ||||
-rw-r--r-- | arch/arm/oprofile/op_model_xscale.c | 3 |
16 files changed, 212 insertions, 63 deletions
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S index e5ab51b9cceb..2568d311be21 100644 --- a/arch/arm/boot/compressed/head.S +++ b/arch/arm/boot/compressed/head.S @@ -237,7 +237,8 @@ not_relocated: mov r0, #0 */ cmp r4, r2 bhs wont_overwrite - add r0, r4, #4096*1024 @ 4MB largest kernel size + sub r3, sp, r5 @ > compressed kernel size + add r0, r4, r3, lsl #2 @ allow for 4x expansion cmp r0, r5 bls wont_overwrite diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S index 5365d4e5949e..ebc3e74a7947 100644 --- a/arch/arm/kernel/head.S +++ b/arch/arm/kernel/head.S @@ -234,18 +234,18 @@ __create_page_tables: /* * Now setup the pagetables for our kernel direct - * mapped region. We round TEXTADDR down to the - * nearest megabyte boundary. It is assumed that - * the kernel fits within 4 contigous 1MB sections. + * mapped region. */ add r0, r4, #(TEXTADDR & 0xff000000) >> 18 @ start of kernel str r3, [r0, #(TEXTADDR & 0x00f00000) >> 18]! - add r3, r3, #1 << 20 - str r3, [r0, #4]! @ KERNEL + 1MB - add r3, r3, #1 << 20 - str r3, [r0, #4]! @ KERNEL + 2MB - add r3, r3, #1 << 20 - str r3, [r0, #4] @ KERNEL + 3MB + + ldr r6, =(_end - PAGE_OFFSET - 1) @ r6 = number of sections + mov r6, r6, lsr #20 @ needed for kernel minus 1 + +1: add r3, r3, #1 << 20 + str r3, [r0, #4]! + subs r6, r6, #1 + bgt 1b /* * Then map first 1MB of ram in case it contains our boot params. diff --git a/arch/arm/mach-ep93xx/edb9315a.c b/arch/arm/mach-ep93xx/edb9315a.c index bfefdaa8f794..fa958e9d6ddd 100644 --- a/arch/arm/mach-ep93xx/edb9315a.c +++ b/arch/arm/mach-ep93xx/edb9315a.c @@ -44,10 +44,40 @@ static struct platform_device edb9315a_flash = { .resource = &edb9315a_flash_resource, }; +static struct ep93xx_eth_data edb9315a_eth_data = { + .phy_id = 1, +}; + +static struct resource edb9315a_eth_resource[] = { + { + .start = EP93XX_ETHERNET_PHYS_BASE, + .end = EP93XX_ETHERNET_PHYS_BASE + 0xffff, + .flags = IORESOURCE_MEM, + }, { + .start = IRQ_EP93XX_ETHERNET, + .end = IRQ_EP93XX_ETHERNET, + .flags = IORESOURCE_IRQ, + } +}; + +static struct platform_device edb9315a_eth_device = { + .name = "ep93xx-eth", + .id = -1, + .dev = { + .platform_data = &edb9315a_eth_data, + }, + .num_resources = 2, + .resource = edb9315a_eth_resource, +}; + static void __init edb9315a_init_machine(void) { ep93xx_init_devices(); platform_device_register(&edb9315a_flash); + + memcpy(edb9315a_eth_data.dev_addr, + (void *)(EP93XX_ETHERNET_BASE + 0x50), 6); + platform_device_register(&edb9315a_eth_device); } MACHINE_START(EDB9315A, "Cirrus Logic EDB9315A Evaluation Board") diff --git a/arch/arm/mach-ep93xx/gesbc9312.c b/arch/arm/mach-ep93xx/gesbc9312.c index e760fd4f3655..694590a451c1 100644 --- a/arch/arm/mach-ep93xx/gesbc9312.c +++ b/arch/arm/mach-ep93xx/gesbc9312.c @@ -43,10 +43,37 @@ static struct platform_device gesbc9312_flash = { .resource = &gesbc9312_flash_resource, }; +static struct ep93xx_eth_data gesbc9312_eth_data = { + .phy_id = 1, +}; + +static struct resource gesbc9312_eth_resource[] = { + { + .start = EP93XX_ETHERNET_PHYS_BASE, + .end = EP93XX_ETHERNET_PHYS_BASE + 0xffff, + .flags = IORESOURCE_MEM, + }, { + .start = IRQ_EP93XX_ETHERNET, + .end = IRQ_EP93XX_ETHERNET, + .flags = IORESOURCE_IRQ, + } +}; + +static struct platform_device gesbc9312_eth_device = { + .name = "ep93xx-eth", + .id = -1, + .dev = { + .platform_data = &gesbc9312_eth_data, + }, + .num_resources = 2, + .resource = gesbc9312_eth_resource, +}; + static void __init gesbc9312_init_machine(void) { ep93xx_init_devices(); platform_device_register(&gesbc9312_flash); + platform_device_register(&gesbc9312_eth_device); } MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx") diff --git a/arch/arm/mach-ep93xx/ts72xx.c b/arch/arm/mach-ep93xx/ts72xx.c index df315f2e9beb..3a4bf90ba832 100644 --- a/arch/arm/mach-ep93xx/ts72xx.c +++ b/arch/arm/mach-ep93xx/ts72xx.c @@ -157,12 +157,42 @@ static struct platform_device ts72xx_rtc_device = { .num_resources = 0, }; +static struct ep93xx_eth_data ts72xx_eth_data = { + .phy_id = 1, +}; + +static struct resource ts72xx_eth_resource[] = { + { + .start = EP93XX_ETHERNET_PHYS_BASE, + .end = EP93XX_ETHERNET_PHYS_BASE + 0xffff, + .flags = IORESOURCE_MEM, + }, { + .start = IRQ_EP93XX_ETHERNET, + .end = IRQ_EP93XX_ETHERNET, + .flags = IORESOURCE_IRQ, + } +}; + +static struct platform_device ts72xx_eth_device = { + .name = "ep93xx-eth", + .id = -1, + .dev = { + .platform_data = &ts72xx_eth_data, + }, + .num_resources = 2, + .resource = ts72xx_eth_resource, +}; + static void __init ts72xx_init_machine(void) { ep93xx_init_devices(); if (board_is_ts7200()) platform_device_register(&ts72xx_flash); platform_device_register(&ts72xx_rtc_device); + + memcpy(ts72xx_eth_data.dev_addr, + (void *)(EP93XX_ETHERNET_BASE + 0x50), 6); + platform_device_register(&ts72xx_eth_device); } MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC") diff --git a/arch/arm/mach-pxa/corgi_lcd.c b/arch/arm/mach-pxa/corgi_lcd.c index 6dbcaf114ad7..d7815491b752 100644 --- a/arch/arm/mach-pxa/corgi_lcd.c +++ b/arch/arm/mach-pxa/corgi_lcd.c @@ -431,10 +431,10 @@ struct platform_device corgifb_device = { #include <asm/arch/pxafb.h> -void spitz_lcd_power(int on) +void spitz_lcd_power(int on, struct fb_var_screeninfo *var) { if (on) - lcdtg_hw_init(480); + lcdtg_hw_init(var->xres); else lcdtg_suspend(); } diff --git a/arch/arm/mach-pxa/generic.c b/arch/arm/mach-pxa/generic.c index 5efa84749f37..45fb2c3bcf82 100644 --- a/arch/arm/mach-pxa/generic.c +++ b/arch/arm/mach-pxa/generic.c @@ -204,13 +204,6 @@ static struct platform_device udc_device = { } }; -static struct pxafb_mach_info pxa_fb_info; - -void __init set_pxa_fb_info(struct pxafb_mach_info *hard_pxa_fb_info) -{ - memcpy(&pxa_fb_info,hard_pxa_fb_info,sizeof(struct pxafb_mach_info)); -} - static struct resource pxafb_resources[] = { [0] = { .start = 0x44000000, @@ -230,7 +223,6 @@ static struct platform_device pxafb_device = { .name = "pxa2xx-fb", .id = -1, .dev = { - .platform_data = &pxa_fb_info, .dma_mask = &fb_dma_mask, .coherent_dma_mask = 0xffffffff, }, @@ -238,6 +230,11 @@ static struct platform_device pxafb_device = { .resource = pxafb_resources, }; +void __init set_pxa_fb_info(struct pxafb_mach_info *info) +{ + pxafb_device.dev.platform_data = info; +} + void __init set_pxa_fb_parent(struct device *parent_dev) { pxafb_device.dev.parent = parent_dev; diff --git a/arch/arm/mach-pxa/idp.c b/arch/arm/mach-pxa/idp.c index 6914d22bc20f..3e4b0ab71c66 100644 --- a/arch/arm/mach-pxa/idp.c +++ b/arch/arm/mach-pxa/idp.c @@ -82,7 +82,7 @@ static void idp_vlcd(int on) } } -static void idp_lcd_power(int on) +static void idp_lcd_power(int on, struct fb_var_screeninfo *var) { if (on) { IDP_CPLD_LCD |= (1<<0); @@ -99,7 +99,7 @@ static void idp_lcd_power(int on) idp_vlcd(on); } -static struct pxafb_mach_info sharp_lm8v31 __initdata = { +static struct pxafb_mode_info sharp_lm8v31_mode = { .pixclock = 270000, .xres = 640, .yres = 480, @@ -112,6 +112,11 @@ static struct pxafb_mach_info sharp_lm8v31 __initdata = { .lower_margin = 0, .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, .cmap_greyscale = 0, +}; + +static struct pxafb_mach_info sharp_lm8v31 = { + .modes = &sharp_lm8v31_mode, + .num_modes = 1, .cmap_inverse = 0, .cmap_static = 0, .lccr0 = LCCR0_SDS, diff --git a/arch/arm/mach-pxa/lpd270.c b/arch/arm/mach-pxa/lpd270.c index 12479ae26db2..eff2a91b2565 100644 --- a/arch/arm/mach-pxa/lpd270.c +++ b/arch/arm/mach-pxa/lpd270.c @@ -248,7 +248,7 @@ static void lpd270_backlight_power(int on) } /* 5.7" TFT QVGA (LoLo display number 1) */ -static struct pxafb_mach_info sharp_lq057q3dc02 __initdata = { +static struct pxafb_mode_info sharp_lq057q3dc02_mode = { .pixclock = 150000, .xres = 320, .yres = 240, @@ -260,13 +260,18 @@ static struct pxafb_mach_info sharp_lq057q3dc02 __initdata = { .upper_margin = 0x08, .lower_margin = 0x14, .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, +}; + +static struct pxafb_mach_info sharp_lq057q3dc02 = { + .modes = &sharp_lq057q3dc02_mode, + .num_modes = 1, .lccr0 = 0x07800080, .lccr3 = 0x00400000, .pxafb_backlight_power = lpd270_backlight_power, }; /* 12.1" TFT SVGA (LoLo display number 2) */ -static struct pxafb_mach_info sharp_lq121s1dg31 __initdata = { +static struct pxafb_mode_info sharp_lq121s1dg31_mode = { .pixclock = 50000, .xres = 800, .yres = 600, @@ -278,13 +283,18 @@ static struct pxafb_mach_info sharp_lq121s1dg31 __initdata = { .upper_margin = 0x14, .lower_margin = 0x0a, .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, +}; + +static struct pxafb_mach_info sharp_lq121s1dg31 = { + .modes = &sharp_lq121s1dg31_mode, + .num_modes = 1, .lccr0 = 0x07800080, .lccr3 = 0x00400000, .pxafb_backlight_power = lpd270_backlight_power, }; /* 3.6" TFT QVGA (LoLo display number 3) */ -static struct pxafb_mach_info sharp_lq036q1da01 __initdata = { +static struct pxafb_mode_info sharp_lq036q1da01_mode = { .pixclock = 150000, .xres = 320, .yres = 240, @@ -296,13 +306,18 @@ static struct pxafb_mach_info sharp_lq036q1da01 __initdata = { .upper_margin = 0x03, .lower_margin = 0x03, .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, +}; + +static struct pxafb_mach_info sharp_lq036q1da01 = { + .modes = &sharp_lq036q1da01_mode, + .num_modes = 1, .lccr0 = 0x07800080, .lccr3 = 0x00400000, .pxafb_backlight_power = lpd270_backlight_power, }; /* 6.4" TFT VGA (LoLo display number 5) */ -static struct pxafb_mach_info sharp_lq64d343 __initdata = { +static struct pxafb_mode_info sharp_lq64d343_mode = { .pixclock = 25000, .xres = 640, .yres = 480, @@ -314,13 +329,18 @@ static struct pxafb_mach_info sharp_lq64d343 __initdata = { .upper_margin = 0x22, .lower_margin = 0x00, .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, +}; + +static struct pxafb_mach_info sharp_lq64d343 = { + .modes = &sharp_lq64d343_mode, + .num_modes = 1, .lccr0 = 0x07800080, .lccr3 = 0x00400000, .pxafb_backlight_power = lpd270_backlight_power, }; /* 10.4" TFT VGA (LoLo display number 7) */ -static struct pxafb_mach_info sharp_lq10d368 __initdata = { +static struct pxafb_mode_info sharp_lq10d368_mode = { .pixclock = 25000, .xres = 640, .yres = 480, @@ -332,13 +352,18 @@ static struct pxafb_mach_info sharp_lq10d368 __initdata = { .upper_margin = 0x22, .lower_margin = 0x00, .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, +}; + +static struct pxafb_mach_info sharp_lq10d368 = { + .modes = &sharp_lq10d368_mode, + .num_modes = 1, .lccr0 = 0x07800080, .lccr3 = 0x00400000, .pxafb_backlight_power = lpd270_backlight_power, }; /* 3.5" TFT QVGA (LoLo display number 8) */ -static struct pxafb_mach_info sharp_lq035q7db02_20 __initdata = { +static struct pxafb_mode_info sharp_lq035q7db02_20_mode = { .pixclock = 150000, .xres = 240, .yres = 320, @@ -350,6 +375,11 @@ static struct pxafb_mach_info sharp_lq035q7db02_20 __initdata = { .upper_margin = 0x05, .lower_margin = 0x14, .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, +}; + +static struct pxafb_mach_info sharp_lq035q7db02_20 = { + .modes = &sharp_lq035q7db02_20_mode, + .num_modes = 1, .lccr0 = 0x07800080, .lccr3 = 0x00400000, .pxafb_backlight_power = lpd270_backlight_power, diff --git a/arch/arm/mach-pxa/lubbock.c b/arch/arm/mach-pxa/lubbock.c index 83ff5cee64d9..157cf47cbe66 100644 --- a/arch/arm/mach-pxa/lubbock.c +++ b/arch/arm/mach-pxa/lubbock.c @@ -352,7 +352,7 @@ static struct platform_device *devices[] __initdata = { &pxa_ssp, }; -static struct pxafb_mach_info sharp_lm8v31 __initdata = { +static struct pxafb_mode_info sharp_lm8v31_mode = { .pixclock = 270000, .xres = 640, .yres = 480, @@ -365,6 +365,11 @@ static struct pxafb_mach_info sharp_lm8v31 __initdata = { .lower_margin = 0, .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, .cmap_greyscale = 0, +}; + +static struct pxafb_mach_info sharp_lm8v31 = { + .modes = &sharp_lm8v31_mode, + .num_modes = 1, .cmap_inverse = 0, .cmap_static = 0, .lccr0 = LCCR0_SDS, diff --git a/arch/arm/mach-pxa/mainstone.c b/arch/arm/mach-pxa/mainstone.c index a7e9b96f258a..7ba0447d6fa3 100644 --- a/arch/arm/mach-pxa/mainstone.c +++ b/arch/arm/mach-pxa/mainstone.c @@ -279,7 +279,7 @@ static void mainstone_backlight_power(int on) } } -static struct pxafb_mach_info toshiba_ltm04c380k __initdata = { +static struct pxafb_mode_info toshiba_ltm04c380k_mode = { .pixclock = 50000, .xres = 640, .yres = 480, @@ -291,12 +291,9 @@ static struct pxafb_mach_info toshiba_ltm04c380k __initdata = { .upper_margin = 0, .lower_margin = 0, .sync = FB_SYNC_HOR_HIGH_ACT|FB_SYNC_VERT_HIGH_ACT, - .lccr0 = LCCR0_Act, - .lccr3 = LCCR3_PCP, - .pxafb_backlight_power = mainstone_backlight_power, }; -static struct pxafb_mach_info toshiba_ltm035a776c __initdata = { +static struct pxafb_mode_info toshiba_ltm035a776c_mode = { .pixclock = 110000, .xres = 240, .yres = 320, @@ -308,6 +305,10 @@ static struct pxafb_mach_info toshiba_ltm035a776c __initdata = { .upper_margin = 1, .lower_margin = 10, .sync = FB_SYNC_HOR_HIGH_ACT|FB_SYNC_VERT_HIGH_ACT, +}; + +static struct pxafb_mach_info mainstone_pxafb_info = { + .num_modes = 1, .lccr0 = LCCR0_Act, .lccr3 = LCCR3_PCP, .pxafb_backlight_power = mainstone_backlight_power, @@ -448,9 +449,11 @@ static void __init mainstone_init(void) /* reading Mainstone's "Virtual Configuration Register" might be handy to select LCD type here */ if (0) - set_pxa_fb_info(&toshiba_ltm04c380k); + mainstone_pxafb_info.modes = &toshiba_ltm04c380k_mode; else - set_pxa_fb_info(&toshiba_ltm035a776c); + mainstone_pxafb_info.modes = &toshiba_ltm035a776c_mode; + + set_pxa_fb_info(&mainstone_pxafb_info); pxa_set_mci_info(&mainstone_mci_platform_data); pxa_set_ficp_info(&mainstone_ficp_platform_data); diff --git a/arch/arm/mach-pxa/poodle.c b/arch/arm/mach-pxa/poodle.c index 6dbff6d94801..5e8c098ca139 100644 --- a/arch/arm/mach-pxa/poodle.c +++ b/arch/arm/mach-pxa/poodle.c @@ -296,27 +296,25 @@ static struct pxa2xx_udc_mach_info udc_info __initdata = { /* PXAFB device */ -static struct pxafb_mach_info poodle_fb_info __initdata = { +static struct pxafb_mode_info poodle_fb_mode = { .pixclock = 144700, - .xres = 320, .yres = 240, .bpp = 16, - .hsync_len = 7, .left_margin = 11, .right_margin = 30, - .vsync_len = 2, .upper_margin = 2, .lower_margin = 0, .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, +}; +static struct pxafb_mach_info poodle_fb_info = { + .modes = &poodle_fb_mode, + .num_modes = 1, .lccr0 = LCCR0_Act | LCCR0_Sngl | LCCR0_Color, .lccr3 = 0, - - .pxafb_backlight_power = NULL, - .pxafb_lcd_power = NULL, }; static struct platform_device *devices[] __initdata = { diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c index 1c32a9310dc2..401cdb850fbc 100644 --- a/arch/arm/mach-pxa/spitz.c +++ b/arch/arm/mach-pxa/spitz.c @@ -407,21 +407,42 @@ static struct pxaficp_platform_data spitz_ficp_platform_data = { /* * Spitz PXA Framebuffer */ -static struct pxafb_mach_info spitz_pxafb_info __initdata = { - .pixclock = 19231, - .xres = 480, - .yres = 640, - .bpp = 16, - .hsync_len = 40, - .left_margin = 46, - .right_margin = 125, - .vsync_len = 3, - .upper_margin = 1, - .lower_margin = 0, - .sync = 0, - .lccr0 = LCCR0_Color | LCCR0_Sngl | LCCR0_Act | LCCR0_LDDALT | LCCR0_OUC | LCCR0_CMDIM | LCCR0_RDSTM, - .lccr3 = LCCR3_PixRsEdg | LCCR3_OutEnH, - .pxafb_lcd_power = spitz_lcd_power, + +static struct pxafb_mode_info spitz_pxafb_modes[] = { +{ + .pixclock = 19231, + .xres = 480, + .yres = 640, + .bpp = 16, + .hsync_len = 40, + .left_margin = 46, + .right_margin = 125, + .vsync_len = 3, + .upper_margin = 1, + .lower_margin = 0, + .sync = 0, +},{ + .pixclock = 134617, + .xres = 240, + .yres = 320, + .bpp = 16, + .hsync_len = 20, + .left_margin = 20, + .right_margin = 46, + .vsync_len = 2, + .upper_margin = 1, + .lower_margin = 0, + .sync = 0, +}, +}; + +static struct pxafb_mach_info spitz_pxafb_info = { + .modes = &spitz_pxafb_modes[0], + .num_modes = 2, + .fixed_modes = 1, + .lccr0 = LCCR0_Color | LCCR0_Sngl | LCCR0_Act | LCCR0_LDDALT | LCCR0_OUC | LCCR0_CMDIM | LCCR0_RDSTM, + .lccr3 = LCCR3_PixRsEdg | LCCR3_OutEnH, + .pxafb_lcd_power = spitz_lcd_power, }; diff --git a/arch/arm/mach-pxa/trizeps4.c b/arch/arm/mach-pxa/trizeps4.c index 7c3007df1bd6..910571e9a190 100644 --- a/arch/arm/mach-pxa/trizeps4.c +++ b/arch/arm/mach-pxa/trizeps4.c @@ -368,7 +368,7 @@ static struct map_desc trizeps4_io_desc[] __initdata = { } }; -static struct pxafb_mach_info sharp_lcd __initdata = { +static struct pxafb_mode_info sharp_lcd_mode = { .pixclock = 78000, .xres = 640, .yres = 480, @@ -381,6 +381,11 @@ static struct pxafb_mach_info sharp_lcd __initdata = { .lower_margin = 0, .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, .cmap_greyscale = 0, +}; + +static struct pxafb_mach_info sharp_lcd = { + .modes = &sharp_lcd_mode, + .num_modes = 1, .cmap_inverse = 0, .cmap_static = 0, .lccr0 = LCCR0_Color | LCCR0_Pas | LCCR0_Dual, diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index e566cbe4b222..f866bf6b97d4 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c @@ -27,7 +27,7 @@ DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); -extern void _stext, __data_start, _end; +extern void _stext, _etext, __data_start, _end; extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; /* diff --git a/arch/arm/oprofile/op_model_xscale.c b/arch/arm/oprofile/op_model_xscale.c index 6576143f2559..726ad2b3b435 100644 --- a/arch/arm/oprofile/op_model_xscale.c +++ b/arch/arm/oprofile/op_model_xscale.c @@ -33,9 +33,6 @@ #define PMU_CNT64 0x008 /* Make CCNT count every 64th cycle */ /* TODO do runtime detection */ -#ifdef CONFIG_ARCH_IOP310 -#define XSCALE_PMU_IRQ IRQ_XS80200_PMU -#endif #ifdef CONFIG_ARCH_IOP32X #define XSCALE_PMU_IRQ IRQ_IOP32X_CORE_PMU #endif |