aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/ide-cs.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/ide-cs.c')
-rw-r--r--drivers/ide/ide-cs.c32
1 files changed, 11 insertions, 21 deletions
diff --git a/drivers/ide/ide-cs.c b/drivers/ide/ide-cs.c
index 063b933d864a..6cee6c8d0782 100644
--- a/drivers/ide/ide-cs.c
+++ b/drivers/ide/ide-cs.c
@@ -60,15 +60,6 @@ MODULE_AUTHOR("David Hinds <dahinds@users.sourceforge.net>");
60MODULE_DESCRIPTION("PCMCIA ATA/IDE card driver"); 60MODULE_DESCRIPTION("PCMCIA ATA/IDE card driver");
61MODULE_LICENSE("Dual MPL/GPL"); 61MODULE_LICENSE("Dual MPL/GPL");
62 62
63#define INT_MODULE_PARM(n, v) static int n = v; module_param(n, int, 0)
64
65#ifdef CONFIG_PCMCIA_DEBUG
66INT_MODULE_PARM(pc_debug, 0);
67#define DEBUG(n, args...) if (pc_debug>(n)) printk(KERN_DEBUG args)
68#else
69#define DEBUG(n, args...)
70#endif
71
72/*====================================================================*/ 63/*====================================================================*/
73 64
74typedef struct ide_info_t { 65typedef struct ide_info_t {
@@ -98,7 +89,7 @@ static int ide_probe(struct pcmcia_device *link)
98{ 89{
99 ide_info_t *info; 90 ide_info_t *info;
100 91
101 DEBUG(0, "ide_attach()\n"); 92 dev_dbg(&link->dev, "ide_attach()\n");
102 93
103 /* Create new ide device */ 94 /* Create new ide device */
104 info = kzalloc(sizeof(*info), GFP_KERNEL); 95 info = kzalloc(sizeof(*info), GFP_KERNEL);
@@ -134,7 +125,7 @@ static void ide_detach(struct pcmcia_device *link)
134 ide_hwif_t *hwif = info->host->ports[0]; 125 ide_hwif_t *hwif = info->host->ports[0];
135 unsigned long data_addr, ctl_addr; 126 unsigned long data_addr, ctl_addr;
136 127
137 DEBUG(0, "ide_detach(0x%p)\n", link); 128 dev_dbg(&link->dev, "ide_detach(0x%p)\n", link);
138 129
139 data_addr = hwif->io_ports.data_addr; 130 data_addr = hwif->io_ports.data_addr;
140 ctl_addr = hwif->io_ports.ctl_addr; 131 ctl_addr = hwif->io_ports.ctl_addr;
@@ -217,9 +208,6 @@ out_release:
217 208
218======================================================================*/ 209======================================================================*/
219 210
220#define CS_CHECK(fn, ret) \
221do { last_fn = (fn); if ((last_ret = (ret)) != 0) goto cs_failed; } while (0)
222
223struct pcmcia_config_check { 211struct pcmcia_config_check {
224 unsigned long ctl_base; 212 unsigned long ctl_base;
225 int skip_vcc; 213 int skip_vcc;
@@ -282,11 +270,11 @@ static int ide_config(struct pcmcia_device *link)
282{ 270{
283 ide_info_t *info = link->priv; 271 ide_info_t *info = link->priv;
284 struct pcmcia_config_check *stk = NULL; 272 struct pcmcia_config_check *stk = NULL;
285 int last_ret = 0, last_fn = 0, is_kme = 0; 273 int ret = 0, is_kme = 0;
286 unsigned long io_base, ctl_base; 274 unsigned long io_base, ctl_base;
287 struct ide_host *host; 275 struct ide_host *host;
288 276
289 DEBUG(0, "ide_config(0x%p)\n", link); 277 dev_dbg(&link->dev, "ide_config(0x%p)\n", link);
290 278
291 is_kme = ((link->manf_id == MANFID_KME) && 279 is_kme = ((link->manf_id == MANFID_KME) &&
292 ((link->card_id == PRODID_KME_KXLC005_A) || 280 ((link->card_id == PRODID_KME_KXLC005_A) ||
@@ -306,8 +294,12 @@ static int ide_config(struct pcmcia_device *link)
306 io_base = link->io.BasePort1; 294 io_base = link->io.BasePort1;
307 ctl_base = stk->ctl_base; 295 ctl_base = stk->ctl_base;
308 296
309 CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq)); 297 ret = pcmcia_request_irq(link, &link->irq);
310 CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link, &link->conf)); 298 if (ret)
299 goto failed;
300 ret = pcmcia_request_configuration(link, &link->conf);
301 if (ret)
302 goto failed;
311 303
312 /* disable drive interrupts during IDE probe */ 304 /* disable drive interrupts during IDE probe */
313 outb(0x02, ctl_base); 305 outb(0x02, ctl_base);
@@ -342,8 +334,6 @@ err_mem:
342 printk(KERN_NOTICE "ide-cs: ide_config failed memory allocation\n"); 334 printk(KERN_NOTICE "ide-cs: ide_config failed memory allocation\n");
343 goto failed; 335 goto failed;
344 336
345cs_failed:
346 cs_error(link, last_fn, last_ret);
347failed: 337failed:
348 kfree(stk); 338 kfree(stk);
349 ide_release(link); 339 ide_release(link);
@@ -363,7 +353,7 @@ static void ide_release(struct pcmcia_device *link)
363 ide_info_t *info = link->priv; 353 ide_info_t *info = link->priv;
364 struct ide_host *host = info->host; 354 struct ide_host *host = info->host;
365 355
366 DEBUG(0, "ide_release(0x%p)\n", link); 356 dev_dbg(&link->dev, "ide_release(0x%p)\n", link);
367 357
368 if (info->ndev) 358 if (info->ndev)
369 /* FIXME: if this fails we need to queue the cleanup somehow 359 /* FIXME: if this fails we need to queue the cleanup somehow