Hello!
> Ok, here it goes, sorry for the delay, but some program i tested on the
> windows side, did nasty things with my partition/master boot record.
Thanks to all for the dumps, I've finally figured out what's going on and
also received a confirmation from people at ALI that I'm right, so here
is a patch which should make it work.
> btw, why do you need 00:07.0 ? its the isa bridge, not the USB controller, in
> doubt i mail the whole lot of them to you.
In almost all PC chipsets, the USB IRQ's are routed through the ISA bridge,
so it's the right place to search at :)
Have a nice fortnight
--
Martin `MJ' Mares <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> http://atrey.karlin.mff.cuni.cz/~mj/
"A student who changes the course of history is probably taking an exam."
--- arch/i386/kernel/pci-irq.c.mj Fri Jun 23 12:13:57 2000
+++ arch/i386/kernel/pci-irq.c Fri Jun 23 12:13:57 2000
@@ -128,14 +128,13 @@
static int pirq_ali_get(struct pci_dev *router, struct pci_dev *dev, int pirq)
{
static unsigned char irqmap[16] = { 0, 9, 3, 10, 4, 5, 7, 6, 1, 11, 0, 12, 0,
14, 0, 15 };
+ u8 x;
+ unsigned reg;
+
pirq--;
- if (pirq < 8) {
- u8 x;
- unsigned reg = 0x48 + (pirq >> 1);
- pci_read_config_byte(router, reg, &x);
- return irqmap[(pirq & 1) ? (x >> 4) : (x & 0x0f)];
- }
- return 0;
+ reg = 0x48 + (pirq >> 1);
+ pci_read_config_byte(router, reg, &x);
+ return irqmap[(pirq & 1) ? (x >> 4) : (x & 0x0f)];
}
static int pirq_ali_set(struct pci_dev *router, struct pci_dev *dev, int pirq, int
irq)
@@ -143,7 +142,7 @@
static unsigned char irqmap[16] = { 0, 8, 0, 2, 4, 5, 7, 6, 0, 1, 3, 9, 11, 0,
13, 15 };
unsigned int val = irqmap[irq];
pirq--;
- if (val && pirq < 8) {
+ if (val) {
u8 x;
unsigned reg = 0x48 + (pirq >> 1);
pci_read_config_byte(router, reg, &x);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]