aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Cox <alan@lxorguk.ukuu.org.uk>2008-09-23 08:53:09 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-09-24 16:18:04 -0400
commit47cbb1107e4172f3632713d74dc8651a32ceb294 (patch)
treed631ca41ecc140e594c524f879ea5a7e7cb6e3cd
parent638af07386972861272ed9d0cff01cad528fdceb (diff)
pcmcia: Fix up legacy driver IRQs
The PCMCIA layer obsoleted asking for per device private IRQS some years ago and all the drivers by inspection correctly use dev_id and handle shared interrupts [they get em anyway in most PCI bridged PCMCIA/Cardbus] so can be adjusted. This gets rid of the various bugs reported where there is spewage about conflicting irq types and sometimes the driver won't load. (Note I don't have all of these devices to test each one beyond by inspection) Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/airo_cs.c2
-rw-r--r--drivers/net/wireless/atmel_cs.c2
-rw-r--r--drivers/net/wireless/netwave_cs.c2
-rw-r--r--drivers/net/wireless/orinoco_cs.c2
-rw-r--r--drivers/net/wireless/ray_cs.c2
-rw-r--r--drivers/net/wireless/spectrum_cs.c2
-rw-r--r--drivers/net/wireless/wavelan_cs.c2
-rw-r--r--drivers/net/wireless/wl3501_cs.c2
8 files changed, 8 insertions, 8 deletions
diff --git a/drivers/net/wireless/airo_cs.c b/drivers/net/wireless/airo_cs.c
index f12355398fe7..fd72e427cb28 100644
--- a/drivers/net/wireless/airo_cs.c
+++ b/drivers/net/wireless/airo_cs.c
@@ -147,7 +147,7 @@ static int airo_probe(struct pcmcia_device *p_dev)
147 DEBUG(0, "airo_attach()\n"); 147 DEBUG(0, "airo_attach()\n");
148 148
149 /* Interrupt setup */ 149 /* Interrupt setup */
150 p_dev->irq.Attributes = IRQ_TYPE_EXCLUSIVE; 150 p_dev->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING;
151 p_dev->irq.IRQInfo1 = IRQ_LEVEL_ID; 151 p_dev->irq.IRQInfo1 = IRQ_LEVEL_ID;
152 p_dev->irq.Handler = NULL; 152 p_dev->irq.Handler = NULL;
153 153
diff --git a/drivers/net/wireless/atmel_cs.c b/drivers/net/wireless/atmel_cs.c
index 12617cd0b78e..d2388e8d179a 100644
--- a/drivers/net/wireless/atmel_cs.c
+++ b/drivers/net/wireless/atmel_cs.c
@@ -158,7 +158,7 @@ static int atmel_probe(struct pcmcia_device *p_dev)
158 DEBUG(0, "atmel_attach()\n"); 158 DEBUG(0, "atmel_attach()\n");
159 159
160 /* Interrupt setup */ 160 /* Interrupt setup */
161 p_dev->irq.Attributes = IRQ_TYPE_EXCLUSIVE; 161 p_dev->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING;
162 p_dev->irq.IRQInfo1 = IRQ_LEVEL_ID; 162 p_dev->irq.IRQInfo1 = IRQ_LEVEL_ID;
163 p_dev->irq.Handler = NULL; 163 p_dev->irq.Handler = NULL;
164 164
diff --git a/drivers/net/wireless/netwave_cs.c b/drivers/net/wireless/netwave_cs.c
index f479c1af6782..25bae7933aa5 100644
--- a/drivers/net/wireless/netwave_cs.c
+++ b/drivers/net/wireless/netwave_cs.c
@@ -398,7 +398,7 @@ static int netwave_probe(struct pcmcia_device *link)
398 link->io.IOAddrLines = 5; 398 link->io.IOAddrLines = 5;
399 399
400 /* Interrupt setup */ 400 /* Interrupt setup */
401 link->irq.Attributes = IRQ_TYPE_EXCLUSIVE | IRQ_HANDLE_PRESENT; 401 link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING | IRQ_HANDLE_PRESENT;
402 link->irq.IRQInfo1 = IRQ_LEVEL_ID; 402 link->irq.IRQInfo1 = IRQ_LEVEL_ID;
403 link->irq.Handler = &netwave_interrupt; 403 link->irq.Handler = &netwave_interrupt;
404 404
diff --git a/drivers/net/wireless/orinoco_cs.c b/drivers/net/wireless/orinoco_cs.c
index 1ccf5a40cf06..9eaa252c2430 100644
--- a/drivers/net/wireless/orinoco_cs.c
+++ b/drivers/net/wireless/orinoco_cs.c
@@ -121,7 +121,7 @@ orinoco_cs_probe(struct pcmcia_device *link)
121 link->priv = dev; 121 link->priv = dev;
122 122
123 /* Interrupt setup */ 123 /* Interrupt setup */
124 link->irq.Attributes = IRQ_TYPE_EXCLUSIVE | IRQ_HANDLE_PRESENT; 124 link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING | IRQ_HANDLE_PRESENT;
125 link->irq.IRQInfo1 = IRQ_LEVEL_ID; 125 link->irq.IRQInfo1 = IRQ_LEVEL_ID;
126 link->irq.Handler = orinoco_interrupt; 126 link->irq.Handler = orinoco_interrupt;
127 link->irq.Instance = dev; 127 link->irq.Instance = dev;
diff --git a/drivers/net/wireless/ray_cs.c b/drivers/net/wireless/ray_cs.c
index 963960dc30f2..44da0d19b5c8 100644
--- a/drivers/net/wireless/ray_cs.c
+++ b/drivers/net/wireless/ray_cs.c
@@ -325,7 +325,7 @@ static int ray_probe(struct pcmcia_device *p_dev)
325 p_dev->io.IOAddrLines = 5; 325 p_dev->io.IOAddrLines = 5;
326 326
327 /* Interrupt setup. For PCMCIA, driver takes what's given */ 327 /* Interrupt setup. For PCMCIA, driver takes what's given */
328 p_dev->irq.Attributes = IRQ_TYPE_EXCLUSIVE | IRQ_HANDLE_PRESENT; 328 p_dev->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING | IRQ_HANDLE_PRESENT;
329 p_dev->irq.IRQInfo1 = IRQ_LEVEL_ID; 329 p_dev->irq.IRQInfo1 = IRQ_LEVEL_ID;
330 p_dev->irq.Handler = &ray_interrupt; 330 p_dev->irq.Handler = &ray_interrupt;
331 331
diff --git a/drivers/net/wireless/spectrum_cs.c b/drivers/net/wireless/spectrum_cs.c
index e368759d1d89..67b26d3c3cd5 100644
--- a/drivers/net/wireless/spectrum_cs.c
+++ b/drivers/net/wireless/spectrum_cs.c
@@ -195,7 +195,7 @@ spectrum_cs_probe(struct pcmcia_device *link)
195 link->priv = dev; 195 link->priv = dev;
196 196
197 /* Interrupt setup */ 197 /* Interrupt setup */
198 link->irq.Attributes = IRQ_TYPE_EXCLUSIVE | IRQ_HANDLE_PRESENT; 198 link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING | IRQ_HANDLE_PRESENT;
199 link->irq.IRQInfo1 = IRQ_LEVEL_ID; 199 link->irq.IRQInfo1 = IRQ_LEVEL_ID;
200 link->irq.Handler = orinoco_interrupt; 200 link->irq.Handler = orinoco_interrupt;
201 link->irq.Instance = dev; 201 link->irq.Instance = dev;
diff --git a/drivers/net/wireless/wavelan_cs.c b/drivers/net/wireless/wavelan_cs.c
index 00a3559e5aa4..b5de38a9b791 100644
--- a/drivers/net/wireless/wavelan_cs.c
+++ b/drivers/net/wireless/wavelan_cs.c
@@ -4496,7 +4496,7 @@ wavelan_probe(struct pcmcia_device *p_dev)
4496 p_dev->io.IOAddrLines = 3; 4496 p_dev->io.IOAddrLines = 3;
4497 4497
4498 /* Interrupt setup */ 4498 /* Interrupt setup */
4499 p_dev->irq.Attributes = IRQ_TYPE_EXCLUSIVE | IRQ_HANDLE_PRESENT; 4499 p_dev->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING | IRQ_HANDLE_PRESENT;
4500 p_dev->irq.IRQInfo1 = IRQ_LEVEL_ID; 4500 p_dev->irq.IRQInfo1 = IRQ_LEVEL_ID;
4501 p_dev->irq.Handler = wavelan_interrupt; 4501 p_dev->irq.Handler = wavelan_interrupt;
4502 4502
diff --git a/drivers/net/wireless/wl3501_cs.c b/drivers/net/wireless/wl3501_cs.c
index b6d4e04b8ab4..74a5ad2f1223 100644
--- a/drivers/net/wireless/wl3501_cs.c
+++ b/drivers/net/wireless/wl3501_cs.c
@@ -1917,7 +1917,7 @@ static int wl3501_probe(struct pcmcia_device *p_dev)
1917 p_dev->io.IOAddrLines = 5; 1917 p_dev->io.IOAddrLines = 5;
1918 1918
1919 /* Interrupt setup */ 1919 /* Interrupt setup */
1920 p_dev->irq.Attributes = IRQ_TYPE_EXCLUSIVE | IRQ_HANDLE_PRESENT; 1920 p_dev->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING | IRQ_HANDLE_PRESENT;
1921 p_dev->irq.IRQInfo1 = IRQ_LEVEL_ID; 1921 p_dev->irq.IRQInfo1 = IRQ_LEVEL_ID;
1922 p_dev->irq.Handler = wl3501_interrupt; 1922 p_dev->irq.Handler = wl3501_interrupt;
1923 1923