Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=36906d9beab941452cad406cc03f05cc78671256
Commit:     36906d9beab941452cad406cc03f05cc78671256
Parent:     277d72a37431d200727189693b14488368b7c258
Author:     Alan Cox <[EMAIL PROTECTED]>
AuthorDate: Fri Jan 4 00:08:49 2008 +0000
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Thu Jan 10 16:52:53 2008 -0500

    pata_pdc202xx_old: Further fixups
    
    Turns out distros always enabled burst mode and it is pretty essential so
    do the same. Also sort out the post DMA mode restore properly.
    
    My 20263 card now seems happy but needs some four drive tests done yet
    (when I've persuaded the kernel not to hang in the edd boot code if I
    plug them in ..)
    
    Signed-off-by: Alan Cox <[EMAIL PROTECTED]>
    Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/ata/pata_pdc202xx_old.c |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/drivers/ata/pata_pdc202xx_old.c b/drivers/ata/pata_pdc202xx_old.c
index bc7c2d5..8f28156 100644
--- a/drivers/ata/pata_pdc202xx_old.c
+++ b/drivers/ata/pata_pdc202xx_old.c
@@ -215,8 +215,8 @@ static void pdc2026x_bmdma_stop(struct ata_queued_cmd *qc)
        /* Flip back to 33Mhz for PIO */
        if (adev->dma_mode >= XFER_UDMA_2)
                iowrite8(ioread8(clock) & ~sel66, clock);
-
        ata_bmdma_stop(qc);
+       pdc202xx_set_piomode(ap, adev);
 }
 
 /**
@@ -233,6 +233,17 @@ static void pdc2026x_dev_config(struct ata_device *adev)
        adev->max_sectors = 256;
 }
 
+static int pdc2026x_port_start(struct ata_port *ap)
+{
+       void __iomem *bmdma = ap->ioaddr.bmdma_addr;
+       if (bmdma) {
+               /* Enable burst mode */
+               u8 burst = ioread8(bmdma + 0x1f);
+               iowrite8(burst | 0x01, bmdma + 0x1f);
+       }
+       return ata_sff_port_start(ap);
+}
+
 static struct scsi_host_template pdc202xx_sht = {
        .module                 = THIS_MODULE,
        .name                   = DRV_NAME,
@@ -313,7 +324,7 @@ static struct ata_port_operations pdc2026x_port_ops = {
        .irq_clear      = ata_bmdma_irq_clear,
        .irq_on         = ata_irq_on,
 
-       .port_start     = ata_sff_port_start,
+       .port_start     = pdc2026x_port_start,
 };
 
 static int pdc202xx_init_one(struct pci_dev *dev, const struct pci_device_id 
*id)
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to