naming conflicts between bus attachments on ports that can have
multiple instances of the LANCE.
Changed struct ifnet to have a pointer to the softc of the underlying
device and a printable "external name" (name + unit number), thus eliminating
if_name and if_unit. Updated interface to (*if_watchdog)() and (*if_start)()
to take a struct ifnet *, rather than a unit number.
fixes the following problems:
- Timeout on START/STOP unit command (ie. when spinning up the drive)
Side effect of this fix is to reduce the busy-wait time in CMD phase.
- Occasionally, the driver would lose an SBIC interrupt, especially when
a tape drive was re-selecting on a busy SCSI bus.
contributed by: Steve Woodford <steve@mctavish.demon.co.uk>
this driver is based on the amiga sbic/33C93 driver. Steve has
cleaned it up and fixed lots of bugs. Note that the original driver
used features which require at least a WD33C93A (the vme147 has the
original WD33C93 chip <no 'A' suffix>). Steve has also written
the DMA routines for the 147 to get things really going. Hardware
scatter-gather DMA and sync. SCSI are not supported (yet). tested
on several disk drives and a tape drive. CD-ROM untested, but
should work.
remove their 'integrate' (usually defined to be 'static') keywords.
when lance drivers are split up by attachment, more than one file will
reference the copy/zero functions (i.e. not just the file that pulls in
am7990.c... and eventually inclusion of am7990.c should go away entirely).
- split softc size and match/attach out from cfdriver into
a new struct cfattach.
- new "attach" directive for files.*. May specify the name of
the cfattach structure, so that devices may be easily attached
to parents with different autoconfiguration semantics.