patch-2.4.20 linux-2.4.20/arch/i386/kernel/pci-irq.c
Next file: linux-2.4.20/arch/i386/kernel/pci-pc.c
Previous file: linux-2.4.20/arch/i386/kernel/pci-i386.h
Back to the patch index
Back to the overall index
- Lines: 25
- Date:
Thu Nov 28 15:53:09 2002
- Orig file:
linux-2.4.19/arch/i386/kernel/pci-irq.c
- Orig date:
Fri Aug 2 17:39:42 2002
diff -urN linux-2.4.19/arch/i386/kernel/pci-irq.c linux-2.4.20/arch/i386/kernel/pci-irq.c
@@ -22,6 +22,8 @@
#define PIRQ_SIGNATURE (('$' << 0) + ('P' << 8) + ('I' << 16) + ('R' << 24))
#define PIRQ_VERSION 0x0100
+int broken_hp_bios_irq9;
+
static struct irq_routing_table *pirq_table;
/*
@@ -596,6 +598,15 @@
DBG(" -> PIRQ %02x, mask %04x, excl %04x", pirq, mask, pirq_table->exclusive_irqs);
mask &= pcibios_irq_mask;
+ /* Work around broken HP Pavilion Notebooks which assign USB to
+ IRQ 9 even though it is actually wired to IRQ 11 */
+
+ if (broken_hp_bios_irq9 && pirq == 0x59 && dev->irq == 9) {
+ dev->irq = 11;
+ pci_write_config_byte(dev, PCI_INTERRUPT_LINE, 11);
+ r->set(pirq_router_dev, dev, pirq, 11);
+ }
+
/*
* Find the best IRQ to assign: use the one
* reported by the device if possible.
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)