Messages in this thread | | | Date | Wed, 30 Jun 2004 09:39:56 +0400 | From | Andrey Ulanov <> | Subject | Re: [PATCH] PCMCIA bug fix |
| |
Hi, Russell!
On Tue, Jun 29, 2004 at 04:48:32PM +0100, Russell King wrote: > On Tue, Jun 29, 2004 at 07:38:09PM +0400, Andrey Ulanov wrote: >> I tested with one of ieee1394+usb2.0 PCMCIA adapters. Worked fine. >> Without this patch only first device (ieee1394 controller) was >> detected. > Can you provide the lspci output, and a better description of the > problem you're trying to solve please?
OK. Sorry.
This PCMCIA has four devices:
Bus 6, device 0, function 0: Class 0c00: PCI device 104c:8024 (rev 0). IRQ 10. Master Capable. Latency=16. Non-prefetchable 32 bit memory at 0x11000000 [0x110007ff]. Non-prefetchable 32 bit memory at 0x11004000 [0x11007fff]. Bus 6, device 0, function 4: Class 0c03: PCI device 104c:0035 (rev 67). IRQ 10. Master Capable. Latency=64. Non-prefetchable 32 bit memory at 0x11001000 [0x11001fff]. Bus 6, device 0, function 5: Class 0c03: PCI device 104c:0035 (rev 67). IRQ 10. Master Capable. Latency=64. Non-prefetchable 32 bit memory at 0x11002000 [0x11002fff]. Bus 6, device 0, function 6: Class 0c03: PCI device 104c:00e0 (rev 4). IRQ 10. Master Capable. Latency=68. Non-prefetchable 32 bit memory at 0x11000800 [0x110008ff].
As you can see functions numbers do not form continual sequence beginning with zero. That's why current implementation do not work for me. Here is the part of old code:
fn = 1; if (hdr & 0x80) { do { tmp.devfn = fn; if (pci_readw(&tmp, PCI_VENDOR_ID, &v) || !v || v == 0xffff) break; fn++; } while (fn < 8); } s->functions = fn;
I hope now it is obvious that it detects only first one in my case.
-- with best regards, Andrey Ulanov. - 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/
| |