diff options
author | Dominik Brodowski <linux@dominikbrodowski.net> | 2010-03-07 06:21:16 -0500 |
---|---|---|
committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2010-05-10 04:23:13 -0400 |
commit | eb14120f743d29744d9475bffec56ff4ad43a749 (patch) | |
tree | 56857094d2b0cfc0ecbd1685f18d6edbe78e140f /drivers/net/wireless/orinoco | |
parent | a7debe789dfcaee9c4d81e5738b0be8c5d93930b (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/net/wireless/orinoco')
-rw-r--r-- | drivers/net/wireless/orinoco/orinoco_cs.c | 13 | ||||
-rw-r--r-- | drivers/net/wireless/orinoco/spectrum_cs.c | 13 |
2 files changed, 4 insertions, 22 deletions
diff --git a/drivers/net/wireless/orinoco/orinoco_cs.c b/drivers/net/wireless/orinoco/orinoco_cs.c index 1d4ada188eda..5d29b11fdbc0 100644 --- a/drivers/net/wireless/orinoco/orinoco_cs.c +++ b/drivers/net/wireless/orinoco/orinoco_cs.c | |||
@@ -119,10 +119,6 @@ orinoco_cs_probe(struct pcmcia_device *link) | |||
119 | card->p_dev = link; | 119 | card->p_dev = link; |
120 | link->priv = priv; | 120 | link->priv = priv; |
121 | 121 | ||
122 | /* Interrupt setup */ | ||
123 | link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING; | ||
124 | link->irq.Handler = orinoco_interrupt; | ||
125 | |||
126 | /* General socket configuration defaults can go here. In this | 122 | /* General socket configuration defaults can go here. In this |
127 | * client, we assume very little, and rely on the CIS for | 123 | * client, we assume very little, and rely on the CIS for |
128 | * almost everything. In most clients, many details (i.e., | 124 | * almost everything. In most clients, many details (i.e., |
@@ -258,12 +254,7 @@ orinoco_cs_config(struct pcmcia_device *link) | |||
258 | goto failed; | 254 | goto failed; |
259 | } | 255 | } |
260 | 256 | ||
261 | /* | 257 | ret = pcmcia_request_irq(link, orinoco_interrupt); |
262 | * Allocate an interrupt line. Note that this does not assign | ||
263 | * a handler to the interrupt, unless the 'Handler' member of | ||
264 | * the irq structure is initialized. | ||
265 | */ | ||
266 | ret = pcmcia_request_irq(link, &link->irq); | ||
267 | if (ret) | 258 | if (ret) |
268 | goto failed; | 259 | goto failed; |
269 | 260 | ||
@@ -296,7 +287,7 @@ orinoco_cs_config(struct pcmcia_device *link) | |||
296 | 287 | ||
297 | /* Register an interface with the stack */ | 288 | /* Register an interface with the stack */ |
298 | if (orinoco_if_add(priv, link->io.BasePort1, | 289 | if (orinoco_if_add(priv, link->io.BasePort1, |
299 | link->irq.AssignedIRQ) != 0) { | 290 | link->irq) != 0) { |
300 | printk(KERN_ERR PFX "orinoco_if_add() failed\n"); | 291 | printk(KERN_ERR PFX "orinoco_if_add() failed\n"); |
301 | goto failed; | 292 | goto failed; |
302 | } | 293 | } |
diff --git a/drivers/net/wireless/orinoco/spectrum_cs.c b/drivers/net/wireless/orinoco/spectrum_cs.c index 59bda240fdc2..7a8e056cd62d 100644 --- a/drivers/net/wireless/orinoco/spectrum_cs.c +++ b/drivers/net/wireless/orinoco/spectrum_cs.c | |||
@@ -193,10 +193,6 @@ spectrum_cs_probe(struct pcmcia_device *link) | |||
193 | card->p_dev = link; | 193 | card->p_dev = link; |
194 | link->priv = priv; | 194 | link->priv = priv; |
195 | 195 | ||
196 | /* Interrupt setup */ | ||
197 | link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING; | ||
198 | link->irq.Handler = orinoco_interrupt; | ||
199 | |||
200 | /* General socket configuration defaults can go here. In this | 196 | /* General socket configuration defaults can go here. In this |
201 | * client, we assume very little, and rely on the CIS for | 197 | * client, we assume very little, and rely on the CIS for |
202 | * almost everything. In most clients, many details (i.e., | 198 | * almost everything. In most clients, many details (i.e., |
@@ -332,12 +328,7 @@ spectrum_cs_config(struct pcmcia_device *link) | |||
332 | goto failed; | 328 | goto failed; |
333 | } | 329 | } |
334 | 330 | ||
335 | /* | 331 | ret = pcmcia_request_irq(link, orinoco_interrupt); |
336 | * Allocate an interrupt line. Note that this does not assign | ||
337 | * a handler to the interrupt, unless the 'Handler' member of | ||
338 | * the irq structure is initialized. | ||
339 | */ | ||
340 | ret = pcmcia_request_irq(link, &link->irq); | ||
341 | if (ret) | 332 | if (ret) |
342 | goto failed; | 333 | goto failed; |
343 | 334 | ||
@@ -374,7 +365,7 @@ spectrum_cs_config(struct pcmcia_device *link) | |||
374 | 365 | ||
375 | /* Register an interface with the stack */ | 366 | /* Register an interface with the stack */ |
376 | if (orinoco_if_add(priv, link->io.BasePort1, | 367 | if (orinoco_if_add(priv, link->io.BasePort1, |
377 | link->irq.AssignedIRQ) != 0) { | 368 | link->irq) != 0) { |
378 | printk(KERN_ERR PFX "orinoco_if_add() failed\n"); | 369 | printk(KERN_ERR PFX "orinoco_if_add() failed\n"); |
379 | goto failed; | 370 | goto failed; |
380 | } | 371 | } |