This makes sl-modem compile without errors (or warnings, except for deprecation of pci_find_device()) against the current Debian kernel and with vanilla 2.6.26. I make no promises as to whether it works; I didn't feel like messing about with modems and the other bug reports scared me.
Ben. diff -u sl-modem-2.9.9d+e-pre2/drivers/amrmo_init.c sl-modem-2.9.9d+e-pre2/drivers/amrmo_init.c --- sl-modem-2.9.9d+e-pre2/drivers/amrmo_init.c +++ sl-modem-2.9.9d+e-pre2/drivers/amrmo_init.c @@ -503,7 +503,7 @@ amrmo_card_interrupt(amrmo->card); } #else -static irqreturn_t amrmo_pci_interrupt(int irq, void *dev_id, struct pt_regs *regs) +static irqreturn_t amrmo_pci_interrupt(int irq, void *dev_id) { struct amrmo_struct *amrmo = (struct amrmo_struct *)dev_id; amrmo_card_interrupt(amrmo->card); @@ -587,7 +587,7 @@ } } - ret = request_irq(amrmo->irq, &amrmo_pci_interrupt,SA_SHIRQ, + ret = request_irq(amrmo->irq, &amrmo_pci_interrupt,IRQF_SHARED, amrmo->name,amrmo); if(ret) { printk(KERN_ERR "slamr: failed request_irq\n"); diff -u sl-modem-2.9.9d+e-pre2/drivers/st7554.c sl-modem-2.9.9d+e-pre2/drivers/st7554.c --- sl-modem-2.9.9d+e-pre2/drivers/st7554.c +++ sl-modem-2.9.9d+e-pre2/drivers/st7554.c @@ -418,7 +418,7 @@ /* ----------------------------------------------------------------------- */ -static void st7554_interrupt(struct urb *urb, struct pt_regs* regs) +static void st7554_interrupt(struct urb *urb) { struct st7554_state *s = urb->context; u32 *status = urb->transfer_buffer; @@ -459,7 +459,7 @@ /* --------------------------------------------------------------------- */ -static void mo_complete(struct urb *u, struct pt_regs* regs) +static void mo_complete(struct urb *u) { struct st7554_state *s = u->context; struct dmabuf *db = &s->mo.dma; @@ -518,14 +518,14 @@ } -static void mo_startup_complete(struct urb *u, struct pt_regs* regs) +static void mo_startup_complete(struct urb *u) { struct st7554_state *s = u->context; USB_DBG("mo_startup_complete %d: %d: sent %d.\n", MO_URB_NO(s,u), u->start_frame, u->actual_length); FILL_DESC_OUT(s,&s->mo,u,BYTES_IN_FRAMES(s,DESCFRAMES)); u->complete = mo_complete; - mo_complete(u,regs); + mo_complete(u); complete(&s->start_comp); } @@ -533,7 +533,7 @@ /* ----------------------------------------------------------------------- */ -static void mi_complete(struct urb *u, struct pt_regs* regs) +static void mi_complete(struct urb *u) { struct st7554_state *s = u->context; struct urb *next; @@ -578,7 +578,7 @@ } -static void mi_startup_complete(struct urb *u, struct pt_regs* regs) +static void mi_startup_complete(struct urb *u) { struct st7554_state *s = u->context; struct usb_iso_packet_descriptor *p; --- END --- -- Ben Hutchings If God had intended Man to program, we'd have been born with serial I/O ports.
signature.asc
Description: This is a digitally signed message part