Messages in this thread |  | | Date | Wed, 6 Sep 2000 00:53:15 +1100 (EST) | From | Andrew Morton <> | Subject | PCMCIA initialisation & hotplug problems in 2.4 |
| |
I have been getting some very erratic behaviour in 2.4 with Cardbus initialisation and hotplug. In particular, timeouts when resetting the cards and total failure of the PCMCIA subsystem, necessitating a reboot.
If anyone else is having difficulties could you please try the patch (against 2.4.0-test8-pre4) at
http://www.uow.edu.au/~andrewm/linux/pcmcia.patch
and let me know the result?
This is a sort of experimental, get-a-handle-on-what's-happening patch. It does the following:
- Turns on debug
- In yenta_set_power(): write the voltage settings to the socket control register, even if the desired value is already there.
This shouldn't make any difference, but cross my heart, it fixes the reset timeout problem. For me.
- In yenta_set_power(): delay 50 milliseconds after writing the socket control register.
Again, no explanation for why this works, but it prevents the driver from reading bogus values from PCI configuration space.
- In cs.c: Fix a race wherein the driver ends up thinking that a setup is pending on a non-existent card (this is the needs-reboot problem).
- In yenta.c: totally disable yenta_interrupt and rely on the one-second polling from the kernel thread. Also added some state transition sanity checking and removal of redundant transition events.
Insertion of a 3CCFE575CT NIC into a TI1225 Cardbus controller causes a lot of contact bounce and a storm of interrupts, which tends to confuse the driver's state management. Killing the interrupt is the simplest way of debouncing the plug/unplug events.
Thanks.
- 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/
|  |