forked from Minki/linux
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
This commit is contained in:
commit
c52ecdab06
@ -247,7 +247,7 @@ not_relocated: mov r0, #0
|
||||
mov r3, r7
|
||||
bl decompress_kernel
|
||||
|
||||
add r0, r0, #127
|
||||
add r0, r0, #127 + 128 @ alignment + stack
|
||||
bic r0, r0, #127 @ align the kernel length
|
||||
/*
|
||||
* r0 = decompressed kernel length
|
||||
@ -269,6 +269,7 @@ not_relocated: mov r0, #0
|
||||
stmia r1!, {r9 - r14}
|
||||
cmp r2, r3
|
||||
blo 1b
|
||||
add sp, r1, #128 @ relocate the stack
|
||||
|
||||
bl cache_clean_flush
|
||||
add pc, r5, r0 @ call relocation code
|
||||
@ -476,6 +477,7 @@ __common_mmu_cache_on:
|
||||
*/
|
||||
.align 5
|
||||
reloc_start: add r9, r5, r0
|
||||
sub r9, r9, #128 @ do not copy the stack
|
||||
debug_reloc_start
|
||||
mov r1, r4
|
||||
1:
|
||||
@ -486,6 +488,7 @@ reloc_start: add r9, r5, r0
|
||||
|
||||
cmp r5, r9
|
||||
blo 1b
|
||||
add sp, r1, #128 @ relocate the stack
|
||||
debug_reloc_end
|
||||
|
||||
call_kernel: bl cache_clean_flush
|
||||
|
@ -364,19 +364,14 @@ static int at91_clk_show(struct seq_file *s, void *unused)
|
||||
{
|
||||
u32 scsr, pcsr, sr;
|
||||
struct clk *clk;
|
||||
unsigned i;
|
||||
|
||||
seq_printf(s, "SCSR = %8x\n", scsr = at91_sys_read(AT91_PMC_SCSR));
|
||||
seq_printf(s, "PCSR = %8x\n", pcsr = at91_sys_read(AT91_PMC_PCSR));
|
||||
|
||||
seq_printf(s, "MOR = %8x\n", at91_sys_read(AT91_CKGR_MOR));
|
||||
seq_printf(s, "MCFR = %8x\n", at91_sys_read(AT91_CKGR_MCFR));
|
||||
seq_printf(s, "PLLA = %8x\n", at91_sys_read(AT91_CKGR_PLLAR));
|
||||
seq_printf(s, "PLLB = %8x\n", at91_sys_read(AT91_CKGR_PLLBR));
|
||||
|
||||
seq_printf(s, "MCKR = %8x\n", at91_sys_read(AT91_PMC_MCKR));
|
||||
for (i = 0; i < 4; i++)
|
||||
seq_printf(s, "PCK%d = %8x\n", i, at91_sys_read(AT91_PMC_PCKR(i)));
|
||||
seq_printf(s, "SR = %8x\n", sr = at91_sys_read(AT91_PMC_SR));
|
||||
|
||||
seq_printf(s, "\n");
|
||||
|
@ -76,12 +76,11 @@ static int at91_pm_verify_clocks(void)
|
||||
pr_debug("AT91: PM - Suspend-to-RAM with USB still active\n");
|
||||
return 0;
|
||||
}
|
||||
} else if (cpu_is_at91sam9260()) {
|
||||
#warning "Check SAM9260 USB clocks"
|
||||
} else if (cpu_is_at91sam9261()) {
|
||||
#warning "Check SAM9261 USB clocks"
|
||||
} else if (cpu_is_at91sam9263()) {
|
||||
#warning "Check SAM9263 USB clocks"
|
||||
} else if (cpu_is_at91sam9260() || cpu_is_at91sam9261() || cpu_is_at91sam9263()) {
|
||||
if ((scsr & (AT91SAM926x_PMC_UHP | AT91SAM926x_PMC_UDP)) != 0) {
|
||||
pr_debug("AT91: PM - Suspend-to-RAM with USB still active\n");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef CONFIG_AT91_PROGRAMMABLE_CLOCKS
|
||||
|
@ -200,8 +200,10 @@ static int em_call_function(int (*fn)(void))
|
||||
data.fn = fn;
|
||||
data.ret = 0;
|
||||
|
||||
preempt_disable();
|
||||
smp_call_function(em_func, &data, 1, 1);
|
||||
em_func(&data);
|
||||
preempt_enable();
|
||||
|
||||
return data.ret;
|
||||
}
|
||||
|
@ -104,7 +104,7 @@ static int pxakbd_open(struct input_dev *dev)
|
||||
KPREC = 0x7F;
|
||||
|
||||
/* Enable unit clock */
|
||||
pxa_set_cken(CKEN19_KEYPAD, 1);
|
||||
pxa_set_cken(CKEN_KEYPAD, 1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -112,7 +112,7 @@ static int pxakbd_open(struct input_dev *dev)
|
||||
static void pxakbd_close(struct input_dev *dev)
|
||||
{
|
||||
/* Disable clock unit */
|
||||
pxa_set_cken(CKEN19_KEYPAD, 0);
|
||||
pxa_set_cken(CKEN_KEYPAD, 0);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
@ -185,7 +185,7 @@ static int __devinit pxakbd_probe(struct platform_device *pdev)
|
||||
DRIVER_NAME, pdev);
|
||||
if (error) {
|
||||
printk(KERN_ERR "Cannot request keypad IRQ\n");
|
||||
pxa_set_cken(CKEN19_KEYPAD, 0);
|
||||
pxa_set_cken(CKEN_KEYPAD, 0);
|
||||
goto err_free_dev;
|
||||
}
|
||||
|
||||
|
@ -167,9 +167,9 @@ static void pl010_rx_chars(struct uart_amba_port *uap)
|
||||
ignore_char:
|
||||
status = readb(uap->port.membase + UART01x_FR);
|
||||
}
|
||||
spin_unlock(&port->lock);
|
||||
spin_unlock(&uap->port.lock);
|
||||
tty_flip_buffer_push(tty);
|
||||
spin_lock(&port->lock);
|
||||
spin_lock(&uap->port.lock);
|
||||
}
|
||||
|
||||
static void pl010_tx_chars(struct uart_amba_port *uap)
|
||||
|
@ -14,8 +14,8 @@
|
||||
#define AT91_SHDWC_H
|
||||
|
||||
#define AT91_SHDW_CR (AT91_SHDWC + 0x00) /* Shut Down Control Register */
|
||||
#define AT91_SHDW_SHDW (1 << 0) /* Processor Reset */
|
||||
#define AT91_SHDW_KEY (0xff << 24) /* KEY Password */
|
||||
#define AT91_SHDW_SHDW (1 << 0) /* Shut Down command */
|
||||
#define AT91_SHDW_KEY (0xa5 << 24) /* KEY Password */
|
||||
|
||||
#define AT91_SHDW_MR (AT91_SHDWC + 0x04) /* Shut Down Mode Register */
|
||||
#define AT91_SHDW_WKMODE0 (3 << 0) /* Wake-up 0 Mode Selection */
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
#define AT91_WDT_CR (AT91_WDT + 0x00) /* Watchdog Control Register */
|
||||
#define AT91_WDT_WDRSTT (1 << 0) /* Restart */
|
||||
#define AT91_WDT_KEY (0xff << 24) /* KEY Password */
|
||||
#define AT91_WDT_KEY (0xa5 << 24) /* KEY Password */
|
||||
|
||||
#define AT91_WDT_MR (AT91_WDT + 0x04) /* Watchdog Mode Register */
|
||||
#define AT91_WDT_WDV (0xfff << 0) /* Counter Value */
|
||||
|
@ -45,7 +45,8 @@ static inline int gpio_direction_input(unsigned gpio)
|
||||
|
||||
static inline int gpio_direction_output(unsigned gpio, int value)
|
||||
{
|
||||
return pxa_gpio_mode(gpio | GPIO_OUT | (value ? 0 : GPIO_DFLT_LOW));
|
||||
return pxa_gpio_mode(gpio | GPIO_OUT |
|
||||
(value ? GPIO_DFLT_HIGH : GPIO_DFLT_LOW));
|
||||
}
|
||||
|
||||
static inline int __gpio_get_value(unsigned gpio)
|
||||
|
Loading…
Reference in New Issue
Block a user