ide: remove XFER_* masks from ide-timing.h
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Wed, 16 Jul 2008 18:33:36 +0000 (20:33 +0200)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Wed, 16 Jul 2008 18:33:36 +0000 (20:33 +0200)
* Check requested xfer mode against xfer modes instead of XFER_* masks
  in ide_timing_compute() and cs5535.c::cs5535_set_speed().

* Remove XFER_[MODE,MWDMA,EPIO,PIO] masks.

There should be no functional changes caused by this patch.

Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
drivers/ide/ide-timing.h
drivers/ide/pci/cs5535.c

index 7248799..a401d8f 100644 (file)
@@ -70,11 +70,6 @@ static struct ide_timing ide_timing[] = {
 #define ENOUGH(v,unit)         (((v)-1)/(unit)+1)
 #define EZ(v,unit)             ((v)?ENOUGH(v,unit):0)
 
-#define XFER_MODE      0xf0
-#define XFER_MWDMA     0x20
-#define XFER_EPIO      0x01
-#define XFER_PIO       0x00
-
 static void ide_timing_quantize(struct ide_timing *t, struct ide_timing *q, int T, int UT)
 {
        q->setup   = EZ(t->setup   * 1000,  T);
@@ -137,17 +132,12 @@ static int ide_timing_compute(ide_drive_t *drive, u8 speed,
 
                memset(&p, 0, sizeof(p));
 
-               switch (speed & XFER_MODE) {
-
-                       case XFER_PIO:
-                               if (speed <= XFER_PIO_2) p.cycle = p.cyc8b = id->eide_pio;
-                                                   else p.cycle = p.cyc8b = id->eide_pio_iordy;
-                               break;
-
-                       case XFER_MWDMA:
-                               p.cycle = id->eide_dma_min;
-                               break;
-               }
+               if (speed <= XFER_PIO_2)
+                       p.cycle = p.cyc8b = id->eide_pio;
+               else if (speed <= XFER_PIO_5)
+                       p.cycle = p.cyc8b = id->eide_pio_iordy;
+               else if (speed >= XFER_MW_DMA_0 && speed <= XFER_MW_DMA_2)
+                       p.cycle = id->eide_dma_min;
 
                ide_timing_merge(&p, t, t, IDE_TIMING_CYCLE | IDE_TIMING_CYC8B);
        }
@@ -164,7 +154,7 @@ static int ide_timing_compute(ide_drive_t *drive, u8 speed,
  * slower/equal than the fastest PIO timing.
  */
 
-       if ((speed & XFER_MODE) != XFER_PIO) {
+       if (speed >= XFER_SW_DMA_0) {
                u8 pio = ide_get_best_pio_mode(drive, 255, 5);
                ide_timing_compute(drive, XFER_PIO_0 + pio, &p, T, UT);
                ide_timing_merge(&p, t, t, IDE_TIMING_ALL);
index 99fe91a..2a2cb49 100644 (file)
@@ -75,13 +75,11 @@ static unsigned int cs5535_udma_timings[5] =
  */
 static void cs5535_set_speed(ide_drive_t *drive, const u8 speed)
 {
-
        u32 reg = 0, dummy;
        int unit = drive->select.b.unit;
 
-
        /* Set the PIO timings */
-       if ((speed & XFER_MODE) == XFER_PIO) {
+       if (speed < XFER_SW_DMA_0) {
                ide_drive_t *pair = ide_get_paired_drive(drive);
                u8 cmd, pioa;