1
linux/include/scsi
Dan Williams b50102d3e9 [SCSI] isci: atapi support
Based on original implementation from Jiangbi Liu and Maciej Trela.

ATAPI transfers happen in two-to-three stages.  The two stage atapi
commands are those that include a dma data transfer.  The data transfer
portion of these operations is handled by the hardware packet-dma
acceleration.  The three-stage commands do not have a data transfer and
are handled without hardware assistance in raw frame mode.

stage1: transmit host-to-device fis to notify the device of an incoming
atapi cdb.  Upon reception of the pio-setup-fis repost the task_context
to perform the dma transfer of the cdb+data (go to stage3), or repost
the task_context to transmit the cdb as a raw frame (go to stage 2).

stage2: wait for hardware notification of the cdb transmission and then
go to stage 3.

stage3: wait for the arrival of the terminating device-to-host fis and
terminate the command.

To keep the implementation simple we only support ATAPI packet-dma
protocol (for commands with data) to avoid needing to handle the data
transfer manually (like we do for SATA-PIO).  This may affect
compatibility for a small number of devices (see
ATA_HORKAGE_ATAPI_MOD16_DMA).

If the data-transfer underruns, or encounters an error the
device-to-host fis is expected to arrive in the unsolicited frame queue
to pass to libata for disposition.  However, in the DONE_UNEXP_FIS (data
underrun) case it appears we need to craft a response.  In the
DONE_REG_ERR case we do receive the UF and propagate it to libsas.

Signed-off-by: Maciej Trela <maciej.trela@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-10-02 13:20:03 -05:00
..
fc Fix common misspellings 2011-03-31 11:26:23 -03:00
fc_encode.h [SCSI] libfc: introduce __fc_fill_fc_hdr that accepts fc_hdr as an argument 2011-02-28 18:32:33 -06:00
fc_frame.h [SCSI] fcoe: remove unused ptype field in fcoe_rcv_info 2011-07-28 12:08:55 +04:00
iscsi_if.h [SCSI] scsi_transport_iscsi: Added support to update initiator iscsi port 2011-08-27 08:36:37 -06:00
iscsi_proto.h iscsi: Add Serial Number Arithmetic LT and GT into iscsi_proto.h 2011-07-25 07:48:08 +00:00
Kbuild [SCSI] Unexport scsi/scsi.h from headers_install 2010-05-02 11:45:12 -04:00
libfc.h [SCSI] libfc: cache align struct fc_exch fields 2011-10-02 12:56:26 -05:00
libfcoe.h [SCSI] fcoe: Move common functions to fcoe_transport library 2011-08-27 08:35:46 -06:00
libiscsi_tcp.h Fix common misspellings 2011-03-31 11:26:23 -03:00
libiscsi.h iscsi: Use struct scsi_lun in iscsi structs instead of u8[8] 2011-07-25 07:47:59 +00:00
libsas.h [SCSI] isci: atapi support 2011-10-02 13:20:03 -05:00
libsrp.h libsrp: fix compile failure 2009-12-30 12:23:27 -08:00
osd_attributes.h [SCSI] libosd: OSD2r05: Attribute definitions 2009-06-10 08:54:07 -05:00
osd_initiator.h treewide: Fix recieve/receive typos 2011-06-24 11:18:57 +02:00
osd_ore.h exofs: Rename raid engine from exofs/ios.c => ore 2011-08-06 19:36:18 -07:00
osd_protocol.h [SCSI] libosd: Support for scatter gather write/read commands 2010-10-26 10:42:34 -05:00
osd_sec.h
osd_sense.h [SCSI] libosd: osd_sense: OSD_CFO_PERMISSIONS 2009-12-04 12:01:44 -06:00
osd_types.h [SCSI] libosd: Support for scatter gather write/read commands 2010-10-26 10:42:34 -05:00
sas_ata.h libsas: convert to libata new error handler 2011-03-02 02:36:45 -05:00
sas.h [SCSI] libsas: fix warnings when checking sata/stp protocol 2011-10-02 12:51:53 -05:00
scsi_bsg_fc.h [SCSI] fc-transport: Use packed modifier for fc_bsg_request structure. 2010-01-17 12:36:33 -06:00
scsi_bsg_iscsi.h [SCSI] iscsi class: add bsg support to iscsi class 2011-08-27 08:36:21 -06:00
scsi_cmnd.h [SCSI] Deprecate SCSI_PROT_*_CONVERT operations 2009-10-02 09:46:25 -05:00
scsi_dbg.h
scsi_device.h [SCSI] scsi_dh: Implement match callback function 2011-08-30 12:28:30 -07:00
scsi_devinfo.h
scsi_dh.h [SCSI] scsi_dh: Change the scsidh_activate interface to be asynchronous 2009-12-04 12:00:46 -06:00
scsi_driver.h sd, sr: fix Driver 'sd' needs updating message 2009-06-21 12:01:27 -05:00
scsi_eh.h
scsi_host.h [SCSI] scsi scan: don't fail scans when host is in recovery 2011-08-29 00:16:19 -07:00
scsi_ioctl.h
scsi_netlink_fc.h
scsi_netlink.h scsi: use __uX types for headers exported to user space 2010-08-11 08:59:01 -07:00
scsi_scan.h
scsi_tcq.h [SCSI] target: Convert TASK_ATTR to scsi_tcq.h definitions 2011-05-24 13:03:56 -04:00
scsi_tgt_if.h
scsi_tgt.h
scsi_transport_fc.h Fix common misspellings 2011-03-31 11:26:23 -03:00
scsi_transport_iscsi.h [SCSI] scsi_transport_iscsi: Add conn login, kernel to user, event to support offload session login. 2011-08-27 08:36:23 -06:00
scsi_transport_sas.h [SCSI] scsi_transport_sas: add support for transport layer retries (TLR) 2010-02-08 17:15:19 -06:00
scsi_transport_spi.h [SCSI] aic79xx: make driver respect nvram for IU and QAS settings 2009-06-15 10:09:35 -05:00
scsi_transport_srp.h
scsi_transport.h
scsi.h treewide: fix potentially dangerous trailing ';' in #defined values/expressions 2011-07-21 14:10:00 +02:00
scsicam.h
sg.h sysctl extern cleanup: sg 2010-03-12 15:53:10 -08:00
srp.h IB/srp: Implement SRP_CRED_REQ and SRP_AER_REQ 2010-10-22 22:19:10 -07:00