aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-06-07 20:02:29 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-06-07 20:02:29 -0400
commitc52ecdab06ff3b4d0f8914951eb74dc8b049f51c (patch)
tree291a55adb3be3fec45dcc6affa72d9d1244ba42a
parentdc315011312f04433e0fdd34b6a3dde4bfde1e48 (diff)
parentc0f85a82484c25d23b44a87a35daddb2b276b4aa (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.S5
-rw-r--r--arch/arm/mach-at91/clock.c5
-rw-r--r--arch/arm/mach-at91/pm.c11
-rw-r--r--arch/arm/oprofile/op_model_mpcore.c2
-rw-r--r--drivers/input/keyboard/pxa27x_keyboard.c6
-rw-r--r--drivers/serial/amba-pl010.c4
-rw-r--r--include/asm-arm/arch-at91/at91_shdwc.h4
-rw-r--r--include/asm-arm/arch-at91/at91_wdt.h2
-rw-r--r--include/asm-arm/arch-pxa/gpio.h3
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
478reloc_start: add r9, r5, r0 479reloc_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
4811: 4831:
@@ -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
491call_kernel: bl cache_clean_flush 494call_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)
112static void pxakbd_close(struct input_dev *dev) 112static 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
175static void pl010_tx_chars(struct uart_amba_port *uap) 175static 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
46static inline int gpio_direction_output(unsigned gpio, int value) 46static 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
51static inline int __gpio_get_value(unsigned gpio) 52static inline int __gpio_get_value(unsigned gpio)