freebsd-dev/sys/dev/isci/scil
Jim Harris 666b0fab76 For ATA_PASSTHROUGH commands, pretend isci(4) supports multiword DMA
by treating it as UDMA.

This fixes a problem introduced in r249933/r249939, where CAM sends
ATA_DSM_TRIM to SATA devices using ATA_PASSTHROUGH_16.  scsi_ata_trim()
sets protocol as DMA (not UDMA) which is for multi-word DMA, even
though no such mode is selected for the device.  isci(4) would fail
these commands which is the correct behavior but not consistent with
other HBAs, namely LSI's.

smh@ did some further testing on an LSI controller, which rejected
ATA_PASSTHROUGH_16 commands with mode=UDMA_OUT, even though only
a UDMA mode was selected on the device.  So this precludes adding
any kind of mode detection in CAM to determine which mode to use on
a per-device basis.

Sponsored by:	Intel
Discussed with:	scottl, smh
Reported by:	scottl
Tested by:	scottl
MFC after:	3 days
2013-06-26 22:08:45 +00:00
..
intel_ata.h
intel_pci.h
intel_sas.h
intel_sat.h
intel_sata.h
intel_scsi.h
sati_abort_task_set.c Remove explicit CC assignment in isci(4) Makefile to allow for building 2012-02-09 17:50:24 +00:00
sati_abort_task_set.h
sati_atapi.c
sati_atapi.h
sati_callbacks.h Correct double "the the" 2012-09-14 21:28:56 +00:00
sati_design.h
sati_device.c
sati_device.h
sati_inquiry.c Fix off-by-one error in sati_inquiry_block_device_translate_data(). Bug would 2012-05-04 23:45:34 +00:00
sati_inquiry.h
sati_log_sense.c
sati_log_sense.h
sati_lun_reset.c
sati_lun_reset.h
sati_mode_pages.c
sati_mode_pages.h
sati_mode_select.c
sati_mode_select.h
sati_mode_sense_6.c
sati_mode_sense_6.h
sati_mode_sense_10.c
sati_mode_sense_10.h
sati_mode_sense.c
sati_mode_sense.h
sati_move.c
sati_move.h
sati_passthrough.c For ATA_PASSTHROUGH commands, pretend isci(4) supports multiword DMA 2013-06-26 22:08:45 +00:00
sati_passthrough.h
sati_read_buffer.c
sati_read_buffer.h
sati_read_capacity.c Fix bug where isci(4) would report only 15 bytes of returned data on a 2012-03-29 15:43:07 +00:00
sati_read_capacity.h
sati_read.c
sati_read.h
sati_reassign_blocks.c
sati_reassign_blocks.h
sati_report_luns.c
sati_report_luns.h
sati_request_sense.c
sati_request_sense.h
sati_start_stop_unit.c
sati_start_stop_unit.h
sati_synchronize_cache.c
sati_synchronize_cache.h
sati_test_unit_ready.c
sati_test_unit_ready.h
sati_translator_sequence.h
sati_types.h
sati_unmap.c Fix/add support for SCSI UNMAP to ATA DSM translation. 2012-08-21 22:28:14 +00:00
sati_unmap.h
sati_util.c isci(4): Fix SCSI/ATA translation for SCSI_WRITE_BUFFER w/ mode==0x7 2012-09-14 20:05:38 +00:00
sati_util.h
sati_verify.c
sati_verify.h
sati_write_and_verify.c
sati_write_and_verify.h
sati_write_buffer.c isci(4): Fix SCSI/ATA translation for SCSI_WRITE_BUFFER w/ mode==0x7 2012-09-14 20:05:38 +00:00
sati_write_buffer.h
sati_write_long.c
sati_write_long.h
sati_write.c
sati_write.h
sati.c Correct double "the the" 2012-09-14 21:28:56 +00:00
sati.h
sci_abstract_list.c
sci_abstract_list.h
sci_base_controller.c
sci_base_controller.h Correct double "the the" 2012-09-14 21:28:56 +00:00
sci_base_domain.c
sci_base_domain.h Correct double "the the" 2012-09-14 21:28:56 +00:00
sci_base_iterator.c
sci_base_iterator.h
sci_base_library.c
sci_base_library.h
sci_base_logger.c
sci_base_logger.h
sci_base_memory_descriptor_list_decorator.c
sci_base_memory_descriptor_list.c
sci_base_memory_descriptor_list.h
sci_base_object.c
sci_base_object.h
sci_base_observer.c
sci_base_observer.h
sci_base_phy.c
sci_base_phy.h Correct double "the the" 2012-09-14 21:28:56 +00:00
sci_base_port.c
sci_base_port.h
sci_base_remote_device.c
sci_base_remote_device.h Correct double "the the" 2012-09-14 21:28:56 +00:00
sci_base_request.c
sci_base_request.h
sci_base_state_machine_logger.c
sci_base_state_machine_logger.h
sci_base_state_machine_observer.c
sci_base_state_machine_observer.h
sci_base_state_machine.c
sci_base_state_machine.h
sci_base_state.h
sci_base_subject.c
sci_base_subject.h
sci_controller_constants.h
sci_controller.h
sci_fast_list.h
sci_iterator.h
sci_library.h
sci_logger.h
sci_memory_descriptor_list_decorator.h
sci_memory_descriptor_list.h
sci_object.h
sci_overview.h
sci_pool.h
sci_simple_list.h
sci_status.h
sci_types.h
sci_util.c
sci_util.h
scic_config_parameters.h
scic_controller.h
scic_io_request.h s/teh/the/g 2012-09-14 21:59:55 +00:00
scic_library.h
scic_logger.h
scic_overview.h
scic_phy.h
scic_port.h
scic_remote_device.h
scic_sds_controller_registers.h
scic_sds_controller.c Remove explicit CC assignment in isci(4) Makefile to allow for building 2012-02-09 17:50:24 +00:00
scic_sds_controller.h
scic_sds_library.c
scic_sds_library.h
scic_sds_logger.h
scic_sds_pci.c
scic_sds_pci.h
scic_sds_phy_registers.h
scic_sds_phy.c - Correct mispellings of word resource 2013-04-17 11:47:32 +00:00
scic_sds_phy.h
scic_sds_port_configuration_agent.c - Correct mispellings of word resource 2013-04-17 11:47:32 +00:00
scic_sds_port_configuration_agent.h
scic_sds_port_registers.h
scic_sds_port.c - Correct mispellings of word resource 2013-04-17 11:47:32 +00:00
scic_sds_port.h Correct double "the the" 2012-09-14 21:28:56 +00:00
scic_sds_remote_device.c
scic_sds_remote_device.h s/ is is / is /g 2012-09-14 22:00:03 +00:00
scic_sds_remote_node_context.c
scic_sds_remote_node_context.h Correct double "the the" 2012-09-14 21:28:56 +00:00
scic_sds_remote_node_table.c
scic_sds_remote_node_table.h
scic_sds_request.c Correct double "the the" 2012-09-14 21:28:56 +00:00
scic_sds_request.h
scic_sds_sgpio.c
scic_sds_smp_remote_device.c
scic_sds_smp_request.c
scic_sds_smp_request.h
scic_sds_ssp_request.c
scic_sds_stp_packet_request.c
scic_sds_stp_packet_request.h
scic_sds_stp_pio_request.h
scic_sds_stp_remote_device.c
scic_sds_stp_request.c
scic_sds_stp_request.h
scic_sds_unsolicited_frame_control.c
scic_sds_unsolicited_frame_control.h
scic_sgpio.h
scic_task_request.h
scic_user_callback.h
scif_config_parameters.h
scif_controller.h
scif_domain.h
scif_io_request.h
scif_library.h
scif_logger.h
scif_overview.h
scif_remote_device.h
scif_sas_constants.h
scif_sas_controller_state_handlers.c Remove explicit CC assignment in isci(4) Makefile to allow for building 2012-02-09 17:50:24 +00:00
scif_sas_controller_states.c
scif_sas_controller.c Remove explicit CC assignment in isci(4) Makefile to allow for building 2012-02-09 17:50:24 +00:00
scif_sas_controller.h
scif_sas_design.h
scif_sas_domain_state_handlers.c
scif_sas_domain_states.c
scif_sas_domain.c Fxi a bunch of typos. 2013-05-10 16:41:26 +00:00
scif_sas_domain.h
scif_sas_high_priority_request_queue.c
scif_sas_high_priority_request_queue.h
scif_sas_internal_io_request.c
scif_sas_internal_io_request.h
scif_sas_io_request_state_handlers.c
scif_sas_io_request_states.c
scif_sas_io_request.c Remove explicit CC assignment in isci(4) Makefile to allow for building 2012-02-09 17:50:24 +00:00
scif_sas_io_request.h
scif_sas_library.c
scif_sas_library.h
scif_sas_logger.h
scif_sas_remote_device_ready_substate_handlers.c
scif_sas_remote_device_ready_substates.c Remove explicit CC assignment in isci(4) Makefile to allow for building 2012-02-09 17:50:24 +00:00
scif_sas_remote_device_starting_substate_handlers.c
scif_sas_remote_device_starting_substates.c
scif_sas_remote_device_state_handlers.c
scif_sas_remote_device_states.c
scif_sas_remote_device.c
scif_sas_remote_device.h
scif_sas_request.c
scif_sas_request.h
scif_sas_sati_binding.h Fix/add support for SCSI UNMAP to ATA DSM translation. 2012-08-21 22:28:14 +00:00
scif_sas_smp_activity_clear_affiliation.c
scif_sas_smp_io_request.c
scif_sas_smp_io_request.h
scif_sas_smp_phy.c
scif_sas_smp_phy.h
scif_sas_smp_remote_device.c Remove explicit CC assignment in isci(4) Makefile to allow for building 2012-02-09 17:50:24 +00:00
scif_sas_smp_remote_device.h
scif_sas_stp_io_request.c Fix/add support for SCSI UNMAP to ATA DSM translation. 2012-08-21 22:28:14 +00:00
scif_sas_stp_io_request.h
scif_sas_stp_remote_device.c
scif_sas_stp_remote_device.h
scif_sas_stp_task_request.c Remove explicit CC assignment in isci(4) Makefile to allow for building 2012-02-09 17:50:24 +00:00
scif_sas_stp_task_request.h
scif_sas_task_request_state_handlers.c
scif_sas_task_request_states.c
scif_sas_task_request.c
scif_sas_task_request.h
scif_sas_timer.c
scif_task_request.h
scif_user_callback.h
scu_bios_definitions.h Correct double "the the" 2012-09-14 21:28:56 +00:00
scu_completion_codes.h
scu_constants.h
scu_event_codes.h
scu_registers.h
scu_remote_node_context.h
scu_task_context.h
scu_unsolicited_frame.h
scu_viit_data.h