summaryrefslogtreecommitdiff
path: root/sys/scsi
AgeCommit message (Collapse)Author
2020-08-29More recent MMC specificiations add READ(12)/WRITE(12). So add cd_cmd_rw12()Kenneth R Westerback
and let cdstart() use it if the requested i/o is unable to fit into a READ(10). Certainly better than silently truncating the i/o into a READ(10)/WRITE(10).
2020-08-29Use ISSET() to check b_flags for B_READ.Kenneth R Westerback
2020-08-29Missing u_int -> u_int32_t chunks from previous.Kenneth R Westerback
2020-08-29Use u_int32_t for nsecs, making it crystal clear that the valuesKenneth R Westerback
are expected to fit into a 4-byte field.
2020-08-29Have [cd|sd]_cmd_rw[6|10|12|16] return the length of the created command andKenneth R Westerback
have the caller assign it to xs->cmdlen. Pass in xs->cmd instead of xs. A slightly cleaner API that provides the potential of detecting and reacting to a failure to create the desired command.
2020-08-28Shuffle [cd|sd]start code into closer alignment. Move the initialization of theKenneth R Westerback
xs fields to a more convenient location, shrinking upcoming diffs. Nuke some Captain Obvious comments.
2020-08-28Abstract cd_cmd_rw6() and cd_cmd_rw10() a la sd_cmd_rw6() and sd_cmd_rw10().Kenneth R Westerback
2020-08-28Nuke CDF_ANCIENT, SDF_ANCIENT SDEV_ONLYBIG and bogus check of SID_RelAdr inKenneth R Westerback
favour of simply using the device's claimed SCSI level of support. Except of course for ATAPI/USB devices which often don't claim anything. Keep assuming they are at least SCSI-2. Use consistant tests in sdminphys/cdminphys/sdstart/cdstart.
2020-08-26Remove needless uses of SDEV_ONLYBIG. It was always set when SDEV_UMASS was set,Kenneth R Westerback
and was always checked in concert with SDEV_ATAPI. Just rely on SDEV_ATAPI and SDEV_UMASS in all but the one place sd(4) where SDEV_ONLYBIG is set independently of SDEV_ATAPI/_UMASS. ok jmatthew@
2020-08-22The last timeout_add(sc_timeout) died in the great XS_NO_CCB purge of 2017. NukeKenneth R Westerback
pointless timeout_set(sc_timoeut) and timeout_del(sc_timeout) calls and the sc_timeout fields themselves.
2020-08-20Revert DYING. At least some USB memory sticks get very upset.Kenneth R Westerback
2020-08-19Replace last 2 'blah & (flag1 | flag2) == 0' with !ISSET(blah, (flag1 | flag2)).Kenneth R Westerback
2020-08-19Nuke SDF_DYING, CDF_DYING and ST_DYING flags. Use the scsi_link flagKenneth R Westerback
SDEV_S_DYING instead. Makes it clear that the scsi_link and the [cd|sd|st] device always agree on their state.
2020-08-18Try to avoid a theoretical infinite loop while detaching all the scsi_link's onKenneth R Westerback
the bus. Use SLIST_FOREACH_SAFE() rather than 'while (!SLIST_EMPTY())'' as there is a condition which would cause scsi_detach_link() to return without removing the scsi_link from the SLIST.
2020-08-16Don't include scsi_debug.h via scsiconf.h. Nobody but scsi/* should be using theKenneth R Westerback
contents thereof. Compile tests by martjn@ (alpha), visa@ (sgi) jmatthew@ (sparc64) aoyama@ (luna88k)
2020-08-15The last SET()s of CDF_WAITING, SDF_WAITING, and ST_WAITING died in the greatKenneth R Westerback
XS_NO_CCB purge of 2017. Nuke pointless ISSET()/CLR() checks and the #define's.
2020-08-14Redistribute and tweak the scsi_[attach|probe|detach]_[bus|target|lun]() code toKenneth R Westerback
make the three variants more similar and easier to understand. Ensures consistent error checks and eliminates pointless adapter_buswidth checks when processing the list of scsi_links.
2020-08-11Explicitly #include <scsi/scsi_debug.h> rather than assuming scsiconf.h will doKenneth R Westerback
it. Prepares for removal of #include <scsi/scsi_debug.h> from scsiconf.h as soon as the alpha tester digs out from hurricane to compile last untested files.
2020-08-10Minor code shuffle to get all *_activate(), *_probe() and *_detach() functionsKenneth R Westerback
nestled together. Rename scsibusprint() to scsibussubprint() since it is used with scsibussubmatch().
2020-08-09More code shuffling. Fix a rename missed in previous.Kenneth R Westerback
2020-08-09Shuffle functions and declarations around to more logical grouping. Nuke someKenneth R Westerback
leading whitespace. Rename some local functions.
2020-08-08scsi_link's are born knowing their bus. Use that instead of passing extraKenneth R Westerback
scsibus_softc pointers around.
2020-07-27Refactor scsi_show_flags() to allow 32-bit flags. Display unnamed flags as oneKenneth R Westerback
hex value after named flags. Make flag name arrays NULL terminated rathar than fixed size.
2020-07-27SDEV_2NDBUS is gone. Update flagnames[] appropriately.Kenneth R Westerback
2020-07-22Nuke unused struct scsi_link members of adapter softc's where theKenneth R Westerback
driver successfully compiles on one or more of amd64, i386, hppa.
2020-07-20Move remaining scsi bus initialization info from "prototype scsi link"Kenneth R Westerback
fields to struct scsibus_attach_args. Nuke the struct scsi_link * (saa_sc_link) in scaibus_attach_args. Explicitly initialize each field in scsibus_attach_args variables.
2020-07-19Move the adapter related items (luns, adapter, adapter_target,Kenneth R Westerback
adapter_buswidth, adapter_softc) from struct scsi_link to struct scsibus_attach_args. Additional compile tests by jmatthew@ (sparc64) and aoyam@ (luna88k).
2020-07-16Access scsibus_softc info (luns, adapter, adapter_target,Kenneth R Westerback
adapter_softc, adapter_buswidth) via link->bus rather than using copies currently residing in the link.
2020-07-16Beef up struct scsibus_softc to hold the information needed toKenneth R Westerback
initialize the scsi_link's on the bus. After sucking this information out of the "prototype" link provided by the scsibus_attach_arg, no need to keep a pointer to that prototype.
2020-07-05Nuke struct scsi_link's "scsibus" member. The two drivers using itKenneth R Westerback
(ahc(4) and qlw(4)) can just compare the values of the "bus" member directly. A slightly different path to the same result that matthew@ traversed in his work culminating in scsiconf.h r1.146.
2020-06-30Nuke unneeded 'sa_inqbuf' member of struct scsi_attach_args. It alwaysKenneth R Westerback
points to the inquiry data contained in the struct scsi_link pointed to by the other member, sa_sc_link.
2020-06-30Garbage collect SDEV_S_WAITING, last used in scsi_base.c r1.167 inKenneth R Westerback
2010. Part of matthew@'s reverted scsiconf.h r1.146.
2020-06-27Garbage collect SDEV_2NDBUS. Only used in isp(4) which was removed inKenneth R Westerback
2015 in favour of ql*(4).
2020-06-27No need to bzero()/memset() 'struct scsibus_attach_args' variablesKenneth R Westerback
immediately before initializing the only field in the struct.
2020-06-24Use SDEV_NO_ADAPTER_TARGET instead of the value that is beingKenneth R Westerback
aassigned to adapter_buswidth to indicate the adapter is not a target on the bus. ok dlg@ as part of a larger diff.
2020-06-24Adapters that do not appear as a target on the SCSI bus must setKenneth R Westerback
'adapter_target' to a value greater than or equal to 'adapater_buswidth' to allow all possible targets to be probed. Add SDEV_NO_ADAPTER_TARGET (0xffff), a value guaranteed to be greater than or equal to the u_int16_t 'adapter_buswidth'. ok dlg@ as part of a larger diff.
2020-03-12Pass scsi_mode_sense_buf pointers to scsi_mode_sense[_buf]() ratherKenneth R Westerback
than scsi_mode_header[_big] pointers to the same data. Continues the umtamgling and simplification of the mode sense code. CID 1491299 CID 1491297
2020-03-12Check for short mode sense error inside scsi_mode_sense_big()Kenneth R Westerback
rather than after the only invocation. No functional change.
2020-03-12Eliminate 'len' parameter from scsi_mode_sense[_big](). It'sKenneth R Westerback
always sizeof(struct scsi_mode_sense_buf). No functional change.
2020-03-11No need to pass 20000 to scsi_mode_sense[_big]() as the desiredKenneth R Westerback
xs->timeout. Just set xs->timeout to 20000 and drop the parameter. No functional change.
2020-03-10Access 4-byte address field with _4btol() not _8btol(), fixingKenneth R Westerback
detecton of a 0 value. CID 1488899
2020-02-20Relax the grip the dead hand of QBUS (a.k.a. MAXPHYS) has on theKenneth R Westerback
throat of physio(). Allows individual devices to eventually be modified to support larger physio() (a.k.a. 'raw') i/o's if they prove capable of them. No immediate functional change. Tested for many weeks by and ok robert@.
2020-02-06Try to reduce the lying, hyperbolic or obsolete commentary onKenneth R Westerback
the relationships between various scsi structs.
2020-02-05Ooops. Missed a file in nuke of scsi_minphys. mpath_minphys() needs toKenneth R Westerback
check dev_minphys for NULL before calling it.
2020-02-05Nuke unnecessary abstraction 'scsi_minphys()' which just callsKenneth R Westerback
'minphys()'. Just use & check for NULL instead, since 'minphys()' is always called on the code path ([cd|sd|st]minphys) that calls physio().
2020-01-27Make the commonalities of cdminphys, sdminphys and stminphys moreKenneth R Westerback
obvious by consistently using the variable names and idiom of sdminphys. No functional change.
2020-01-26Shuffle some names around to make reading the code less headacheKenneth R Westerback
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.
2020-01-25Ensure scsi_minphys() is always called on the physio() path.Kenneth R Westerback
Will allow simplification of individual driver *minphys() functions. ok jmatthew@ as part of larger diff
2020-01-24cleanup unused headers generated by configJonathan Gray
ok tedu@ krw@ deraadt@
2020-01-23Use a consistant idiom/format when declaring scsi_adapter structuresKenneth R Westerback
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@