| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
member of 'struct scsi_xfer' has always been pointed at the 'struct scsi_generic
cmdstore' member of the same instance. So nuke 'cmdstore' and remove the '*'
from cmd. Take the address of cmd as required by the various casts.
No intentional functional change.
luna88k test by aoyama@, sparc64 test by jmatthew@
Identification of 2009's last *cmd use and ok jmatthew@
|
|
|
|
|
|
|
|
| |
In sparc64 autoconf access 'luns' via sb_luns and 'adapter_buswidth'
via sb_adapter_buswidth.
Removes last post-config uses of the copies of bus related
information in scsi_link.
|
|
|
|
| |
done just before config_found(), as all other drivers do.
|
|
|
|
|
|
|
|
|
|
|
| |
the width of the bus it is providing, it should rely on info in its
softc. i.e. not on info in the prototype scsi_link that is passed out
for other bits of the kernel to fiddle with.
Most drivers already do this. Make it so for the laggards iha(4) and
siop(4). Actually use the existing softc value in wd33c93.c.
No intentional functional change.
|
|
|
|
| |
tossed it too.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
value minphys() uses (MAXPHYS) are pointless since minphys() is always
called after the *_minphys() function.
MAXPHYS (64 * 1024) == 16 * 4096. 4096 is the smallest PAGE_SIZE we
have. So a *_minphys() function that caps the i/o size at N *
PAGE_SIZE where N is > 16 is just wasting cycles.
Nuke adv_minphys (40 * PAGE_SIZE), adw_minphys (254 * PAGE_SIZE),
ahc_minphys (128 * PAGE_SIZE), ahd_minphys (128 * PAGE_SIZE),
ami_minphys (26 * PAGE_SIZE), cac_minphys (65535 (!!!) * 512),
iha_minphsy (32 * PAGE_SIZE), trm_minphys (31 * PAGE_SIZE),
twe_minphys (62 * PAGE_SIZE). uha_minphys (32 * PAGE_SIZE),
|
|
|
|
|
|
|
|
| |
inducing. Rename scsi_adapter member 'scsi_minphys' to 'dev_minphys'
to reflect what it is supposed to do. Use consistent naming convention
(<dev>_minphys) for the actual device functions.
No functional change.
|
|
|
|
|
|
|
| |
system minphys(). scsi_minphys() will do that and cd/sd/st will call
scsi_minphys().
ok jmatthew@ as part of larger diff
|
|
|
|
|
|
|
|
|
|
|
| |
in drivers. Terse one liners, NULLs instead of 0's, explicitly specify
all members, etc.
Nuke #ifdef notyet blocks related to the scsi_adapter in aic.
No intentional functional change.
ok tedu@
|
|
|
|
|
|
|
| |
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.
ok tedu@ deraadt@
|
|
|
|
|
|
|
|
| |
is called before the command is started. This might have resulted
in the timeout firing and invalidating the command before it is
started. Move the timeout_add_* inside the relevant splbio()/splx().
ok miod@ tedu@
|
|
|
|
| |
ok miod@
|
|
|
|
| |
miod@, oga@, dlg@, matthew@.
|
|
|
|
|
|
|
|
| |
step in elminating 'struct scsi_device' entirely.
Spotted and initial diff from matthew@.
ok matthew@ dlg@ deraadt@ marco@ miod@
|
|
|
|
|
|
|
| |
low-hanging splbio/splx pairs that are no longer needed and see if
this reveals any hidden scsi flaws.
ok dlg@
|
|
|
|
| |
ok krw@
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
void. Use XS_NO_CCB error in the scsi command (xs) to report the
NO_CCB condition. Eliminates all SUCCESSFULLY_QUEUED and COMPLETE
confusion and untangles the midlayer from the adapter a bit more.
Eyes and some fixes by miod@
There may be some compile issues on little used (i.e. I don't have
any) drivers but the change is mechanical and thus easy to remedy.
ok dlg@
|
|
|
|
|
|
| |
in the drivers just before calling scsi_done().
ok dlg@ beck@
|
| |
|
|
|
|
|
|
| |
as additional argument. This will allow intermediate layers between
scsi devices such as sd and scsi host adapters to take appropriate
action if necessary.
|
|
|
|
|
|
| |
No functional changes.
ok krw@ miod@
|
|
|
|
| |
"I'm all for it." marco@ "Yeah" deraadt@
|
|
|
|
|
|
| |
commented out, remove it. Unifdef TFS while there.
ok marco@ krw@
|
|
|
|
| |
prompted by krw@
|
|
|
|
| |
COMPLETE and never SUCCESSFULLY_QUEUED.
|
|
|
|
| |
unprotected by iha_exec_scb(). With help and ok miod@
|
| |
|
|
|
|
|
|
|
|
| |
to set xs->error to XS_BUSY. So it is pointless and misleading to
set xs->error to XS_TIMEOUT, XS_DRIVER_STUFFUP or XS_BUSY just before
returning TRY_AGAIN_LATER.
No functional change.
|
|
|
|
|
|
| |
we currently return immediately after the remove. Use for() idiom
instead of TAILQ_FOREACH. Make clear we are doing a TAILQ_REMOVE() by
eliminating wrapper function.
|
|
|
|
| |
Potential conflict with SCSI 'READ' spotted by tdeval@.
|
|
|
|
|
|
|
|
| |
Tom: I did not commit a couple of your changes.
i did not include some punctuation fixes (full stops, etc.)
mnemorable -> mnemonic: i decided memorable was probably better
instrunctions -> instruction: i kept the plural
|
|
|
|
|
|
| |
1) Eliminate some magic numbers.
2) Eliminate some double semi-colons.
3) Rename iha_scsi_req_q to iha_scb.
|
|
|
|
|
|
|
|
|
|
|
|
| |
1) Return XS_DRIVER_STUFFUP if request sense cannot be loaded.
2) Try to avoid bus_dmamap_unload()'ing maps that have already been
unloaded.
3) Try to avoid bus_dmamap_load()'ing maps that are loaded.
4) Be extra paranoid and ensure bus_dmamap_sync()'s are done before
a bus_dmamap_unload().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1) Actually map and sync scatter gather list that is also DMA'd.
2) Actually map and sync request sense buffer.
3) Actually POSTREAD/WRITE sync data buffer after I/O, rather than
skipping it because the I/O was successful and no chars were left to
xfer.
4) Eliminate extra fields, clarify some names, reorder fields to
clarify their use.
5) Put common scatter gather preparation logic into separate function.
6) If insertion of request sense command fails, complete active
command with XS_SENSE, but zero'd sense data.
7) Eliminate physical address arithmetic as much as possible,
centralizing remaining manipulations in code actually sending
addresses to adapter.
|
|
|
|
|
|
| |
Put debug messages in #ifdef sections.
Eliminate a less than useful error message.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
osiop.
1) bus_dmamap_sync(POSTREAD) the request sense buffer *before* copying
it to xs->sense.
2) Always terminate timeout on completion of command, starting new one
for any REQUEST SENSE that is issued for non-polling commands.
3) Use pScb->SCB_Flags rather than xs->flags to ensure correct flags
are used during REQUEST_SENSE processing.
4) bzero() sense buffer before reading data into it.
This fixes a long standing problem where my Yamaha SCSI CD reported
bogus errors during probe.
|
|
|
|
|
|
| |
it to remain in the tree. With agreement of Initio.
ok deraadt@
|
|
|
|
|
|
| |
Started by a commit to siop from provos@netbsd.org.
ok miod@ millert@
|
|
|
|
| |
noticed by aaron@, recommended by deraadt@
|
| |
|
|
|
|
| |
defined in scsi_all.h.
|
|
|
|
|
| |
Most work by Wilbern Cobb <vedge@csoft.org> with some fixes from me, mickey@
and drahn@.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
when running a DIAGNOSTIC kernel. This was exposed by the recent
migration of the SCSI layer to use pools.
timeout_del() was being called on de-allocated memory after every
completed SCSI command. Which worked as long as the memory was not
reused or zapped ...
This patch, slightly modified from Andreas's original diff, moves
the timeout_del() to before the call to scsi_done() which
de-allocates the memory holding the timeout. All scb's that start
a timeout go through this logic and have the timeout_del() called.
ok millert@ deraadt@
|
|
|
|
|
|
|
|
|
|
| |
using *_bus_dmamap_sync() defines that are defined appropriately
depending on __HAS_NEW_BUS_DMAMAP_SYNC.
Most of the code changes are simple reversions to the original NetBSD
code.
Slip in a siop_script_sync() instead of a manually done code section.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
actually supported.
Update copyright to include 2001.
Fold iha_se2_rd_all() into iha_read_eeprom(), eliminating magic number
31 at the same time, calculating correct offset of checksum at run
time instead.
Eliminate static global variable iha_nvram in favour of dynamic
variable in iha_init_tulip(), which is only place it is used.
Rectify a few typos in comments.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
preferences.
Rename tul_* functions/variables iha_* for consistancy, since all are
now visible.
As updating the EEPROM did not work, don't try. Remove now unused
static dftNvram variable, and functions used only in trying to write
it to EEPROM.
Make iha_rate_tbl a const.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rename some functions for better consistancy/clarity, e.g.
tul_wdtr_done -> tul_wide_done
tul_msgout_wide -> tul_msgout_wdtr
Consolidate extended message generation into new function
tul_msgout_extended() by using HCS_Msg[] array, replacing
several repetitive bus_write_*() code sections.
A couple of minor code clarifications to eliminate extra
return statements and make absolutely sure HCS_ActScb is
NULL during a reselect.
|
|
|
|
|
|
|
| |
wide is not.
Now my CD drives on the narrow channel of the INI-9100UW negotiate to
the same configuration they do on other cards.
|
|
|
|
|
|
|
|
|
|
|
| |
negotiation results on one line, during boot polling only, in same
format as now used in siop.
Move checking for probe INQUIRY commands to poll loop rather than
checking every good I/O.
Remove an unwanted debug statement and unneeded (resolved) XXX
comment.
|