aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2008-07-16 14:33:39 -0400
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2008-07-16 14:33:39 -0400
commit256c5f8eef7b9a8c8a85c15c58cda9df455f947e (patch)
treececc145a78f140de8e623b1563c4d758290e2ae8
parent9ad540937554a3779c5fe7af13aa390b1d2aeb3e (diff)
ide: fix hwif-s initialization
* Add ide_hwifs[] entry initialization to ide_find_port_slot() and remove ide_init_port_data() calls from host drivers. * Unexport ide_init_port_data(). * Remove no longer needed init_ide_data(). Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
-rw-r--r--drivers/ide/arm/palm_bk3710.c1
-rw-r--r--drivers/ide/h8300/ide-h8300.c1
-rw-r--r--drivers/ide/ide-pnp.c1
-rw-r--r--drivers/ide/ide-probe.c10
-rw-r--r--drivers/ide/ide.c15
-rw-r--r--drivers/ide/legacy/buddha.c1
-rw-r--r--drivers/ide/legacy/falconide.c1
-rw-r--r--drivers/ide/legacy/gayle.c1
-rw-r--r--drivers/ide/legacy/ide-cs.c1
-rw-r--r--drivers/ide/legacy/macide.c1
-rw-r--r--drivers/ide/legacy/q40ide.c1
-rw-r--r--drivers/ide/pci/delkin_cb.c1
12 files changed, 7 insertions, 28 deletions
diff --git a/drivers/ide/arm/palm_bk3710.c b/drivers/ide/arm/palm_bk3710.c
index 9b8a45d2cf17..c79b85b6e4a3 100644
--- a/drivers/ide/arm/palm_bk3710.c
+++ b/drivers/ide/arm/palm_bk3710.c
@@ -400,7 +400,6 @@ static int __devinit palm_bk3710_probe(struct platform_device *pdev)
400 400
401 i = hwif->index; 401 i = hwif->index;
402 402
403 ide_init_port_data(hwif, i);
404 ide_init_port_hw(hwif, &hw); 403 ide_init_port_hw(hwif, &hw);
405 404
406 default_hwif_mmiops(hwif); 405 default_hwif_mmiops(hwif);
diff --git a/drivers/ide/h8300/ide-h8300.c b/drivers/ide/h8300/ide-h8300.c
index ae37ee58bae2..dfce105bae64 100644
--- a/drivers/ide/h8300/ide-h8300.c
+++ b/drivers/ide/h8300/ide-h8300.c
@@ -199,7 +199,6 @@ static int __init h8300_ide_init(void)
199 } 199 }
200 200
201 index = hwif->index; 201 index = hwif->index;
202 ide_init_port_data(hwif, index);
203 ide_init_port_hw(hwif, &hw); 202 ide_init_port_hw(hwif, &hw);
204 hwif_setup(hwif); 203 hwif_setup(hwif);
205 hwif->host_flags = IDE_HFLAG_NO_IO_32BIT; 204 hwif->host_flags = IDE_HFLAG_NO_IO_32BIT;
diff --git a/drivers/ide/ide-pnp.c b/drivers/ide/ide-pnp.c
index adbd01784162..fc1e10c9d1cd 100644
--- a/drivers/ide/ide-pnp.c
+++ b/drivers/ide/ide-pnp.c
@@ -62,7 +62,6 @@ static int idepnp_probe(struct pnp_dev *dev, const struct pnp_device_id *dev_id)
62 u8 index = hwif->index; 62 u8 index = hwif->index;
63 u8 idx[4] = { index, 0xff, 0xff, 0xff }; 63 u8 idx[4] = { index, 0xff, 0xff, 0xff };
64 64
65 ide_init_port_data(hwif, index);
66 ide_init_port_hw(hwif, &hw); 65 ide_init_port_hw(hwif, &hw);
67 66
68 printk(KERN_INFO "ide%d: generic PnP IDE interface\n", index); 67 printk(KERN_INFO "ide%d: generic PnP IDE interface\n", index);
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c
index d21e51a02c3e..592d424412ea 100644
--- a/drivers/ide/ide-probe.c
+++ b/drivers/ide/ide-probe.c
@@ -1473,22 +1473,26 @@ ide_hwif_t *ide_find_port_slot(const struct ide_port_info *d)
1473 for (; i < MAX_HWIFS; i++) { 1473 for (; i < MAX_HWIFS; i++) {
1474 hwif = &ide_hwifs[i]; 1474 hwif = &ide_hwifs[i];
1475 if (hwif->chipset == ide_unknown) 1475 if (hwif->chipset == ide_unknown)
1476 return hwif; 1476 goto out_found;
1477 } 1477 }
1478 } else { 1478 } else {
1479 for (i = 2; i < MAX_HWIFS; i++) { 1479 for (i = 2; i < MAX_HWIFS; i++) {
1480 hwif = &ide_hwifs[i]; 1480 hwif = &ide_hwifs[i];
1481 if (hwif->chipset == ide_unknown) 1481 if (hwif->chipset == ide_unknown)
1482 return hwif; 1482 goto out_found;
1483 } 1483 }
1484 for (i = 0; i < 2 && i < MAX_HWIFS; i++) { 1484 for (i = 0; i < 2 && i < MAX_HWIFS; i++) {
1485 hwif = &ide_hwifs[i]; 1485 hwif = &ide_hwifs[i];
1486 if (hwif->chipset == ide_unknown) 1486 if (hwif->chipset == ide_unknown)
1487 return hwif; 1487 goto out_found;
1488 } 1488 }
1489 } 1489 }
1490 1490
1491 return NULL; 1491 return NULL;
1492
1493out_found:
1494 ide_init_port_data(hwif, i);
1495 return hwif;
1492} 1496}
1493EXPORT_SYMBOL_GPL(ide_find_port_slot); 1497EXPORT_SYMBOL_GPL(ide_find_port_slot);
1494 1498
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c
index 2b8453510e09..32d8ee281d56 100644
--- a/drivers/ide/ide.c
+++ b/drivers/ide/ide.c
@@ -121,7 +121,6 @@ void ide_init_port_data(ide_hwif_t *hwif, unsigned int index)
121 121
122 ide_port_init_devices_data(hwif); 122 ide_port_init_devices_data(hwif);
123} 123}
124EXPORT_SYMBOL_GPL(ide_init_port_data);
125 124
126static void ide_port_init_devices_data(ide_hwif_t *hwif) 125static void ide_port_init_devices_data(ide_hwif_t *hwif)
127{ 126{
@@ -150,18 +149,6 @@ static void ide_port_init_devices_data(ide_hwif_t *hwif)
150 } 149 }
151} 150}
152 151
153static void __init init_ide_data (void)
154{
155 unsigned int index;
156
157 /* Initialise all interface structures */
158 for (index = 0; index < MAX_HWIFS; ++index) {
159 ide_hwif_t *hwif = &ide_hwifs[index];
160
161 ide_init_port_data(hwif, index);
162 }
163}
164
165void ide_remove_port_from_hwgroup(ide_hwif_t *hwif) 152void ide_remove_port_from_hwgroup(ide_hwif_t *hwif)
166{ 153{
167 ide_hwgroup_t *hwgroup = hwif->hwgroup; 154 ide_hwgroup_t *hwgroup = hwif->hwgroup;
@@ -1021,8 +1008,6 @@ static int __init ide_init(void)
1021 goto out_port_class; 1008 goto out_port_class;
1022 } 1009 }
1023 1010
1024 init_ide_data();
1025
1026 proc_ide_create(); 1011 proc_ide_create();
1027 1012
1028 return 0; 1013 return 0;
diff --git a/drivers/ide/legacy/buddha.c b/drivers/ide/legacy/buddha.c
index 9a1d27ef3f8a..0497e7f85b09 100644
--- a/drivers/ide/legacy/buddha.c
+++ b/drivers/ide/legacy/buddha.c
@@ -227,7 +227,6 @@ fail_base2:
227 if (hwif) { 227 if (hwif) {
228 u8 index = hwif->index; 228 u8 index = hwif->index;
229 229
230 ide_init_port_data(hwif, index);
231 ide_init_port_hw(hwif, &hw); 230 ide_init_port_hw(hwif, &hw);
232 231
233 idx[i] = index; 232 idx[i] = index;
diff --git a/drivers/ide/legacy/falconide.c b/drivers/ide/legacy/falconide.c
index af11028b4794..129a812bb57f 100644
--- a/drivers/ide/legacy/falconide.c
+++ b/drivers/ide/legacy/falconide.c
@@ -111,7 +111,6 @@ static int __init falconide_init(void)
111 u8 index = hwif->index; 111 u8 index = hwif->index;
112 u8 idx[4] = { index, 0xff, 0xff, 0xff }; 112 u8 idx[4] = { index, 0xff, 0xff, 0xff };
113 113
114 ide_init_port_data(hwif, index);
115 ide_init_port_hw(hwif, &hw); 114 ide_init_port_hw(hwif, &hw);
116 115
117 /* Atari has a byte-swapped IDE interface */ 116 /* Atari has a byte-swapped IDE interface */
diff --git a/drivers/ide/legacy/gayle.c b/drivers/ide/legacy/gayle.c
index b78941680c32..7e74b20202df 100644
--- a/drivers/ide/legacy/gayle.c
+++ b/drivers/ide/legacy/gayle.c
@@ -185,7 +185,6 @@ found:
185 if (hwif) { 185 if (hwif) {
186 u8 index = hwif->index; 186 u8 index = hwif->index;
187 187
188 ide_init_port_data(hwif, index);
189 ide_init_port_hw(hwif, &hw); 188 ide_init_port_hw(hwif, &hw);
190 189
191 idx[i] = index; 190 idx[i] = index;
diff --git a/drivers/ide/legacy/ide-cs.c b/drivers/ide/legacy/ide-cs.c
index 8dbf4d9b6447..7c69608154c2 100644
--- a/drivers/ide/legacy/ide-cs.c
+++ b/drivers/ide/legacy/ide-cs.c
@@ -187,7 +187,6 @@ static ide_hwif_t *idecs_register(unsigned long io, unsigned long ctl,
187 187
188 i = hwif->index; 188 i = hwif->index;
189 189
190 ide_init_port_data(hwif, i);
191 ide_init_port_hw(hwif, &hw); 190 ide_init_port_hw(hwif, &hw);
192 hwif->port_ops = &idecs_port_ops; 191 hwif->port_ops = &idecs_port_ops;
193 192
diff --git a/drivers/ide/legacy/macide.c b/drivers/ide/legacy/macide.c
index 2e84290d0bcc..0a6195bcfeda 100644
--- a/drivers/ide/legacy/macide.c
+++ b/drivers/ide/legacy/macide.c
@@ -130,7 +130,6 @@ static int __init macide_init(void)
130 u8 index = hwif->index; 130 u8 index = hwif->index;
131 u8 idx[4] = { index, 0xff, 0xff, 0xff }; 131 u8 idx[4] = { index, 0xff, 0xff, 0xff };
132 132
133 ide_init_port_data(hwif, index);
134 ide_init_port_hw(hwif, &hw); 133 ide_init_port_hw(hwif, &hw);
135 134
136 ide_device_add(idx, NULL); 135 ide_device_add(idx, NULL);
diff --git a/drivers/ide/legacy/q40ide.c b/drivers/ide/legacy/q40ide.c
index 8ff6e2d20834..9c2b9d078f69 100644
--- a/drivers/ide/legacy/q40ide.c
+++ b/drivers/ide/legacy/q40ide.c
@@ -142,7 +142,6 @@ static int __init q40ide_init(void)
142 142
143 hwif = ide_find_port(); 143 hwif = ide_find_port();
144 if (hwif) { 144 if (hwif) {
145 ide_init_port_data(hwif, hwif->index);
146 ide_init_port_hw(hwif, &hw); 145 ide_init_port_hw(hwif, &hw);
147 146
148 /* Q40 has a byte-swapped IDE interface */ 147 /* Q40 has a byte-swapped IDE interface */
diff --git a/drivers/ide/pci/delkin_cb.c b/drivers/ide/pci/delkin_cb.c
index af0f30051d5a..0106e2a2df77 100644
--- a/drivers/ide/pci/delkin_cb.c
+++ b/drivers/ide/pci/delkin_cb.c
@@ -93,7 +93,6 @@ delkin_cb_probe (struct pci_dev *dev, const struct pci_device_id *id)
93 93
94 i = hwif->index; 94 i = hwif->index;
95 95
96 ide_init_port_data(hwif, i);
97 ide_init_port_hw(hwif, &hw); 96 ide_init_port_hw(hwif, &hw);
98 97
99 idx[0] = i; 98 idx[0] = i;