* Prerelease kernel will not hotplug a USB host-controller when it is inserted into a Cardbus slot. @ 2001-01-03 12:18 Miles Lane 2001-01-03 12:40 ` Andrew Morton 2001-01-03 14:57 ` Prerelease kernel will not hotplug a USB host-controller when it isinserted " David Brownell 0 siblings, 2 replies; 8+ messages in thread From: Miles Lane @ 2001-01-03 12:18 UTC (permalink / raw) To: Linus Torvalds, Andrew Morton, David Brownell, linux-kernel Hi Linus and Co., I am writing to let you know that in all test12-pre6+ kernels, I get a "Bad PCI invocation" error when hotplug attempts to handle the insertion of a USB host-controller into a Cardbus slot. I am aware that you most likely will ship 2.4.0 anyway, but thought you should at least know about the bug. I have tried your latest call_usermodehelper patch, Andrew, which appears to have not made it into the kernel, but it did not solve the problem. What follows is test results from three configurations: prerelease with ds.o as a modular driver -- hotplug fails prerelease with ds.o in-kernel -- hotplug fails test11 with ds.o as a modular driver -- hotplug succeeds and usb-ohci loads At the end of the message, you'll find the lspci output for the BusPort Mobile generated using prerelease. 2.4.0-prerelease with ds.o built as a modular driver: ---------------------------------------------------- PCI: Enabling device 05:00.0 (0000 -> 0002) PCI: Found IRQ 11 for device 05:00.0 PCI: The same IRQ used for device 00:04.0 Jan 3 03:22:27 agate kernel: cs: cb_alloc(bus 5): vendor 0x1045, device 0xc861 Jan 3 03:22:27 agate kernel: PCI: Enabling device 05:00.0 (0000 -> 0002) Jan 3 03:22:27 agate kernel: PCI: Found IRQ 11 for device 05:00.0 Jan 3 03:22:27 agate kernel: PCI: The same IRQ used for device 00:04.0 Jan 3 03:22:28 agate /sbin/hotplug: Bad PCI invocation 2.4.0-prerelease with ds.o built in-kernel: ------------------------------------------ PCI: Enabling device 05:00.0 (0000 -> 0002) PCI: Found IRQ 11 for device 05:00.0 PCI: The same IRQ used for device 00:04.0 Jan 3 03:55:14 agate kernel: cs: cb_alloc(bus 5): vendor 0x1045, device 0xc861 Jan 3 03:55:14 agate kernel: PCI: Enabling device 05:00.0 (0000 -> 0002) Jan 3 03:55:14 agate kernel: PCI: Found IRQ 11 for device 05:00.0 Jan 3 03:55:14 agate kernel: PCI: The same IRQ used for device 00:04.0 Jan 3 03:55:15 agate /sbin/hotplug: Bad PCI invocation Jan 3 03:55:15 agate cardmgr[402]: initializing socket 0 Jan 3 03:55:15 agate cardmgr[402]: socket 0: Anonymous Memory Jan 3 03:55:15 agate cardmgr[402]: executing: 'modprobe sram_mtd' Jan 3 03:55:15 agate cardmgr[402]: + modprobe: Can't locate module sram_mtd Jan 3 03:55:15 agate cardmgr[402]: modprobe exited with status 255 Jan 3 03:55:15 agate cardmgr[402]: module /lib/modules/2.4.0-test11/pcmcia/sram_mtd.o not available Jan 3 03:55:15 agate cardmgr[402]: Common memory region at 0x38e00: Generic or SRAM Jan 3 03:55:15 agate cardmgr[402]: Common memory region at 0xe00: Generic or SRAM Jan 3 03:55:15 agate cardmgr[402]: executing: 'modprobe memory_cs' Jan 3 03:55:15 agate cardmgr[402]: + modprobe: Can't locate module memory_cs Jan 3 03:55:15 agate cardmgr[402]: modprobe exited with status 255 Jan 3 03:55:15 agate cardmgr[402]: module /lib/modules/2.4.0-test11/pcmcia/memory_cs.o not available Jan 3 03:55:16 agate cardmgr[402]: get dev info on socket 0 failed: Resource temporarily unavailable 2.4.0-test11 with ds.o built as a modular driver: ------------------------------------------------ cs: socket c3105000 timed out during reset. Try increasing setup_delay. PCI: Enabling device 05:00.0 (0000 -> 0002) PCI: Found IRQ 11 for device 05:00.0 PCI: The same IRQ used for device 00:04.0 Jan 3 02:39:52 agate kernel: cs: socket c3105000 timed out during reset. Try increasing setup_delay. PCI: Setting latency timer of device 05:00.0 to 64 Jan 3 02:39:53 agate kernel: cs: cb_alloc(bus 5): vendor 0x1045, device 0xc861 Jan 3 02:39:53 agate kernel: PCI: Enabling device 05:00.0 (0000 -> 0002) Jan 3 02:39:53 agate kernel: PCI: Found IRQ 11 for device 05:00.0 Jan 3 02:39:53 agate kernel: PCI: The same IRQ used for device 00:04.0 Jan 3 02:39:53 agate kernel: PCI: Setting latency timer of device 05:00.0 to 64Jan 3 02:39:53 agate kernel: usb-ohci.c: USB OHCI at membase 0xc5867000, IRQ 11Jan 3 02:39:53 agate kernel: usb-ohci.c: usb-05:00.0, PCI device 1045:c861 Jan 3 02:39:53 agate kernel: usb.c: new USB bus registered, assigned bus number 1 Jan 3 02:39:53 agate kernel: Product: USB OHCI Root Hub Jan 3 02:39:53 agate kernel: SerialNumber: c5867000 Jan 3 02:39:53 agate kernel: hub.c: USB hub found Jan 3 02:39:53 agate kernel: hub.c: 2 ports detected Jan 3 02:39:53 agate /sbin/hotplug: arguments (usb) env (TYPE=9/0/0 ACTION=add DEVFS=/proc/bus/usb TERM=dumb DEVICE=/proc/bus/usb/001/001 HOSTTYPE=i386 PATH=/bin:/sbin:/usr/sbin:/usr/bin HOME=/ SHELL=/bin/bash DEBUG=kernel OSTYPE=Linux PRODUCT=0/0/0 SHLVL=1 _=/usr/bin/env) Here is what lspci has to say about the BusPort PCI entry when running prerelease. I checked the lspci output running under test11 and found no discrepancies. 05:00.0 USB Controller: OPTi Inc. 82C861 (rev 10) (prog-if 10 [OHCI]) Subsystem: OPTi Inc.: Unknown device c861 Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Interrupt: pin A routed to IRQ 11 Region 0: Memory at 11000000 (32-bit, non-prefetchable) [size=4K] 00:04.1 CardBus bridge: Texas Instruments PCI1131 (rev 01) Subsystem: Dell Computer Corporation: Unknown device 007e Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Latency: 168 set, cache line size 08 Interrupt: pin B routed to IRQ 11 Region 0: Memory at 10001000 (32-bit, non-prefetchable) [size=4K] Bus: primary=00, secondary=05, subordinate=05, sec-latency=176 Memory window 0: 10c00000-10fff000 (prefetchable) Memory window 1: 11000000-113ff000 I/O window 0: 00001800-000018ff I/O window 1: 00001c00-00001cff BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset- 16bInt- PostWrite+ 16-bit legacy interface ports at 0001 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Prerelease kernel will not hotplug a USB host-controller when it is inserted into a Cardbus slot. 2001-01-03 12:18 Prerelease kernel will not hotplug a USB host-controller when it is inserted into a Cardbus slot Miles Lane @ 2001-01-03 12:40 ` Andrew Morton 2001-01-03 14:57 ` Prerelease kernel will not hotplug a USB host-controller when it isinserted " David Brownell 1 sibling, 0 replies; 8+ messages in thread From: Andrew Morton @ 2001-01-03 12:40 UTC (permalink / raw) To: Miles Lane; +Cc: Linus Torvalds, David Brownell, linux-kernel Miles Lane wrote: > > Hi Linus and Co., > > I am writing to let you know that in all test12-pre6+ kernels, > I get a "Bad PCI invocation" error when hotplug attempts to > handle the insertion of a USB host-controller into a Cardbus > slot. That message is coming from your hotplug scripts. At approximately test12-o'clock the following change was made: diff -u --recursive --new-file t12p7/linux/drivers/pci/pci.c linux/drivers/pci/pci.c --- t12p7/linux/drivers/pci/pci.c Thu Dec 7 15:56:26 2000 +++ linux/drivers/pci/pci.c Thu Dec 7 12:21:51 2000 @@ -360,9 +360,9 @@ if (!hotplug_path[0]) return; - sprintf(class_id, "PCI_CLASS=%X", pdev->class); - sprintf(id, "PCI_ID=%X/%X", pdev->vendor, pdev->device); - sprintf(sub_id, "PCI_SUBSYS_ID=%X/%X", pdev->subsystem_vendor, pdev->subsystem_device); + sprintf(class_id, "PCI_CLASS=%04X", pdev->class); + sprintf(id, "PCI_ID=%04X:%04X", pdev->vendor, pdev->device); + sprintf(sub_id, "PCI_SUBSYS_ID=%04X:%04X", pdev->subsystem_vendor, pdev->subsystem_device); sprintf(bus_id, "PCI_SLOT_NAME=%s", pdev->slot_name); i = 0; So I guess your PCI hotplug script hasn't caught up with this change in the format of its arguments. - - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Prerelease kernel will not hotplug a USB host-controller when it isinserted into a Cardbus slot. 2001-01-03 12:18 Prerelease kernel will not hotplug a USB host-controller when it is inserted into a Cardbus slot Miles Lane 2001-01-03 12:40 ` Andrew Morton @ 2001-01-03 14:57 ` David Brownell 2001-01-04 0:49 ` Miles Lane 1 sibling, 1 reply; 8+ messages in thread From: David Brownell @ 2001-01-03 14:57 UTC (permalink / raw) To: Miles Lane, Linus Torvalds, Andrew Morton, linux-kernel > I am writing to let you know that in all test12-pre6+ kernels, > I get a "Bad PCI invocation" error when hotplug attempts to > handle the insertion of a USB host-controller into a Cardbus > slot. That's new info ... you'd previously thought that it wasn't even invoking /sbin/hotplug! The scripts I know about will produce that message when they're invoked without PCI_CLASS set. That's a sanity check which was needed for the intial PCI hotplug support, which wouldn't pass that info -- needed to hotplug devices using class drivers, such as USB host controllers. But they'll also dump all the arguments and environment of hotplug before they get that far, if you set DEBUG=yes; please enable that and let us know the whole environment that's getting passed ! - Dave p.s. Re that patch Andrew mentioned, it shouldn't have made a difference unless "PCI_CLASS=%04X" truncated the top eight bits of the class (it's 24 bits, not 16: 8 bits each of class, subclass, prog-if.) That would have had a different failure mode: only class 0 devices (pci.ids says is "unclassified" devices) would PCI hotplug. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Prerelease kernel will not hotplug a USB host-controller when it isinserted into a Cardbus slot. 2001-01-03 14:57 ` Prerelease kernel will not hotplug a USB host-controller when it isinserted " David Brownell @ 2001-01-04 0:49 ` Miles Lane 2001-01-04 1:43 ` Miles Lane 2001-01-04 2:25 ` Prerelease kernel will not hotplug a USB host-controller when itisinserted " David Brownell 0 siblings, 2 replies; 8+ messages in thread From: Miles Lane @ 2001-01-04 0:49 UTC (permalink / raw) To: David Brownell; +Cc: Linus Torvalds, Andrew Morton, linux-kernel David Brownell wrote: >> I am writing to let you know that in all test12-pre6+ kernels, >> I get a "Bad PCI invocation" error when hotplug attempts to >> handle the insertion of a USB host-controller into a Cardbus >> slot. > > > That's new info ... you'd previously thought that it wasn't even > invoking /sbin/hotplug! I fscked up that test. The results I reported as being with prerelease were actually with a messed up test11. The whole "Bad PCI invocation" error was a red herring, sorry. I have since gone in a tested test12-pre5, test12-pre6 and test12-pre8. test12-pre5 works. test12-pre6 fails utterly. It looks like Cardbus was just completely hosed in that tree, because I can't get my network card (3c575) to be recognized by that kernel, either. I checked the patches and Andrew's "04X" change went into test12-pre8. I just tested test12-pre8 with both your latest hotplug script, David, and with the pertinent "0x" locations changed to "04x". Both scripts fail to load usb-ohci. Bottom line, I have yet to see a test12-pre6+ kernel load usb-ohci whether or not I use "04x" in the hotplug script. Something else is messed up here. > The scripts I know about will produce that message when they're > invoked without PCI_CLASS set. That's a sanity check which was > needed for the intial PCI hotplug support, which wouldn't pass > that info -- needed to hotplug devices using class drivers, such > as USB host controllers. > > But they'll also dump all the arguments and environment of > hotplug before they get that far, if you set DEBUG=yes; please > enable that and let us know the whole environment that's getting > passed ! For the Cardbus hotplug event, is it expected that the hotplug debug info would be dumped after the insert event is processed and the required driver is loaded? With test12-pre5, I get this when I insert the BusPort Mobile: Jan 3 15:00:15 agate kernel: cs: cb_alloc(bus 5): vendor 0x1045, device 0xc861 Jan 3 15:00:15 agate kernel: got res[11000000:11000fff] for resource 0 of PCI device 1045:c861 Jan 3 15:00:15 agate kernel: PCI: Enabling device 05:00.0 (0000 -> 0002) Jan 3 15:00:15 agate kernel: PCI: Found IRQ 11 for device 05:00.0 Jan 3 15:00:15 agate kernel: PCI: The same IRQ used for device 00:04.0 Jan 3 15:00:15 agate kernel: PCI: Setting latency timer of device 05:00.0 to 64 Jan 3 15:00:15 agate kernel: usb-ohci.c: USB OHCI at membase 0xc5850000, IRQ 11 Jan 3 15:00:15 agate kernel: usb-ohci.c: usb-05:00.0, PCI device 1045:c861 Jan 3 15:00:15 agate kernel: usb.c: new USB bus registered, assigned bus number 1 Jan 3 15:00:15 agate kernel: Product: USB OHCI Root Hub Jan 3 15:00:15 agate kernel: SerialNumber: c5850000 Jan 3 15:00:15 agate kernel: hub.c: USB hub found Jan 3 15:00:15 agate kernel: hub.c: 2 ports detected Jan 3 15:00:16 agate /sbin/hotplug: arguments (usb) env (TYPE=9/0/0 ACTION=add DEVFS=/proc/bus/usb TERM=dumb DEVICE=/proc/bus/usb/001/001 HOSTTYPE=i386 PATH=/bin:/sbin:/usr/sbin:/usr/bin HOME=/ SHELL=/bin/bash DEBUG=kernel OSTYPE=Linux PRODUCT=0/0/0 SHLVL=1 _=/usr/bin/env) Thanks and sorry for the inaccurate info last night. Miles - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Prerelease kernel will not hotplug a USB host-controller when it isinserted into a Cardbus slot. 2001-01-04 0:49 ` Miles Lane @ 2001-01-04 1:43 ` Miles Lane 2001-01-04 1:48 ` Miles Lane 2001-01-04 2:25 ` Prerelease kernel will not hotplug a USB host-controller when itisinserted " David Brownell 1 sibling, 1 reply; 8+ messages in thread From: Miles Lane @ 2001-01-04 1:43 UTC (permalink / raw) To: Miles Lane; +Cc: David Brownell, Linus Torvalds, Andrew Morton, linux-kernel Here's the pci.c patch from test12-pre6. Does anything in this patch look like it might cause the cardbus device detection and calling of hotplug to break? diff -u --recursive --new-file v2.4.0-test11/linux/drivers/pci/pci.c linux/drivers/pci/pci.c --- v2.4.0-test11/linux/drivers/pci/pci.c Sun Nov 19 18:44:12 2000 +++ linux/drivers/pci/pci.c Tue Dec 5 11:04:39 2000 @@ -354,16 +354,16 @@ run_sbin_hotplug(struct pci_dev *pdev, int insert) { int i; - char *argv[3], *envp[7]; - char id[20], sub_id[24], bus_id[64], class_id[20]; + char *argv[3], *envp[8]; + char id[20], sub_id[24], bus_id[24], class_id[20]; if (!hotplug_path[0]) return; - sprintf(class_id, "PCI_CLASS=%X", pdev->class >> 8); + sprintf(class_id, "PCI_CLASS=%X", pdev->class); sprintf(id, "PCI_ID=%X/%X", pdev->vendor, pdev->device); sprintf(sub_id, "PCI_SUBSYS_ID=%X/%X", pdev->subsystem_vendor, pdev->subsystem_device); - sprintf(bus_id, "PCI_BUS_ID=%s", pdev->slot_name); + sprintf(bus_id, "PCI_SLOT_NAME=%s", pdev->slot_name); i = 0; argv[i++] = hotplug_path; @@ -376,6 +376,7 @@ envp[i++] = "PATH=/sbin:/bin:/usr/sbin:/usr/bin"; /* other stuff we want to pass to /sbin/hotplug */ + envp[i++] = class_id; envp[i++] = id; envp[i++] = sub_id; envp[i++] = bus_id; @@ -539,15 +540,9 @@ static void pci_read_bases(struct pci_dev *dev, unsigned int howmany, int rom) { unsigned int pos, reg, next; - u32 l, sz, tmp; - u16 cmd; + u32 l, sz; struct resource *res; - /* Disable IO and memory while we fiddle */ - pci_read_config_word(dev, PCI_COMMAND, &cmd); - tmp = cmd & ~(PCI_COMMAND_IO | PCI_COMMAND_MEMORY); - pci_write_config_word(dev, PCI_COMMAND, tmp); - for(pos=0; pos<howmany; pos = next) { next = pos+1; res = &dev->resource[pos]; @@ -578,10 +573,10 @@ res->start |= ((unsigned long) l) << 32; res->end = res->start + sz; pci_write_config_dword(dev, reg+4, ~0); - pci_read_config_dword(dev, reg+4, &tmp); + pci_read_config_dword(dev, reg+4, &sz); pci_write_config_dword(dev, reg+4, l); - if (l) - res->end = res->start + (((unsigned long) ~l) << 32); + if (sz) + res->end = res->start + (((unsigned long) ~sz) << 32); #else if (l) { printk(KERN_ERR "PCI: Unable to handle 64-bit address for device %s\n", dev->slot_name); } res->name = dev->name; } - pci_write_config_word(dev, PCI_COMMAND, cmd); } void __init pci_read_bridge_bases(struct pci_bus *child) @@ -755,7 +749,7 @@ pci_read_config_dword(dev, PCI_PRIMARY_BUS, &buses); DBG("Scanning behind PCI bridge %s, config %06x, pass %d\n", dev->slot_name, buses & 0xffffff, pass); - if ((buses & 0xffffff) && !pcibios_assign_all_busses()) { + if ((buses & 0xffff00) && !pcibios_assign_all_busses()) { /* * Bus already configured by firmware, process it in the first * pass and just note the configuration. @@ -772,8 +766,10 @@ if (cmax > max) max = cmax; } else { int i; + unsigned int cmax = child->subordinate; for (i = 0; i < 4; i++) child->resource[i] = &dev->resource[PCI_BRIDGE_RESOURCES+i]; + if (cmax > max) max = cmax; } } else { /* Thanks, Miles - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Prerelease kernel will not hotplug a USB host-controller when it isinserted into a Cardbus slot. 2001-01-04 1:43 ` Miles Lane @ 2001-01-04 1:48 ` Miles Lane 0 siblings, 0 replies; 8+ messages in thread From: Miles Lane @ 2001-01-04 1:48 UTC (permalink / raw) To: Miles Lane; +Cc: David Brownell, Linus Torvalds, Andrew Morton, linux-kernel There was also a big change to pci/setup_bus.c and pci/setup_bus.h from Ivan Kokshaysky in test12-pre6. Those changes seem like another likely candidate. Miles - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Prerelease kernel will not hotplug a USB host-controller when itisinserted into a Cardbus slot. 2001-01-04 0:49 ` Miles Lane 2001-01-04 1:43 ` Miles Lane @ 2001-01-04 2:25 ` David Brownell 2001-01-04 5:49 ` Prerelease kernel will not hotplug a USB host-controller when it is inserted " Miles Lane 1 sibling, 1 reply; 8+ messages in thread From: David Brownell @ 2001-01-04 2:25 UTC (permalink / raw) To: Miles Lane; +Cc: Linus Torvalds, Andrew Morton, linux-kernel Hi Miles, > The whole > "Bad PCI invocation" error was a red herring, sorry. Not an endangered species ... even if Tux does like to snack on them! :-) > I have since gone in a tested test12-pre5, test12-pre6 and > test12-pre8. test12-pre5 works. test12-pre6 fails utterly. That's for "Cardbus hotplug". I've had USB hotplugging fine, with the iffy bits being when it combines with the network hotplugging ... those async changes seem to have created some deadlocking paths (while removing some others). > It looks like Cardbus was just completely hosed in that > tree, because I can't get my network card (3c575) to be recognized > by that kernel, either. I checked the patches and Andrew's > "04X" change went into test12-pre8. I just tested test12-pre8 > with both your latest hotplug script, David, and with the > pertinent "0x" locations changed to "04x". Both scripts fail > to load usb-ohci. The root cause seems to be the Cardbus/PCI hotplug invocation not happening for you. Was this with or without the "pcmcia_cs" package installed? My own take on it is that 2.4 _should_ hotplug that controller just fine if "pcmcia_cs" isn't installed. Otherwise, I'd be pleasantly surprised to know it works properly. > For the Cardbus hotplug event, is it expected that the hotplug > debug info would be dumped after the insert event is processed > and the required driver is loaded? No -- you were seeing the USB hotplug event, not the cardbus one. Plugging a cardbus OHCI into your machine should cause two hotplug events ... first for PCI, eventually modprobing "usb-ohci", and then as that module initializes you'll get a second one for USB, reporting a new (root) hub. So you should see an invocation "arguments (pci) env (...)" followed by "arguments (usb) env (...)"; but you reported the second one. - Dave - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Prerelease kernel will not hotplug a USB host-controller when it is inserted into a Cardbus slot. 2001-01-04 2:25 ` Prerelease kernel will not hotplug a USB host-controller when itisinserted " David Brownell @ 2001-01-04 5:49 ` Miles Lane 0 siblings, 0 replies; 8+ messages in thread From: Miles Lane @ 2001-01-04 5:49 UTC (permalink / raw) To: David Brownell; +Cc: Linus Torvalds, Andrew Morton, linux-kernel David Brownell wrote: <snip> > The root cause seems to be the Cardbus/PCI hotplug invocation not > happening for you. Yep. > Was this with or without the "pcmcia_cs" package installed? My > own take on it is that 2.4 _should_ hotplug that controller > just fine if "pcmcia_cs" isn't installed. Otherwise, I'd be > pleasantly surprised to know it works properly. You are more or less correct. I've looked a little bit at the source and now understand a little bit better. It turns out that parts of the Cardbus code in the kernel source includes code from the pcmcia_cs package. The "cs:" messages in the log are generated by this code. I *think* this code reads configuration files from /etc/pcmcia, but I haven't found the place in the code that does it. Anyhow, these messages: cs: IO port probe 0x0c00-0x0cff: clean. cs: IO port probe 0x0800-0x08ff: clean. cs: IO port probe 0x0100-0x04ff: excluding 0x280-0x28f 0x378-0x37f 0x3a0-0x3a7 0x4d0-0x4d7 cs: IO port probe 0x0a00-0x0aff: clean. change when I modify /etc/pcmcia/config.opts. The /etc/pcmcia/config* files get installed by the pcmcia_cs package, so even when I am only using the cardbus functionality, there seems to be some need to pcmcia_cs, since the config.opts file contains "magic" good defaults numbers for safe irqs, ports and memory ranges. As I have already discussed with David Brownell, there is huge a problem getting a usable cardbus solution with the current pcmcia_cs package. Even when I tell it I am using a 2.4.0 kernel and that I want to use the development kernel's drivers, it maps loads of device IDs to the pcmcia_cs drivers which don't exist in this configuration! For example, it maps the 3c575 device ID to 3c575_cb instead of 3c59x. >> For the Cardbus hotplug event, is it expected that the hotplug >> debug info would be dumped after the insert event is processed >> and the required driver is loaded? > > > No -- you were seeing the USB hotplug event, not the cardbus one. > > Plugging a cardbus OHCI into your machine should cause two hotplug > events ... first for PCI, eventually modprobing "usb-ohci", and > then as that module initializes you'll get a second one for USB, > reporting a new (root) hub. > > So you should see an invocation "arguments (pci) env (...)" > followed by "arguments (usb) env (...)"; but you reported the > second one. Well, I have no idea why the "arguments (pci) env (...)" message wasn't emitted. I do know that with the test12-pre5 kernel I get working hotplug for the BusPort Mobile. Thanks for all your help! Miles - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/ ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2001-01-04 5:50 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2001-01-03 12:18 Prerelease kernel will not hotplug a USB host-controller when it is inserted into a Cardbus slot Miles Lane 2001-01-03 12:40 ` Andrew Morton 2001-01-03 14:57 ` Prerelease kernel will not hotplug a USB host-controller when it isinserted " David Brownell 2001-01-04 0:49 ` Miles Lane 2001-01-04 1:43 ` Miles Lane 2001-01-04 1:48 ` Miles Lane 2001-01-04 2:25 ` Prerelease kernel will not hotplug a USB host-controller when itisinserted " David Brownell 2001-01-04 5:49 ` Prerelease kernel will not hotplug a USB host-controller when it is inserted " Miles Lane
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox