diff options
author | Tejun Heo <tj@kernel.org> | 2008-11-03 05:01:09 -0500 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-11-04 01:08:27 -0500 |
commit | 6a87e42e955ff27e07a77f65f8f077dc7c4171e1 (patch) | |
tree | e5d50b2b91c17c6719b75bbd88ea5cbed4130304 /include/linux/libata.h | |
parent | a464189de350b050aa8f334bd4cc53ed406e56dd (diff) |
libata: implement ATA_HORKAGE_ATAPI_MOD16_DMA and apply it
libata always uses PIO for ATAPI commands when the number of bytes to
transfer isn't multiple of 16 but quantum DAT72 chokes on odd bytes
PIO transfers. Implement a horkage to skip the mod16 check and apply
it to the quantum device.
This is reported by John Clark in the following thread.
http://thread.gmane.org/gmane.linux.ide/34748
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: John Clark <clarkjc@runbox.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'include/linux/libata.h')
-rw-r--r-- | include/linux/libata.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/libata.h b/include/linux/libata.h index f5441edee55f..c7665a4134c5 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
@@ -373,6 +373,8 @@ enum { | |||
373 | ATA_HORKAGE_IVB = (1 << 8), /* cbl det validity bit bugs */ | 373 | ATA_HORKAGE_IVB = (1 << 8), /* cbl det validity bit bugs */ |
374 | ATA_HORKAGE_STUCK_ERR = (1 << 9), /* stuck ERR on next PACKET */ | 374 | ATA_HORKAGE_STUCK_ERR = (1 << 9), /* stuck ERR on next PACKET */ |
375 | ATA_HORKAGE_BRIDGE_OK = (1 << 10), /* no bridge limits */ | 375 | ATA_HORKAGE_BRIDGE_OK = (1 << 10), /* no bridge limits */ |
376 | ATA_HORKAGE_ATAPI_MOD16_DMA = (1 << 11), /* use ATAPI DMA for commands | ||
377 | not multiple of 16 bytes */ | ||
376 | 378 | ||
377 | /* DMA mask for user DMA control: User visible values; DO NOT | 379 | /* DMA mask for user DMA control: User visible values; DO NOT |
378 | renumber */ | 380 | renumber */ |