]> CyberLeo.Net >> Repos - FreeBSD/stable/9.git/commit
MFC r252262:
authorjimharris <jimharris@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 3 Jul 2013 23:29:40 +0000 (23:29 +0000)
committerjimharris <jimharris@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 3 Jul 2013 23:29:40 +0000 (23:29 +0000)
commit51a47c985c0bc53796aed3ced15e3d3e673388fd
tree94a22f43b9b4cf5873d609367da67e161f99fbbc
parent84ae15aaab5c42088361530f25d0cd3b3fa9dbb0
MFC r252262:

  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

git-svn-id: svn://svn.freebsd.org/base/stable/9@252651 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/dev/isci/scil/sati_passthrough.c