aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/isdn/hisax/sedlbauer_cs.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/isdn/hisax/sedlbauer_cs.c')
-rw-r--r--drivers/isdn/hisax/sedlbauer_cs.c23
1 files changed, 3 insertions, 20 deletions
diff --git a/drivers/isdn/hisax/sedlbauer_cs.c b/drivers/isdn/hisax/sedlbauer_cs.c
index 71b3ddef03bb..7778385b05b2 100644
--- a/drivers/isdn/hisax/sedlbauer_cs.c
+++ b/drivers/isdn/hisax/sedlbauer_cs.c
@@ -143,10 +143,6 @@ static int __devinit sedlbauer_probe(struct pcmcia_device *link)
143 local->p_dev = link; 143 local->p_dev = link;
144 link->priv = local; 144 link->priv = local;
145 145
146 /* Interrupt setup */
147 link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING;
148 link->irq.Handler = NULL;
149
150 /* 146 /*
151 General socket configuration defaults can go here. In this 147 General socket configuration defaults can go here. In this
152 client, we assume very little, and rely on the CIS for almost 148 client, we assume very little, and rely on the CIS for almost
@@ -227,9 +223,7 @@ static int sedlbauer_config_check(struct pcmcia_device *p_dev,
227 else if (dflt->vpp1.present & (1<<CISTPL_POWER_VNOM)) 223 else if (dflt->vpp1.present & (1<<CISTPL_POWER_VNOM))
228 p_dev->conf.Vpp = dflt->vpp1.param[CISTPL_POWER_VNOM]/10000; 224 p_dev->conf.Vpp = dflt->vpp1.param[CISTPL_POWER_VNOM]/10000;
229 225
230 /* Do we need to allocate an interrupt? */ 226 p_dev->conf.Attributes |= CONF_ENABLE_IRQ;
231 if (cfg->irq.IRQInfo1 || dflt->irq.IRQInfo1)
232 p_dev->conf.Attributes |= CONF_ENABLE_IRQ;
233 227
234 /* IO window settings */ 228 /* IO window settings */
235 p_dev->io.NumPorts1 = p_dev->io.NumPorts2 = 0; 229 p_dev->io.NumPorts1 = p_dev->io.NumPorts2 = 0;
@@ -313,17 +307,6 @@ static int __devinit sedlbauer_config(struct pcmcia_device *link)
313 goto failed; 307 goto failed;
314 308
315 /* 309 /*
316 Allocate an interrupt line. Note that this does not assign a
317 handler to the interrupt, unless the 'Handler' member of the
318 irq structure is initialized.
319 */
320 if (link->conf.Attributes & CONF_ENABLE_IRQ) {
321 ret = pcmcia_request_irq(link, &link->irq);
322 if (ret)
323 goto failed;
324 }
325
326 /*
327 This actually configures the PCMCIA socket -- setting up 310 This actually configures the PCMCIA socket -- setting up
328 the I/O windows and the interrupt mapping, and putting the 311 the I/O windows and the interrupt mapping, and putting the
329 card and host interface into "Memory and IO" mode. 312 card and host interface into "Memory and IO" mode.
@@ -346,7 +329,7 @@ static int __devinit sedlbauer_config(struct pcmcia_device *link)
346 if (link->conf.Vpp) 329 if (link->conf.Vpp)
347 printk(", Vpp %d.%d", link->conf.Vpp/10, link->conf.Vpp%10); 330 printk(", Vpp %d.%d", link->conf.Vpp/10, link->conf.Vpp%10);
348 if (link->conf.Attributes & CONF_ENABLE_IRQ) 331 if (link->conf.Attributes & CONF_ENABLE_IRQ)
349 printk(", irq %d", link->irq.AssignedIRQ); 332 printk(", irq %d", link->irq);
350 if (link->io.NumPorts1) 333 if (link->io.NumPorts1)
351 printk(", io 0x%04x-0x%04x", link->io.BasePort1, 334 printk(", io 0x%04x-0x%04x", link->io.BasePort1,
352 link->io.BasePort1+link->io.NumPorts1-1); 335 link->io.BasePort1+link->io.NumPorts1-1);
@@ -358,7 +341,7 @@ static int __devinit sedlbauer_config(struct pcmcia_device *link)
358 req->Base+req->Size-1); 341 req->Base+req->Size-1);
359 printk("\n"); 342 printk("\n");
360 343
361 icard.para[0] = link->irq.AssignedIRQ; 344 icard.para[0] = link->irq;
362 icard.para[1] = link->io.BasePort1; 345 icard.para[1] = link->io.BasePort1;
363 icard.protocol = protocol; 346 icard.protocol = protocol;
364 icard.typ = ISDN_CTYPE_SEDLBAUER_PCMCIA; 347 icard.typ = ISDN_CTYPE_SEDLBAUER_PCMCIA;