Commit d846a92e authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge master.kernel.org:/home/rmk/linux-2.6-arm

parents ace7c769 251b928c
...@@ -98,7 +98,10 @@ struct clk *clk_get(struct device *dev, const char *id) ...@@ -98,7 +98,10 @@ struct clk *clk_get(struct device *dev, const char *id)
struct clk *clk = ERR_PTR(-ENOENT); struct clk *clk = ERR_PTR(-ENOENT);
int idno; int idno;
idno = (dev == NULL) ? -1 : to_platform_device(dev)->id; if (dev == NULL || dev->bus != &platform_bus_type)
idno = -1;
else
idno = to_platform_device(dev)->id;
down(&clocks_sem); down(&clocks_sem);
......
...@@ -15,25 +15,26 @@ ...@@ -15,25 +15,26 @@
ldr \irqstat, =(IXP4XX_INTC_BASE_VIRT+IXP4XX_ICIP_OFFSET) ldr \irqstat, =(IXP4XX_INTC_BASE_VIRT+IXP4XX_ICIP_OFFSET)
ldr \irqstat, [\irqstat] @ get interrupts ldr \irqstat, [\irqstat] @ get interrupts
cmp \irqstat, #0 cmp \irqstat, #0
beq 1001f beq 1001f @ upper IRQ?
clz \irqnr, \irqstat clz \irqnr, \irqstat
mov \base, #31 mov \base, #31
subs \irqnr, \base, \irqnr sub \irqnr, \base, \irqnr
b 1002f @ lower IRQ being
@ handled
1001: 1001:
/* /*
* IXP465 has an upper IRQ status register * IXP465 has an upper IRQ status register
*/ */
#if defined(CONFIG_CPU_IXP46X) #if defined(CONFIG_CPU_IXP46X)
bne 1002f
ldr \irqstat, =(IXP4XX_INTC_BASE_VIRT+IXP4XX_ICIP2_OFFSET) ldr \irqstat, =(IXP4XX_INTC_BASE_VIRT+IXP4XX_ICIP2_OFFSET)
ldr \irqstat, [\irqstat] @ get upper interrupts ldr \irqstat, [\irqstat] @ get upper interrupts
mov \irqnr, #63 mov \irqnr, #63
clz \irqstat, \irqstat clz \irqstat, \irqstat
cmp \irqstat, #32 cmp \irqstat, #32
subne \irqnr, \irqnr, \irqstat subne \irqnr, \irqnr, \irqstat
1002:
#endif #endif
1002:
.endm .endm
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
#define pcibios_assign_all_busses() 1 #define pcibios_assign_all_busses() 1
#if defined(CONFIG_CPU_IXP465) && !defined(__ASSEMBLY__) #if defined(CONFIG_CPU_IXP46X) && !defined(__ASSEMBLY__)
extern unsigned int processor_id; extern unsigned int processor_id;
#define cpu_is_ixp465() ((processor_id & 0xffffffc0) == 0x69054200) #define cpu_is_ixp465() ((processor_id & 0xffffffc0) == 0x69054200)
#else #else
......
...@@ -103,7 +103,7 @@ ...@@ -103,7 +103,7 @@
({ \ ({ \
smp_mb(); \ smp_mb(); \
__asm__ __volatile__( \ __asm__ __volatile__( \
"@ up_op_read\n" \ "@ up_op_write\n" \
"1: ldrex lr, [%0]\n" \ "1: ldrex lr, [%0]\n" \
" adds lr, lr, %1\n" \ " adds lr, lr, %1\n" \
" strex ip, lr, [%0]\n" \ " strex ip, lr, [%0]\n" \
...@@ -231,7 +231,7 @@ ...@@ -231,7 +231,7 @@
#define __up_op_write(ptr,wake) \ #define __up_op_write(ptr,wake) \
({ \ ({ \
__asm__ __volatile__( \ __asm__ __volatile__( \
"@ up_op_read\n" \ "@ up_op_write\n" \
" mrs ip, cpsr\n" \ " mrs ip, cpsr\n" \
" orr lr, ip, #128\n" \ " orr lr, ip, #128\n" \
" msr cpsr_c, lr\n" \ " msr cpsr_c, lr\n" \
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment