Age | Commit message (Collapse) | Author |
|
Replace last ADV/ASC/Adv, etc. uses with ADW/Adw as appropriate.
Delete comments about non-existant structure members,
correct references to existing structure members to use
correct structure names or typedefs.
|
|
- actually check the returned scsi_status value and act accordingly
instead of ALWAYS returning XS_NOERROR
- always return the scsi status value in xs->status for completed
requests
- no longer reference ccb->xs and ccb->dmamap_xfer if an 'unallocated'
ccb is encountered
- immediately remove the ccb adw_isr_callback is working on from the
pending list, leaving it in limbo until it is put on the free list
just before any return
- 'freeze' a target only when a scsi_status indicating it is busy is
encountered, and 'thaw' a target whenever a bus reset is done or a
request completes
- check done_status, host_status and scsi_status in that order as is
done in the linux driver and was done here until very recently, which
seems cleaner to me. But opinions may vary. The only behaviour change
that should result is that done_status of QD_NO_STATUS no longer
causes a check of host_status values, but is an error causing a
XS_DRIVER_STUFFUP
- produce a more general error message with actual values for
host_status, scsi_status and done_status values, with references to
adw(4) for more details on the error where appropriate (man page
update coming)
- take what seems like appropriate action for all known host_status,
scsi_status and done_status values with more use of XS_RESET where
appropriate
- use adw_reset_bus() instead of AdwResetSCSIBus() in
adw_async_callback() so pending requests are requeued and devices left
unfrozen when this happens
- print an error message with the code # when adw_async_callback is
called with an unknown code.
|
|
- remove #include <vm/vm_param.h>
and #include <vm/pmap.h>
as they are already included with
#include <vm/vm.h>
- more Adv -> Adw, ADV -> ADW adjustments & other
minor formatting corrections
plus:
- put 'Carrier Ready failure!' warning message inside
#ifdef ADW_DEBUG/#endif as it appears under heavy load
but is nothing but a reminder the card was too busy to
notice a 'tickle' from the driver.
|
|
adw.c synched with v1.23 (from v1.14)
adw.h v1.9 ( v1.5 )
adwlib.c v1.17 ( v1.7 )
adwlib.h v1.13 ( v1.7 )
adwmcode.c v1.5 ( v1.2 )
adwmcode.h v1.5 ( v1.2 )
microcode for cards is updated to latest version,
loss of carrier problems are solved in a more
robust manner than before, lots of code cleanup.
first support for upcoming U3W cards added, as
a result of which the driver is now too large
for RAMDISK and has been moved to RAMDISKB.
Most of the work done by dante@ NetBSD.
|
|
|
|
that carr_freelist always has a carrier on
it. This should fix a problem where carr_freelist
has become NULL and then AdvISR() attempts to
put a carrier back on the list without checking
if carr_freelist is non-NULL.
This and the previous two changes to adwlib.c
and the change committed to adw.c at the same
time were derived in whole or part from work
done by/with dante@ from NetBSD.
|
|
|
|
|
|
Check for SCSI_ADW_WDTR_DISABLE flag in tidmask not tid
|
|
|
|
|
|
|