aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/pcmcia/ipwireless/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/char/pcmcia/ipwireless/main.c')
-rw-r--r--drivers/char/pcmcia/ipwireless/main.c19
1 files changed, 3 insertions, 16 deletions
diff --git a/drivers/char/pcmcia/ipwireless/main.c b/drivers/char/pcmcia/ipwireless/main.c
index dff24dae1485..63c32e3f23ba 100644
--- a/drivers/char/pcmcia/ipwireless/main.c
+++ b/drivers/char/pcmcia/ipwireless/main.c
@@ -195,9 +195,6 @@ static int config_ipwireless(struct ipw_dev *ipw)
195 link->conf.Attributes = CONF_ENABLE_IRQ; 195 link->conf.Attributes = CONF_ENABLE_IRQ;
196 link->conf.IntType = INT_MEMORY_AND_IO; 196 link->conf.IntType = INT_MEMORY_AND_IO;
197 197
198 link->irq.Attributes = IRQ_TYPE_DYNAMIC_SHARING;
199 link->irq.Handler = ipwireless_interrupt;
200
201 INIT_WORK(&ipw->work_reboot, signalled_reboot_work); 198 INIT_WORK(&ipw->work_reboot, signalled_reboot_work);
202 199
203 ipwireless_init_hardware_v1(ipw->hardware, link->io.BasePort1, 200 ipwireless_init_hardware_v1(ipw->hardware, link->io.BasePort1,
@@ -205,8 +202,7 @@ static int config_ipwireless(struct ipw_dev *ipw)
205 ipw->is_v2_card, signalled_reboot_callback, 202 ipw->is_v2_card, signalled_reboot_callback,
206 ipw); 203 ipw);
207 204
208 ret = pcmcia_request_irq(link, &link->irq); 205 ret = pcmcia_request_irq(link, ipwireless_interrupt);
209
210 if (ret != 0) 206 if (ret != 0)
211 goto exit; 207 goto exit;
212 208
@@ -217,7 +213,7 @@ static int config_ipwireless(struct ipw_dev *ipw)
217 (unsigned int) link->io.BasePort1, 213 (unsigned int) link->io.BasePort1,
218 (unsigned int) (link->io.BasePort1 + 214 (unsigned int) (link->io.BasePort1 +
219 link->io.NumPorts1 - 1), 215 link->io.NumPorts1 - 1),
220 (unsigned int) link->irq.AssignedIRQ); 216 (unsigned int) link->irq);
221 if (ipw->attr_memory && ipw->common_memory) 217 if (ipw->attr_memory && ipw->common_memory)
222 printk(KERN_INFO IPWIRELESS_PCCARD_NAME 218 printk(KERN_INFO IPWIRELESS_PCCARD_NAME
223 ": attr memory 0x%08lx-0x%08lx, common memory 0x%08lx-0x%08lx\n", 219 ": attr memory 0x%08lx-0x%08lx, common memory 0x%08lx-0x%08lx\n",
@@ -232,8 +228,7 @@ static int config_ipwireless(struct ipw_dev *ipw)
232 if (!ipw->network) 228 if (!ipw->network)
233 goto exit; 229 goto exit;
234 230
235 ipw->tty = ipwireless_tty_create(ipw->hardware, ipw->network, 231 ipw->tty = ipwireless_tty_create(ipw->hardware, ipw->network);
236 ipw->nodes);
237 if (!ipw->tty) 232 if (!ipw->tty)
238 goto exit; 233 goto exit;
239 234
@@ -248,8 +243,6 @@ static int config_ipwireless(struct ipw_dev *ipw)
248 if (ret != 0) 243 if (ret != 0)
249 goto exit; 244 goto exit;
250 245
251 link->dev_node = &ipw->nodes[0];
252
253 return 0; 246 return 0;
254 247
255exit: 248exit:
@@ -271,8 +264,6 @@ exit:
271 264
272static void release_ipwireless(struct ipw_dev *ipw) 265static void release_ipwireless(struct ipw_dev *ipw)
273{ 266{
274 pcmcia_disable_device(ipw->link);
275
276 if (ipw->common_memory) { 267 if (ipw->common_memory) {
277 release_mem_region(ipw->request_common_memory.Base, 268 release_mem_region(ipw->request_common_memory.Base,
278 ipw->request_common_memory.Size); 269 ipw->request_common_memory.Size);
@@ -288,7 +279,6 @@ static void release_ipwireless(struct ipw_dev *ipw)
288 if (ipw->attr_memory) 279 if (ipw->attr_memory)
289 pcmcia_release_window(ipw->link, ipw->handle_attr_memory); 280 pcmcia_release_window(ipw->link, ipw->handle_attr_memory);
290 281
291 /* Break the link with Card Services */
292 pcmcia_disable_device(ipw->link); 282 pcmcia_disable_device(ipw->link);
293} 283}
294 284
@@ -313,9 +303,6 @@ static int ipwireless_attach(struct pcmcia_device *link)
313 ipw->link = link; 303 ipw->link = link;
314 link->priv = ipw; 304 link->priv = ipw;
315 305
316 /* Link this device into our device list. */
317 link->dev_node = &ipw->nodes[0];
318
319 ipw->hardware = ipwireless_hardware_create(); 306 ipw->hardware = ipwireless_hardware_create();
320 if (!ipw->hardware) { 307 if (!ipw->hardware) {
321 kfree(ipw); 308 kfree(ipw);