diff options
author | Alan Cox <alan@lxorguk.ukuu.org.uk> | 2006-01-17 23:50:31 +0300 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2006-01-18 03:37:45 +0300 |
commit | 8d238e012469a9a332c78d6a69a8a46ac4b1e9c2 (patch) | |
tree | a882e4ec38a87d5ee61653ff9b16ccea57c2bf04 /drivers/scsi/libata-core.c | |
parent | 012b265f76ce5d497b182569dc77f2c68662bead (diff) | |
download | linux-8d238e012469a9a332c78d6a69a8a46ac4b1e9c2.tar.xz |
[PATCH] libata: Fix heuristic typos add LBA48PIO flag and support code, add IRQ flag for next diff
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Diffstat (limited to 'drivers/scsi/libata-core.c')
-rw-r--r-- | drivers/scsi/libata-core.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c index b42acbe0e9a5..e6044455ca45 100644 --- a/drivers/scsi/libata-core.c +++ b/drivers/scsi/libata-core.c @@ -611,6 +611,10 @@ int ata_rwcmd_protocol(struct ata_queued_cmd *qc) if (dev->flags & ATA_DFLAG_PIO) { tf->protocol = ATA_PROT_PIO; index = dev->multi_count ? 0 : 8; + } else if (lba48 && (qc->ap->flags & ATA_FLAG_PIO_LBA48)) { + /* Unable to use DMA due to host limitation */ + tf->protocol = ATA_PROT_PIO; + index = dev->multi_count ? 0 : 4; } else { tf->protocol = ATA_PROT_DMA; index = 16; |