#include <linux/errno.h>
#include <linux/spinlock.h>
#include <linux/delay.h>
+#include <linux/interrupt.h>
#ifdef CONFIG_COMEDI_RT
#define rt_printk printk
#endif
-int comedi_request_irq(unsigned int irq, irqreturn_t(*handler) (int,
- void *PT_REGS_ARG), unsigned long flags, const char *device,
+int comedi_request_irq(unsigned int irq, irq_handler_t handler,
+ unsigned long flags, const char *device,
struct comedi_device *dev_id);
void comedi_free_irq(unsigned int irq, struct comedi_device *dev_id);
void comedi_rt_init(void);
#include <linux/mm.h>
#include <linux/init.h>
#include <linux/vmalloc.h>
-#include "interrupt.h"
#include <linux/dma-mapping.h>
#include <linux/uaccess.h>
#include <linux/io.h>
/*
+----------------------------------------------------------------------------+
| Function name : |
-|static void v_ADDI_Interrupt(int irq, void *d PT_REGS_ARG) |
+|static void v_ADDI_Interrupt(int irq, void *d) |
| |
+----------------------------------------------------------------------------+
| Task : Registerd interrupt routine |
+----------------------------------------------------------------------------+
*/
-static irqreturn_t v_ADDI_Interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t v_ADDI_Interrupt(int irq, void *d)
{
struct comedi_device *dev = d;
this_board->v_hwdrv_Interrupt(irq, d);
static int i_ADDI_Detach(struct comedi_device *dev);
static int i_ADDI_Reset(struct comedi_device *dev);
-static irqreturn_t v_ADDI_Interrupt(int irq, void *d PT_REGS_ARG);
+static irqreturn_t v_ADDI_Interrupt(int irq, void *d);
static int i_ADDIDATA_InsnReadEeprom(struct comedi_device *dev, struct comedi_subdevice *s,
struct comedi_insn *insn, unsigned int *data);
#include "../comedidev.h"
#include <linux/delay.h>
+#include <linux/interrupt.h>
#include "8253.h"
#include "comedi_pci.h"
#undef INTERRUPT_DEBUG
-static irqreturn_t pci9111_interrupt(int irq, void *p_device PT_REGS_ARG)
+static irqreturn_t pci9111_interrupt(int irq, void *p_device)
{
struct comedi_device *dev = p_device;
struct comedi_subdevice *subdevice = dev->read_subdev;
#include "../pci_ids.h"
#include <linux/delay.h>
+#include <linux/interrupt.h>
#include "amcc_s5933.h"
#include "8253.h"
/*
==============================================================================
*/
-static irqreturn_t interrupt_pci9118(int irq, void *d PT_REGS_ARG)
+static irqreturn_t interrupt_pci9118(int irq, void *d)
{
struct comedi_device *dev = d;
unsigned int int_daq = 0, int_amcc, int_adstat;
device will be used.
*/
+#include <linux/interrupt.h>
+
#include "../comedidev.h"
#include "comedi_pci.h"
/*
==============================================================================
*/
-static irqreturn_t interrupt_service_pci1710(int irq, void *d PT_REGS_ARG)
+static irqreturn_t interrupt_service_pci1710(int irq, void *d)
{
struct comedi_device *dev = d;
order they appear in the channel list.
*/
+#include <linux/interrupt.h>
+
#include "../comedidev.h"
#include "comedi_pci.h"
/*
* Interrupt service routine.
*/
-static irqreturn_t dio200_interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t dio200_interrupt(int irq, void *d)
{
struct comedi_device *dev = d;
int handled;
unused.
*/
+#include <linux/interrupt.h>
+
#include "../comedidev.h"
#include "comedi_pci.h"
struct comedi_cmd * cmd);
static int pc236_intr_cmd(struct comedi_device * dev, struct comedi_subdevice * s);
static int pc236_intr_cancel(struct comedi_device * dev, struct comedi_subdevice * s);
-static irqreturn_t pc236_interrupt(int irq, void *d PT_REGS_ARG);
+static irqreturn_t pc236_interrupt(int irq, void *d);
/*
* This function looks for a PCI device matching the requested board name,
* Interrupt service routine.
* Based on the comedi_parport driver.
*/
-static irqreturn_t pc236_interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t pc236_interrupt(int irq, void *d)
{
struct comedi_device *dev = d;
struct comedi_subdevice *s = dev->subdevices + 1;
correctly.
*/
+#include <linux/interrupt.h>
+
#include "../comedidev.h"
#include "comedi_pci.h"
/*
* Interrupt handler.
*/
-static irqreturn_t pci224_interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t pci224_interrupt(int irq, void *d)
{
struct comedi_device *dev = d;
struct comedi_subdevice *s = &dev->subdevices[0];
Support for PCI230+/260+, more triggered scan functionality, and workarounds
for (or detection of) various hardware problems added by Ian Abbott.
*/
+
#include "../comedidev.h"
#include <linux/delay.h>
+#include <linux/interrupt.h>
#include "comedi_pci.h"
#include "8253.h"
unsigned int mode, uint64_t ns, unsigned int round);
static void pci230_ns_to_single_timer(unsigned int *ns, unsigned int round);
static void pci230_cancel_ct(struct comedi_device * dev, unsigned int ct);
-static irqreturn_t pci230_interrupt(int irq, void *d PT_REGS_ARG);
+static irqreturn_t pci230_interrupt(int irq, void *d);
static int pci230_ao_cmdtest(struct comedi_device * dev, struct comedi_subdevice * s,
struct comedi_cmd * cmd);
static int pci230_ao_cmd(struct comedi_device * dev, struct comedi_subdevice * s);
}
/* Interrupt handler */
-static irqreturn_t pci230_interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t pci230_interrupt(int irq, void *d)
{
unsigned char status_int, valid_status_int;
struct comedi_device *dev = (struct comedi_device *) d;
}
};
-static irqreturn_t das16cs_interrupt(int irq, void *d PT_REGS_ARG);
+static irqreturn_t das16cs_interrupt(int irq, void *d);
static int das16cs_ai_rinsn(struct comedi_device * dev, struct comedi_subdevice * s,
struct comedi_insn * insn, unsigned int * data);
static int das16cs_ai_cmd(struct comedi_device * dev, struct comedi_subdevice * s);
return 0;
}
-static irqreturn_t das16cs_interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t das16cs_interrupt(int irq, void *d)
{
//struct comedi_device *dev = d;
return IRQ_HANDLED;
#include "../comedidev.h"
#include <linux/delay.h>
+#include <linux/interrupt.h>
#include "8253.h"
#include "8255.h"
unsigned int trig_num);
static int cb_pcidas_ao_cmdtest(struct comedi_device * dev, struct comedi_subdevice * s,
struct comedi_cmd * cmd);
-static irqreturn_t cb_pcidas_interrupt(int irq, void *d PT_REGS_ARG);
+static irqreturn_t cb_pcidas_interrupt(int irq, void *d);
static void handle_ao_interrupt(struct comedi_device * dev, unsigned int status);
static int cb_pcidas_cancel(struct comedi_device * dev, struct comedi_subdevice * s);
static int cb_pcidas_ao_cancel(struct comedi_device * dev, struct comedi_subdevice * s);
return 0;
}
-static irqreturn_t cb_pcidas_interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t cb_pcidas_interrupt(int irq, void *d)
{
struct comedi_device *dev = (struct comedi_device *) d;
struct comedi_subdevice *s = dev->read_subdev;
#include "../comedidev.h"
#include <linux/delay.h>
+#include <linux/interrupt.h>
#include <asm/system.h>
#include "comedi_pci.h"
unsigned int trig_num);
static int ao_cmdtest(struct comedi_device * dev, struct comedi_subdevice * s,
struct comedi_cmd * cmd);
-static irqreturn_t handle_interrupt(int irq, void *d PT_REGS_ARG);
+static irqreturn_t handle_interrupt(int irq, void *d);
static int ai_cancel(struct comedi_device * dev, struct comedi_subdevice * s);
static int ao_cancel(struct comedi_device * dev, struct comedi_subdevice * s);
static int dio_callback(int dir, int port, int data, unsigned long arg);
cfc_handle_events(dev, s);
}
-static irqreturn_t handle_interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t handle_interrupt(int irq, void *d)
{
struct comedi_device *dev = d;
unsigned short status;
*/
#include "../comedidev.h"
+#include <linux/interrupt.h>
#include <linux/ioport.h>
#define PARPORT_SIZE 3
return 0;
}
-static irqreturn_t parport_interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t parport_interrupt(int irq, void *d)
{
struct comedi_device *dev = d;
struct comedi_subdevice *s = dev->subdevices + 3;
void *array, unsigned int num_bytes, unsigned int start_chan_index);
static void das16_reset(struct comedi_device * dev);
-static irqreturn_t das16_dma_interrupt(int irq, void *d PT_REGS_ARG);
+static irqreturn_t das16_dma_interrupt(int irq, void *d);
static void das16_timer_interrupt(unsigned long arg);
static void das16_interrupt(struct comedi_device * dev);
return i;
}
-static irqreturn_t das16_dma_interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t das16_dma_interrupt(int irq, void *d)
{
int status;
struct comedi_device *dev = d;
static int das16m1_cancel(struct comedi_device * dev, struct comedi_subdevice * s);
static int das16m1_poll(struct comedi_device * dev, struct comedi_subdevice * s);
-static irqreturn_t das16m1_interrupt(int irq, void *d PT_REGS_ARG);
+static irqreturn_t das16m1_interrupt(int irq, void *d);
static void das16m1_handler(struct comedi_device * dev, unsigned int status);
static unsigned int das16m1_set_pacer(struct comedi_device * dev, unsigned int ns,
return s->async->buf_write_count - s->async->buf_read_count;
}
-static irqreturn_t das16m1_interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t das16m1_interrupt(int irq, void *d)
{
int status;
struct comedi_device *dev = d;
static int das1800_detach(struct comedi_device * dev);
static int das1800_probe(struct comedi_device * dev);
static int das1800_cancel(struct comedi_device * dev, struct comedi_subdevice * s);
-static irqreturn_t das1800_interrupt(int irq, void *d PT_REGS_ARG);
+static irqreturn_t das1800_interrupt(int irq, void *d);
static int das1800_ai_poll(struct comedi_device * dev, struct comedi_subdevice * s);
static void das1800_ai_handler(struct comedi_device * dev);
static void das1800_handle_dma(struct comedi_device * dev, struct comedi_subdevice * s,
return s->async->buf_write_count - s->async->buf_read_count;
}
-static irqreturn_t das1800_interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t das1800_interrupt(int irq, void *d)
{
struct comedi_device *dev = d;
unsigned int status;
outb_p(p, dev->iobase + 14);
}
-static irqreturn_t intr_handler(int irq, void *d PT_REGS_ARG)
+static irqreturn_t intr_handler(int irq, void *d)
{
struct comedi_device *dev = d;
struct comedi_subdevice *s = dev->subdevices;
offset:sizeof(struct das800_board),
};
-static irqreturn_t das800_interrupt(int irq, void *d PT_REGS_ARG);
+static irqreturn_t das800_interrupt(int irq, void *d);
static void enable_das800(struct comedi_device * dev);
static void disable_das800(struct comedi_device * dev);
static int das800_ai_do_cmdtest(struct comedi_device * dev, struct comedi_subdevice * s,
COMEDI_INITCLEANUP(driver_das800);
/* interrupt service routine */
-static irqreturn_t das800_interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t das800_interrupt(int irq, void *d)
{
short i; /* loop index */
short dataPoint = 0;
static int dmm32at_ai_cmd(struct comedi_device * dev, struct comedi_subdevice * s);
static int dmm32at_ai_cancel(struct comedi_device * dev, struct comedi_subdevice * s);
static int dmm32at_ns_to_timer(unsigned int *ns, int round);
-static irqreturn_t dmm32at_isr(int irq, void *d PT_REGS_ARG);
+static irqreturn_t dmm32at_isr(int irq, void *d);
void dmm32at_setaitimer(struct comedi_device * dev, unsigned int nansec);
/*
return 0;
}
-static irqreturn_t dmm32at_isr(int irq, void *d PT_REGS_ARG)
+static irqreturn_t dmm32at_isr(int irq, void *d)
{
unsigned char intstat;
unsigned int samp;
#define DT2811_TIMEOUT 5
#if 0
-static irqreturn_t dt2811_interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t dt2811_interrupt(int irq, void *d)
{
int lo, hi;
int data;
COMEDI_INITCLEANUP(driver_dt2814);
-static irqreturn_t dt2814_interrupt(int irq, void *dev PT_REGS_ARG);
+static irqreturn_t dt2814_interrupt(int irq, void *dev);
struct dt2814_private {
return 0;
}
-static irqreturn_t dt2814_interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t dt2814_interrupt(int irq, void *d)
{
int lo, hi;
struct comedi_device *dev = d;
return n;
}
-static irqreturn_t dt282x_interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t dt282x_interrupt(int irq, void *d)
{
struct comedi_device *dev = d;
struct comedi_subdevice *s;
// FIXME! Assumes shared interrupt is for this card.
// What's this debug_n_ints stuff? Obviously needs some work...
-static irqreturn_t dt3k_interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t dt3k_interrupt(int irq, void *d)
{
struct comedi_device *dev = d;
struct comedi_subdevice *s;
static int hpdi_cmd_test(struct comedi_device * dev, struct comedi_subdevice * s,
struct comedi_cmd * cmd);
static int hpdi_cancel(struct comedi_device * dev, struct comedi_subdevice * s);
-static irqreturn_t handle_interrupt(int irq, void *d PT_REGS_ARG);
+static irqreturn_t handle_interrupt(int irq, void *d);
static int dio_config_block_size(struct comedi_device * dev, unsigned int * data);
#undef HPDI_DEBUG /* disable debugging messages */
/* XXX check for buffer overrun somehow */
}
-static irqreturn_t handle_interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t handle_interrupt(int irq, void *d)
{
struct comedi_device *dev = d;
struct comedi_subdevice *s = dev->read_subdev;
==============================================================================
*/
-static irqreturn_t interrupt_service_icp_multi(int irq, void *d PT_REGS_ARG)
+static irqreturn_t interrupt_service_icp_multi(int irq, void *d)
{
struct comedi_device *dev = d;
int int_no;
static int ai_write_chanlist(struct comedi_device *dev,
struct comedi_subdevice *s, struct comedi_cmd *cmd);
-static irqreturn_t me4000_ai_isr(int irq, void *dev_id PT_REGS_ARG);
+static irqreturn_t me4000_ai_isr(int irq, void *dev_id);
static int me4000_ai_do_cmd_test(struct comedi_device *dev,
struct comedi_subdevice *s, struct comedi_cmd *cmd);
return 0;
}
-static irqreturn_t me4000_ai_isr(int irq, void *dev_id PT_REGS_ARG)
+static irqreturn_t me4000_ai_isr(int irq, void *dev_id)
{
unsigned int tmp;
struct comedi_device *dev = dev_id;
return 2;
}
-static irqreturn_t ni6527_interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t ni6527_interrupt(int irq, void *d)
{
struct comedi_device *dev = d;
struct comedi_subdevice *s = dev->subdevices + 2;
return insn->n;
}
-static irqreturn_t ni_65xx_interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t ni_65xx_interrupt(int irq, void *d)
{
struct comedi_device *dev = d;
struct comedi_subdevice *s = dev->subdevices + 2;
}
}
-static irqreturn_t ni_660x_interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t ni_660x_interrupt(int irq, void *d)
{
struct comedi_device *dev = d;
struct comedi_subdevice *s;
detach:a2150_detach,
};
-static irqreturn_t a2150_interrupt(int irq, void *d PT_REGS_ARG);
+static irqreturn_t a2150_interrupt(int irq, void *d);
static int a2150_ai_cmdtest(struct comedi_device * dev, struct comedi_subdevice * s,
struct comedi_cmd * cmd);
static int a2150_ai_cmd(struct comedi_device * dev, struct comedi_subdevice * s);
#endif
/* interrupt service routine */
-static irqreturn_t a2150_interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t a2150_interrupt(int irq, void *d)
{
int i;
int status;
/* function prototypes */
static int atmio16d_attach(struct comedi_device * dev, struct comedi_devconfig * it);
static int atmio16d_detach(struct comedi_device * dev);
-static irqreturn_t atmio16d_interrupt(int irq, void *d PT_REGS_ARG);
+static irqreturn_t atmio16d_interrupt(int irq, void *d);
static int atmio16d_ai_cmdtest(struct comedi_device * dev, struct comedi_subdevice * s,
struct comedi_cmd * cmd);
static int atmio16d_ai_cmd(struct comedi_device * dev, struct comedi_subdevice * s);
outw(2048, dev->iobase + DAC1_REG);
}
-static irqreturn_t atmio16d_interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t atmio16d_interrupt(int irq, void *d)
{
struct comedi_device *dev = d;
struct comedi_subdevice *s = dev->subdevices + 0;
static int labpc_attach(struct comedi_device * dev, struct comedi_devconfig * it);
static int labpc_cancel(struct comedi_device * dev, struct comedi_subdevice * s);
-static irqreturn_t labpc_interrupt(int irq, void *d PT_REGS_ARG);
+static irqreturn_t labpc_interrupt(int irq, void *d);
static int labpc_drain_fifo(struct comedi_device * dev);
static void labpc_drain_dma(struct comedi_device * dev);
static void handle_isa_dma(struct comedi_device * dev);
}
/* interrupt service routine */
-static irqreturn_t labpc_interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t labpc_interrupt(int irq, void *d)
{
struct comedi_device *dev = d;
struct comedi_subdevice *s = dev->read_subdev;
ni_set_bitfield(dev, reg, bits, bit_values);
}
-static irqreturn_t ni_E_interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t ni_E_interrupt(int irq, void *d)
{
struct comedi_device *dev = d;
unsigned short a_status;
comedi_event(dev, s);
}
-static irqreturn_t nidio_interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t nidio_interrupt(int irq, void *d)
{
struct comedi_device *dev = d;
struct comedi_subdevice *s = dev->subdevices;
#define devpriv ((struct pcl711_private *)dev->private)
-static irqreturn_t pcl711_interrupt(int irq, void *d PT_REGS_ARG)
+static irqreturn_t pcl711_interrupt(int irq, void *d)
{
int lo, hi;
int data;
/*
==============================================================================
*/
-static irqreturn_t interrupt_pcl812(int irq, void *d PT_REGS_ARG)
+static irqreturn_t interrupt_pcl812(int irq, void *d)
{
struct comedi_device *dev = d;
==============================================================================
INT procedure
*/
-static irqreturn_t interrupt_pcl816(int irq, void *d PT_REGS_ARG)
+static irqreturn_t interrupt_pcl816(int irq, void *d)
{
struct comedi_device *dev = d;
DPRINTK("<I>");
==============================================================================
INT procedure
*/
-static irqreturn_t interrupt_pcl818(int irq, void *d PT_REGS_ARG)
+static irqreturn_t interrupt_pcl818(int irq, void *d)
{
struct comedi_device *dev = d;
static int pcmmio_dio_insn_config(struct comedi_device * dev, struct comedi_subdevice * s,
struct comedi_insn * insn, unsigned int * data);
-static irqreturn_t interrupt_pcmmio(int irq, void *d PT_REGS_ARG);
+static irqreturn_t interrupt_pcmmio(int irq, void *d);
static void pcmmio_stop_intr(struct comedi_device *, struct comedi_subdevice *);
static int pcmmio_cancel(struct comedi_device * dev, struct comedi_subdevice * s);
static int pcmmio_cmd(struct comedi_device * dev, struct comedi_subdevice * s);
}
#endif /* notused */
-static irqreturn_t interrupt_pcmmio(int irq, void *d PT_REGS_ARG)
+static irqreturn_t interrupt_pcmmio(int irq, void *d)
{
int asic, got1 = 0;
struct comedi_device *dev = (struct comedi_device *) d;
static int pcmuio_dio_insn_config(struct comedi_device * dev, struct comedi_subdevice * s,
struct comedi_insn * insn, unsigned int * data);
-static irqreturn_t interrupt_pcmuio(int irq, void *d PT_REGS_ARG);
+static irqreturn_t interrupt_pcmuio(int irq, void *d);
static void pcmuio_stop_intr(struct comedi_device *, struct comedi_subdevice *);
static int pcmuio_cancel(struct comedi_device * dev, struct comedi_subdevice * s);
static int pcmuio_cmd(struct comedi_device * dev, struct comedi_subdevice * s);
}
#endif /* notused */
-static irqreturn_t interrupt_pcmuio(int irq, void *d PT_REGS_ARG)
+static irqreturn_t interrupt_pcmuio(int irq, void *d)
{
int asic, got1 = 0;
struct comedi_device *dev = (struct comedi_device *) d;
* which run pretty quick.
*/
-static void daqp_interrupt(int irq, void *dev_id PT_REGS_ARG)
+static void daqp_interrupt(int irq, void *dev_id)
{
struct local_info_t *local = (struct local_info_t *) dev_id;
struct comedi_device *dev;
static int rtd_ai_cancel(struct comedi_device *dev, struct comedi_subdevice *s);
/* static int rtd_ai_poll (struct comedi_device *dev,struct comedi_subdevice *s); */
static int rtd_ns_to_timer(unsigned int *ns, int roundMode);
-static irqreturn_t rtd_interrupt(int irq, void *d PT_REGS_ARG);
+static irqreturn_t rtd_interrupt(int irq, void *d);
static int rtd520_probe_fifo_depth(struct comedi_device *dev);
/*
The data conversion may someday happen in a "bottom half".
*/
static irqreturn_t rtd_interrupt(int irq, /* interrupt number (ignored) */
- void *d /* our data */
- PT_REGS_ARG)
+ void *d) /* our data */
{ /* cpu context (ignored) */
struct comedi_device *dev = d; /* must be called "dev" for devpriv */
u16 status;
COMEDI_INITCLEANUP(driver_rti800);
-static irqreturn_t rti800_interrupt(int irq, void *dev PT_REGS_ARG);
+static irqreturn_t rti800_interrupt(int irq, void *dev);
struct rti800_private {
enum {
#define RTI800_TIMEOUT 100
-static irqreturn_t rti800_interrupt(int irq, void *dev PT_REGS_ARG)
+static irqreturn_t rti800_interrupt(int irq, void *dev)
{
return IRQ_HANDLED;
}
static int s626_ai_load_polllist(uint8_t *ppl, struct comedi_cmd *cmd);
static int s626_ai_inttrig(struct comedi_device *dev, struct comedi_subdevice *s,
unsigned int trignum);
-static irqreturn_t s626_irq_handler(int irq, void *d PT_REGS_ARG);
+static irqreturn_t s626_irq_handler(int irq, void *d);
static unsigned int s626_ai_reg_to_uint(int data);
/* static unsigned int s626_uint_to_reg(struct comedi_subdevice *s, int data); */
/* return 0; */
/* } */
-static irqreturn_t s626_irq_handler(int irq, void *d PT_REGS_ARG)
+static irqreturn_t s626_irq_handler(int irq, void *d)
{
struct comedi_device *dev = d;
struct comedi_subdevice *s;
* analogue IN
* interrupt service routine
*/
-static void usbduxfastsub_ai_Irq(struct urb *urb PT_REGS_ARG)
+static void usbduxfastsub_ai_Irq(struct urb *urb)
{
int n, err;
struct usbduxfastsub_s *udfs;
+++ /dev/null
-/*
- linux/interrupt.h compatibility header
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef __COMPAT_LINUX_INTERRUPT_H_
-#define __COMPAT_LINUX_INTERRUPT_H_
-
-#include <linux/interrupt.h>
-
-#ifndef IRQF_DISABLED
-#define IRQF_DISABLED SA_INTERRUPT
-#define IRQF_SAMPLE_RANDOM SA_SAMPLE_RANDOM
-#define IRQF_SHARED SA_SHIRQ
-#define IRQF_PROBE_SHARED SA_PROBEIRQ
-#define IRQF_PERCPU SA_PERCPU
-#ifdef SA_TRIGGER_MASK
-#define IRQF_TRIGGER_NONE 0
-#define IRQF_TRIGGER_LOW SA_TRIGGER_LOW
-#define IRQF_TRIGGER_HIGH SA_TRIGGER_HIGH
-#define IRQF_TRIGGER_FALLING SA_TRIGGER_FALLING
-#define IRQF_TRIGGER_RISING SA_TRIGGER_RISING
-#define IRQF_TRIGGER_MASK SA_TRIGGER_MASK
-#else
-#define IRQF_TRIGGER_NONE 0
-#define IRQF_TRIGGER_LOW 0
-#define IRQF_TRIGGER_HIGH 0
-#define IRQF_TRIGGER_FALLING 0
-#define IRQF_TRIGGER_RISING 0
-#define IRQF_TRIGGER_MASK 0
-#endif
-#endif
-
-#define PT_REGS_ARG
-#define PT_REGS_CALL
-#define PT_REGS_NULL
-
-#endif
#include <linux/comedidev.h>
#include <linux/errno.h>
+#include <linux/interrupt.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/fcntl.h>
struct comedi_irq_struct {
int rt;
int irq;
- irqreturn_t(*handler) (int irq, void *dev_id PT_REGS_ARG);
+ irq_handler_t handler;
unsigned long flags;
const char *device;
struct comedi_device *dev_id;
static struct comedi_irq_struct *comedi_irqs[NR_IRQS];
-int comedi_request_irq(unsigned irq, irqreturn_t(*handler) (int,
- void *PT_REGS_ARG), unsigned long flags, const char *device,
- struct comedi_device *dev_id)
+int comedi_request_irq(unsigned irq, irq_handler_t handler, unsigned long flags,
+ const char *device, struct comedi_device *dev_id)
{
struct comedi_irq_struct *it;
int ret;
rt_printk("comedi: null irq struct?\n");
return;
}
- it->handler(irq, it->dev_id PT_REGS_NULL);
+ it->handler(irq, it->dev_id);
rt_enable_irq(irq); /* needed by rtai-adeos, seems like it shouldn't hurt earlier versions */
}
{
struct comedi_irq_struct *it = cookie;
- it->handler(irq, it->dev_id PT_REGS_NULL);
+ it->handler(irq, it->dev_id);
rthal_irq_enable(irq);
}
/* RTLinux section */
#ifdef CONFIG_COMEDI_RTL
-static unsigned int handle_rtl_irq(unsigned int irq PT_REGS_ARG)
+static unsigned int handle_rtl_irq(unsigned int irq)
{
struct comedi_irq_struct *it;
it = comedi_irqs[irq];
if (it == NULL)
return 0;
- it->handler(irq, it->dev_id PT_REGS_NULL);
+ it->handler(irq, it->dev_id);
rtl_hard_enable_irq(irq);
return 0;
}
#elif defined(CONFIG_COMEDI_FUSION)
void rt_pend_irq_handler(void *cookie)
#elif defined(CONFIG_COMEDI_RTL)
-void rt_pend_irq_handler(int irq, void *dev PT_REGS_ARG)
+void rt_pend_irq_handler(int irq, void *dev)
#endif
{
while (rt_pend_head != rt_pend_tail) {