pata_pdc202xx_old: LBA48 bug
authorAlan Cox <alan@lxorguk.ukuu.org.uk>
Fri, 23 Mar 2007 18:57:23 +0000 (18:57 +0000)
committerJeff Garzik <jeff@garzik.org>
Wed, 28 Mar 2007 06:05:13 +0000 (02:05 -0400)
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>
drivers/ata/pata_pdc202xx_old.c

index acdc52cbe38a0bbddcc44cca91b9592d82036f90..0a149339891395d6264f7c3f1b01be7dde85cb84 100644 (file)
@@ -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;