diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2007-05-09 18:01:11 -0400 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2007-05-09 18:01:11 -0400 |
commit | 5cbf79cdb37be2aa2a1b4fa94144526b14557060 (patch) | |
tree | 1fcfbc1248b9904e5890cc593f018ee0a8a53238 /drivers/ide/pci/cs5520.c | |
parent | 869c56ee9de1b72cd3f8ab9cdfbd3601e55c61f2 (diff) |
ide: add ide_proc_register_port()
* create_proc_ide_interfaces() tries to add /proc entries for every probed
and initialized IDE port, replace it by ide_proc_register_port() which does
it only for the given port (also rename destroy_proc_ide_interface() to
ide_proc_unregister_port() for consistency)
* convert {create,destroy}_proc_ide_interface[s]() users to use new functions
* pmac driver depended on proc_ide_create() to add /proc port entries, fix it
* au1xxx-ide, swarm and cs5520 drivers depended indirectly on ide-generic
driver (CONFIG_IDE_GENERIC=y) to add port /proc entries, fix them
* there is now no need to add /proc entries for IDE ports in proc_ide_create()
so don't do it
* proc_ide_create() needs now to be called before drivers are probed - fix it,
while at it make proc_ide_create() create /proc "ide" directory
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/pci/cs5520.c')
-rw-r--r-- | drivers/ide/pci/cs5520.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/drivers/ide/pci/cs5520.c b/drivers/ide/pci/cs5520.c index 400859a839f7..3b88a3a56116 100644 --- a/drivers/ide/pci/cs5520.c +++ b/drivers/ide/pci/cs5520.c | |||
@@ -213,6 +213,7 @@ static ide_pci_device_t cyrix_chipsets[] __devinitdata = { | |||
213 | 213 | ||
214 | static int __devinit cs5520_init_one(struct pci_dev *dev, const struct pci_device_id *id) | 214 | static int __devinit cs5520_init_one(struct pci_dev *dev, const struct pci_device_id *id) |
215 | { | 215 | { |
216 | ide_hwif_t *hwif = NULL, *mate = NULL; | ||
216 | ata_index_t index; | 217 | ata_index_t index; |
217 | ide_pci_device_t *d = &cyrix_chipsets[id->driver_data]; | 218 | ide_pci_device_t *d = &cyrix_chipsets[id->driver_data]; |
218 | 219 | ||
@@ -239,10 +240,21 @@ static int __devinit cs5520_init_one(struct pci_dev *dev, const struct pci_devic | |||
239 | 240 | ||
240 | ide_pci_setup_ports(dev, d, 14, &index); | 241 | ide_pci_setup_ports(dev, d, 14, &index); |
241 | 242 | ||
242 | if((index.b.low & 0xf0) != 0xf0) | 243 | if ((index.b.low & 0xf0) != 0xf0) |
243 | probe_hwif_init(&ide_hwifs[index.b.low]); | 244 | hwif = &ide_hwifs[index.b.low]; |
244 | if((index.b.high & 0xf0) != 0xf0) | 245 | if ((index.b.high & 0xf0) != 0xf0) |
245 | probe_hwif_init(&ide_hwifs[index.b.high]); | 246 | mate = &ide_hwifs[index.b.high]; |
247 | |||
248 | if (hwif) | ||
249 | probe_hwif_init(hwif); | ||
250 | if (mate) | ||
251 | probe_hwif_init(mate); | ||
252 | |||
253 | if (hwif) | ||
254 | ide_proc_register_port(hwif); | ||
255 | if (mate) | ||
256 | ide_proc_register_port(mate); | ||
257 | |||
246 | return 0; | 258 | return 0; |
247 | } | 259 | } |
248 | 260 | ||