qd65xx: always use ->selectproc method
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Sat, 26 Apr 2008 15:36:42 +0000 (17:36 +0200)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Sat, 26 Apr 2008 15:36:42 +0000 (17:36 +0200)
qd_select() checks itself whether timings should be reprogrammed so
remove superfluous qd_timing_ok() and always use ->selectproc method
(rename qd_select() to qd65xx_select() while at it).

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
drivers/ide/legacy/qd65xx.c

index b693a5f21a42fdf7b5b4dd1b4ecf4b8719937477..ad4ec2c42a5a82201e2566d1ab3b86d777bbe0d2 100644 (file)
 static int timings[4]={-1,-1,-1,-1}; /* stores current timing for each timer */
 
 /*
- * qd_select:
+ * qd65xx_select:
  *
- * This routine is invoked from ide.c to prepare for access to a given drive.
+ * This routine is invoked to prepare for access to a given drive.
  */
 
-static void qd_select (ide_drive_t *drive)
+static void qd65xx_select(ide_drive_t *drive)
 {
        u8 index = ((   (QD_TIMREG(drive)) & 0x80 ) >> 7) |
                        (QD_TIMREG(drive) & 0x02);
@@ -167,37 +167,16 @@ static int qd_find_disk_type (ide_drive_t *drive,
        return 0;
 }
 
-/*
- * qd_timing_ok:
- *
- * check whether timings don't conflict
- */
-
-static int qd_timing_ok (ide_drive_t drives[])
-{
-       return (IDE_IMPLY(drives[0].present && drives[1].present,
-                       IDE_IMPLY(QD_TIMREG(drives) == QD_TIMREG(drives+1),
-                                 QD_TIMING(drives) == QD_TIMING(drives+1))));
-       /* if same timing register, must be same timing */
-}
-
 /*
  * qd_set_timing:
  *
- * records the timing, and enables selectproc as needed
+ * records the timing
  */
 
 static void qd_set_timing (ide_drive_t *drive, u8 timing)
 {
-       ide_hwif_t *hwif = HWIF(drive);
-
        drive->drive_data &= 0xff00;
        drive->drive_data |= timing;
-       if (qd_timing_ok(hwif->drives)) {
-               qd_select(drive); /* selects once */
-               hwif->selectproc = NULL;
-       } else
-               hwif->selectproc = &qd_select;
 
        printk(KERN_DEBUG "%s: %#x\n", drive->name, timing);
 }
@@ -400,7 +379,8 @@ static int __init qd_probe(int base)
                qd_setup(hwif, base, config);
 
                hwif->port_init_devs = qd6500_port_init_devs;
-               hwif->set_pio_mode = &qd6500_set_pio_mode;
+               hwif->set_pio_mode   = qd6500_set_pio_mode;
+               hwif->selectproc     = qd65xx_select;
 
                idx[unit] = hwif->index;
 
@@ -441,7 +421,8 @@ static int __init qd_probe(int base)
                        qd_setup(hwif, base, config | (control << 8));
 
                        hwif->port_init_devs = qd6580_port_init_devs;
-                       hwif->set_pio_mode = &qd6580_set_pio_mode;
+                       hwif->set_pio_mode   = qd6580_set_pio_mode;
+                       hwif->selectproc     = qd65xx_select;
 
                        idx[unit] = hwif->index;
 
@@ -460,6 +441,7 @@ static int __init qd_probe(int base)
                                qd_setup(hwif, base, config | (control << 8));
                                hwif->port_init_devs = qd6580_port_init_devs;
                                hwif->set_pio_mode   = qd6580_set_pio_mode;
+                               hwif->selectproc     = qd65xx_select;
                                idx[0] = hwif->index;
                        }
 
@@ -469,6 +451,7 @@ static int __init qd_probe(int base)
                                qd_setup(mate, base, config | (control << 8));
                                mate->port_init_devs = qd6580_port_init_devs;
                                mate->set_pio_mode   = qd6580_set_pio_mode;
+                               mate->selectproc     = qd65xx_select;
                                idx[1] = mate->index;
                        }