freebsd-src/sys/dev/ed
Warner Losh e09f49b6fa Fix the hang on card eject problem and maybe the hang on suspend
problem.

o Create new timeout routine so we don't detach the card inside a ISR
  but instead drop back to spl0 via a timeout of 0.
o Actually delete the child of the pccard device rather than just faking
  it badly.
o Fix sio, ed and ep to have pccard detach routines that are int rather
  than void.
o Fix ep and ed pccard detach routines to use if_detach rather than just
  if_down.  if_detach destroys the device, while if_down just marks it
  down.  In this incarnation of the pccard things, we map the disable
  the slot action to detach the driver, which removes the driver from the
  device tree.  When that is done, a panic would soon follow as the
  ifconfig tried to down the device.

Didn't fix:
o Should cache the pccard dev child's pointer in struct slot
o remove now unused parts of struct slot
o Any driver using softc after detach has been called.  sio's softc used
  to be statically allocated, so you could check sc->gone, but that is
  now gone.
o Didn't remove gone from softc of drivers that use the old pccard method.

Didn't test:
o ed driver changes
o sio driver changes on pccards
o suspend (no laptop or apm support on my desktop)
1999-12-01 07:38:54 +00:00
..
if_ed.c Set port_used and mem_used to the resource size instead of 1. 1999-11-18 14:18:19 +00:00
if_ed_isa.c I forgot to remove the "NCARD == 0" hacks that kept this driver 1999-11-20 09:28:01 +00:00
if_ed_pccard.c Fix the hang on card eject problem and maybe the hang on suspend 1999-12-01 07:38:54 +00:00
if_ed_pci.c I forgot to remove the "NCARD == 0" hacks that kept this driver 1999-11-20 09:28:01 +00:00
if_edreg.h - Added new macros ED_P1_MAR(i) and ED_P1_PAR(i) that replace 1999-09-02 15:06:23 +00:00
if_edvar.h - Remove the ISA, PCI, and PCCARD specific code from if_ed.c; it 1999-10-15 03:12:48 +00:00