Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d8f4469d5f2c35e0b8272f254b42737a2b8ce877
Commit:     d8f4469d5f2c35e0b8272f254b42737a2b8ce877
Parent:     2ad1e558a2305c2b3d5099ee2f4a5929307c20ca
Author:     Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
AuthorDate: Sat Feb 17 02:40:25 2007 +0100
Committer:  Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
CommitDate: Sat Feb 17 02:40:25 2007 +0100

    ide: disable DMA in ->ide_dma_check for "no IORDY" case (v2)
    
    If DMA is unsupported ->ide_dma_check should disable DMA.
    
    v2:
    * updated for scc_pata
    
    Signed-off-by: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
---
 drivers/ide/pci/aec62xx.c      |    8 +++-----
 drivers/ide/pci/atiixp.c       |    5 ++---
 drivers/ide/pci/cmd64x.c       |    8 +++-----
 drivers/ide/pci/cs5535.c       |    5 ++---
 drivers/ide/pci/hpt34x.c       |    8 +++-----
 drivers/ide/pci/hpt366.c       |    8 +++-----
 drivers/ide/pci/pdc202xx_new.c |    8 +++-----
 drivers/ide/pci/pdc202xx_old.c |    8 +++-----
 drivers/ide/pci/piix.c         |    8 +++-----
 drivers/ide/pci/serverworks.c  |    9 +++------
 drivers/ide/pci/siimage.c      |    8 +++-----
 drivers/ide/pci/sis5513.c      |    8 +++-----
 drivers/ide/pci/slc90e66.c     |    8 +++-----
 drivers/ide/pci/tc86c001.c     |    8 +++-----
 drivers/ide/ppc/scc_pata.c     |    7 +++----
 15 files changed, 43 insertions(+), 71 deletions(-)

diff --git a/drivers/ide/pci/aec62xx.c b/drivers/ide/pci/aec62xx.c
index 30f8de6..2589281 100644
--- a/drivers/ide/pci/aec62xx.c
+++ b/drivers/ide/pci/aec62xx.c
@@ -214,12 +214,10 @@ static int aec62xx_config_drive_xfer_rate (ide_drive_t 
*drive)
        if (ide_use_dma(drive) && config_chipset_for_dma(drive))
                return hwif->ide_dma_on(drive);
 
-       if (ide_use_fast_pio(drive)) {
+       if (ide_use_fast_pio(drive))
                aec62xx_tune_drive(drive, 5);
-               return hwif->ide_dma_off_quietly(drive);
-       }
-       /* IORDY not supported */
-       return 0;
+
+       return hwif->ide_dma_off_quietly(drive);
 }
 
 static int aec62xx_irq_timeout (ide_drive_t *drive)
diff --git a/drivers/ide/pci/atiixp.c b/drivers/ide/pci/atiixp.c
index dfc738c..6d372c4 100644
--- a/drivers/ide/pci/atiixp.c
+++ b/drivers/ide/pci/atiixp.c
@@ -264,10 +264,9 @@ static int atiixp_dma_check(ide_drive_t *drive)
                tspeed = ide_get_best_pio_mode(drive, 255, 5, NULL);
                speed = atiixp_dma_2_pio(XFER_PIO_0 + tspeed) + XFER_PIO_0;
                hwif->speedproc(drive, speed);
-               return hwif->ide_dma_off_quietly(drive);
        }
-       /* IORDY not supported */
-       return 0;
+
+       return hwif->ide_dma_off_quietly(drive);
 }
 
 /**
diff --git a/drivers/ide/pci/cmd64x.c b/drivers/ide/pci/cmd64x.c
index a76451a..28f5808 100644
--- a/drivers/ide/pci/cmd64x.c
+++ b/drivers/ide/pci/cmd64x.c
@@ -479,12 +479,10 @@ static int cmd64x_config_drive_for_dma (ide_drive_t 
*drive)
        if (ide_use_dma(drive) && config_chipset_for_dma(drive))
                return hwif->ide_dma_on(drive);
 
-       if (ide_use_fast_pio(drive)) {
+       if (ide_use_fast_pio(drive))
                config_chipset_for_pio(drive, 1);
-               return hwif->ide_dma_off_quietly(drive);
-       }
-       /* IORDY not supported */
-       return 0;
+
+       return hwif->ide_dma_off_quietly(drive);
 }
 
 static int cmd64x_alt_dma_status (struct pci_dev *dev)
diff --git a/drivers/ide/pci/cs5535.c b/drivers/ide/pci/cs5535.c
index e47653f..cd7c419 100644
--- a/drivers/ide/pci/cs5535.c
+++ b/drivers/ide/pci/cs5535.c
@@ -206,10 +206,9 @@ static int cs5535_dma_check(ide_drive_t *drive)
        if (ide_use_fast_pio(drive)) {
                speed = ide_get_best_pio_mode(drive, 255, 4, NULL);
                cs5535_set_drive(drive, speed);
-               return hwif->ide_dma_off_quietly(drive);
        }
-       /* IORDY not supported */
-       return 0;
+
+       return hwif->ide_dma_off_quietly(drive);
 }
 
 static u8 __devinit cs5535_cable_detect(struct pci_dev *dev)
diff --git a/drivers/ide/pci/hpt34x.c b/drivers/ide/pci/hpt34x.c
index 0830089..c65971d 100644
--- a/drivers/ide/pci/hpt34x.c
+++ b/drivers/ide/pci/hpt34x.c
@@ -120,12 +120,10 @@ static int hpt34x_config_drive_xfer_rate (ide_drive_t 
*drive)
                return hwif->ide_dma_on(drive);
 #endif
 
-       if (ide_use_fast_pio(drive)) {
+       if (ide_use_fast_pio(drive))
                hpt34x_tune_drive(drive, 255);
-               return hwif->ide_dma_off_quietly(drive);
-       }
-       /* IORDY not supported */
-       return 0;
+
+       return hwif->ide_dma_off_quietly(drive);
 }
 
 /*
diff --git a/drivers/ide/pci/hpt366.c b/drivers/ide/pci/hpt366.c
index eccf29f..752b6d6 100644
--- a/drivers/ide/pci/hpt366.c
+++ b/drivers/ide/pci/hpt366.c
@@ -743,12 +743,10 @@ static int hpt366_config_drive_xfer_rate(ide_drive_t 
*drive)
        if (ide_use_dma(drive) && config_chipset_for_dma(drive))
                return hwif->ide_dma_on(drive);
 
-       if (ide_use_fast_pio(drive)) {
+       if (ide_use_fast_pio(drive))
                hpt3xx_tune_drive(drive, 255);
-               return hwif->ide_dma_off_quietly(drive);
-       }
-       /* IORDY not supported */
-       return 0;
+
+       return hwif->ide_dma_off_quietly(drive);
 }
 
 /*
diff --git a/drivers/ide/pci/pdc202xx_new.c b/drivers/ide/pci/pdc202xx_new.c
index 32f37e4..b780e15 100644
--- a/drivers/ide/pci/pdc202xx_new.c
+++ b/drivers/ide/pci/pdc202xx_new.c
@@ -288,12 +288,10 @@ static int pdcnew_config_drive_xfer_rate(ide_drive_t 
*drive)
        if (ide_use_dma(drive) && config_chipset_for_dma(drive))
                return hwif->ide_dma_on(drive);
 
-       if (ide_use_fast_pio(drive)) {
+       if (ide_use_fast_pio(drive))
                hwif->tuneproc(drive, 255);
-               return hwif->ide_dma_off_quietly(drive);
-       }
-       /* IORDY not supported */
-       return 0;
+
+       return hwif->ide_dma_off_quietly(drive);
 }
 
 static int pdcnew_quirkproc(ide_drive_t *drive)
diff --git a/drivers/ide/pci/pdc202xx_old.c b/drivers/ide/pci/pdc202xx_old.c
index d3be342..b2b8e6e 100644
--- a/drivers/ide/pci/pdc202xx_old.c
+++ b/drivers/ide/pci/pdc202xx_old.c
@@ -329,12 +329,10 @@ static int pdc202xx_config_drive_xfer_rate (ide_drive_t 
*drive)
        if (ide_use_dma(drive) && config_chipset_for_dma(drive))
                return hwif->ide_dma_on(drive);
 
-       if (ide_use_fast_pio(drive)) {
+       if (ide_use_fast_pio(drive))
                pdc202xx_tune_drive(drive, 255);
-               return hwif->ide_dma_off_quietly(drive);
-       }
-       /* IORDY not supported */
-       return 0;
+
+       return hwif->ide_dma_off_quietly(drive);
 }
 
 static int pdc202xx_quirkproc (ide_drive_t *drive)
diff --git a/drivers/ide/pci/piix.c b/drivers/ide/pci/piix.c
index 85e8a78..caf606a 100644
--- a/drivers/ide/pci/piix.c
+++ b/drivers/ide/pci/piix.c
@@ -393,14 +393,12 @@ static int piix_config_drive_xfer_rate (ide_drive_t 
*drive)
        if (ide_use_dma(drive) && piix_config_drive_for_dma(drive))
                return hwif->ide_dma_on(drive);
 
-       if (ide_use_fast_pio(drive)) {
+       if (ide_use_fast_pio(drive))
                /* Find best PIO mode. */
                (void) hwif->speedproc(drive, XFER_PIO_0 +
                                       ide_get_best_pio_mode(drive, 255, 4, 
NULL));
-               return hwif->ide_dma_off_quietly(drive);
-       }
-       /* IORDY not supported */
-       return 0;
+
+       return hwif->ide_dma_off_quietly(drive);
 }
 
 /**
diff --git a/drivers/ide/pci/serverworks.c b/drivers/ide/pci/serverworks.c
index 36decbe..f44a5ab 100644
--- a/drivers/ide/pci/serverworks.c
+++ b/drivers/ide/pci/serverworks.c
@@ -322,13 +322,10 @@ static int svwks_config_drive_xfer_rate (ide_drive_t 
*drive)
        if (ide_use_dma(drive) && config_chipset_for_dma(drive))
                return hwif->ide_dma_on(drive);
 
-       if (ide_use_fast_pio(drive)) {
+       if (ide_use_fast_pio(drive))
                config_chipset_for_pio(drive);
-               //      hwif->tuneproc(drive, 5);
-               return hwif->ide_dma_off_quietly(drive);
-       }
-       /* IORDY not supported */
-       return 0;
+
+       return hwif->ide_dma_off_quietly(drive);
 }
 
 static unsigned int __devinit init_chipset_svwks (struct pci_dev *dev, const 
char *name)
diff --git a/drivers/ide/pci/siimage.c b/drivers/ide/pci/siimage.c
index 40e992a..1e5b8b1 100644
--- a/drivers/ide/pci/siimage.c
+++ b/drivers/ide/pci/siimage.c
@@ -419,12 +419,10 @@ static int siimage_config_drive_for_dma (ide_drive_t 
*drive)
        if (ide_use_dma(drive) && config_chipset_for_dma(drive))
                return hwif->ide_dma_on(drive);
 
-       if (ide_use_fast_pio(drive)) {
+       if (ide_use_fast_pio(drive))
                config_chipset_for_pio(drive, 1);
-               return hwif->ide_dma_off_quietly(drive);
-       }
-       /* IORDY not supported */
-       return 0;
+
+       return hwif->ide_dma_off_quietly(drive);
 }
 
 /* returns 1 if dma irq issued, 0 otherwise */
diff --git a/drivers/ide/pci/sis5513.c b/drivers/ide/pci/sis5513.c
index 4fff663..53ffece 100644
--- a/drivers/ide/pci/sis5513.c
+++ b/drivers/ide/pci/sis5513.c
@@ -678,12 +678,10 @@ static int sis5513_config_xfer_rate(ide_drive_t *drive)
        if (ide_use_dma(drive) && config_chipset_for_dma(drive))
                return hwif->ide_dma_on(drive);
 
-       if (ide_use_fast_pio(drive)) {
+       if (ide_use_fast_pio(drive))
                sis5513_tune_drive(drive, 5);
-               return hwif->ide_dma_off_quietly(drive);
-       }
-       /* IORDY not supported */
-       return 0;
+
+       return hwif->ide_dma_off_quietly(drive);
 }
 
 /* Chip detection and general config */
diff --git a/drivers/ide/pci/slc90e66.c b/drivers/ide/pci/slc90e66.c
index 4042fd8..917cc8e 100644
--- a/drivers/ide/pci/slc90e66.c
+++ b/drivers/ide/pci/slc90e66.c
@@ -186,13 +186,11 @@ static int slc90e66_config_drive_xfer_rate (ide_drive_t 
*drive)
        if (ide_use_dma(drive) && slc90e66_config_drive_for_dma(drive))
                return hwif->ide_dma_on(drive);
 
-       if (ide_use_fast_pio(drive)) {
+       if (ide_use_fast_pio(drive))
                (void) hwif->speedproc(drive, XFER_PIO_0 +
                                       ide_get_best_pio_mode(drive, 255, 4, 
NULL));
-               return hwif->ide_dma_off_quietly(drive);
-       }
-       /* IORDY not supported */
-       return 0;
+
+       return hwif->ide_dma_off_quietly(drive);
 }
 
 static void __devinit init_hwif_slc90e66 (ide_hwif_t *hwif)
diff --git a/drivers/ide/pci/tc86c001.c b/drivers/ide/pci/tc86c001.c
index b408508..3703fc8 100644
--- a/drivers/ide/pci/tc86c001.c
+++ b/drivers/ide/pci/tc86c001.c
@@ -190,12 +190,10 @@ static int tc86c001_config_drive_xfer_rate(ide_drive_t 
*drive)
        if (ide_use_dma(drive) && config_chipset_for_dma(drive))
                return hwif->ide_dma_on(drive);
 
-       if (ide_use_fast_pio(drive)) {
+       if (ide_use_fast_pio(drive))
                tc86c001_tune_drive(drive, 255);
-               return hwif->ide_dma_off_quietly(drive);
-       }
-       /* IORDY not supported */
-       return 0;
+
+       return hwif->ide_dma_off_quietly(drive);
 }
 
 static void __devinit init_hwif_tc86c001(ide_hwif_t *hwif)
diff --git a/drivers/ide/ppc/scc_pata.c b/drivers/ide/ppc/scc_pata.c
index f05117e..7e3e93c 100644
--- a/drivers/ide/ppc/scc_pata.c
+++ b/drivers/ide/ppc/scc_pata.c
@@ -376,11 +376,10 @@ static int scc_config_drive_for_dma(ide_drive_t *drive)
        if (ide_use_dma(drive) && scc_config_chipset_for_dma(drive))
                return hwif->ide_dma_on(drive);
 
-       if (ide_use_fast_pio(drive)) {
+       if (ide_use_fast_pio(drive))
                hwif->tuneproc(drive, 4);
-               hwif->ide_dma_off_quietly(drive);
-       }
-       return 1; /* DMA is not supported */
+
+       return hwif->ide_dma_off_quietly(drive);
 }
 
 /**
-
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