aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/pci/cmd640.c
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2008-01-26 14:13:06 -0500
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2008-01-26 14:13:06 -0500
commit8ac4ce742c66100931b6f2d7a36b0df08bc721fe (patch)
treebc44edb8d6ec9057d24aa4c986729e1ca9f3f860 /drivers/ide/pci/cmd640.c
parentac87e41116c229fc1efaac0d17fdbfb2185e4629 (diff)
ide: fix host drivers depending on ide_generic to probe for interfaces (take 2)
* Add mpc8xx_ide_probe() to mpc8xx.c and call it from probe_for_hwifs(). * Convert ide_arm, ide-cris, ide-h8300, ide-pnp, buddha, falconide, gayle, macide, q40ide, cmd640 and mpc8xx host drivers to use ide_device_add(). This removes dependency on ide_generic for these drivers so update ide/Kconfig accordingly. v2: * ide_arm build fix (s/ide_device_idx/ide_device_add/) (Thanks to Christoph Lameter <clameter@sgi.com> for reporting the problem). Cc: Mikael Starvik <starvik@axis.com> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Roman Zippel <zippel@linux-m68k.org> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/pci/cmd640.c')
-rw-r--r--drivers/ide/pci/cmd640.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/ide/pci/cmd640.c b/drivers/ide/pci/cmd640.c
index 4aa48104e0c1..5096e059ac5a 100644
--- a/drivers/ide/pci/cmd640.c
+++ b/drivers/ide/pci/cmd640.c
@@ -717,6 +717,7 @@ int __init ide_probe_for_cmd640x (void)
717 const char *bus_type, *port2; 717 const char *bus_type, *port2;
718 unsigned int index; 718 unsigned int index;
719 u8 b, cfr; 719 u8 b, cfr;
720 u8 idx[4] = { 0xff, 0xff, 0xff, 0xff };
720 721
721 if (cmd640_vlb && probe_for_cmd640_vlb()) { 722 if (cmd640_vlb && probe_for_cmd640_vlb()) {
722 bus_type = "VLB"; 723 bus_type = "VLB";
@@ -769,6 +770,8 @@ int __init ide_probe_for_cmd640x (void)
769 cmd_hwif0->set_pio_mode = &cmd640_set_pio_mode; 770 cmd_hwif0->set_pio_mode = &cmd640_set_pio_mode;
770#endif /* CONFIG_BLK_DEV_CMD640_ENHANCED */ 771#endif /* CONFIG_BLK_DEV_CMD640_ENHANCED */
771 772
773 idx[0] = cmd_hwif0->index;
774
772 /* 775 /*
773 * Ensure compatibility by always using the slowest timings 776 * Ensure compatibility by always using the slowest timings
774 * for access to the drive's command register block, 777 * for access to the drive's command register block,
@@ -826,6 +829,8 @@ int __init ide_probe_for_cmd640x (void)
826 cmd_hwif1->pio_mask = ATA_PIO5; 829 cmd_hwif1->pio_mask = ATA_PIO5;
827 cmd_hwif1->set_pio_mode = &cmd640_set_pio_mode; 830 cmd_hwif1->set_pio_mode = &cmd640_set_pio_mode;
828#endif /* CONFIG_BLK_DEV_CMD640_ENHANCED */ 831#endif /* CONFIG_BLK_DEV_CMD640_ENHANCED */
832
833 idx[1] = cmd_hwif1->index;
829 } 834 }
830 printk(KERN_INFO "%s: %sserialized, secondary interface %s\n", cmd_hwif1->name, 835 printk(KERN_INFO "%s: %sserialized, secondary interface %s\n", cmd_hwif1->name,
831 cmd_hwif0->serialized ? "" : "not ", port2); 836 cmd_hwif0->serialized ? "" : "not ", port2);
@@ -872,6 +877,9 @@ int __init ide_probe_for_cmd640x (void)
872#ifdef CMD640_DUMP_REGS 877#ifdef CMD640_DUMP_REGS
873 cmd640_dump_regs(); 878 cmd640_dump_regs();
874#endif 879#endif
880
881 ide_device_add(idx);
882
875 return 1; 883 return 1;
876} 884}
877 885