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 | |
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')
-rw-r--r-- | drivers/ide/Kconfig | 11 | ||||
-rw-r--r-- | drivers/ide/arm/ide_arm.c | 4 | ||||
-rw-r--r-- | drivers/ide/cris/ide-cris.c | 9 | ||||
-rw-r--r-- | drivers/ide/h8300/ide-h8300.c | 6 | ||||
-rw-r--r-- | drivers/ide/ide-pnp.c | 4 | ||||
-rw-r--r-- | drivers/ide/ide.c | 4 | ||||
-rw-r--r-- | drivers/ide/legacy/buddha.c | 10 | ||||
-rw-r--r-- | drivers/ide/legacy/falconide.c | 3 | ||||
-rw-r--r-- | drivers/ide/legacy/gayle.c | 5 | ||||
-rw-r--r-- | drivers/ide/legacy/macide.c | 3 | ||||
-rw-r--r-- | drivers/ide/legacy/q40ide.c | 5 | ||||
-rw-r--r-- | drivers/ide/pci/cmd640.c | 8 | ||||
-rw-r--r-- | drivers/ide/ppc/mpc8xx.c | 14 |
13 files changed, 70 insertions, 16 deletions
diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig index 2a584b3f1813..7c419e87a4a4 100644 --- a/drivers/ide/Kconfig +++ b/drivers/ide/Kconfig | |||
@@ -327,7 +327,6 @@ config BLK_DEV_PLATFORM | |||
327 | config BLK_DEV_CMD640 | 327 | config BLK_DEV_CMD640 |
328 | bool "CMD640 chipset bugfix/support" | 328 | bool "CMD640 chipset bugfix/support" |
329 | depends on X86 | 329 | depends on X86 |
330 | select IDE_GENERIC | ||
331 | ---help--- | 330 | ---help--- |
332 | The CMD-Technologies CMD640 IDE chip is used on many common 486 and | 331 | The CMD-Technologies CMD640 IDE chip is used on many common 486 and |
333 | Pentium motherboards, usually in combination with a "Neptune" or | 332 | Pentium motherboards, usually in combination with a "Neptune" or |
@@ -362,7 +361,6 @@ config BLK_DEV_CMD640_ENHANCED | |||
362 | config BLK_DEV_IDEPNP | 361 | config BLK_DEV_IDEPNP |
363 | bool "PNP EIDE support" | 362 | bool "PNP EIDE support" |
364 | depends on PNP | 363 | depends on PNP |
365 | select IDE_GENERIC | ||
366 | help | 364 | help |
367 | If you have a PnP (Plug and Play) compatible EIDE card and | 365 | If you have a PnP (Plug and Play) compatible EIDE card and |
368 | would like the kernel to automatically detect and activate | 366 | would like the kernel to automatically detect and activate |
@@ -845,7 +843,6 @@ config BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ | |||
845 | 843 | ||
846 | config IDE_ARM | 844 | config IDE_ARM |
847 | def_bool ARM && (ARCH_CLPS7500 || ARCH_RPC || ARCH_SHARK) | 845 | def_bool ARM && (ARCH_CLPS7500 || ARCH_RPC || ARCH_SHARK) |
848 | select IDE_GENERIC | ||
849 | 846 | ||
850 | config BLK_DEV_IDE_ICSIDE | 847 | config BLK_DEV_IDE_ICSIDE |
851 | tristate "ICS IDE interface support" | 848 | tristate "ICS IDE interface support" |
@@ -880,7 +877,6 @@ config ETRAX_IDE | |||
880 | bool "ETRAX IDE support" | 877 | bool "ETRAX IDE support" |
881 | depends on CRIS && BROKEN | 878 | depends on CRIS && BROKEN |
882 | select BLK_DEV_IDEDMA | 879 | select BLK_DEV_IDEDMA |
883 | select IDE_GENERIC | ||
884 | help | 880 | help |
885 | Enables the ETRAX IDE driver. | 881 | Enables the ETRAX IDE driver. |
886 | 882 | ||
@@ -914,7 +910,6 @@ endchoice | |||
914 | config IDE_H8300 | 910 | config IDE_H8300 |
915 | bool "H8300 IDE support" | 911 | bool "H8300 IDE support" |
916 | depends on H8300 | 912 | depends on H8300 |
917 | select IDE_GENERIC | ||
918 | default y | 913 | default y |
919 | help | 914 | help |
920 | Enables the H8300 IDE driver. | 915 | Enables the H8300 IDE driver. |
@@ -922,7 +917,6 @@ config IDE_H8300 | |||
922 | config BLK_DEV_GAYLE | 917 | config BLK_DEV_GAYLE |
923 | bool "Amiga Gayle IDE interface support" | 918 | bool "Amiga Gayle IDE interface support" |
924 | depends on AMIGA | 919 | depends on AMIGA |
925 | select IDE_GENERIC | ||
926 | help | 920 | help |
927 | This is the IDE driver for the Amiga Gayle IDE interface. It supports | 921 | This is the IDE driver for the Amiga Gayle IDE interface. It supports |
928 | both the `A1200 style' and `A4000 style' of the Gayle IDE interface, | 922 | both the `A1200 style' and `A4000 style' of the Gayle IDE interface, |
@@ -954,7 +948,6 @@ config BLK_DEV_IDEDOUBLER | |||
954 | config BLK_DEV_BUDDHA | 948 | config BLK_DEV_BUDDHA |
955 | bool "Buddha/Catweasel/X-Surf IDE interface support (EXPERIMENTAL)" | 949 | bool "Buddha/Catweasel/X-Surf IDE interface support (EXPERIMENTAL)" |
956 | depends on ZORRO && EXPERIMENTAL | 950 | depends on ZORRO && EXPERIMENTAL |
957 | select IDE_GENERIC | ||
958 | help | 951 | help |
959 | This is the IDE driver for the IDE interfaces on the Buddha, | 952 | This is the IDE driver for the IDE interfaces on the Buddha, |
960 | Catweasel and X-Surf expansion boards. It supports up to two interfaces | 953 | Catweasel and X-Surf expansion boards. It supports up to two interfaces |
@@ -967,7 +960,6 @@ config BLK_DEV_BUDDHA | |||
967 | config BLK_DEV_FALCON_IDE | 960 | config BLK_DEV_FALCON_IDE |
968 | bool "Falcon IDE interface support" | 961 | bool "Falcon IDE interface support" |
969 | depends on ATARI | 962 | depends on ATARI |
970 | select IDE_GENERIC | ||
971 | help | 963 | help |
972 | This is the IDE driver for the builtin IDE interface on the Atari | 964 | This is the IDE driver for the builtin IDE interface on the Atari |
973 | Falcon. Say Y if you have a Falcon and want to use IDE devices (hard | 965 | Falcon. Say Y if you have a Falcon and want to use IDE devices (hard |
@@ -977,7 +969,6 @@ config BLK_DEV_FALCON_IDE | |||
977 | config BLK_DEV_MAC_IDE | 969 | config BLK_DEV_MAC_IDE |
978 | bool "Macintosh Quadra/Powerbook IDE interface support" | 970 | bool "Macintosh Quadra/Powerbook IDE interface support" |
979 | depends on MAC | 971 | depends on MAC |
980 | select IDE_GENERIC | ||
981 | help | 972 | help |
982 | This is the IDE driver for the builtin IDE interface on some m68k | 973 | This is the IDE driver for the builtin IDE interface on some m68k |
983 | Macintosh models. It supports both the `Quadra style' (used in | 974 | Macintosh models. It supports both the `Quadra style' (used in |
@@ -991,7 +982,6 @@ config BLK_DEV_MAC_IDE | |||
991 | config BLK_DEV_Q40IDE | 982 | config BLK_DEV_Q40IDE |
992 | bool "Q40/Q60 IDE interface support" | 983 | bool "Q40/Q60 IDE interface support" |
993 | depends on Q40 | 984 | depends on Q40 |
994 | select IDE_GENERIC | ||
995 | help | 985 | help |
996 | Enable the on-board IDE controller in the Q40/Q60. This should | 986 | Enable the on-board IDE controller in the Q40/Q60. This should |
997 | normally be on; disable it only if you are running a custom hard | 987 | normally be on; disable it only if you are running a custom hard |
@@ -1000,7 +990,6 @@ config BLK_DEV_Q40IDE | |||
1000 | config BLK_DEV_MPC8xx_IDE | 990 | config BLK_DEV_MPC8xx_IDE |
1001 | bool "MPC8xx IDE support" | 991 | bool "MPC8xx IDE support" |
1002 | depends on 8xx && (LWMON || IVMS8 || IVML24 || TQM8xxL) && IDE=y && BLK_DEV_IDE=y && !PPC_MERGE | 992 | depends on 8xx && (LWMON || IVMS8 || IVML24 || TQM8xxL) && IDE=y && BLK_DEV_IDE=y && !PPC_MERGE |
1003 | select IDE_GENERIC | ||
1004 | help | 993 | help |
1005 | This option provides support for IDE on Motorola MPC8xx Systems. | 994 | This option provides support for IDE on Motorola MPC8xx Systems. |
1006 | Please see 'Type of MPC8xx IDE interface' for details. | 995 | Please see 'Type of MPC8xx IDE interface' for details. |
diff --git a/drivers/ide/arm/ide_arm.c b/drivers/ide/arm/ide_arm.c index 21ba6ac2f826..a1b5ddab6a48 100644 --- a/drivers/ide/arm/ide_arm.c +++ b/drivers/ide/arm/ide_arm.c | |||
@@ -28,6 +28,7 @@ void __init ide_arm_init(void) | |||
28 | { | 28 | { |
29 | ide_hwif_t *hwif; | 29 | ide_hwif_t *hwif; |
30 | hw_regs_t hw; | 30 | hw_regs_t hw; |
31 | u8 idx[4] = { 0xff, 0xff, 0xff, 0xff }; | ||
31 | 32 | ||
32 | memset(&hw, 0, sizeof(hw)); | 33 | memset(&hw, 0, sizeof(hw)); |
33 | ide_std_init_ports(&hw, IDE_ARM_IO, IDE_ARM_IO + 0x206); | 34 | ide_std_init_ports(&hw, IDE_ARM_IO, IDE_ARM_IO + 0x206); |
@@ -36,5 +37,8 @@ void __init ide_arm_init(void) | |||
36 | hwif = ide_find_port(hw.io_ports[IDE_DATA_OFFSET]); | 37 | hwif = ide_find_port(hw.io_ports[IDE_DATA_OFFSET]); |
37 | if (hwif) { | 38 | if (hwif) { |
38 | ide_init_port_hw(hwif, &hw); | 39 | ide_init_port_hw(hwif, &hw); |
40 | idx[0] = hwif->index; | ||
41 | |||
42 | ide_device_add(idx); | ||
39 | } | 43 | } |
40 | } | 44 | } |
diff --git a/drivers/ide/cris/ide-cris.c b/drivers/ide/cris/ide-cris.c index 7e33e2b42e92..924536297036 100644 --- a/drivers/ide/cris/ide-cris.c +++ b/drivers/ide/cris/ide-cris.c | |||
@@ -758,9 +758,8 @@ void __init | |||
758 | init_e100_ide (void) | 758 | init_e100_ide (void) |
759 | { | 759 | { |
760 | hw_regs_t hw; | 760 | hw_regs_t hw; |
761 | int ide_offsets[IDE_NR_PORTS]; | 761 | int ide_offsets[IDE_NR_PORTS], h, i; |
762 | int h; | 762 | u8 idx[4] = { 0xff, 0xff, 0xff, 0xff }; |
763 | int i; | ||
764 | 763 | ||
765 | printk("ide: ETRAX FS built-in ATA DMA controller\n"); | 764 | printk("ide: ETRAX FS built-in ATA DMA controller\n"); |
766 | 765 | ||
@@ -808,6 +807,8 @@ init_e100_ide (void) | |||
808 | hwif->drives[1].autotune = 1; | 807 | hwif->drives[1].autotune = 1; |
809 | hwif->ultra_mask = cris_ultra_mask; | 808 | hwif->ultra_mask = cris_ultra_mask; |
810 | hwif->mwdma_mask = 0x07; /* Multiword DMA 0-2 */ | 809 | hwif->mwdma_mask = 0x07; /* Multiword DMA 0-2 */ |
810 | |||
811 | idx[h] = hwif->index; | ||
811 | } | 812 | } |
812 | 813 | ||
813 | /* Reset pulse */ | 814 | /* Reset pulse */ |
@@ -820,6 +821,8 @@ init_e100_ide (void) | |||
820 | cris_ide_set_speed(TYPE_PIO, ATA_PIO4_SETUP, ATA_PIO4_STROBE, ATA_PIO4_HOLD); | 821 | cris_ide_set_speed(TYPE_PIO, ATA_PIO4_SETUP, ATA_PIO4_STROBE, ATA_PIO4_HOLD); |
821 | cris_ide_set_speed(TYPE_DMA, 0, ATA_DMA2_STROBE, ATA_DMA2_HOLD); | 822 | cris_ide_set_speed(TYPE_DMA, 0, ATA_DMA2_STROBE, ATA_DMA2_HOLD); |
822 | cris_ide_set_speed(TYPE_UDMA, ATA_UDMA2_CYC, ATA_UDMA2_DVS, 0); | 823 | cris_ide_set_speed(TYPE_UDMA, ATA_UDMA2_CYC, ATA_UDMA2_DVS, 0); |
824 | |||
825 | ide_device_add(idx); | ||
823 | } | 826 | } |
824 | 827 | ||
825 | static cris_dma_descr_type mydescr __attribute__ ((__aligned__(16))); | 828 | static cris_dma_descr_type mydescr __attribute__ ((__aligned__(16))); |
diff --git a/drivers/ide/h8300/ide-h8300.c b/drivers/ide/h8300/ide-h8300.c index 57d0d4ce8588..9fa78e98d1ba 100644 --- a/drivers/ide/h8300/ide-h8300.c +++ b/drivers/ide/h8300/ide-h8300.c | |||
@@ -89,6 +89,7 @@ void __init h8300_ide_init(void) | |||
89 | hw_regs_t hw; | 89 | hw_regs_t hw; |
90 | ide_hwif_t *hwif; | 90 | ide_hwif_t *hwif; |
91 | int index; | 91 | int index; |
92 | u8 idx[4] = { 0xff, 0xff, 0xff, 0xff }; | ||
92 | 93 | ||
93 | if (!request_region(CONFIG_H8300_IDE_BASE, H8300_IDE_GAP*8, "ide-h8300")) | 94 | if (!request_region(CONFIG_H8300_IDE_BASE, H8300_IDE_GAP*8, "ide-h8300")) |
94 | goto out_busy; | 95 | goto out_busy; |
@@ -111,6 +112,11 @@ void __init h8300_ide_init(void) | |||
111 | ide_init_port_hw(hwif, &hw); | 112 | ide_init_port_hw(hwif, &hw); |
112 | hwif_setup(hwif); | 113 | hwif_setup(hwif); |
113 | printk(KERN_INFO "ide%d: H8/300 generic IDE interface\n", index); | 114 | printk(KERN_INFO "ide%d: H8/300 generic IDE interface\n", index); |
115 | |||
116 | idx[0] = index; | ||
117 | |||
118 | ide_device_add(idx); | ||
119 | |||
114 | return; | 120 | return; |
115 | 121 | ||
116 | out_busy: | 122 | out_busy: |
diff --git a/drivers/ide/ide-pnp.c b/drivers/ide/ide-pnp.c index 664bc489c550..802efd4d9760 100644 --- a/drivers/ide/ide-pnp.c +++ b/drivers/ide/ide-pnp.c | |||
@@ -43,12 +43,16 @@ static int idepnp_probe(struct pnp_dev * dev, const struct pnp_device_id *dev_id | |||
43 | hwif = ide_find_port(hw.io_ports[IDE_DATA_OFFSET]); | 43 | hwif = ide_find_port(hw.io_ports[IDE_DATA_OFFSET]); |
44 | if (hwif) { | 44 | if (hwif) { |
45 | u8 index = hwif->index; | 45 | u8 index = hwif->index; |
46 | u8 idx[4] = { index, 0xff, 0xff, 0xff }; | ||
46 | 47 | ||
47 | ide_init_port_data(hwif, index); | 48 | ide_init_port_data(hwif, index); |
48 | ide_init_port_hw(hwif, &hw); | 49 | ide_init_port_hw(hwif, &hw); |
49 | 50 | ||
50 | printk(KERN_INFO "ide%d: generic PnP IDE interface\n", index); | 51 | printk(KERN_INFO "ide%d: generic PnP IDE interface\n", index); |
51 | pnp_set_drvdata(dev,hwif); | 52 | pnp_set_drvdata(dev,hwif); |
53 | |||
54 | ide_device_add(idx); | ||
55 | |||
52 | return 0; | 56 | return 0; |
53 | } | 57 | } |
54 | 58 | ||
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c index 77af743425e8..6f99f5c90062 100644 --- a/drivers/ide/ide.c +++ b/drivers/ide/ide.c | |||
@@ -1555,6 +1555,7 @@ done: | |||
1555 | extern void __init pnpide_init(void); | 1555 | extern void __init pnpide_init(void); |
1556 | extern void __exit pnpide_exit(void); | 1556 | extern void __exit pnpide_exit(void); |
1557 | extern void __init h8300_ide_init(void); | 1557 | extern void __init h8300_ide_init(void); |
1558 | extern void __init mpc8xx_ide_probe(void); | ||
1558 | 1559 | ||
1559 | /* | 1560 | /* |
1560 | * probe_for_hwifs() finds/initializes "known" IDE interfaces | 1561 | * probe_for_hwifs() finds/initializes "known" IDE interfaces |
@@ -1619,6 +1620,9 @@ static void __init probe_for_hwifs (void) | |||
1619 | #ifdef CONFIG_H8300 | 1620 | #ifdef CONFIG_H8300 |
1620 | h8300_ide_init(); | 1621 | h8300_ide_init(); |
1621 | #endif | 1622 | #endif |
1623 | #ifdef BLK_DEV_MPC8xx_IDE | ||
1624 | mpc8xx_ide_probe(); | ||
1625 | #endif | ||
1622 | } | 1626 | } |
1623 | 1627 | ||
1624 | /* | 1628 | /* |
diff --git a/drivers/ide/legacy/buddha.c b/drivers/ide/legacy/buddha.c index 8b9cb39c961e..ba64c4b9f918 100644 --- a/drivers/ide/legacy/buddha.c +++ b/drivers/ide/legacy/buddha.c | |||
@@ -156,6 +156,8 @@ void __init buddha_init(void) | |||
156 | 156 | ||
157 | while ((z = zorro_find_device(ZORRO_WILDCARD, z))) { | 157 | while ((z = zorro_find_device(ZORRO_WILDCARD, z))) { |
158 | unsigned long board; | 158 | unsigned long board; |
159 | u8 idx[4] = { 0xff, 0xff, 0xff, 0xff }; | ||
160 | |||
159 | if (z->id == ZORRO_PROD_INDIVIDUAL_COMPUTERS_BUDDHA) { | 161 | if (z->id == ZORRO_PROD_INDIVIDUAL_COMPUTERS_BUDDHA) { |
160 | buddha_num_hwifs = BUDDHA_NUM_HWIFS; | 162 | buddha_num_hwifs = BUDDHA_NUM_HWIFS; |
161 | type=BOARD_BUDDHA; | 163 | type=BOARD_BUDDHA; |
@@ -233,8 +235,12 @@ fail_base2: | |||
233 | printk("X-Surf"); | 235 | printk("X-Surf"); |
234 | break; | 236 | break; |
235 | } | 237 | } |
236 | printk(" IDE interface\n"); | 238 | printk(" IDE interface\n"); |
237 | } | 239 | |
240 | idx[i] = index; | ||
241 | } | ||
238 | } | 242 | } |
243 | |||
244 | ide_device_add(idx); | ||
239 | } | 245 | } |
240 | } | 246 | } |
diff --git a/drivers/ide/legacy/falconide.c b/drivers/ide/legacy/falconide.c index b861cfe25900..c1a84540beb1 100644 --- a/drivers/ide/legacy/falconide.c +++ b/drivers/ide/legacy/falconide.c | |||
@@ -75,10 +75,13 @@ void __init falconide_init(void) | |||
75 | hwif = ide_find_port(hw.io_ports[IDE_DATA_OFFSET]); | 75 | hwif = ide_find_port(hw.io_ports[IDE_DATA_OFFSET]); |
76 | if (hwif) { | 76 | if (hwif) { |
77 | u8 index = hwif->index; | 77 | u8 index = hwif->index; |
78 | u8 idx[4] = { index, 0xff, 0xff, 0xff }; | ||
78 | 79 | ||
79 | ide_init_port_data(hwif, index); | 80 | ide_init_port_data(hwif, index); |
80 | ide_init_port_hw(hwif, &hw); | 81 | ide_init_port_hw(hwif, &hw); |
81 | 82 | ||
82 | printk("ide%d: Falcon IDE interface\n", index); | 83 | printk("ide%d: Falcon IDE interface\n", index); |
84 | |||
85 | ide_device_add(idx); | ||
83 | } | 86 | } |
84 | } | 87 | } |
diff --git a/drivers/ide/legacy/gayle.c b/drivers/ide/legacy/gayle.c index 705d0b8a3f5d..ec53dc9b483c 100644 --- a/drivers/ide/legacy/gayle.c +++ b/drivers/ide/legacy/gayle.c | |||
@@ -113,6 +113,7 @@ static int gayle_ack_intr_a1200(ide_hwif_t *hwif) | |||
113 | void __init gayle_init(void) | 113 | void __init gayle_init(void) |
114 | { | 114 | { |
115 | int a4000, i; | 115 | int a4000, i; |
116 | u8 idx[4] = { 0xff, 0xff, 0xff, 0xff }; | ||
116 | 117 | ||
117 | if (!MACH_IS_AMIGA) | 118 | if (!MACH_IS_AMIGA) |
118 | return; | 119 | return; |
@@ -183,7 +184,11 @@ found: | |||
183 | break; | 184 | break; |
184 | #endif /* CONFIG_BLK_DEV_IDEDOUBLER */ | 185 | #endif /* CONFIG_BLK_DEV_IDEDOUBLER */ |
185 | } | 186 | } |
187 | |||
188 | idx[i] = index; | ||
186 | } else | 189 | } else |
187 | release_mem_region(res_start, res_n); | 190 | release_mem_region(res_start, res_n); |
188 | } | 191 | } |
192 | |||
193 | ide_device_add(idx); | ||
189 | } | 194 | } |
diff --git a/drivers/ide/legacy/macide.c b/drivers/ide/legacy/macide.c index 1840fede5216..c1b7881c280a 100644 --- a/drivers/ide/legacy/macide.c +++ b/drivers/ide/legacy/macide.c | |||
@@ -112,6 +112,7 @@ void __init macide_init(void) | |||
112 | hwif = ide_find_port(hw.io_ports[IDE_DATA_OFFSET]); | 112 | hwif = ide_find_port(hw.io_ports[IDE_DATA_OFFSET]); |
113 | if (hwif) { | 113 | if (hwif) { |
114 | u8 index = hwif->index; | 114 | u8 index = hwif->index; |
115 | u8 idx[4] = { index, 0xff, 0xff, 0xff }; | ||
115 | 116 | ||
116 | ide_init_port_data(hwif, index); | 117 | ide_init_port_data(hwif, index); |
117 | ide_init_port_hw(hwif, &hw); | 118 | ide_init_port_hw(hwif, &hw); |
@@ -135,5 +136,7 @@ void __init macide_init(void) | |||
135 | printk(KERN_INFO "ide%d: Macintosh Powerbook Baboon IDE interface\n", index); | 136 | printk(KERN_INFO "ide%d: Macintosh Powerbook Baboon IDE interface\n", index); |
136 | else | 137 | else |
137 | printk(KERN_INFO "ide%d: Unknown Macintosh IDE interface\n", index); | 138 | printk(KERN_INFO "ide%d: Unknown Macintosh IDE interface\n", index); |
139 | |||
140 | ide_device_add(idx); | ||
138 | } | 141 | } |
139 | } | 142 | } |
diff --git a/drivers/ide/legacy/q40ide.c b/drivers/ide/legacy/q40ide.c index 31e54ffdfee4..2082e9c6efd9 100644 --- a/drivers/ide/legacy/q40ide.c +++ b/drivers/ide/legacy/q40ide.c | |||
@@ -116,6 +116,7 @@ void __init q40ide_init(void) | |||
116 | int i; | 116 | int i; |
117 | ide_hwif_t *hwif; | 117 | ide_hwif_t *hwif; |
118 | const char *name; | 118 | const char *name; |
119 | u8 idx[4] = { 0xff, 0xff, 0xff, 0xff }; | ||
119 | 120 | ||
120 | if (!MACH_IS_Q40) | 121 | if (!MACH_IS_Q40) |
121 | return ; | 122 | return ; |
@@ -146,7 +147,11 @@ void __init q40ide_init(void) | |||
146 | ide_init_port_data(hwif, hwif->index); | 147 | ide_init_port_data(hwif, hwif->index); |
147 | ide_init_port_hw(hwif, &hw); | 148 | ide_init_port_hw(hwif, &hw); |
148 | hwif->mmio = 1; | 149 | hwif->mmio = 1; |
150 | |||
151 | idx[i] = hwif->index; | ||
149 | } | 152 | } |
150 | } | 153 | } |
154 | |||
155 | ide_device_add(idx); | ||
151 | } | 156 | } |
152 | 157 | ||
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 | ||
diff --git a/drivers/ide/ppc/mpc8xx.c b/drivers/ide/ppc/mpc8xx.c index 5f0da35ab5ad..8172e813b034 100644 --- a/drivers/ide/ppc/mpc8xx.c +++ b/drivers/ide/ppc/mpc8xx.c | |||
@@ -838,3 +838,17 @@ void m8xx_ide_init(void) | |||
838 | ppc_ide_md.default_io_base = m8xx_ide_default_io_base; | 838 | ppc_ide_md.default_io_base = m8xx_ide_default_io_base; |
839 | ppc_ide_md.ide_init_hwif = m8xx_ide_init_hwif_ports; | 839 | ppc_ide_md.ide_init_hwif = m8xx_ide_init_hwif_ports; |
840 | } | 840 | } |
841 | |||
842 | void __init mpc8xx_ide_probe(void) | ||
843 | { | ||
844 | u8 idx[4] = { 0xff, 0xff, 0xff, 0xff }; | ||
845 | |||
846 | #ifdef IDE0_BASE_OFFSET | ||
847 | idx[0] = 0; | ||
848 | #ifdef IDE1_BASE_OFFSET | ||
849 | idx[1] = 1; | ||
850 | #endif | ||
851 | #endif | ||
852 | |||
853 | ide_device_add(idx); | ||
854 | } | ||