aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/legacy/ide-cs.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/legacy/ide-cs.c')
-rw-r--r--drivers/ide/legacy/ide-cs.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/drivers/ide/legacy/ide-cs.c b/drivers/ide/legacy/ide-cs.c
index 855e157b18d3..aa2ea3deac85 100644
--- a/drivers/ide/legacy/ide-cs.c
+++ b/drivers/ide/legacy/ide-cs.c
@@ -140,8 +140,8 @@ static void ide_detach(struct pcmcia_device *link)
140 140
141 ide_release(link); 141 ide_release(link);
142 142
143 release_region(hwif->io_ports[IDE_CONTROL_OFFSET], 1); 143 release_region(hwif->io_ports.ctl_addr, 1);
144 release_region(hwif->io_ports[IDE_DATA_OFFSET], 8); 144 release_region(hwif->io_ports.data_addr, 8);
145 145
146 kfree(info); 146 kfree(info);
147} /* ide_detach */ 147} /* ide_detach */
@@ -183,11 +183,7 @@ static ide_hwif_t *idecs_register(unsigned long io, unsigned long ctl,
183 183
184 i = hwif->index; 184 i = hwif->index;
185 185
186 if (hwif->present) 186 ide_init_port_data(hwif, i);
187 ide_unregister(i);
188 else
189 ide_init_port_data(hwif, i);
190
191 ide_init_port_hw(hwif, &hw); 187 ide_init_port_hw(hwif, &hw);
192 hwif->port_ops = &idecs_port_ops; 188 hwif->port_ops = &idecs_port_ops;
193 189
@@ -390,7 +386,7 @@ void ide_release(struct pcmcia_device *link)
390 if (info->ndev) { 386 if (info->ndev) {
391 /* FIXME: if this fails we need to queue the cleanup somehow 387 /* FIXME: if this fails we need to queue the cleanup somehow
392 -- need to investigate the required PCMCIA magic */ 388 -- need to investigate the required PCMCIA magic */
393 ide_unregister(hwif->index); 389 ide_unregister(hwif);
394 } 390 }
395 info->ndev = 0; 391 info->ndev = 0;
396 392