]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/ide/legacy/dtc2278.c
Merge branch 'fixes' of master.kernel.org:/pub/scm/linux/kernel/git/linville/wireless-2.6
[linux-2.6-omap-h63xx.git] / drivers / ide / legacy / dtc2278.c
index 092c04abbe7a1903dd0b4faa3f0adc491b30a457..73396f70f2b74c6aed1b5a7c41da3dde495d4fe2 100644 (file)
@@ -86,6 +86,18 @@ static void dtc2278_set_pio_mode(ide_drive_t *drive, const u8 pio)
        }
 }
 
+static const struct ide_port_info dtc2278_port_info __initdata = {
+       .chipset                = ide_dtc2278,
+       .host_flags             = IDE_HFLAG_SERIALIZE |
+                                 IDE_HFLAG_NO_UNMASK_IRQS |
+                                 IDE_HFLAG_IO_32BIT |
+                                 /* disallow ->io_32bit changes */
+                                 IDE_HFLAG_NO_IO_32BIT |
+                                 IDE_HFLAG_NO_DMA |
+                                 IDE_HFLAG_NO_AUTOTUNE,
+       .pio_mask               = ATA_PIO4,
+};
+
 static int __init dtc2278_probe(void)
 {
        unsigned long flags;
@@ -116,29 +128,9 @@ static int __init dtc2278_probe(void)
 #endif
        local_irq_restore(flags);
 
-       hwif->serialized = 1;
-       hwif->no_io_32bit = 1;  /* disallow ->io_32bit changes */
-       hwif->chipset = ide_dtc2278;
-       hwif->pio_mask = ATA_PIO4;
        hwif->set_pio_mode = &dtc2278_set_pio_mode;
-       hwif->drives[0].no_unmask = 1;
-       hwif->drives[1].no_unmask = 1;
-       hwif->drives[0].io_32bit = 1;
-       hwif->drives[1].io_32bit = 1;
-       hwif->mate = mate;
-
-       mate->serialized = 1;
-       mate->no_io_32bit = 1;
-       mate->chipset = ide_dtc2278;
-       mate->pio_mask = ATA_PIO4;
-       mate->drives[0].no_unmask = 1;
-       mate->drives[1].no_unmask = 1;
-       mate->drives[0].io_32bit = 1;
-       mate->drives[1].io_32bit = 1;
-       mate->mate = hwif;
-       mate->channel = 1;
-
-       ide_device_add(idx);
+
+       ide_device_add(idx, &dtc2278_port_info);
 
        return 0;
 }