Messages in this thread Patch in this message | | | Date | Sun, 18 May 2003 12:44:59 -0700 (PDT) | From | Davide Libenzi <> | Subject | Re: SIS-650+CPQ Presario 3045US+USB ... |
| |
On Sun, 18 May 2003, Martin Diehl wrote:
> On Sat, 17 May 2003, Davide Libenzi wrote: > > > I've spent a few horrible hours terrified by the idea of a possible XP > > install on my new laptop. It's a Compaq Presario 3045US with SIS-650 > > chipset and there was no way to have USB bits work with it because of a > > IRQ routing issue. > > What are the device/revision id's of the pci irq router function?
I don't have the laptop under my nose now and honestly I do not remember the whole output of pcitweak -l ;)
> > The PCI routing table of that machine issues requests > > for 0x60, 0x61 and 0x63 that, to have everything to work out, must be > > handled like the 0x4* cases. > > This sounds different wrt. what we have documented for the older 85C503 > ISA bridge which is used in the 5595 chipset family. > > > Now, while 0x60 and 0x63 were ot documented > > at all, 0x61 was documented as IDEIRQ and I was a bit worried about that. > > 0x61=IDEIRQ / 0x62=USBIRQ is definitely correct for the 5595/85C503 rev 01 > - according to the data sheet and playing with setpci ;-) > > > But this is not the case since the machine issue 0x60..0x63 for the four > > OHCI devices. Now USB is working great with keyboard, mouse and drives. I > > still have to say bye to the Broadcom 54g wireless interface though ... > > Looks like your chipset uses a different irq routing register layout. When > the existing sis pci-irq routing stuff was added, the primary concern was > to handle the ambigous link values (0x40-43 vs. 0x00-03) used by different > BIOS's. The IDEIRQ case was merely added for documentation, it's unused. > > I think this might need some special treatment in pirq_sis_[sg]et(), > either checking for the revision id or a different pci device id.
This made it for me, but it could break other configurations though :
--- pci-irq.c.orig 2003-05-18 12:34:03.000000000 -0700 +++ pci-irq.c 2003-05-18 12:35:14.000000000 -0700 @@ -306,14 +306,16 @@ case 0x42: case 0x43: case 0x44: + case 0x60: + case 0x61: case 0x62: + case 0x63: pci_read_config_byte(router, reg, &x); - if (reg != 0x62) + if (reg < 0x60) break; if (!(x & 0x40)) return 0; break; - case 0x61: case 0x6a: case 0x7e: printk(KERN_INFO "SiS pirq: advanced IDE/ACPI/DAQ mapping not yet implemented\n"); @@ -340,14 +342,16 @@ case 0x42: case 0x43: case 0x44: + case 0x60: + case 0x61: case 0x62: + case 0x63: x = (irq&0x0f) ? (irq&0x0f) : 0x80; - if (reg != 0x62) + if (reg < 0x60) break; /* always mark OHCI enabled, as nothing else knows about this */ x |= 0x40; break; - case 0x61: case 0x6a: case 0x7e: printk(KERN_INFO "advanced SiS pirq mapping not yet implemented\n");
> Btw, have you tried with acpi interrupt routing enabled?
Nope, since last time I checked ACPI was not in wonderful shape. I'll try though to see if it fixes the thing or if it'll add more issues.
- Davide
- 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/
| |