ide: fix IDE_DFLAG_NO_IO_32BIT handling
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Tue, 24 Mar 2009 22:22:38 +0000 (23:22 +0100)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Tue, 24 Mar 2009 22:22:38 +0000 (23:22 +0100)
* IDE_DFLAG_NO_IO_32BIT may be set by cmd640's ->init_dev method
  so don't clear it in ide_port_tune_devices() (+ no need to do it).

* Move IDE_DFLAG_NO_IO_32BIT handling to ide_port_init_devices().

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

index ee8e3e7..97ea532 100644 (file)
@@ -848,13 +848,6 @@ static void ide_port_tune_devices(ide_hwif_t *hwif)
                                ide_set_dma(drive);
                }
        }
-
-       ide_port_for_each_dev(i, drive, hwif) {
-               if (hwif->host_flags & IDE_HFLAG_NO_IO_32BIT)
-                       drive->dev_flags |= IDE_DFLAG_NO_IO_32BIT;
-               else
-                       drive->dev_flags &= ~IDE_DFLAG_NO_IO_32BIT;
-       }
 }
 
 /*
@@ -1192,6 +1185,8 @@ static void ide_port_init_devices(ide_hwif_t *hwif)
 
                if (hwif->host_flags & IDE_HFLAG_IO_32BIT)
                        drive->io_32bit = 1;
+               if (hwif->host_flags & IDE_HFLAG_NO_IO_32BIT)
+                       drive->dev_flags |= IDE_DFLAG_NO_IO_32BIT;
                if (hwif->host_flags & IDE_HFLAG_UNMASK_IRQS)
                        drive->dev_flags |= IDE_DFLAG_UNMASK;
                if (hwif->host_flags & IDE_HFLAG_NO_UNMASK_IRQS)