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 /include/pcmcia/ds.h | |
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 'include/pcmcia/ds.h')
-rw-r--r-- | include/pcmcia/ds.h | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/include/pcmcia/ds.h b/include/pcmcia/ds.h index 52ebe75664e8..d18330b401b1 100644 --- a/include/pcmcia/ds.h +++ b/include/pcmcia/ds.h | |||
@@ -91,12 +91,11 @@ struct pcmcia_device { | |||
91 | dev_node_t *dev_node; | 91 | dev_node_t *dev_node; |
92 | u_int open; | 92 | u_int open; |
93 | io_req_t io; | 93 | io_req_t io; |
94 | irq_req_t irq; | ||
95 | config_req_t conf; | 94 | config_req_t conf; |
96 | window_handle_t win; | 95 | window_handle_t win; |
97 | 96 | ||
98 | /* device setup */ | 97 | /* device setup */ |
99 | unsigned int irq_v; /* do not use directly yet */ | 98 | unsigned int irq; |
100 | 99 | ||
101 | /* Is the device suspended? */ | 100 | /* Is the device suspended? */ |
102 | u16 suspended:1; | 101 | u16 suspended:1; |
@@ -194,7 +193,13 @@ int pcmcia_access_configuration_register(struct pcmcia_device *p_dev, | |||
194 | 193 | ||
195 | /* device configuration */ | 194 | /* device configuration */ |
196 | int pcmcia_request_io(struct pcmcia_device *p_dev, io_req_t *req); | 195 | int pcmcia_request_io(struct pcmcia_device *p_dev, io_req_t *req); |
197 | int pcmcia_request_irq(struct pcmcia_device *p_dev, irq_req_t *req); | 196 | |
197 | int __must_check __deprecated | ||
198 | pcmcia_request_exclusive_irq(struct pcmcia_device *p_dev, | ||
199 | irq_handler_t handler); | ||
200 | int __must_check pcmcia_request_irq(struct pcmcia_device *p_dev, | ||
201 | irq_handler_t handler); | ||
202 | |||
198 | int pcmcia_request_configuration(struct pcmcia_device *p_dev, | 203 | int pcmcia_request_configuration(struct pcmcia_device *p_dev, |
199 | config_req_t *req); | 204 | config_req_t *req); |
200 | 205 | ||