git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6
[pandora-kernel.git]
/
arch
/
parisc
/
kernel
/
irq.c
diff --git
a/arch/parisc/kernel/irq.c
b/arch/parisc/kernel/irq.c
index
efbcee5
..
5024f64
100644
(file)
--- a/
arch/parisc/kernel/irq.c
+++ b/
arch/parisc/kernel/irq.c
@@
-52,7
+52,7
@@
static volatile unsigned long cpu_eiem = 0;
*/
static DEFINE_PER_CPU(unsigned long, local_ack_eiem) = ~0UL;
*/
static DEFINE_PER_CPU(unsigned long, local_ack_eiem) = ~0UL;
-static void cpu_
disable
_irq(unsigned int irq)
+static void cpu_
mask
_irq(unsigned int irq)
{
unsigned long eirr_bit = EIEM_MASK(irq);
{
unsigned long eirr_bit = EIEM_MASK(irq);
@@
-63,7
+63,7
@@
static void cpu_disable_irq(unsigned int irq)
* then gets disabled */
}
* then gets disabled */
}
-static void cpu_
enable
_irq(unsigned int irq)
+static void cpu_
unmask
_irq(unsigned int irq)
{
unsigned long eirr_bit = EIEM_MASK(irq);
{
unsigned long eirr_bit = EIEM_MASK(irq);
@@
-75,12
+75,6
@@
static void cpu_enable_irq(unsigned int irq)
smp_send_all_nop();
}
smp_send_all_nop();
}
-static unsigned int cpu_startup_irq(unsigned int irq)
-{
- cpu_enable_irq(irq);
- return 0;
-}
-
void no_ack_irq(unsigned int irq) { }
void no_end_irq(unsigned int irq) { }
void no_ack_irq(unsigned int irq) { }
void no_end_irq(unsigned int irq) { }
@@
-99,7
+93,7
@@
void cpu_ack_irq(unsigned int irq)
mtctl(mask, 23);
}
mtctl(mask, 23);
}
-void cpu_e
nd
_irq(unsigned int irq)
+void cpu_e
oi
_irq(unsigned int irq)
{
unsigned long mask = EIEM_MASK(irq);
int cpu = smp_processor_id();
{
unsigned long mask = EIEM_MASK(irq);
int cpu = smp_processor_id();
@@
-146,12
+140,10
@@
static int cpu_set_affinity_irq(unsigned int irq, const struct cpumask *dest)
static struct irq_chip cpu_interrupt_type = {
.name = "CPU",
static struct irq_chip cpu_interrupt_type = {
.name = "CPU",
- .startup = cpu_startup_irq,
- .shutdown = cpu_disable_irq,
- .enable = cpu_enable_irq,
- .disable = cpu_disable_irq,
+ .mask = cpu_mask_irq,
+ .unmask = cpu_unmask_irq,
.ack = cpu_ack_irq,
.ack = cpu_ack_irq,
- .e
nd = cpu_end
_irq,
+ .e
oi = cpu_eoi
_irq,
#ifdef CONFIG_SMP
.set_affinity = cpu_set_affinity_irq,
#endif
#ifdef CONFIG_SMP
.set_affinity = cpu_set_affinity_irq,
#endif
@@
-247,10
+239,11
@@
int cpu_claim_irq(unsigned int irq, struct irq_chip *type, void *data)
if (irq_desc[irq].chip != &cpu_interrupt_type)
return -EBUSY;
if (irq_desc[irq].chip != &cpu_interrupt_type)
return -EBUSY;
+ /* for iosapic interrupts */
if (type) {
if (type) {
-
irq_desc[irq].chip = type
;
-
irq_desc[irq].chip_data = data
;
- cpu_
interrupt_type.enable
(irq);
+
set_irq_chip_and_handler(irq, type, handle_level_irq)
;
+
set_irq_chip_data(irq, data)
;
+ cpu_
unmask_irq
(irq);
}
return 0;
}
}
return 0;
}
@@
-368,7
+361,7
@@
void do_cpu_irq_mask(struct pt_regs *regs)
goto set_out;
}
#endif
goto set_out;
}
#endif
-
__do_IRQ
(irq);
+
generic_handle_irq
(irq);
out:
irq_exit();
out:
irq_exit();
@@
-398,14
+391,15
@@
static void claim_cpu_irqs(void)
{
int i;
for (i = CPU_IRQ_BASE; i <= CPU_IRQ_MAX; i++) {
{
int i;
for (i = CPU_IRQ_BASE; i <= CPU_IRQ_MAX; i++) {
- irq_desc[i].chip = &cpu_interrupt_type;
+ set_irq_chip_and_handler(i, &cpu_interrupt_type,
+ handle_level_irq);
}
}
-
irq_desc[TIMER_IRQ].action = &timer_action
;
-
irq_desc[TIMER_IRQ].status = IRQ_PER_CPU
;
+
set_irq_handler(TIMER_IRQ, handle_percpu_irq)
;
+
setup_irq(TIMER_IRQ, &timer_action)
;
#ifdef CONFIG_SMP
#ifdef CONFIG_SMP
-
irq_desc[IPI_IRQ].action = &ipi_action
;
-
irq_desc[IPI_IRQ].status = IRQ_PER_CPU
;
+
set_irq_handler(IPI_IRQ, handle_percpu_irq)
;
+
setup_irq(IPI_IRQ, &ipi_action)
;
#endif
}
#endif
}
@@
-423,3
+417,4
@@
void __init init_IRQ(void)
set_eiem(cpu_eiem); /* EIEM : enable all external intr */
}
set_eiem(cpu_eiem); /* EIEM : enable all external intr */
}
+