Messages in this thread Patch in this message | | | Date | Sun, 3 Mar 1996 21:45:24 -0800 (PST) | From | David Flood <> | Subject | 1.3.70 breaks pcmcia 2.8.8 - FIX |
| |
Here's a patch file which fixed pcmcia-cs-2.8.8 to compile under 1.3.70
I've only tested it on a Toshiba T2135CS with a Linksys ethernet and a Megahertz XJ1144 modem. Any other takers for testing?
diff -u --recursive --new-file pcmcia-cs-2.8.8/modules/cs.c pcmcia-cs-2.8.8a/modules/cs.c --- pcmcia-cs-2.8.8/modules/cs.c Wed Jan 24 09:11:55 1996 +++ pcmcia-cs-2.8.8a/modules/cs.c Sun Mar 3 20:57:24 1996 @@ -342,7 +342,7 @@ init_socket(s); #ifdef IRQ_SHARING if ((s->functions > 1) && (s->irq.AssignedIRQ)) - free_irq(s->irq.AssignedIRQ); + free_irq(s->irq.AssignedIRQ, NULL); #endif s->irq.AssignedIRQ = s->irq.Config = 0; s->functions = 0; @@ -615,7 +615,7 @@ #ifdef IRQ_SHARING extern void raise_irq(int, struct pt_regs *); -static void handle_multi_irq(int irq, struct pt_regs *regs) +static void handle_multi_irq(int irq, void *dev_id, struct pt_regs *regs) { socket_info_t *s = irq_table[irq].Socket; client_handle_t client; @@ -793,7 +793,7 @@ return CS_BAD_ATTRIBUTE; if ((info->Attributes & RES_RESERVED) && !specific) return CS_IN_USE; - if (request_irq(irq, NULL, 0, "bogus") == -EBUSY) + if (request_irq(irq, NULL, 0, "bogus", NULL) == -EBUSY) return CS_IN_USE; } return 0; @@ -1342,7 +1342,7 @@ (req->AssignedIRQ != handle->SoftIRQ)) return CS_BAD_IRQ; if ((s->functions > 1) && (s->irq.Config == 0)) { - free_irq(s->irq.AssignedIRQ); + free_irq(s->irq.AssignedIRQ, NULL); s->irq.AssignedIRQ = 0; } #else @@ -1355,12 +1355,12 @@ #ifdef IRQ_SHARING if (req->Handler && !handle->IRQHandler) - free_irq(req->AssignedIRQ); + free_irq(req->AssignedIRQ, NULL); handle->SoftIRQ = 0; handle->IRQHandler = NULL; #else if (req->Handler) - free_irq(req->AssignedIRQ); + free_irq(req->AssignedIRQ, NULL); #endif info = &irq_table[req->AssignedIRQ]; switch (req->Attributes & IRQ_TYPE) { @@ -1642,7 +1642,7 @@ info->Socket = s; if (s->functions > 1) { if (s->irq.Config == 0) { - if (request_irq(irq, handle_multi_irq, 0, "multi-function")) + if (request_irq(irq, handle_multi_irq, 0, "multi-function", NULL)) return CS_IN_USE; s->irq.AssignedIRQ = req->AssignedIRQ = irq; s->irq.Attributes = req->Attributes; @@ -1654,7 +1654,7 @@ } else { if (req->Handler && - request_irq(irq, req->Handler, 0, (char *)handle->dev_info)) + request_irq(irq, req->Handler, 0, (char *)handle->dev_info, NULL)) return CS_IN_USE; s->irq.AssignedIRQ = req->AssignedIRQ = irq; s->irq.Attributes = req->Attributes; @@ -1672,7 +1672,7 @@ } if (req->Handler && - request_irq(irq, req->Handler, 0, (char *)handle->dev_info)) + request_irq(irq, req->Handler, 0, (char *)handle->dev_info, NULL)) return CS_IN_USE; s->irq.AssignedIRQ = req->AssignedIRQ = irq; diff -u --recursive --new-file pcmcia-cs-2.8.8/modules/i82365.c pcmcia-cs-2.8.8a/modules/i82365.c --- pcmcia-cs-2.8.8/modules/i82365.c Thu Feb 1 09:33:09 1996 +++ pcmcia-cs-2.8.8a/modules/i82365.c Sun Mar 3 20:47:29 1996 @@ -95,7 +95,7 @@ static struct timer_list poll_timer; -static void i365_interrupt(int irq, struct pt_regs *regs); +static void i365_interrupt(int irq, void *dev_id, struct pt_regs *regs); static int i365_service(u_int sock, u_int cmd, void *arg); @@ -197,19 +197,19 @@ static volatile u_long irq_hits; -static void irq_count(int irq, struct pt_regs *regs) +static void irq_count(int irq, void *dev_id, struct pt_regs *regs) { irq_hits++; } static u_long try_irq(u_short psock, int irq) { - if (request_irq(irq, irq_count, 0, "irq scan") != 0) + if (request_irq(irq, irq_count, 0, "irq scan", NULL) != 0) return -1; irq_hits = 0; busy_loop(2); if (irq_hits) { - free_irq(irq); + free_irq(irq, NULL); return -1; } @@ -219,7 +219,7 @@ i365_bset(psock, I365_GENCTL, I365_CTL_SW_IRQ); busy_loop(2); - free_irq(irq); + free_irq(irq, NULL); /* Turn off interrupts */ i365_set(psock, I365_CSCINT, 0); @@ -390,12 +390,12 @@ if (cs_irq == 0) { for (i = 15; i > 0; i--) if ((mask & (1 << i)) && - (request_irq(i, i365_interrupt, 0, "i82365") == 0)) + (request_irq(i, i365_interrupt, 0, "i82365", NULL) == 0)) break; cs_irq = i; } else { - if (request_irq(cs_irq, i365_interrupt, 0, "i82365") != 0) + if (request_irq(cs_irq, i365_interrupt, 0, "i82365", NULL) != 0) cs_irq = 0; } if (cs_irq == 0) poll_interval = 100; @@ -537,7 +537,7 @@ release_region(i365_base, 8); for (i = 0; i < sockets; i++) if (((i & 3) == 0) && socket_table[i].cs_irq) - free_irq(socket_table[i].cs_irq); + free_irq(socket_table[i].cs_irq, NULL); return -ENODEV; } @@ -563,14 +563,14 @@ for (i = 0; i < sockets; i++) { i365_set(socket_table[i].psock, I365_CSCINT, 0); if (((i & 3) == 0) && socket_table[i].cs_irq) - free_irq(socket_table[i].cs_irq); + free_irq(socket_table[i].cs_irq, NULL); } release_region(i365_base, 8); } /* i365_finish */ /*====================================================================*/ -static void i365_interrupt(int irq, struct pt_regs *regs) +static void i365_interrupt(int irq, void *dev_id, struct pt_regs *regs) { int i, csc; u_short psock; diff -u --recursive --new-file pcmcia-cs-2.8.8/modules/tcic.c pcmcia-cs-2.8.8a/modules/tcic.c --- pcmcia-cs-2.8.8/modules/tcic.c Sat Jan 27 14:55:22 1996 +++ pcmcia-cs-2.8.8a/modules/tcic.c Sun Mar 3 20:52:28 1996 @@ -71,7 +71,7 @@ /*====================================================================*/ -static void tcic_interrupt(int irq, struct pt_regs *regs); +static void tcic_interrupt(int irq, void *dev_id, struct pt_regs *regs); static void tcic_timer(u_long data); static int tcic_service(u_int sock, u_int cmd, void *arg); @@ -199,7 +199,7 @@ static volatile u_long irq_hits; -static void irq_count(int irq, struct pt_regs *regs) +static void irq_count(int irq, void *dev_id, struct pt_regs *regs) { irq_hits++; } @@ -208,12 +208,12 @@ { u_short cfg; - if (request_irq(irq, irq_count, 0, "irq scan") != 0) + if (request_irq(irq, irq_count, 0, "irq scan", NULL) != 0) return -1; irq_hits = 0; busy_loop(2); if (irq_hits) { - free_irq(irq); + free_irq(irq, NULL); return -1; } @@ -224,7 +224,7 @@ tcic_setb(TCIC_ICSR, TCIC_ICSR_ERR | TCIC_ICSR_JAM); busy_loop(2); - free_irq(irq); + free_irq(irq, NULL); /* Turn off interrupts */ tcic_setb(TCIC_IENA, TCIC_IENA_CFG_OFF); @@ -325,12 +325,12 @@ if (cs_irq == 0) { for (i = 15; i > 0; i--) if ((mask & (1 << i)) && - (request_irq(i, tcic_interrupt, 0, "tcic") == 0)) + (request_irq(i, tcic_interrupt, 0, "tcic", NULL) == 0)) break; cs_irq = i; } else { - if (request_irq(cs_irq, tcic_interrupt, 0, "tcic") != 0) + if (request_irq(cs_irq, tcic_interrupt, 0, "tcic", NULL) != 0) cs_irq = 0; } if (cs_irq == 0) poll_interval = 100; @@ -349,13 +349,13 @@ } /* jump start interrupt handler, if needed */ - tcic_interrupt(0, NULL); + tcic_interrupt(0, NULL, NULL); if (register_ss_entry(sockets, &tcic_service) != 0) { printk("tcic: register_ss_entry() failed\n"); release_region(tcic_base, 16); if (cs_irq != 0) - free_irq(cs_irq); + free_irq(cs_irq, NULL); return -ENODEV; } @@ -373,7 +373,7 @@ cli(); if (cs_irq != 0) { tcic_aux_setw(TCIC_AUX_SYSCFG, TCIC_SYSCFG_AUTOBUSY|0x0a00); - free_irq(cs_irq); + free_irq(cs_irq, NULL); } if (timer_pending) del_timer(&poll_timer); @@ -383,7 +383,7 @@ /*====================================================================*/ -static void tcic_interrupt(int irq, struct pt_regs *regs) +static void tcic_interrupt(int irq, void *dev_id, struct pt_regs *regs) { int i, quick = 0; u_char latch, sstat; @@ -452,7 +452,7 @@ printk("tcic: tcic_timer()\n"); #endif timer_pending = 0; - tcic_interrupt(0, NULL); + tcic_interrupt(0, NULL, NULL); } /* tcic_timer */ /*====================================================================*/
| |