summaryrefslogtreecommitdiff
path: root/drivers/input
diff options
context:
space:
mode:
authorMatthew Wilcox <willy@parisc-linux.org>2005-03-11 17:14:51 -0800
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-03-11 17:14:51 -0800
commitda32f974a05e11ec2f6c85cd01736b2965639b58 (patch)
treea07db26a75d8eee278987be1851c8d77c3ac9863 /drivers/input
parent01c7a821e0f92091b5d6d5bf7101193569719dc3 (diff)
[PATCH] PA-RISC GSC interrupt fixes
Two problems occurred with the recent switch to virtual interrupt numbers. The first is that two devices (eg Lasi PS/2 mouse and keyboard) can share the same physical interrupt and should therefore share the same virtual interrupt rather than have a new one assigned to them. Fix this by initialising the global_irq array to NO_IRQ, then checking the array before assigning a new one. The second is that some GSC devices (eg HIL and EISA) can have two interrupts; one for normal interrupts and the other for NMI or high-priority. To fix this, I introduced an auxiliary IRQ to the parisc_device and fill it in in Asp and Wax. Signed-off-by: Matthew Wilcox <willy@parisc-linux.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/input')
-rw-r--r--drivers/input/serio/hp_sdc.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/input/serio/hp_sdc.c b/drivers/input/serio/hp_sdc.c
index 4110d5254e..e011f83fa5 100644
--- a/drivers/input/serio/hp_sdc.c
+++ b/drivers/input/serio/hp_sdc.c
@@ -874,11 +874,10 @@ static int __init hp_sdc_init_hppa(struct parisc_device *d)
hp_sdc.dev = d;
hp_sdc.irq = d->irq;
- /* TODO: Is NMI == IRQ - 1 all cases, or is there a way to query? */
- hp_sdc.nmi = d->irq - 1;
- hp_sdc.base_io = (unsigned long) d->hpa;
- hp_sdc.data_io = (unsigned long) d->hpa + 0x800;
- hp_sdc.status_io = (unsigned long) d->hpa + 0x801;
+ hp_sdc.nmi = d->aux_irq;
+ hp_sdc.base_io = d->hpa;
+ hp_sdc.data_io = d->hpa + 0x800;
+ hp_sdc.status_io = d->hpa + 0x801;
return hp_sdc_init();
}