summaryrefslogtreecommitdiff
path: root/drivers/ata
diff options
context:
space:
mode:
authorAlan Cox <alan@lxorguk.ukuu.org.uk>2007-03-23 21:57:23 +0300
committerJeff Garzik <jeff@garzik.org>2007-03-28 10:05:13 +0400
commit5e5188108bcf9ab2e6f87b4b54924354040b0aa7 (patch)
treed0612ae233fde2091f107b3fcf9ad8940d33be79 /drivers/ata
parent8c3c52a8f00536ce55dafa055b4a211f878f3901 (diff)
downloadlinux-5e5188108bcf9ab2e6f87b4b54924354040b0aa7.tar.xz
pata_pdc202xx_old: LBA48 bug
In LBA48 mode we have to help the controller to get anything to work. The chip provides a register giving word counts meant for ATAPI use which we can use. However we need to load the count in words not bytes.. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/ata')
-rw-r--r--drivers/ata/pata_pdc202xx_old.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/ata/pata_pdc202xx_old.c b/drivers/ata/pata_pdc202xx_old.c
index acdc52cbe38a..0a1493398913 100644
--- a/drivers/ata/pata_pdc202xx_old.c
+++ b/drivers/ata/pata_pdc202xx_old.c
@@ -195,7 +195,7 @@ static void pdc2026x_bmdma_start(struct ata_queued_cmd *qc)
/* Cases the state machine will not complete correctly without help */
if ((tf->flags & ATA_TFLAG_LBA48) || tf->protocol == ATA_PROT_ATAPI_DMA)
{
- len = qc->nbytes;
+ len = qc->nbytes / 2;
if (tf->flags & ATA_TFLAG_WRITE)
len |= 0x06000000;