diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-01-26 14:13:06 -0500 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-01-26 14:13:06 -0500 |
commit | 8ac4ce742c66100931b6f2d7a36b0df08bc721fe (patch) | |
tree | bc44edb8d6ec9057d24aa4c986729e1ca9f3f860 /drivers/ide/pci | |
parent | ac87e41116c229fc1efaac0d17fdbfb2185e4629 (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')
-rw-r--r-- | drivers/ide/pci/cmd640.c | 8 |
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 | ||