aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/isdn/hisax/teles_cs.c
diff options
context:
space:
mode:
authorDominik Brodowski <linux@dominikbrodowski.net>2010-03-07 06:21:16 -0500
committerDominik Brodowski <linux@dominikbrodowski.net>2010-05-10 04:23:13 -0400
commiteb14120f743d29744d9475bffec56ff4ad43a749 (patch)
tree56857094d2b0cfc0ecbd1685f18d6edbe78e140f /drivers/isdn/hisax/teles_cs.c
parenta7debe789dfcaee9c4d81e5738b0be8c5d93930b (diff)
pcmcia: re-work pcmcia_request_irq()
Instead of the old pcmcia_request_irq() interface, drivers may now choose between: - calling request_irq/free_irq directly. Use the IRQ from *p_dev->irq. - use pcmcia_request_irq(p_dev, handler_t); the PCMCIA core will clean up automatically on calls to pcmcia_disable_device() or device ejection. - drivers still not capable of IRQF_SHARED (or not telling us so) may use the deprecated pcmcia_request_exclusive_irq() for the time being; they might receive a shared IRQ nonetheless. CC: linux-bluetooth@vger.kernel.org CC: netdev@vger.kernel.org CC: linux-wireless@vger.kernel.org CC: linux-serial@vger.kernel.org CC: alsa-devel@alsa-project.org CC: linux-usb@vger.kernel.org CC: linux-ide@vger.kernel.org Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'drivers/isdn/hisax/teles_cs.c')
-rw-r--r--drivers/isdn/hisax/teles_cs.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/drivers/isdn/hisax/teles_cs.c b/drivers/isdn/hisax/teles_cs.c
index d010a0da8e19..02dec13f25e5 100644
--- a/drivers/isdn/hisax/teles_cs.c
+++ b/drivers/isdn/hisax/teles_cs.c
@@ -126,10 +126,6 @@ static int __devinit teles_probe(struct pcmcia_device *link)
126 local->p_dev = link; 126 local->p_dev = link;
127 link->priv = local; 127 link->priv = local;
128 128
129 /* Interrupt setup */
130 link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING;
131 link->irq.Handler = NULL;
132
133 /* 129 /*
134 General socket configuration defaults can go here. In this 130 General socket configuration defaults can go here. In this
135 client, we assume very little, and rely on the CIS for almost 131 client, we assume very little, and rely on the CIS for almost
@@ -213,11 +209,8 @@ static int __devinit teles_cs_config(struct pcmcia_device *link)
213 if (i != 0) 209 if (i != 0)
214 goto cs_failed; 210 goto cs_failed;
215 211
216 i = pcmcia_request_irq(link, &link->irq); 212 if (!link->irq)
217 if (i != 0) {
218 link->irq.AssignedIRQ = 0;
219 goto cs_failed; 213 goto cs_failed;
220 }
221 214
222 i = pcmcia_request_configuration(link, &link->conf); 215 i = pcmcia_request_configuration(link, &link->conf);
223 if (i != 0) 216 if (i != 0)
@@ -234,7 +227,7 @@ static int __devinit teles_cs_config(struct pcmcia_device *link)
234 printk(KERN_INFO "%s: index 0x%02x:", 227 printk(KERN_INFO "%s: index 0x%02x:",
235 dev->node.dev_name, link->conf.ConfigIndex); 228 dev->node.dev_name, link->conf.ConfigIndex);
236 if (link->conf.Attributes & CONF_ENABLE_IRQ) 229 if (link->conf.Attributes & CONF_ENABLE_IRQ)
237 printk(", irq %d", link->irq.AssignedIRQ); 230 printk(", irq %d", link->irq);
238 if (link->io.NumPorts1) 231 if (link->io.NumPorts1)
239 printk(", io 0x%04x-0x%04x", link->io.BasePort1, 232 printk(", io 0x%04x-0x%04x", link->io.BasePort1,
240 link->io.BasePort1+link->io.NumPorts1-1); 233 link->io.BasePort1+link->io.NumPorts1-1);
@@ -243,7 +236,7 @@ static int __devinit teles_cs_config(struct pcmcia_device *link)
243 link->io.BasePort2+link->io.NumPorts2-1); 236 link->io.BasePort2+link->io.NumPorts2-1);
244 printk("\n"); 237 printk("\n");
245 238
246 icard.para[0] = link->irq.AssignedIRQ; 239 icard.para[0] = link->irq;
247 icard.para[1] = link->io.BasePort1; 240 icard.para[1] = link->io.BasePort1;
248 icard.protocol = protocol; 241 icard.protocol = protocol;
249 icard.typ = ISDN_CTYPE_TELESPCMCIA; 242 icard.typ = ISDN_CTYPE_TELESPCMCIA;