Home | History | Annotate | Download | only in scsipi
History log of /src/sys/dev/scsipi/st_atapi.c
RevisionDateAuthorComments
 1.31  14-Jul-2016  msaitoh - Use aprint*() instead of printf() in xxx_attach().
- Add missing aprint_naive("\n");
- KNF
 1.30  24-Aug-2015  pooka would you like some freshly ground _KERNEL_OPT with that?
yes? excellent choice, sir/madam.
 1.29  19-Apr-2012  bouyer branches: 1.29.2; 1.29.16;
Expand struct scsipi_bustype {} in a ABI-backward-compatible way to
pass more informations about the bus:
- bustype_type has 2 different bytes, one holding the existing
SCSIPI_BUSTYPE_* (scsi, atapi, ata), and one for a per-SCSIPI_BUSTYPE_*
subtype. Introduce macros to build or extract bustype_type.
- for SCSIPI_BUSTYPE_SCSI, define subtypes for parallel SCSI, Fibre Channel,
SAS and USB, to specify the transport method. SCSIPI_BUSTYPE_SCSI_PSCSI
is 0 so that bustype_type value doesn't change for existing code
- for non-SCSIPI_BUSTYPE_SCSI busses there's no defined subtype yet,
so the bustype_type value doesn't change.
- provide scsi_fc_bustype, scsi_sas_bustype and scsi_usb_bustype
along with scsi_bustype to be used by bus driver where appropriate
- scsipi_print_xfer_mode(): more existing code under a
(SCSIPI_BUSTYPE_SCSI, SCSIPI_BUSTYPE_SCSI_PSCSI) case, as
sync/wide parameters only make sense for parallel SCSI.
For (SCSIPI_BUSTYPE_SCSI, SCSIPI_BUSTYPE_SCSI_FC) and
(SCSIPI_BUSTYPE_SCSI, SCSIPI_BUSTYPE_SCSI_SAS), only print
tagged queing status if enabled. Just be silent for other
bustypes.

This change is prompted by this problem:
right now, FC (e.g. isp(4)) and SAS (e.g. mfi(4)) don't
do anything for ADAPTER_REQ_SET_XFER_MODE, and especially never
call scsipi_async_event(ASYNC_EVENT_XFER_MODE), so sd(4) always
runs untagged. Doing a scsipi_async_event(ASYNC_EVENT_XFER_MODE) with
appropriate parameters is enough to enable tagged queuing,
but then scsipi will print:
sd0: async, 8-bit transfers, tagged queueing
which is harmless (async, 8-bit transfers doens't make sense on SAS anyway)
but will confuse users. With this change scsipi will only print:
sd0: tagged queueing
which is correct.

In the long run, knowning the underlying transport in scsipi will
allow better handling of device which are not parallel SCSI.

Another change adding an extra callback to struct scsipi_bustype {}
will come (so that scsipi_print_xfer_mode(), which is SCSI-specific,
can be moved out of scsipi_base, and split into per-subtype callback),
but this will break kernel ABI and so is not suitable for
netbsd-6, so will be commmited later. The above is enough to get
tagged queuing on FC and SAS in netbsd-6.
 1.28  28-Feb-2012  mbalmer Convert st(4) to device_t, while here clean up the code and use uintXX_t
instead of u_intXX_t.
 1.27  02-Feb-2012  tls branches: 1.27.2;
Entropy-pool implementation move and cleanup.

1) Move core entropy-pool code and source/sink/sample management code
to sys/kern from sys/dev.

2) Remove use of NRND as test for presence of entropy-pool code throughout
source tree.

3) Remove use of RND_ENABLED in device drivers as microoptimization to
avoid expensive operations on disabled entropy sources; make the
rnd_add calls do this directly so all callers benefit.

4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might
have lead to slight entropy overestimation for some sources.

5) Add new source types for environmental sensors, power sensors, VM
system events, and skew between clocks, with a sample implementation
for each.

ok releng to go in before the branch due to the difficulty of later
pullup (widespread #ifdef removal and moved files). Tested with release
builds on amd64 and evbarm and live testing on amd64.
 1.26  06-Dec-2009  dyoung branches: 1.26.12; 1.26.16;
Delete do-nothing device-activation hooks.
 1.25  21-Oct-2009  rmind Remove uarea swap-out functionality:

- Addresses the issue described in PR/38828.
- Some simplification in threading and sleepq subsystems.
- Eliminates pmap_collect() and, as a side note, allows pmap optimisations.
- Eliminates XS_CTL_DATA_ONSTACK in scsipi code.
- Avoids few scans on LWP list and thus potentially long holds of proc_lock.
- Cuts ~1.5k lines of code. Reduces amd64 kernel size by ~4k.
- Removes __SWAP_BROKEN cases.

Tested on x86, mips, acorn32 (thanks <mpumford>) and partly tested on
acorn26 (thanks to <bjh21>).

Discussed on <tech-kern>, reviewed by <ad>.
 1.24  19-Oct-2009  bouyer Remove closes 3 & 4 from my licence. Lots of thanks to Soren Jacobsen
for the booring work !
 1.23  15-Aug-2009  pgoyette 1. Move the mode_select functionality into common code (in st.c) and
invoke the common routine for both scsi and atapi tapes.

2. Replace a numeric constant with some sizeof's when calculating the
size of the mode_select command buffer, clear the entire buffer, and
KASSERT to ensure the page_0_size loaded from quirk table is valid.

3. Add a quirk for my Seagate Travan-40 tape drive.

As discussed on tech-kern@

Addresses my PR kern/34832
 1.22  12-May-2009  cegger struct device * -> device_t, no functional changes intended.
 1.21  12-May-2009  cegger struct cfdata * -> cfdata_t, no functional changes intended.
 1.20  16-Nov-2006  christos branches: 1.20.52; 1.20.68;
__unused removal on arguments; approved by core.
 1.19  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.18  30-Mar-2006  thorpej branches: 1.18.8; 1.18.10;
Use device_private().
 1.17  11-Dec-2005  christos branches: 1.17.4; 1.17.6; 1.17.8; 1.17.10; 1.17.12;
merge ktrace-lwp.
 1.16  29-May-2005  christos branches: 1.16.2;
- Sprinkle const
- Avoid variable shadowing.
- Eliminate some caddr_t abuse.
 1.15  27-Feb-2005  perry nuke trailing whitespace
 1.14  28-Oct-2004  yamt branches: 1.14.4; 1.14.6;
move buffer queue related stuffs from buf.h to their own header, bufq.h.
 1.13  21-Aug-2004  thorpej Use ANSI function decls and make use of static.
 1.12  05-Oct-2003  bouyer Remove references to University of California from my copyright notices.
 1.11  02-Oct-2002  thorpej branches: 1.11.6;
Add trailing ; to CFATTACH_DECL.
 1.10  30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.9  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.8  23-Apr-2002  bouyer More copyright fixes, pointed out by Thomas. Thanks !
 1.7  07-Dec-2001  yamt add detach support for st.
 1.6  01-Dec-2001  bouyer Various quirks for the ATAPI OnStream DI-30, mostly from the FreeBSD driver.
Many thanks to Chris Pinnock for giving me remote access to his hardware.
 1.5  15-Nov-2001  lukem don't need <sys/types.h> when including <sys/param.h>
 1.4  13-Nov-2001  lukem add RCSIDs
 1.3  18-Jun-2001  bouyer branches: 1.3.2; 1.3.4;
Add my copyrigth and remove the older ones. None of the original authors of
the st driver wrote something in this file.
 1.2  18-Jun-2001  bouyer Snapshot of ATAPI tapes support. Known to be able to read/write to tape with:
st0 at atapibus0 drive 1: <Seagate STT8000A, , 5.51> type 1 sequential
removable
Major changes may still happen in order to properly support other ATAPI
tape drives.
 1.1  04-May-2001  bouyer Add an ATAPI front-end to the st driver. Completely untested for now,
but st at scsi should still work :)
 1.3.4.3  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.3.4.2  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.3.4.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.3.2.6  18-Oct-2002  nathanw Catch up to -current.
 1.3.2.5  20-Jun-2002  nathanw Catch up to -current.
 1.3.2.4  08-Jan-2002  nathanw Catch up to -current.
 1.3.2.3  14-Nov-2001  nathanw Catch up to -current.
 1.3.2.2  21-Jun-2001  nathanw Catch up to -current.
 1.3.2.1  18-Jun-2001  nathanw file st_atapi.c was added on branch nathanw_sa on 2001-06-21 20:06:06 +0000
 1.11.6.7  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.11.6.6  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.11.6.5  02-Nov-2004  skrll Sync with HEAD.
 1.11.6.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.11.6.3  18-Sep-2004  skrll Sync with HEAD.
 1.11.6.2  25-Aug-2004  skrll Sync with HEAD.
 1.11.6.1  03-Aug-2004  skrll Sync with HEAD
 1.14.6.1  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.14.4.1  29-Apr-2005  kent sync with -current
 1.16.2.2  30-Dec-2006  yamt sync with head.
 1.16.2.1  21-Jun-2006  yamt sync with head.
 1.17.12.1  31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.17.10.1  19-Apr-2006  elad sync with head.
 1.17.8.1  01-Apr-2006  yamt sync with head.
 1.17.6.1  22-Apr-2006  simonb Sync with head.
 1.17.4.1  09-Sep-2006  rpaulo sync with head
 1.18.10.2  10-Dec-2006  yamt sync with head.
 1.18.10.1  22-Oct-2006  yamt sync with head
 1.18.8.1  18-Nov-2006  ad Sync with head.
 1.20.68.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.20.52.3  11-Mar-2010  yamt sync with head
 1.20.52.2  19-Aug-2009  yamt sync with head.
 1.20.52.1  16-May-2009  yamt sync with head
 1.26.16.5  29-Apr-2012  mrg sync to latest -current.
 1.26.16.4  06-Mar-2012  mrg sync to -current
 1.26.16.3  06-Mar-2012  mrg sync to -current
 1.26.16.2  04-Mar-2012  mrg sync to latest -current.
 1.26.16.1  18-Feb-2012  mrg merge to -current.
 1.26.12.2  23-May-2012  yamt sync with head.
 1.26.12.1  17-Apr-2012  yamt sync with head
 1.27.2.2  23-Apr-2012  riz Pull up following revision(s) (requested by bouyer in ticket #192):
sys/dev/scsipi/cd.c: revision 1.307
sys/dev/scsipi/scsiconf.c: revision 1.266
sys/dev/scsipi/sd.c: revision 1.298
sys/dev/scsipi/st_scsi.c: revision 1.35
sys/dev/scsipi/atapiconf.c: revision 1.85
sys/dev/scsipi/scsipiconf.h: revision 1.120
sys/dev/usb/umass_scsipi.c: revision 1.44
sys/dev/scsipi/scsiconf.h: revision 1.57
sys/dev/scsipi/st_atapi.c: revision 1.29
sys/dev/scsipi/scsipi_base.c: revision 1.158
sys/dev/scsipi/st.c: revision 1.221
sys/dev/scsipi/scsipi_ioctl.c: revision 1.67
Expand struct scsipi_bustype {} in a ABI-backward-compatible way to
pass more informations about the bus:
- bustype_type has 2 different bytes, one holding the existing
SCSIPI_BUSTYPE_* (scsi, atapi, ata), and one for a per-SCSIPI_BUSTYPE_*
subtype. Introduce macros to build or extract bustype_type.
- for SCSIPI_BUSTYPE_SCSI, define subtypes for parallel SCSI, Fibre Channel,
SAS and USB, to specify the transport method. SCSIPI_BUSTYPE_SCSI_PSCSI
is 0 so that bustype_type value doesn't change for existing code
- for non-SCSIPI_BUSTYPE_SCSI busses there's no defined subtype yet,
so the bustype_type value doesn't change.
- provide scsi_fc_bustype, scsi_sas_bustype and scsi_usb_bustype
along with scsi_bustype to be used by bus driver where appropriate
- scsipi_print_xfer_mode(): more existing code under a
(SCSIPI_BUSTYPE_SCSI, SCSIPI_BUSTYPE_SCSI_PSCSI) case, as
sync/wide parameters only make sense for parallel SCSI.
For (SCSIPI_BUSTYPE_SCSI, SCSIPI_BUSTYPE_SCSI_FC) and
(SCSIPI_BUSTYPE_SCSI, SCSIPI_BUSTYPE_SCSI_SAS), only print
tagged queing status if enabled. Just be silent for other
bustypes.
This change is prompted by this problem:
right now, FC (e.g. isp(4)) and SAS (e.g. mfi(4)) don't
do anything for ADAPTER_REQ_SET_XFER_MODE, and especially never
call scsipi_async_event(ASYNC_EVENT_XFER_MODE), so sd(4) always
runs untagged. Doing a scsipi_async_event(ASYNC_EVENT_XFER_MODE) with
appropriate parameters is enough to enable tagged queuing,
but then scsipi will print:
sd0: async, 8-bit transfers, tagged queueing
which is harmless (async, 8-bit transfers doens't make sense on SAS anyway)
but will confuse users. With this change scsipi will only print:
sd0: tagged queueing
which is correct.
In the long run, knowning the underlying transport in scsipi will
allow better handling of device which are not parallel SCSI.
Another change adding an extra callback to struct scsipi_bustype {}
will come (so that scsipi_print_xfer_mode(), which is SCSI-specific,
can be moved out of scsipi_base, and split into per-subtype callback),
but this will break kernel ABI and so is not suitable for
netbsd-6, so will be commmited later. The above is enough to get
tagged queuing on FC and SAS in netbsd-6.
 1.27.2.1  02-Mar-2012  riz Pull up following revision(s) (requested by mbalmer in ticket #64):
sys/dev/scsipi/stvar.h: revision 1.24
sys/dev/scsipi/st_scsi.c: revision 1.34
sys/dev/scsipi/st_atapi.c: revision 1.28
sys/dev/scsipi/st.c: revision 1.220
Convert st(4) to device_t, while here clean up the code and use uintXX_t
instead of u_intXX_t.
 1.29.16.2  05-Oct-2016  skrll Sync with HEAD
 1.29.16.1  22-Sep-2015  skrll Sync with HEAD
 1.29.2.1  03-Dec-2017  jdolecek update from HEAD

RSS XML Feed