diff options
author | Alan Cox <alan@lxorguk.ukuu.org.uk> | 2007-03-23 14:57:23 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-03-28 02:05:13 -0400 |
commit | 5e5188108bcf9ab2e6f87b4b54924354040b0aa7 (patch) | |
tree | d0612ae233fde2091f107b3fcf9ad8940d33be79 /drivers | |
parent | 8c3c52a8f00536ce55dafa055b4a211f878f3901 (diff) |
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')
-rw-r--r-- | drivers/ata/pata_pdc202xx_old.c | 2 |
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) | |||
195 | /* Cases the state machine will not complete correctly without help */ | 195 | /* Cases the state machine will not complete correctly without help */ |
196 | if ((tf->flags & ATA_TFLAG_LBA48) || tf->protocol == ATA_PROT_ATAPI_DMA) | 196 | if ((tf->flags & ATA_TFLAG_LBA48) || tf->protocol == ATA_PROT_ATAPI_DMA) |
197 | { | 197 | { |
198 | len = qc->nbytes; | 198 | len = qc->nbytes / 2; |
199 | 199 | ||
200 | if (tf->flags & ATA_TFLAG_WRITE) | 200 | if (tf->flags & ATA_TFLAG_WRITE) |
201 | len |= 0x06000000; | 201 | len |= 0x06000000; |