PCMCIA initialisation & hotplug problems in 2.4

From: Andrew Morton (andrewm@uow.edu.au)
Date: Tue Sep 05 2000 - 08:53:15 EST


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/



This archive was generated by hypermail 2b29 : Thu Sep 07 2000 - 21:00:22 EST