Re: IRQ Routing Problem on ALi Chipset Laptop (HP Pavilion N5425)

From: Pavel Machek (pavel@suse.cz)
Date: Mon Dec 10 2001 - 06:03:30 EST


Hi!

> > Hey, this gross hack fixed USB on HP OmniBook xe3. Good! (Perhaps you
> > know what interrupt is right for maestro3, also on omnibook? ;-).
>
> On my Pavilion (and the other 5400's as far as I can tell), maestro's on
> irq 5. Wanna send me a "dump_pirq" and a "lspci -vvvxxx"? Could you try
> the patch below (inspired by/stolen from Kai Germaschewski)? Also, the
> newest acpi patch will print out the acpi irq routing table - might have
> your info. You can tell if the patch below had any effect because it
> will say it ASSIGNED IRQ XX instead of FOUND.

lspci attached to another mail.

This patch makes ohci work for me, but maestro is still broken.

                                                                Pavel
> The "honor the irq mask" approach (works on my machine):
> --- /home/cbell/linux-2.4/arch/i386/kernel/pci-irq.c Fri Dec 7 01:51:41 2001
> +++ /home/cbell/linux-2.4-test/arch/i386/kernel/pci-irq.c Sat Dec 8 21:04:37 2001
> @@ -581,6 +581,7 @@
> * reported by the device if possible.
> */
> newirq = dev->irq;
> + if (!((1 << newirq) & mask)) newirq = 0;
> if (!newirq && assign) {
> for (i = 0; i < 16; i++) {
> if (!(mask & (1 << i)))
> @@ -599,7 +600,7 @@
> irq = pirq & 0xf;
> DBG(" -> hardcoded IRQ %d\n", irq);
> msg = "Hardcoded";
> - } else if (r->get && (irq = r->get(pirq_router_dev, dev, pirq))) {
> + } else if (r->get && (irq = r->get(pirq_router_dev, dev, pirq) && ((1 << irq) & mask))) {
> DBG(" -> got IRQ %d\n", irq);
> msg = "Found";
> } else if (newirq && r->set && (dev->class >> 8) != PCI_CLASS_DISPLAY_VGA) {
> @@ -633,7 +634,7 @@
> continue;
> if (info->irq[pin].link == pirq) {
> /* We refuse to override the dev->irq information. Give a warning! */
> - if (dev2->irq && dev2->irq != irq) {
> + if (dev2->irq && dev2->irq != irq && ((1 << dev2->irq) & mask)) {
> printk(KERN_INFO "IRQ routing conflict for %s, have irq %d, want irq %d\n",
> dev2->slot_name, dev2->irq, irq);
> continue;

-- 
"I do not steal MS software. It is not worth it."
                                -- Pavel Kankovsky
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Dec 23 2001 - 21:00:19 EST