diff options
| author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-06-07 20:02:29 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-06-07 20:02:29 -0400 |
| commit | c52ecdab06ff3b4d0f8914951eb74dc8b049f51c (patch) | |
| tree | 291a55adb3be3fec45dcc6affa72d9d1244ba42a | |
| parent | dc315011312f04433e0fdd34b6a3dde4bfde1e48 (diff) | |
| parent | c0f85a82484c25d23b44a87a35daddb2b276b4aa (diff) | |
Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm:
[ARM] pxa: fix pxa27x keyboard driver
[ARM] Fix 4417/1: Serial: Fix AMBA drivers locking
[ARM] 4421/1: AT91: Value of _KEY fields.
[ARM] Solve buggy smp_processor_id() usage
[ARM] 4422/1: Fix default value handling in gpio_direction_output (PXA)
[ARM] 4419/1: AT91: SAM9 USB clocks check for suspending
[ARM] 4418/1: AT91: Number of programmable clocks differs
[ARM] 4392/2: Do not corrupt the SP register in compressed/head.S
| -rw-r--r-- | arch/arm/boot/compressed/head.S | 5 | ||||
| -rw-r--r-- | arch/arm/mach-at91/clock.c | 5 | ||||
| -rw-r--r-- | arch/arm/mach-at91/pm.c | 11 | ||||
| -rw-r--r-- | arch/arm/oprofile/op_model_mpcore.c | 2 | ||||
| -rw-r--r-- | drivers/input/keyboard/pxa27x_keyboard.c | 6 | ||||
| -rw-r--r-- | drivers/serial/amba-pl010.c | 4 | ||||
| -rw-r--r-- | include/asm-arm/arch-at91/at91_shdwc.h | 4 | ||||
| -rw-r--r-- | include/asm-arm/arch-at91/at91_wdt.h | 2 | ||||
| -rw-r--r-- | include/asm-arm/arch-pxa/gpio.h | 3 |
9 files changed, 21 insertions, 21 deletions
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S index 2568d311be21..23348e9561b9 100644 --- a/arch/arm/boot/compressed/head.S +++ b/arch/arm/boot/compressed/head.S | |||
| @@ -247,7 +247,7 @@ not_relocated: mov r0, #0 | |||
| 247 | mov r3, r7 | 247 | mov r3, r7 |
| 248 | bl decompress_kernel | 248 | bl decompress_kernel |
| 249 | 249 | ||
| 250 | add r0, r0, #127 | 250 | add r0, r0, #127 + 128 @ alignment + stack |
| 251 | bic r0, r0, #127 @ align the kernel length | 251 | bic r0, r0, #127 @ align the kernel length |
| 252 | /* | 252 | /* |
| 253 | * r0 = decompressed kernel length | 253 | * r0 = decompressed kernel length |
| @@ -269,6 +269,7 @@ not_relocated: mov r0, #0 | |||
| 269 | stmia r1!, {r9 - r14} | 269 | stmia r1!, {r9 - r14} |
| 270 | cmp r2, r3 | 270 | cmp r2, r3 |
| 271 | blo 1b | 271 | blo 1b |
| 272 | add sp, r1, #128 @ relocate the stack | ||
| 272 | 273 | ||
| 273 | bl cache_clean_flush | 274 | bl cache_clean_flush |
| 274 | add pc, r5, r0 @ call relocation code | 275 | add pc, r5, r0 @ call relocation code |
| @@ -476,6 +477,7 @@ __common_mmu_cache_on: | |||
| 476 | */ | 477 | */ |
| 477 | .align 5 | 478 | .align 5 |
| 478 | reloc_start: add r9, r5, r0 | 479 | reloc_start: add r9, r5, r0 |
| 480 | sub r9, r9, #128 @ do not copy the stack | ||
| 479 | debug_reloc_start | 481 | debug_reloc_start |
| 480 | mov r1, r4 | 482 | mov r1, r4 |
| 481 | 1: | 483 | 1: |
| @@ -486,6 +488,7 @@ reloc_start: add r9, r5, r0 | |||
| 486 | 488 | ||
| 487 | cmp r5, r9 | 489 | cmp r5, r9 |
| 488 | blo 1b | 490 | blo 1b |
| 491 | add sp, r1, #128 @ relocate the stack | ||
| 489 | debug_reloc_end | 492 | debug_reloc_end |
| 490 | 493 | ||
| 491 | call_kernel: bl cache_clean_flush | 494 | call_kernel: bl cache_clean_flush |
diff --git a/arch/arm/mach-at91/clock.c b/arch/arm/mach-at91/clock.c index 06c9a0507d0d..848efb2a4ebf 100644 --- a/arch/arm/mach-at91/clock.c +++ b/arch/arm/mach-at91/clock.c | |||
| @@ -364,19 +364,14 @@ static int at91_clk_show(struct seq_file *s, void *unused) | |||
| 364 | { | 364 | { |
| 365 | u32 scsr, pcsr, sr; | 365 | u32 scsr, pcsr, sr; |
| 366 | struct clk *clk; | 366 | struct clk *clk; |
| 367 | unsigned i; | ||
| 368 | 367 | ||
| 369 | seq_printf(s, "SCSR = %8x\n", scsr = at91_sys_read(AT91_PMC_SCSR)); | 368 | seq_printf(s, "SCSR = %8x\n", scsr = at91_sys_read(AT91_PMC_SCSR)); |
| 370 | seq_printf(s, "PCSR = %8x\n", pcsr = at91_sys_read(AT91_PMC_PCSR)); | 369 | seq_printf(s, "PCSR = %8x\n", pcsr = at91_sys_read(AT91_PMC_PCSR)); |
| 371 | |||
| 372 | seq_printf(s, "MOR = %8x\n", at91_sys_read(AT91_CKGR_MOR)); | 370 | seq_printf(s, "MOR = %8x\n", at91_sys_read(AT91_CKGR_MOR)); |
| 373 | seq_printf(s, "MCFR = %8x\n", at91_sys_read(AT91_CKGR_MCFR)); | 371 | seq_printf(s, "MCFR = %8x\n", at91_sys_read(AT91_CKGR_MCFR)); |
| 374 | seq_printf(s, "PLLA = %8x\n", at91_sys_read(AT91_CKGR_PLLAR)); | 372 | seq_printf(s, "PLLA = %8x\n", at91_sys_read(AT91_CKGR_PLLAR)); |
| 375 | seq_printf(s, "PLLB = %8x\n", at91_sys_read(AT91_CKGR_PLLBR)); | 373 | seq_printf(s, "PLLB = %8x\n", at91_sys_read(AT91_CKGR_PLLBR)); |
| 376 | |||
| 377 | seq_printf(s, "MCKR = %8x\n", at91_sys_read(AT91_PMC_MCKR)); | 374 | seq_printf(s, "MCKR = %8x\n", at91_sys_read(AT91_PMC_MCKR)); |
| 378 | for (i = 0; i < 4; i++) | ||
| 379 | seq_printf(s, "PCK%d = %8x\n", i, at91_sys_read(AT91_PMC_PCKR(i))); | ||
| 380 | seq_printf(s, "SR = %8x\n", sr = at91_sys_read(AT91_PMC_SR)); | 375 | seq_printf(s, "SR = %8x\n", sr = at91_sys_read(AT91_PMC_SR)); |
| 381 | 376 | ||
| 382 | seq_printf(s, "\n"); | 377 | seq_printf(s, "\n"); |
diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c index ff8db29e989e..47ff676aca5f 100644 --- a/arch/arm/mach-at91/pm.c +++ b/arch/arm/mach-at91/pm.c | |||
| @@ -76,12 +76,11 @@ static int at91_pm_verify_clocks(void) | |||
| 76 | pr_debug("AT91: PM - Suspend-to-RAM with USB still active\n"); | 76 | pr_debug("AT91: PM - Suspend-to-RAM with USB still active\n"); |
| 77 | return 0; | 77 | return 0; |
| 78 | } | 78 | } |
| 79 | } else if (cpu_is_at91sam9260()) { | 79 | } else if (cpu_is_at91sam9260() || cpu_is_at91sam9261() || cpu_is_at91sam9263()) { |
| 80 | #warning "Check SAM9260 USB clocks" | 80 | if ((scsr & (AT91SAM926x_PMC_UHP | AT91SAM926x_PMC_UDP)) != 0) { |
| 81 | } else if (cpu_is_at91sam9261()) { | 81 | pr_debug("AT91: PM - Suspend-to-RAM with USB still active\n"); |
| 82 | #warning "Check SAM9261 USB clocks" | 82 | return 0; |
| 83 | } else if (cpu_is_at91sam9263()) { | 83 | } |
| 84 | #warning "Check SAM9263 USB clocks" | ||
| 85 | } | 84 | } |
| 86 | 85 | ||
| 87 | #ifdef CONFIG_AT91_PROGRAMMABLE_CLOCKS | 86 | #ifdef CONFIG_AT91_PROGRAMMABLE_CLOCKS |
diff --git a/arch/arm/oprofile/op_model_mpcore.c b/arch/arm/oprofile/op_model_mpcore.c index 7791da791f5f..75bae067922d 100644 --- a/arch/arm/oprofile/op_model_mpcore.c +++ b/arch/arm/oprofile/op_model_mpcore.c | |||
| @@ -200,8 +200,10 @@ static int em_call_function(int (*fn)(void)) | |||
| 200 | data.fn = fn; | 200 | data.fn = fn; |
| 201 | data.ret = 0; | 201 | data.ret = 0; |
| 202 | 202 | ||
| 203 | preempt_disable(); | ||
| 203 | smp_call_function(em_func, &data, 1, 1); | 204 | smp_call_function(em_func, &data, 1, 1); |
| 204 | em_func(&data); | 205 | em_func(&data); |
| 206 | preempt_enable(); | ||
| 205 | 207 | ||
| 206 | return data.ret; | 208 | return data.ret; |
| 207 | } | 209 | } |
diff --git a/drivers/input/keyboard/pxa27x_keyboard.c b/drivers/input/keyboard/pxa27x_keyboard.c index 06eaf766d9d2..f9e82c9ca421 100644 --- a/drivers/input/keyboard/pxa27x_keyboard.c +++ b/drivers/input/keyboard/pxa27x_keyboard.c | |||
| @@ -104,7 +104,7 @@ static int pxakbd_open(struct input_dev *dev) | |||
| 104 | KPREC = 0x7F; | 104 | KPREC = 0x7F; |
| 105 | 105 | ||
| 106 | /* Enable unit clock */ | 106 | /* Enable unit clock */ |
| 107 | pxa_set_cken(CKEN19_KEYPAD, 1); | 107 | pxa_set_cken(CKEN_KEYPAD, 1); |
| 108 | 108 | ||
| 109 | return 0; | 109 | return 0; |
| 110 | } | 110 | } |
| @@ -112,7 +112,7 @@ static int pxakbd_open(struct input_dev *dev) | |||
| 112 | static void pxakbd_close(struct input_dev *dev) | 112 | static void pxakbd_close(struct input_dev *dev) |
| 113 | { | 113 | { |
| 114 | /* Disable clock unit */ | 114 | /* Disable clock unit */ |
| 115 | pxa_set_cken(CKEN19_KEYPAD, 0); | 115 | pxa_set_cken(CKEN_KEYPAD, 0); |
| 116 | } | 116 | } |
| 117 | 117 | ||
| 118 | #ifdef CONFIG_PM | 118 | #ifdef CONFIG_PM |
| @@ -185,7 +185,7 @@ static int __devinit pxakbd_probe(struct platform_device *pdev) | |||
| 185 | DRIVER_NAME, pdev); | 185 | DRIVER_NAME, pdev); |
| 186 | if (error) { | 186 | if (error) { |
| 187 | printk(KERN_ERR "Cannot request keypad IRQ\n"); | 187 | printk(KERN_ERR "Cannot request keypad IRQ\n"); |
| 188 | pxa_set_cken(CKEN19_KEYPAD, 0); | 188 | pxa_set_cken(CKEN_KEYPAD, 0); |
| 189 | goto err_free_dev; | 189 | goto err_free_dev; |
| 190 | } | 190 | } |
| 191 | 191 | ||
diff --git a/drivers/serial/amba-pl010.c b/drivers/serial/amba-pl010.c index 00d1255e4c12..e88da72f8304 100644 --- a/drivers/serial/amba-pl010.c +++ b/drivers/serial/amba-pl010.c | |||
| @@ -167,9 +167,9 @@ static void pl010_rx_chars(struct uart_amba_port *uap) | |||
| 167 | ignore_char: | 167 | ignore_char: |
| 168 | status = readb(uap->port.membase + UART01x_FR); | 168 | status = readb(uap->port.membase + UART01x_FR); |
| 169 | } | 169 | } |
| 170 | spin_unlock(&port->lock); | 170 | spin_unlock(&uap->port.lock); |
| 171 | tty_flip_buffer_push(tty); | 171 | tty_flip_buffer_push(tty); |
| 172 | spin_lock(&port->lock); | 172 | spin_lock(&uap->port.lock); |
| 173 | } | 173 | } |
| 174 | 174 | ||
| 175 | static void pl010_tx_chars(struct uart_amba_port *uap) | 175 | static void pl010_tx_chars(struct uart_amba_port *uap) |
diff --git a/include/asm-arm/arch-at91/at91_shdwc.h b/include/asm-arm/arch-at91/at91_shdwc.h index 795fcc266228..01b433de2272 100644 --- a/include/asm-arm/arch-at91/at91_shdwc.h +++ b/include/asm-arm/arch-at91/at91_shdwc.h | |||
| @@ -14,8 +14,8 @@ | |||
| 14 | #define AT91_SHDWC_H | 14 | #define AT91_SHDWC_H |
| 15 | 15 | ||
| 16 | #define AT91_SHDW_CR (AT91_SHDWC + 0x00) /* Shut Down Control Register */ | 16 | #define AT91_SHDW_CR (AT91_SHDWC + 0x00) /* Shut Down Control Register */ |
| 17 | #define AT91_SHDW_SHDW (1 << 0) /* Processor Reset */ | 17 | #define AT91_SHDW_SHDW (1 << 0) /* Shut Down command */ |
| 18 | #define AT91_SHDW_KEY (0xff << 24) /* KEY Password */ | 18 | #define AT91_SHDW_KEY (0xa5 << 24) /* KEY Password */ |
| 19 | 19 | ||
| 20 | #define AT91_SHDW_MR (AT91_SHDWC + 0x04) /* Shut Down Mode Register */ | 20 | #define AT91_SHDW_MR (AT91_SHDWC + 0x04) /* Shut Down Mode Register */ |
| 21 | #define AT91_SHDW_WKMODE0 (3 << 0) /* Wake-up 0 Mode Selection */ | 21 | #define AT91_SHDW_WKMODE0 (3 << 0) /* Wake-up 0 Mode Selection */ |
diff --git a/include/asm-arm/arch-at91/at91_wdt.h b/include/asm-arm/arch-at91/at91_wdt.h index 7251a344c740..1014e9bf181f 100644 --- a/include/asm-arm/arch-at91/at91_wdt.h +++ b/include/asm-arm/arch-at91/at91_wdt.h | |||
| @@ -15,7 +15,7 @@ | |||
| 15 | 15 | ||
| 16 | #define AT91_WDT_CR (AT91_WDT + 0x00) /* Watchdog Control Register */ | 16 | #define AT91_WDT_CR (AT91_WDT + 0x00) /* Watchdog Control Register */ |
| 17 | #define AT91_WDT_WDRSTT (1 << 0) /* Restart */ | 17 | #define AT91_WDT_WDRSTT (1 << 0) /* Restart */ |
| 18 | #define AT91_WDT_KEY (0xff << 24) /* KEY Password */ | 18 | #define AT91_WDT_KEY (0xa5 << 24) /* KEY Password */ |
| 19 | 19 | ||
| 20 | #define AT91_WDT_MR (AT91_WDT + 0x04) /* Watchdog Mode Register */ | 20 | #define AT91_WDT_MR (AT91_WDT + 0x04) /* Watchdog Mode Register */ |
| 21 | #define AT91_WDT_WDV (0xfff << 0) /* Counter Value */ | 21 | #define AT91_WDT_WDV (0xfff << 0) /* Counter Value */ |
diff --git a/include/asm-arm/arch-pxa/gpio.h b/include/asm-arm/arch-pxa/gpio.h index aeba24347f8e..9e99241f3edf 100644 --- a/include/asm-arm/arch-pxa/gpio.h +++ b/include/asm-arm/arch-pxa/gpio.h | |||
| @@ -45,7 +45,8 @@ static inline int gpio_direction_input(unsigned gpio) | |||
| 45 | 45 | ||
| 46 | static inline int gpio_direction_output(unsigned gpio, int value) | 46 | static inline int gpio_direction_output(unsigned gpio, int value) |
| 47 | { | 47 | { |
| 48 | return pxa_gpio_mode(gpio | GPIO_OUT | (value ? 0 : GPIO_DFLT_LOW)); | 48 | return pxa_gpio_mode(gpio | GPIO_OUT | |
| 49 | (value ? GPIO_DFLT_HIGH : GPIO_DFLT_LOW)); | ||
| 49 | } | 50 | } |
| 50 | 51 | ||
| 51 | static inline int __gpio_get_value(unsigned gpio) | 52 | static inline int __gpio_get_value(unsigned gpio) |
