- From: Ian Abbott <abbotti_at_mev.co.uk>
- Date: Mon, 30 Jul 2007 13:05:13 +0100
On 28/07/07 06:10, Gina Q wrote: > I'm trying to build comedi 0.7.73 on a Gentoo GNU/Linux 2007.0 system, > Pentium 4 CPU, gcc 4.1.2, kernel 2.6.21 . You can either check out the CVS version or apply the attached patch, like this: $ cd /path/to/comedi-0.7.73 $ patch -p1 < /path/to/comedi-0.7.73-patch-iasp1-ps1.patch (Or you could wait for comedi-0.7.74 to be released, hopefully sometime this week.) You'll also need to use the '--disable-pcmcia' option when configuring: $ ./configure --disable-pcmcia -- -=( Ian Abbott _at_ MEV Ltd. E-mail: <abbotti_at_mev.co.uk> )=- -=( Tel: +44 (0)161 477 1898 FAX: +44 (0)161 718 3587 )=-
diff -urNad comedi-0.7.73~/comedi/comedi_fops.c comedi-0.7.73/comedi/comedi_fops.c
--- comedi-0.7.73~/comedi/comedi_fops.c 2006-08-15 20:56:18.000000000 +0200
+++ comedi-0.7.73/comedi/comedi_fops.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -1748,7 +1748,7 _at__at_
sprintf(name, "comedi%d", i);
devfs_register(NULL, name, DEVFS_FL_DEFAULT,
COMEDI_MAJOR, i, 0666 | S_IFCHR, &comedi_fops, NULL);
- CLASS_DEVICE_CREATE(comedi_class, 0, MKDEV(COMEDI_MAJOR, i), NULL, "comedi%i", i);
+ COMEDI_CLASS_DEVICE_CREATE(comedi_class, 0, MKDEV(COMEDI_MAJOR, i), NULL, "comedi%i", i);
}
comedi_rt_init();
diff -urNad comedi-0.7.73~/comedi/drivers/adl_pci9111.c comedi-0.7.73/comedi/drivers/adl_pci9111.c
--- comedi-0.7.73~/comedi/drivers/adl_pci9111.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/adl_pci9111.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -82,12 +82,6 _at__at_
#include "8253.h"
#include "comedi_fc.h"
-typedef enum
-{
- false,
- true
-} bool;
-
#define PCI9111_DRIVER_NAME "adl_pci9111"
#define PCI9111_HR_DEVICE_ID 0x9111
_at__at_ -950,7 +944,7 _at__at_
#undef INTERRUPT_DEBUG
static irqreturn_t
-pci9111_interrupt (int irq, void *p_device, struct pt_regs *regs)
+pci9111_interrupt (int irq, void *p_device PT_REGS_ARG)
{
comedi_device *dev=p_device;
comedi_subdevice *subdevice = dev->read_subdev;
_at__at_ -1370,7 +1364,7 _at__at_
{
if (comedi_request_irq (pci_device->irq,
pci9111_interrupt,
- SA_SHIRQ,
+ IRQF_SHARED,
PCI9111_DRIVER_NAME,
dev)!=0)
{
diff -urNad comedi-0.7.73~/comedi/drivers/adl_pci9118.c comedi-0.7.73/comedi/drivers/adl_pci9118.c
--- comedi-0.7.73~/comedi/drivers/adl_pci9118.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/adl_pci9118.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -640,7 +640,7 _at__at_
/*
==============================================================================
*/
-static irqreturn_t interrupt_pci9118(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t interrupt_pci9118(int irq, void *d PT_REGS_ARG)
{
comedi_device *dev = d;
unsigned int int_daq=0,int_amcc,int_adstat;
_at__at_ -1751,7 +1751,7 _at__at_
if (it->options[3]&2) irq=0; // user don't want use IRQ
if (irq>0) {
- if (comedi_request_irq(irq, interrupt_pci9118, SA_SHIRQ, "ADLink PCI-9118", dev)) {
+ if (comedi_request_irq(irq, interrupt_pci9118, IRQF_SHARED, "ADLink PCI-9118", dev)) {
rt_printk(", unable to allocate IRQ %d, DISABLING IT", irq);
irq=0; /* Can't use IRQ */
} else {
diff -urNad comedi-0.7.73~/comedi/drivers/adv_pci1710.c comedi-0.7.73/comedi/drivers/adv_pci1710.c
--- comedi-0.7.73~/comedi/drivers/adv_pci1710.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/adv_pci1710.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -715,7 +715,7 _at__at_
/*
==============================================================================
*/
-static irqreturn_t interrupt_service_pci1710(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t interrupt_service_pci1710(int irq, void *d PT_REGS_ARG)
{
comedi_device *dev = d;
_at__at_ -1301,7 +1301,7 _at__at_
if (this_board->have_irq) {
if (irq) {
- if (comedi_request_irq(irq, interrupt_service_pci1710, SA_SHIRQ, "Advantech PCI-1710", dev)) {
+ if (comedi_request_irq(irq, interrupt_service_pci1710, IRQF_SHARED, "Advantech PCI-1710", dev)) {
rt_printk(", unable to allocate IRQ %d, DISABLING IT", irq);
irq=0; /* Can't use IRQ */
} else {
diff -urNad comedi-0.7.73~/comedi/drivers/adv_pci_dio.c comedi-0.7.73/comedi/drivers/adv_pci_dio.c
--- comedi-0.7.73~/comedi/drivers/adv_pci_dio.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/adv_pci_dio.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -720,7 +720,7 _at__at_
pci1760_reset(dev);
break;
case TYPE_PCI1762:
- outw(0x0101, dev->iobase+PCI1750_ICR); // disable & clear interrupts
+ outw(0x0101, dev->iobase+PCI1762_ICR); // disable & clear interrupts
break;
}
diff -urNad comedi-0.7.73~/comedi/drivers/amplc_dio200.c comedi-0.7.73/comedi/drivers/amplc_dio200.c
--- comedi-0.7.73~/comedi/drivers/amplc_dio200.c 2006-08-08 16:42:07.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/amplc_dio200.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -952,7 +952,7 _at__at_
* Interrupt service routine.
*/
static irqreturn_t
-dio200_interrupt(int irq, void *d, struct pt_regs *regs)
+dio200_interrupt(int irq, void *d PT_REGS_ARG)
{
comedi_device *dev=d;
int handled;
_at__at_ -1072,8 +1072,6 _at__at_
int ret;
int chan = CR_CHAN(insn->chanspec);
- if (insn->n != 2) return -EINVAL;
-
switch (data[0]) {
case INSN_CONFIG_8254_SET_MODE:
ret = i8254_set_mode(subpriv->iobase, chan, data[1]);
_at__at_ -1104,7 +1102,7 _at__at_
return -EINVAL;
break;
}
- return 2;
+ return insn->n;
}
/*
_at__at_ -1308,7 +1306,7 _at__at_
dev->board_name = thisboard->name;
if (irq) {
- unsigned long flags = share_irq ? SA_SHIRQ : 0;
+ unsigned long flags = share_irq ? IRQF_SHARED : 0;
if (comedi_request_irq(irq, dio200_interrupt, flags,
DIO200_DRIVER_NAME, dev) >= 0) {
diff -urNad comedi-0.7.73~/comedi/drivers/amplc_pc236.c comedi-0.7.73/comedi/drivers/amplc_pc236.c
--- comedi-0.7.73~/comedi/drivers/amplc_pc236.c 2006-08-08 16:42:07.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/amplc_pc236.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -153,7 +153,7 _at__at_
comedi_cmd *cmd);
static int pc236_intr_cmd(comedi_device *dev,comedi_subdevice *s);
static int pc236_intr_cancel(comedi_device *dev,comedi_subdevice *s);
-static irqreturn_t pc236_interrupt(int irq,void *d,struct pt_regs *regs);
+static irqreturn_t pc236_interrupt(int irq,void *d PT_REGS_ARG);
/*
* Attach is called by the Comedi core to configure the driver
_at__at_ -287,7 +287,7 _at__at_
s->type = COMEDI_SUBD_UNUSED;
pc236_intr_disable(dev);
if (irq) {
- unsigned long flags = share_irq ? SA_SHIRQ : 0;
+ unsigned long flags = share_irq ? IRQF_SHARED : 0;
if (comedi_request_irq(irq, pc236_interrupt, flags,
PC236_DRIVER_NAME, dev) >= 0) {
_at__at_ -534,7 +534,7 _at__at_
* Interrupt service routine.
* Based on the comedi_parport driver.
*/
-static irqreturn_t pc236_interrupt(int irq,void *d,struct pt_regs *regs)
+static irqreturn_t pc236_interrupt(int irq,void *d PT_REGS_ARG)
{
comedi_device *dev=d;
comedi_subdevice *s=dev->subdevices+1;
diff -urNad comedi-0.7.73~/comedi/drivers/amplc_pci224.c comedi-0.7.73/comedi/drivers/amplc_pci224.c
--- comedi-0.7.73~/comedi/drivers/amplc_pci224.c 2006-08-08 16:42:08.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/amplc_pci224.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -1201,7 +1201,7 _at__at_
* Interrupt handler.
*/
static irqreturn_t
-pci224_interrupt(int irq, void *d, struct pt_regs *regs)
+pci224_interrupt(int irq, void *d PT_REGS_ARG)
{
comedi_device *dev = d;
comedi_subdevice *s = &dev->subdevices[0];
_at__at_ -1474,7 +1474,7 _at__at_
dev->board_name = thisboard->name;
if (irq) {
- ret = comedi_request_irq(irq, pci224_interrupt, SA_SHIRQ,
+ ret = comedi_request_irq(irq, pci224_interrupt, IRQF_SHARED,
DRIVER_NAME, dev);
if (ret < 0) {
printk(KERN_ERR "comedi%d: error! "
diff -urNad comedi-0.7.73~/comedi/drivers/amplc_pci230.c comedi-0.7.73/comedi/drivers/amplc_pci230.c
--- comedi-0.7.73~/comedi/drivers/amplc_pci230.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/amplc_pci230.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -281,7 +281,7 _at__at_
#endif
static void pci230_cancel_ct1(comedi_device *dev);
static void pci230_cancel_ct2(comedi_device *dev);
-static irqreturn_t pci230_interrupt(int irq, void *d, struct pt_regs *regs);
+static irqreturn_t pci230_interrupt(int irq, void *d PT_REGS_ARG);
static int pci230_ao_cmdtest(comedi_device *dev,comedi_subdevice *s, comedi_cmd *cmd);
static int pci230_ao_cmd(comedi_device *dev, comedi_subdevice *s);
static int pci230_ao_cancel(comedi_device *dev, comedi_subdevice *s);
_at__at_ -390,7 +390,7 _at__at_
outb(0, devpriv->pci_iobase + PCI230_INT_SCE);
/* Register the interrupt handler. */
- irq_hdl = comedi_request_irq(devpriv->pci_dev->irq, pci230_interrupt, SA_SHIRQ, "amplc_pci230", dev);
+ irq_hdl = comedi_request_irq(devpriv->pci_dev->irq, pci230_interrupt, IRQF_SHARED, "amplc_pci230", dev);
if(irq_hdl<0) {
printk("comedi%d: amplc_pci230: unable to register irq, commands will not be available %d\n", dev->minor, devpriv->pci_dev->irq);
}
_at__at_ -1397,7 +1397,7 _at__at_
}
/* Interrupt handler */
-static irqreturn_t pci230_interrupt(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t pci230_interrupt(int irq, void *d PT_REGS_ARG)
{
int status_int;
comedi_device *dev = (comedi_device*) d;
diff -urNad comedi-0.7.73~/comedi/drivers/cb_das16_cs.c comedi-0.7.73/comedi/drivers/cb_das16_cs.c
--- comedi-0.7.73~/comedi/drivers/cb_das16_cs.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/cb_das16_cs.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -103,7 +103,7 _at__at_
}};
-static irqreturn_t das16cs_interrupt(int irq, void *d, struct pt_regs *regs);
+static irqreturn_t das16cs_interrupt(int irq, void *d PT_REGS_ARG);
static int das16cs_ai_rinsn(comedi_device *dev,comedi_subdevice *s,
comedi_insn *insn,lsampl_t *data);
static int das16cs_ai_cmd(comedi_device *dev,comedi_subdevice *s);
_at__at_ -182,7 +182,7 _at__at_
printk("\n");
ret = comedi_request_irq(link->irq.AssignedIRQ, das16cs_interrupt,
- SA_SHIRQ, "cb_das16_cs", dev);
+ IRQF_SHARED, "cb_das16_cs", dev);
if(ret<0){
return ret;
}
_at__at_ -270,7 +270,7 _at__at_
}
-static irqreturn_t das16cs_interrupt(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t das16cs_interrupt(int irq, void *d PT_REGS_ARG)
{
//comedi_device *dev = d;
return IRQ_HANDLED;
diff -urNad comedi-0.7.73~/comedi/drivers/cb_pcidas.c comedi-0.7.73/comedi/drivers/cb_pcidas.c
--- comedi-0.7.73~/comedi/drivers/cb_pcidas.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/cb_pcidas.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -466,7 +466,7 _at__at_
static int cb_pcidas_ao_inttrig(comedi_device *dev, comedi_subdevice *subdev, unsigned int trig_num);
static int cb_pcidas_ao_cmdtest(comedi_device *dev,comedi_subdevice *s,
comedi_cmd *cmd);
-static irqreturn_t cb_pcidas_interrupt(int irq, void *d, struct pt_regs *regs);
+static irqreturn_t cb_pcidas_interrupt(int irq, void *d PT_REGS_ARG);
static void handle_ao_interrupt(comedi_device *dev, unsigned int status);
static int cb_pcidas_cancel(comedi_device *dev, comedi_subdevice *s);
static int cb_pcidas_ao_cancel(comedi_device *dev, comedi_subdevice *s);
_at__at_ -585,7 +585,7 _at__at_
}
// get irq
- if(comedi_request_irq(devpriv->pci_dev->irq, cb_pcidas_interrupt, SA_SHIRQ, "cb_pcidas", dev ))
+ if(comedi_request_irq(devpriv->pci_dev->irq, cb_pcidas_interrupt, IRQF_SHARED, "cb_pcidas", dev ))
{
printk(" unable to allocate irq %d\n", devpriv->pci_dev->irq);
return -EINVAL;
_at__at_ -1491,7 +1491,7 _at__at_
return 0;
}
-static irqreturn_t cb_pcidas_interrupt(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t cb_pcidas_interrupt(int irq, void *d PT_REGS_ARG)
{
comedi_device *dev = (comedi_device*) d;
comedi_subdevice *s = dev->read_subdev;
diff -urNad comedi-0.7.73~/comedi/drivers/cb_pcidas64.c comedi-0.7.73/comedi/drivers/cb_pcidas64.c
--- comedi-0.7.73~/comedi/drivers/cb_pcidas64.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/cb_pcidas64.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -1163,7 +1163,7 _at__at_
static int ao_cmd(comedi_device *dev,comedi_subdevice *s);
static int ao_inttrig(comedi_device *dev, comedi_subdevice *subdev, unsigned int trig_num);
static int ao_cmdtest(comedi_device *dev,comedi_subdevice *s, comedi_cmd *cmd);
-static irqreturn_t handle_interrupt(int irq, void *d, struct pt_regs *regs);
+static irqreturn_t handle_interrupt(int irq, void *d PT_REGS_ARG);
static int ai_cancel(comedi_device *dev, comedi_subdevice *s);
static int ao_cancel(comedi_device *dev, comedi_subdevice *s);
static int dio_callback(int dir, int port, int data, unsigned long arg);
_at__at_ -1750,7 +1750,7 _at__at_
priv(dev)->hw_revision = hw_revision( dev, readw(priv(dev)->main_iobase + HW_STATUS_REG ) );
printk(" stc hardware revision %i\n", priv(dev)->hw_revision);
// get irq
- if(comedi_request_irq(pcidev->irq, handle_interrupt, SA_SHIRQ, "cb_pcidas64", dev ))
+ if(comedi_request_irq(pcidev->irq, handle_interrupt, IRQF_SHARED, "cb_pcidas64", dev ))
{
printk(" unable to allocate irq %u\n", pcidev->irq);
return -EINVAL;
_at__at_ -3044,7 +3044,7 _at__at_
cfc_handle_events( dev, s );
}
-static irqreturn_t handle_interrupt(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t handle_interrupt(int irq, void *d PT_REGS_ARG)
{
comedi_device *dev = d;
unsigned short status;
diff -urNad comedi-0.7.73~/comedi/drivers/cb_pcimdas.c comedi-0.7.73/comedi/drivers/cb_pcimdas.c
--- comedi-0.7.73~/comedi/drivers/cb_pcimdas.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/cb_pcimdas.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -288,7 +288,7 _at__at_
// Dont support IRQ yet
// // get irq
-// if(comedi_request_irq(devpriv->pci_dev->irq, cb_pcimdas_interrupt, SA_SHIRQ, "cb_pcimdas", dev ))
+// if(comedi_request_irq(devpriv->pci_dev->irq, cb_pcimdas_interrupt, IRQF_SHARED, "cb_pcimdas", dev ))
// {
// printk(" unable to allocate irq %u\n", devpriv->pci_dev->irq);
// return -EINVAL;
diff -urNad comedi-0.7.73~/comedi/drivers/comedi_parport.c comedi-0.7.73/comedi/drivers/comedi_parport.c
--- comedi-0.7.73~/comedi/drivers/comedi_parport.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/comedi_parport.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -264,7 +264,7 _at__at_
return 0;
}
-static irqreturn_t parport_interrupt(int irq,void *d,struct pt_regs *regs)
+static irqreturn_t parport_interrupt(int irq,void *d PT_REGS_ARG)
{
comedi_device *dev=d;
comedi_subdevice *s=dev->subdevices+3;
diff -urNad comedi-0.7.73~/comedi/drivers/das16.c comedi-0.7.73/comedi/drivers/das16.c
--- comedi-0.7.73~/comedi/drivers/das16.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/das16.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -333,7 +333,7 _at__at_
unsigned int num_bytes, unsigned int start_chan_index);
static void das16_reset(comedi_device *dev);
-static irqreturn_t das16_dma_interrupt(int irq, void *d, struct pt_regs *regs);
+static irqreturn_t das16_dma_interrupt(int irq, void *d PT_REGS_ARG);
static void das16_timer_interrupt(unsigned long arg);
static void das16_interrupt(comedi_device *dev);
_at__at_ -1142,7 +1142,7 _at__at_
}
-static irqreturn_t das16_dma_interrupt(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t das16_dma_interrupt(int irq, void *d PT_REGS_ARG)
{
int status;
comedi_device *dev = d;
diff -urNad comedi-0.7.73~/comedi/drivers/das16m1.c comedi-0.7.73/comedi/drivers/das16m1.c
--- comedi-0.7.73~/comedi/drivers/das16m1.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/das16m1.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -141,7 +141,7 _at__at_
static int das16m1_cancel(comedi_device *dev, comedi_subdevice *s);
static int das16m1_poll(comedi_device *dev, comedi_subdevice *s);
-static irqreturn_t das16m1_interrupt(int irq, void *d, struct pt_regs *regs);
+static irqreturn_t das16m1_interrupt(int irq, void *d PT_REGS_ARG);
static void das16m1_handler(comedi_device *dev, unsigned int status);
static unsigned int das16m1_set_pacer(comedi_device *dev, unsigned int ns, int round_flag);
_at__at_ -464,7 +464,7 _at__at_
return s->async->buf_write_count - s->async->buf_read_count;
}
-static irqreturn_t das16m1_interrupt(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t das16m1_interrupt(int irq, void *d PT_REGS_ARG)
{
int status;
comedi_device *dev = d;
diff -urNad comedi-0.7.73~/comedi/drivers/das1800.c comedi-0.7.73/comedi/drivers/das1800.c
--- comedi-0.7.73~/comedi/drivers/das1800.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/das1800.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -182,7 +182,7 _at__at_
static int das1800_detach(comedi_device *dev);
static int das1800_probe(comedi_device *dev);
static int das1800_cancel(comedi_device *dev, comedi_subdevice *s);
-static irqreturn_t das1800_interrupt(int irq, void *d, struct pt_regs *regs);
+static irqreturn_t das1800_interrupt(int irq, void *d PT_REGS_ARG);
static int das1800_ai_poll(comedi_device *dev,comedi_subdevice *s);
static void das1800_ai_handler(comedi_device *dev);
static void das1800_handle_dma(comedi_device *dev, comedi_subdevice *s, unsigned int status);
_at__at_ -883,7 +883,7 _at__at_
return s->async->buf_write_count - s->async->buf_read_count;
}
-static irqreturn_t das1800_interrupt(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t das1800_interrupt(int irq, void *d PT_REGS_ARG)
{
comedi_device *dev = d;
unsigned int status;
diff -urNad comedi-0.7.73~/comedi/drivers/das6402.c comedi-0.7.73/comedi/drivers/das6402.c
--- comedi-0.7.73~/comedi/drivers/das6402.c 2006-08-11 22:36:27.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/das6402.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -152,7 +152,7 _at__at_
outb_p(p,dev->iobase+14);
}
-static irqreturn_t intr_handler(int irq,void *d,struct pt_regs *regs)
+static irqreturn_t intr_handler(int irq,void *d PT_REGS_ARG)
{
comedi_device *dev=d;
comedi_subdevice *s=dev->subdevices;
diff -urNad comedi-0.7.73~/comedi/drivers/das800.c comedi-0.7.73/comedi/drivers/das800.c
--- comedi-0.7.73~/comedi/drivers/das800.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/das800.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -255,7 +255,7 _at__at_
offset: sizeof(das800_board),
};
-static irqreturn_t das800_interrupt(int irq, void *d, struct pt_regs *regs);
+static irqreturn_t das800_interrupt(int irq, void *d PT_REGS_ARG);
static void enable_das800(comedi_device *dev);
static void disable_das800(comedi_device *dev);
static int das800_ai_do_cmdtest(comedi_device *dev,comedi_subdevice *s,comedi_cmd *cmd);
_at__at_ -345,7 +345,7 _at__at_
COMEDI_INITCLEANUP(driver_das800);
/* interrupt service routine */
-static irqreturn_t das800_interrupt(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t das800_interrupt(int irq, void *d PT_REGS_ARG)
{
short i; /* loop index */
sampl_t dataPoint = 0;
diff -urNad comedi-0.7.73~/comedi/drivers/dmm32at.c comedi-0.7.73/comedi/drivers/dmm32at.c
--- comedi-0.7.73~/comedi/drivers/dmm32at.c 2006-08-07 15:42:46.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/dmm32at.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -312,7 +312,7 _at__at_
static int dmm32at_ai_cmd(comedi_device *dev, comedi_subdevice *s);
static int dmm32at_ai_cancel(comedi_device *dev,comedi_subdevice *s);
static int dmm32at_ns_to_timer(unsigned int *ns,int round);
-static irqreturn_t dmm32at_isr(int irq,void *d,struct pt_regs *regs);
+static irqreturn_t dmm32at_isr(int irq,void *d PT_REGS_ARG);
void dmm32at_setaitimer(comedi_device *dev,unsigned int nansec);
_at__at_ -837,7 +837,7 _at__at_
return 0;
}
-static irqreturn_t dmm32at_isr(int irq,void *d,struct pt_regs *regs){
+static irqreturn_t dmm32at_isr(int irq,void *d PT_REGS_ARG){
unsigned char intstat;
unsigned int samp;
unsigned short msb, lsb;
diff -urNad comedi-0.7.73~/comedi/drivers/dt2811.c comedi-0.7.73/comedi/drivers/dt2811.c
--- comedi-0.7.73~/comedi/drivers/dt2811.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/dt2811.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -255,7 +255,7 _at__at_
#define DT2811_TIMEOUT 5
#if 0
-static void dt2811_interrupt(int irq, void *d, struct pt_regs *regs)
+static void dt2811_interrupt(int irq, void *d PT_REGS_ARG)
{
int lo, hi;
int data;
diff -urNad comedi-0.7.73~/comedi/drivers/dt2814.c comedi-0.7.73/comedi/drivers/dt2814.c
--- comedi-0.7.73~/comedi/drivers/dt2814.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/dt2814.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -70,7 +70,7 _at__at_
};
COMEDI_INITCLEANUP(driver_dt2814);
-static irqreturn_t dt2814_interrupt(int irq,void *dev,struct pt_regs * regs);
+static irqreturn_t dt2814_interrupt(int irq,void *dev PT_REGS_ARG);
typedef struct{
int ntrig;
_at__at_ -329,7 +329,7 _at__at_
}
-static irqreturn_t dt2814_interrupt(int irq,void *d,struct pt_regs * regs)
+static irqreturn_t dt2814_interrupt(int irq,void *d PT_REGS_ARG)
{
int lo,hi;
comedi_device *dev=d;
diff -urNad comedi-0.7.73~/comedi/drivers/dt282x.c comedi-0.7.73/comedi/drivers/dt282x.c
--- comedi-0.7.73~/comedi/drivers/dt282x.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/dt282x.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -578,7 +578,7 _at__at_
return n;
}
-static irqreturn_t dt282x_interrupt(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t dt282x_interrupt(int irq, void *d PT_REGS_ARG)
{
comedi_device *dev = d;
comedi_subdevice *s = dev->subdevices+0;
diff -urNad comedi-0.7.73~/comedi/drivers/dt3000.c comedi-0.7.73/comedi/drivers/dt3000.c
--- comedi-0.7.73~/comedi/drivers/dt3000.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/dt3000.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -333,7 +333,7 _at__at_
static int debug_n_ints = 0;
-static irqreturn_t dt3k_interrupt(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t dt3k_interrupt(int irq, void *d PT_REGS_ARG)
{
comedi_device *dev = d;
comedi_subdevice *s = dev->subdevices + 0;
_at__at_ -784,7 +784,7 _at__at_
dev->board_name = this_board->name;
if(comedi_request_irq(devpriv->pci_dev->irq, dt3k_interrupt,
- SA_SHIRQ, "dt3000", dev)){
+ IRQF_SHARED, "dt3000", dev)){
printk(" unable to allocate IRQ %u\n", devpriv->pci_dev->irq);
return -EINVAL;
}
diff -urNad comedi-0.7.73~/comedi/drivers/gsc_hpdi.c comedi-0.7.73/comedi/drivers/gsc_hpdi.c
--- comedi-0.7.73~/comedi/drivers/gsc_hpdi.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/gsc_hpdi.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -58,7 +58,7 _at__at_
static int hpdi_cmd( comedi_device *dev, comedi_subdevice *s );
static int hpdi_cmd_test( comedi_device *dev, comedi_subdevice *s, comedi_cmd *cmd );
static int hpdi_cancel( comedi_device *dev, comedi_subdevice *s );
-static irqreturn_t handle_interrupt(int irq, void *d, struct pt_regs *regs);
+static irqreturn_t handle_interrupt(int irq, void *d PT_REGS_ARG);
static int dio_config_block_size( comedi_device *dev, lsampl_t *data );
#undef HPDI_DEBUG // disable debugging messages
_at__at_ -610,7 +610,7 _at__at_
DEBUG_PRINT(" hpdi remapped to 0x%p\n", priv(dev)->hpdi_iobase);
// get irq
- if( comedi_request_irq( pcidev->irq, handle_interrupt, SA_SHIRQ, driver_hpdi.driver_name,
+ if( comedi_request_irq( pcidev->irq, handle_interrupt, IRQF_SHARED, driver_hpdi.driver_name,
dev ) )
{
printk( " unable to allocate irq %u\n", pcidev->irq );
_at__at_ -917,7 +917,7 _at__at_
// XXX check for buffer overrun somehow
}
-static irqreturn_t handle_interrupt(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t handle_interrupt(int irq, void *d PT_REGS_ARG)
{
comedi_device *dev = d;
comedi_subdevice *s = dev->read_subdev;
diff -urNad comedi-0.7.73~/comedi/drivers/icp_multi.c comedi-0.7.73/comedi/drivers/icp_multi.c
--- comedi-0.7.73~/comedi/drivers/icp_multi.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/icp_multi.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -600,11 +600,10 _at__at_
Parameters:
int irq
void *d Pointer to current device
- struct pt_regs *regs Pointer to
==============================================================================
*/
-static irqreturn_t interrupt_service_icp_multi(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t interrupt_service_icp_multi(int irq, void *d PT_REGS_ARG)
{
comedi_device *dev = d;
int int_no;
_at__at_ -929,7 +928,7 _at__at_
if (this_board->have_irq) {
if (irq) {
- if (comedi_request_irq(irq, interrupt_service_icp_multi, SA_SHIRQ, "Inova Icp Multi", dev)) {
+ if (comedi_request_irq(irq, interrupt_service_icp_multi, IRQF_SHARED, "Inova Icp Multi", dev)) {
printk(", unable to allocate IRQ %u, DISABLING IT", irq);
irq=0; /* Can't use IRQ */
}
diff -urNad comedi-0.7.73~/comedi/drivers/icp_multi.h comedi-0.7.73/comedi/drivers/icp_multi.h
--- comedi-0.7.73~/comedi/drivers/icp_multi.h 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/icp_multi.h 2007-07-25 11:45:27.000000000 +0200
_at__at_ -60,13 +60,18 _at__at_
inova_devices=NULL;
last=NULL;
- for(pcidev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, NULL); pcidev != NULL ;
- pcidev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, pcidev)) {
+ for(pcidev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, NULL); pcidev != NULL ;
+ pcidev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, pcidev)) {
if(pcidev->vendor==pci_vendor){
inova=kmalloc(sizeof(*inova),GFP_KERNEL);
+ if(!inova){
+ printk("icp_multi: pci_card_list_init: allocation failed\n");
+ pci_dev_put(pcidev);
+ break;
+ }
memset(inova,0,sizeof(*inova));
- inova->pcidev=pcidev;
+ inova->pcidev=pci_dev_get(pcidev);
if (last) { last->next=inova; }
else { inova_devices=inova; }
last=inova;
_at__at_ -100,7 +105,8 _at__at_
struct pcilst_struct *inova,*next;
for(inova=inova_devices; inova; inova=next){
- next=inova->next;
+ next=inova->next;
+ pci_dev_put(inova->pcidev);
kfree(inova);
}
diff -urNad comedi-0.7.73~/comedi/drivers/me4000.c comedi-0.7.73/comedi/drivers/me4000.c
--- comedi-0.7.73~/comedi/drivers/me4000.c 2006-06-12 01:33:28.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/me4000.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -189,8 +189,7 _at__at_
static irqreturn_t me4000_ai_isr(
int irq,
- void *dev_id,
- struct pt_regs *regs);
+ void *dev_id PT_REGS_ARG);
static int me4000_ai_do_cmd_test(
comedi_device *dev,
_at__at_ -305,7 +304,7 _at__at_
s->insn_read = me4000_ai_insn_read;
if(info->irq > 0){
- if(comedi_request_irq(info->irq, me4000_ai_isr, SA_SHIRQ, "ME-4000", dev)) {
+ if(comedi_request_irq(info->irq, me4000_ai_isr, IRQF_SHARED, "ME-4000", dev)) {
printk("comedi%d: me4000: me4000_attach(): Unable to allocate irq\n", dev->minor);
}
else{
_at__at_ -1675,7 +1674,7 _at__at_
-static irqreturn_t me4000_ai_isr(int irq, void *dev_id, struct pt_regs *regs){
+static irqreturn_t me4000_ai_isr(int irq, void *dev_id PT_REGS_ARG){
unsigned int tmp;
comedi_device *dev = dev_id;
comedi_subdevice *s = dev->subdevices;
diff -urNad comedi-0.7.73~/comedi/drivers/ni_6527.c comedi-0.7.73/comedi/drivers/ni_6527.c
--- comedi-0.7.73~/comedi/drivers/ni_6527.c 2005-10-06 19:42:04.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/ni_6527.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -197,7 +197,7 _at__at_
return 2;
}
-static irqreturn_t ni6527_interrupt(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t ni6527_interrupt(int irq, void *d PT_REGS_ARG)
{
comedi_device *dev = d;
comedi_subdevice *s = dev->subdevices + 2;
_at__at_ -349,7 +349,6 _at__at_
}
dev->board_name=this_board->name;
- dev->irq=mite_irq(devpriv->mite);
printk(" %s",dev->board_name);
printk(" ID=0x%02x", readb(devpriv->mite->daq_io_addr + ID_Register));
_at__at_ -395,11 +394,11 _at__at_
devpriv->mite->daq_io_addr + Clear_Register);
writeb(0x00, devpriv->mite->daq_io_addr + Master_Interrupt_Control);
- ret=comedi_request_irq(dev->irq,ni6527_interrupt,SA_SHIRQ,"ni6527",dev);
+ ret=comedi_request_irq(mite_irq(devpriv->mite),ni6527_interrupt,IRQF_SHARED,"ni6527",dev);
if(ret<0){
- dev->irq=0;
printk(" irq not available");
- }
+ }else
+ dev->irq = mite_irq(devpriv->mite);
printk("\n");
diff -urNad comedi-0.7.73~/comedi/drivers/ni_at_a2150.c comedi-0.7.73/comedi/drivers/ni_at_a2150.c
--- comedi-0.7.73~/comedi/drivers/ni_at_a2150.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/ni_at_a2150.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -177,7 +177,7 _at__at_
detach: a2150_detach,
};
-static irqreturn_t a2150_interrupt(int irq, void *d, struct pt_regs *regs);
+static irqreturn_t a2150_interrupt(int irq, void *d PT_REGS_ARG);
static int a2150_ai_cmdtest(comedi_device *dev,comedi_subdevice *s,comedi_cmd *cmd);
static int a2150_ai_cmd(comedi_device *dev, comedi_subdevice *s);
static int a2150_ai_rinsn(comedi_device *dev, comedi_subdevice *s, comedi_insn *insn, lsampl_t *data);
_at__at_ -202,7 +202,7 _at__at_
#endif
/* interrupt service routine */
-static irqreturn_t a2150_interrupt(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t a2150_interrupt(int irq, void *d PT_REGS_ARG)
{
int i;
int status;
diff -urNad comedi-0.7.73~/comedi/drivers/ni_atmio16d.c comedi-0.7.73/comedi/drivers/ni_atmio16d.c
--- comedi-0.7.73~/comedi/drivers/ni_atmio16d.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/ni_atmio16d.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -127,7 +127,7 _at__at_
/* function prototypes */
static int atmio16d_attach(comedi_device *dev,comedi_devconfig *it);
static int atmio16d_detach(comedi_device *dev);
-static irqreturn_t atmio16d_interrupt(int irq, void *d, struct pt_regs *regs);
+static irqreturn_t atmio16d_interrupt(int irq, void *d PT_REGS_ARG);
static int atmio16d_ai_cmdtest(comedi_device *dev, comedi_subdevice *s, comedi_cmd *cmd);
static int atmio16d_ai_cmd(comedi_device *dev, comedi_subdevice *s);
static int atmio16d_ai_cancel(comedi_device *dev, comedi_subdevice *s);
_at__at_ -254,7 +254,7 _at__at_
outw(2048, dev->iobase+DAC1_REG);
}
-static irqreturn_t atmio16d_interrupt(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t atmio16d_interrupt(int irq, void *d PT_REGS_ARG)
{
comedi_device *dev = d;
comedi_subdevice *s = dev->subdevices + 0;
diff -urNad comedi-0.7.73~/comedi/drivers/ni_labpc.c comedi-0.7.73/comedi/drivers/ni_labpc.c
--- comedi-0.7.73~/comedi/drivers/ni_labpc.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/ni_labpc.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -163,7 +163,7 _at__at_
static int labpc_attach(comedi_device *dev,comedi_devconfig *it);
static int labpc_cancel(comedi_device *dev, comedi_subdevice *s);
-static irqreturn_t labpc_interrupt(int irq, void *d, struct pt_regs *regs);
+static irqreturn_t labpc_interrupt(int irq, void *d PT_REGS_ARG);
static int labpc_drain_fifo(comedi_device *dev);
static void labpc_drain_dma(comedi_device *dev);
static void handle_isa_dma(comedi_device *dev);
_at__at_ -527,7 +527,7 _at__at_
{
isr_flags = 0;
if(thisboard->bustype == pci_bustype)
- isr_flags |= SA_SHIRQ;
+ isr_flags |= IRQF_SHARED;
if(comedi_request_irq( irq, labpc_interrupt, isr_flags, driver_labpc.driver_name, dev))
{
printk( "unable to allocate irq %u\n", irq);
_at__at_ -1317,7 +1317,7 _at__at_
}
/* interrupt service routine */
-static irqreturn_t labpc_interrupt(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t labpc_interrupt(int irq, void *d PT_REGS_ARG)
{
comedi_device *dev = d;
comedi_subdevice *s = dev->read_subdev;
diff -urNad comedi-0.7.73~/comedi/drivers/ni_mio_common.c comedi-0.7.73/comedi/drivers/ni_mio_common.c
--- comedi-0.7.73~/comedi/drivers/ni_mio_common.c 2006-08-16 17:36:58.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/ni_mio_common.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -420,7 +420,7 _at__at_
}
-static irqreturn_t ni_E_interrupt(int irq,void *d,struct pt_regs * regs)
+static irqreturn_t ni_E_interrupt(int irq,void *d PT_REGS_ARG)
{
comedi_device *dev=d;
unsigned short a_status;
diff -urNad comedi-0.7.73~/comedi/drivers/ni_mio_cs.c comedi-0.7.73/comedi/drivers/ni_mio_cs.c
--- comedi-0.7.73~/comedi/drivers/ni_mio_cs.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/ni_mio_cs.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -164,7 +164,7 _at__at_
#define IRQ_POLARITY 1
-#define NI_E_IRQ_FLAGS SA_SHIRQ
+#define NI_E_IRQ_FLAGS IRQF_SHARED
typedef struct{
dev_link_t *link;
_at__at_ -437,6 +437,10 _at__at_
link->irq.IRQInfo1=parse.cftable_entry.irq.IRQInfo1;
link->irq.IRQInfo2=parse.cftable_entry.irq.IRQInfo2;
ret = pcmcia_request_irq(handle, &link->irq);
+ if(ret)
+ {
+ printk("pcmcia_request_irq() returned error: %i\n", ret);
+ }
//printk("RequestIRQ 0x%02x\n",ret);
link->conf.ConfigIndex=1;
_at__at_ -490,7 +494,7 _at__at_
printk(" %s",boardtype.name);
dev->board_name=boardtype.name;
- if( (ret=comedi_request_irq(dev->irq,ni_E_interrupt,NI_E_IRQ_FLAGS,"ni_mio_cs",dev))<0 ){
+ if( (ret=comedi_request_irq(irq,ni_E_interrupt,NI_E_IRQ_FLAGS,"ni_mio_cs",dev))<0 ){
printk(" irq not available\n");
return -EINVAL;
}
diff -urNad comedi-0.7.73~/comedi/drivers/ni_pcidio.c comedi-0.7.73/comedi/drivers/ni_pcidio.c
--- comedi-0.7.73~/comedi/drivers/ni_pcidio.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/ni_pcidio.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -420,7 +420,7 _at__at_
}
}
-static irqreturn_t nidio_interrupt(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t nidio_interrupt(int irq, void *d PT_REGS_ARG)
{
comedi_device *dev=d;
comedi_subdevice *s = dev->subdevices;
_at__at_ -1130,7 +1130,7 _at__at_
/* disable interrupts on board */
writeb(0x00,devpriv->mite->daq_io_addr+Master_DMA_And_Interrupt_Control);
- ret=comedi_request_irq(irq,nidio_interrupt,SA_SHIRQ,"ni_pcidio",dev);
+ ret=comedi_request_irq(irq,nidio_interrupt,IRQF_SHARED,"ni_pcidio",dev);
if(ret<0){
printk(" irq not available");
}
diff -urNad comedi-0.7.73~/comedi/drivers/ni_pcimio.c comedi-0.7.73/comedi/drivers/ni_pcimio.c
--- comedi-0.7.73~/comedi/drivers/ni_pcimio.c 2006-08-16 21:11:53.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/ni_pcimio.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -1249,7 +1249,7 _at__at_
#define interrupt_pin(a) 0
#define IRQ_POLARITY 1
-#define NI_E_IRQ_FLAGS SA_SHIRQ
+#define NI_E_IRQ_FLAGS IRQF_SHARED
#include "ni_mio_common.c"
diff -urNad comedi-0.7.73~/comedi/drivers/pcl711.c comedi-0.7.73/comedi/drivers/pcl711.c
--- comedi-0.7.73~/comedi/drivers/pcl711.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/pcl711.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -122,8 +122,6 _at__at_
BIP_RANGE( 10 )
}};
-typedef int bool;
-
/*
* flags
*/
_at__at_ -181,7 +179,7 _at__at_
#define devpriv ((pcl711_private *)dev->private)
-static irqreturn_t pcl711_interrupt(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t pcl711_interrupt(int irq, void *d PT_REGS_ARG)
{
int lo, hi;
int data;
diff -urNad comedi-0.7.73~/comedi/drivers/pcl812.c comedi-0.7.73/comedi/drivers/pcl812.c
--- comedi-0.7.73~/comedi/drivers/pcl812.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/pcl812.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -848,7 +848,7 _at__at_
/*
==============================================================================
*/
-static irqreturn_t interrupt_pcl812_ai_int(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t interrupt_pcl812_ai_int(int irq, void *d)
{
char err=1;
unsigned int mask, timeout;
_at__at_ -931,7 +931,7 _at__at_
/*
==============================================================================
*/
-static irqreturn_t interrupt_pcl812_ai_dma(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t interrupt_pcl812_ai_dma(int irq, void *d)
{
comedi_device *dev = d;
comedi_subdevice *s = dev->subdevices + 0;
_at__at_ -976,12 +976,12 _at__at_
/*
==============================================================================
*/
-static irqreturn_t interrupt_pcl812(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t interrupt_pcl812(int irq, void *d PT_REGS_ARG)
{
comedi_device *dev = d;
- if (devpriv->ai_dma) { return interrupt_pcl812_ai_dma(irq, d, regs); }
- else { return interrupt_pcl812_ai_int(irq, d, regs); };
+ if (devpriv->ai_dma) { return interrupt_pcl812_ai_dma(irq, d); }
+ else { return interrupt_pcl812_ai_int(irq, d); };
}
/*
diff -urNad comedi-0.7.73~/comedi/drivers/pcl816.c comedi-0.7.73/comedi/drivers/pcl816.c
--- comedi-0.7.73~/comedi/drivers/pcl816.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/pcl816.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -285,7 +285,7 _at__at_
one sample per interrupt version
*/
static irqreturn_t
-interrupt_pcl816_ai_mode13_int (int irq, void *d, struct pt_regs *regs)
+interrupt_pcl816_ai_mode13_int (int irq, void *d)
{
comedi_device *dev = d;
comedi_subdevice *s = dev->subdevices + 0;
_at__at_ -370,7 +370,7 _at__at_
}
-static irqreturn_t interrupt_pcl816_ai_mode13_dma(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t interrupt_pcl816_ai_mode13_dma(int irq, void *d)
{
comedi_device *dev = d;
comedi_subdevice *s = dev->subdevices + 0;
_at__at_ -417,7 +417,7 _at__at_
INT procedure
*/
static irqreturn_t
-interrupt_pcl816 (int irq, void *d, struct pt_regs *regs)
+interrupt_pcl816 (int irq, void *d PT_REGS_ARG)
{
comedi_device *dev = d;
DPRINTK("<I>");
_at__at_ -431,10 +431,10 _at__at_
switch (devpriv->int816_mode) {
case INT_TYPE_AI1_DMA:
case INT_TYPE_AI3_DMA:
- return interrupt_pcl816_ai_mode13_dma (irq, d, regs);
+ return interrupt_pcl816_ai_mode13_dma (irq, d);
case INT_TYPE_AI1_INT:
case INT_TYPE_AI3_INT:
- return interrupt_pcl816_ai_mode13_int (irq, d, regs);
+ return interrupt_pcl816_ai_mode13_int (irq, d);
}
diff -urNad comedi-0.7.73~/comedi/drivers/pcl818.c comedi-0.7.73/comedi/drivers/pcl818.c
--- comedi-0.7.73~/comedi/drivers/pcl818.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/pcl818.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -499,7 +499,7 _at__at_
analog input interrupt mode 1 & 3, 818 cards
one sample per interrupt version
*/
-static irqreturn_t interrupt_pcl818_ai_mode13_int(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t interrupt_pcl818_ai_mode13_int(int irq, void *d)
{
comedi_device *dev = d;
comedi_subdevice *s = dev->subdevices + 0;
_at__at_ -549,7 +549,7 _at__at_
==============================================================================
analog input dma mode 1 & 3, 818 cards
*/
-static irqreturn_t interrupt_pcl818_ai_mode13_dma(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t interrupt_pcl818_ai_mode13_dma(int irq, void *d)
{
comedi_device *dev = d;
comedi_subdevice *s = dev->subdevices + 0;
_at__at_ -613,7 +613,7 _at__at_
==============================================================================
analog input dma mode 1 & 3 over RTC, 818 cards
*/
-static irqreturn_t interrupt_pcl818_ai_mode13_dma_rtc(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t interrupt_pcl818_ai_mode13_dma_rtc(int irq, void *d)
{
comedi_device *dev = d;
comedi_subdevice *s = dev->subdevices + 0;
_at__at_ -701,7 +701,7 _at__at_
==============================================================================
analog input interrupt mode 1 & 3, 818HD/HG cards
*/
-static irqreturn_t interrupt_pcl818_ai_mode13_fifo(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t interrupt_pcl818_ai_mode13_fifo(int irq, void *d)
{
comedi_device *dev = d;
comedi_subdevice *s = dev->subdevices + 0;
_at__at_ -763,7 +763,7 _at__at_
==============================================================================
INT procedure
*/
-static irqreturn_t interrupt_pcl818(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t interrupt_pcl818(int irq, void *d PT_REGS_ARG)
{
comedi_device *dev = d;
_at__at_ -778,17 +778,17 _at__at_
switch (devpriv->ai_mode) {
case INT_TYPE_AI1_DMA:
case INT_TYPE_AI3_DMA:
- return interrupt_pcl818_ai_mode13_dma(irq, d, regs);
+ return interrupt_pcl818_ai_mode13_dma(irq, d);
case INT_TYPE_AI1_INT:
case INT_TYPE_AI3_INT:
- return interrupt_pcl818_ai_mode13_int(irq, d, regs);
+ return interrupt_pcl818_ai_mode13_int(irq, d);
case INT_TYPE_AI1_FIFO:
case INT_TYPE_AI3_FIFO:
- return interrupt_pcl818_ai_mode13_fifo(irq, d, regs);
+ return interrupt_pcl818_ai_mode13_fifo(irq, d);
#ifdef PCL818_MODE13_AO
case INT_TYPE_AO1_INT:
case INT_TYPE_AO3_INT:
- return interrupt_pcl818_ao_mode13_int(irq, d, regs);
+ return interrupt_pcl818_ao_mode13_int(irq, d);
#endif
default:
break;
diff -urNad comedi-0.7.73~/comedi/drivers/pcmda12.c comedi-0.7.73/comedi/drivers/pcmda12.c
--- comedi-0.7.73~/comedi/drivers/pcmda12.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/pcmda12.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -22,7 +22,7 _at__at_
/*
Driver: pcmda12.o
Description: A driver for the Winsystems PCM-D/A-12
-Devices: (Winsystems) PCM-D/A-12 [pcmda12]
+Devices: [Winsystems] PCM-D/A-12 (pcmda12)
Author: Calin Culianu <calin_at_ajvar.org>
Updated: Fri, 13 Jan 2006 12:01:01 -0500
Status: works
diff -urNad comedi-0.7.73~/comedi/drivers/pcmuio.c comedi-0.7.73/comedi/drivers/pcmuio.c
--- comedi-0.7.73~/comedi/drivers/pcmuio.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/pcmuio.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -22,7 +22,7 _at__at_
/*
Driver: pcmuio.o
Description: A driver for the PCM-UIO48A and PCM-UIO96A boards from Winsystems.
-Devices: (Winsystems) PCM-UIO48A [pcmuio48], (Winsystems) PCM-UIO96A [pcmuio96]
+Devices: [Winsystems] PCM-UIO48A (pcmuio48), PCM-UIO96A (pcmuio96)
Author: Calin Culianu <calin_at_ajvar.org>
Updated: Fri, 13 Jan 2006 12:01:01 -0500
Status: works
_at__at_ -265,7 +265,7 _at__at_
static int pcmuio_dio_insn_config(comedi_device *dev,comedi_subdevice *s,
comedi_insn *insn,lsampl_t *data);
-static irqreturn_t interrupt_pcmuio(int irq, void *d, struct pt_regs *regs);
+static irqreturn_t interrupt_pcmuio(int irq, void *d PT_REGS_ARG);
static void pcmuio_stop_intr(comedi_device *, comedi_subdevice *);
static int pcmuio_cancel(comedi_device *dev, comedi_subdevice *s);
static int pcmuio_cmd(comedi_device *dev, comedi_subdevice *s);
_at__at_ -413,7 +413,7 _at__at_
init_asics(dev); /* clear out all the registers, basically */
for (asic = 0; irq[0] && asic < MAX_ASICS; ++asic) {
- if (irq[asic] && comedi_request_irq(irq[asic], interrupt_pcmuio, SA_SHIRQ, thisboard->name, dev)) {
+ if (irq[asic] && comedi_request_irq(irq[asic], interrupt_pcmuio, IRQF_SHARED, thisboard->name, dev)) {
int i;
/* unroll the allocated irqs.. */
for (i = asic-1; i >= 0; --i) {
_at__at_ -681,7 +681,7 _at__at_
(void)unlock_port(dev, asic, port); /* not reached, suppress compiler warnings*/
}
-static irqreturn_t interrupt_pcmuio(int irq, void *d, struct pt_regs *regs)
+static irqreturn_t interrupt_pcmuio(int irq, void *d PT_REGS_ARG)
{
int asic, got1 = 0;
comedi_device *dev = (comedi_device *)d;
diff -urNad comedi-0.7.73~/comedi/drivers/quatech_daqp_cs.c comedi-0.7.73/comedi/drivers/quatech_daqp_cs.c
--- comedi-0.7.73~/comedi/drivers/quatech_daqp_cs.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/quatech_daqp_cs.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -311,7 +311,7 _at__at_
* which run pretty quick.
*/
-static void daqp_interrupt(int irq, void * dev_id, struct pt_regs *regs)
+static void daqp_interrupt(int irq, void * dev_id PT_REGS_ARG)
{
local_info_t *local = (local_info_t *)dev_id;
comedi_device *dev = local->dev;
diff -urNad comedi-0.7.73~/comedi/drivers/rtd520.c comedi-0.7.73/comedi/drivers/rtd520.c
--- comedi-0.7.73~/comedi/drivers/rtd520.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/rtd520.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -734,7 +734,7 _at__at_
static int rtd_ai_cancel ( comedi_device *dev, comedi_subdevice *s);
//static int rtd_ai_poll (comedi_device *dev,comedi_subdevice *s);
static int rtd_ns_to_timer (unsigned int *ns, int roundMode);
-static irqreturn_t rtd_interrupt ( int irq, void *d, struct pt_regs *regs);
+static irqreturn_t rtd_interrupt ( int irq, void *d PT_REGS_ARG);
/*
_at__at_ -924,7 +924,7 _at__at_
/* check if our interrupt is available and get it */
if((ret=comedi_request_irq (devpriv->pci_dev->irq, rtd_interrupt,
- SA_SHIRQ, "rtd520", dev)) < 0) {
+ IRQF_SHARED, "rtd520", dev)) < 0) {
printk("Could not get interrupt! (%u)\n", devpriv->pci_dev->irq);
return ret;
}
_at__at_ -1501,8 +1501,8 _at__at_
*/
static irqreturn_t rtd_interrupt (
int irq, /* interrupt number (ignored) */
- void *d, /* our data */
- struct pt_regs *regs) /* cpu context (ignored) */
+ void *d /* our data */
+ PT_REGS_ARG) /* cpu context (ignored) */
{
comedi_device *dev = d; /* must be called "dev" for devpriv */
u16 status;
diff -urNad comedi-0.7.73~/comedi/drivers/rti800.c comedi-0.7.73/comedi/drivers/rti800.c
--- comedi-0.7.73~/comedi/drivers/rti800.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/rti800.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -139,7 +139,7 _at__at_
};
COMEDI_INITCLEANUP(driver_rti800);
-static irqreturn_t rti800_interrupt(int irq, void *dev, struct pt_regs *regs);
+static irqreturn_t rti800_interrupt(int irq, void *dev PT_REGS_ARG);
typedef struct {
enum {
_at__at_ -159,19 +159,20 _at__at_
} dac0_coding, dac1_coding;
comedi_lrange * ao_range_type_list[2];
lsampl_t ao_readback[2];
+ int muxgain_bits;
} rti800_private;
#define devpriv ((rti800_private *)dev->private)
#define RTI800_TIMEOUT 100
-static irqreturn_t rti800_interrupt(int irq, void *dev, struct pt_regs *regs)
+static irqreturn_t rti800_interrupt(int irq, void *dev PT_REGS_ARG)
{
return IRQ_HANDLED;
}
// settling delay times in usec for different gains
-//static int gaindelay[]={10,20,40,80};
+static int gaindelay[]={10,20,40,80};
static int rti800_ai_insn_read(comedi_device *dev,comedi_subdevice *s,
comedi_insn *insn,lsampl_t *data)
_at__at_ -179,19 +180,26 _at__at_
int i,t;
int status;
int chan = CR_CHAN(insn->chanspec);
- int gain = CR_RANGE(insn->chanspec);
+ unsigned gain = CR_RANGE(insn->chanspec);
+ unsigned muxgain_bits;
inb(dev->iobase + RTI800_ADCHI);
outb(0,dev->iobase+RTI800_CLRFLAGS);
- outb(chan | (gain << 5), dev->iobase + RTI800_MUXGAIN);
+ muxgain_bits = chan | (gain << 5);
+ if(muxgain_bits |= devpriv->muxgain_bits)
+ {
+ devpriv->muxgain_bits = muxgain_bits;
+ outb(devpriv->muxgain_bits, dev->iobase + RTI800_MUXGAIN);
- /* without a delay here, the RTI_OVERRUN bit
- * gets set, and you will have an error. Not
- * sure if this is a long enough delay though.
- * comedi_udelay( gaindelay[ gain ] ) definitely
- * works */
- comedi_udelay(1);
+ /* without a delay here, the RTI_OVERRUN bit
+ * gets set, and you will have an error. */
+ if(insn->n > 0)
+ {
+ BUG_ON(gain >= sizeof(gaindelay) / sizeof(gaindelay[0]));
+ comedi_udelay(gaindelay[gain]);
+ }
+ }
for(i=0;i<insn->n;i++){
outb(0, dev->iobase + RTI800_CONVERT);
_at__at_ -347,6 +355,7 _at__at_
devpriv->dac0_coding = it->options[6];
devpriv->dac1_range = it->options[7];
devpriv->dac1_coding = it->options[8];
+ devpriv->muxgain_bits = -1;
s=dev->subdevices+0;
/* ai subdevice */
diff -urNad comedi-0.7.73~/comedi/drivers/s626.c comedi-0.7.73/comedi/drivers/s626.c
--- comedi-0.7.73~/comedi/drivers/s626.c 2006-08-07 19:33:25.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/s626.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -243,7 +243,7 _at__at_
static int s626_ai_load_polllist(uint8_t *ppl, comedi_cmd *cmd);
static int s626_ai_inttrig(comedi_device *dev,comedi_subdevice *s,
unsigned int trignum);
-static irqreturn_t s626_irq_handler(int irq,void *d,struct pt_regs * regs);
+static irqreturn_t s626_irq_handler(int irq,void *d PT_REGS_ARG);
static lsampl_t s626_ai_reg_to_uint(int data);
/* static lsampl_t s626_uint_to_reg(comedi_subdevice *s, int data); */
_at__at_ -566,7 +566,7 _at__at_
if(dev->irq==0){
printk(" unknown irq (bad)\n");
}else{
- if( (ret=comedi_request_irq(dev->irq,s626_irq_handler,SA_SHIRQ,"s626",dev))<0 ){
+ if( (ret=comedi_request_irq(dev->irq,s626_irq_handler,IRQF_SHARED,"s626",dev))<0 ){
printk(" irq not available\n");
dev->irq=0;
}
_at__at_ -914,7 +914,7 _at__at_
/* return 0; */
/* } */
-static irqreturn_t s626_irq_handler(int irq,void *d,struct pt_regs * regs)
+static irqreturn_t s626_irq_handler(int irq,void *d PT_REGS_ARG)
{
comedi_device *dev=d;
comedi_subdevice *s;
diff -urNad comedi-0.7.73~/comedi/drivers/usbdux.c comedi-0.7.73/comedi/drivers/usbdux.c
--- comedi-0.7.73~/comedi/drivers/usbdux.c 2006-06-11 20:52:52.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/usbdux.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -390,7 +390,7 _at__at_
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
static void usbduxsub_ai_IsocIrq(struct urb *urb)
#else
-static void usbduxsub_ai_IsocIrq(struct urb *urb, struct pt_regs *regs)
+static void usbduxsub_ai_IsocIrq(struct urb *urb PT_REGS_ARG)
#endif
{
int i,err,n;
_at__at_ -654,7 +654,7 _at__at_
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
static void usbduxsub_ao_IsocIrq(struct urb *urb) {
#else
-static void usbduxsub_ao_IsocIrq(struct urb *urb, struct pt_regs *regs) {
+static void usbduxsub_ao_IsocIrq(struct urb *urb PT_REGS_ARG) {
#endif
int i,ret;
int8_t* datap;
diff -urNad comedi-0.7.73~/comedi/drivers/usbduxfast.c comedi-0.7.73/comedi/drivers/usbduxfast.c
--- comedi-0.7.73~/comedi/drivers/usbduxfast.c 2006-06-11 20:52:52.000000000 +0200
+++ comedi-0.7.73/comedi/drivers/usbduxfast.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -322,7 +322,7 _at__at_
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
static void usbduxfastsub_ai_Irq(struct urb *urb)
#else
-static void usbduxfastsub_ai_Irq(struct urb *urb, struct pt_regs *regs)
+static void usbduxfastsub_ai_Irq(struct urb *urb PT_REGS_ARG)
#endif
{
int n,err;
_at__at_ -672,7 +672,7 _at__at_
/* step 1: make sure trigger sources are trivially valid */
tmp = cmd->start_src;
- cmd->start_src &= TRIG_NOW | TRIG_EXT;
+ cmd->start_src &= TRIG_NOW;
if(!cmd->start_src || tmp != cmd->start_src) err++;
tmp = cmd->scan_begin_src;
_at__at_ -715,7 +715,7 _at__at_
/* step 3: make sure arguments are trivially compatible */
- if(cmd->start_arg == TRIG_NOW && cmd->start_arg != 0)
+ if(cmd->start_src == TRIG_NOW && cmd->start_arg != 0)
{
cmd->start_arg = 0;
err++;
diff -urNad comedi-0.7.73~/comedi/kcomedilib/ksyms.c comedi-0.7.73/comedi/kcomedilib/ksyms.c
--- comedi-0.7.73~/comedi/kcomedilib/ksyms.c 2003-08-12 01:51:45.000000000 +0200
+++ comedi-0.7.73/comedi/kcomedilib/ksyms.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -131,6 +131,7 _at__at_
/* buffer configuration */
EXPORT_SYMBOL(comedi_mark_buffer_read);
+EXPORT_SYMBOL(comedi_mark_buffer_written);
//EXPORT_SYMBOL(comedi_get_range);
EXPORT_SYMBOL(comedi_get_len_chanlist);
diff -urNad comedi-0.7.73~/comedi/rt.c comedi-0.7.73/comedi/rt.c
--- comedi-0.7.73~/comedi/rt.c 2005-06-16 01:24:19.000000000 +0200
+++ comedi-0.7.73/comedi/rt.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -54,7 +54,7 _at__at_
struct comedi_irq_struct {
int rt;
int irq;
- irqreturn_t (*handler)(int irq,void *dev_id,struct pt_regs *regs);
+ irqreturn_t (*handler)(int irq,void *dev_id PT_REGS_ARG);
unsigned long flags;
const char *device;
comedi_device *dev_id;
_at__at_ -65,7 +65,8 _at__at_
static struct comedi_irq_struct *comedi_irqs[NR_IRQS];
-int comedi_request_irq(unsigned irq, irqreturn_t (*handler)(int, void *,struct pt_regs *),
+int comedi_request_irq(unsigned irq, irqreturn_t (*handler)(int, void *
+ PT_REGS_ARG),
unsigned long flags,const char *device,comedi_device *dev_id)
{
struct comedi_irq_struct *it;
_at__at_ -73,12 +74,12 _at__at_
/* null shared interrupt flag, since rt interrupt handlers do not
* support it, and this version of comedi_request_irq() is only
* called for kernels with rt support */
- unsigned long unshared_flags = flags & ~SA_SHIRQ;
+ unsigned long unshared_flags = flags & ~IRQF_SHARED;
ret = request_irq(irq, handler, unshared_flags, device, dev_id);
if(ret<0){
// we failed, so fall back on allowing shared interrupt (which we won't ever make RT)
- if(flags & SA_SHIRQ)
+ if(flags & IRQF_SHARED)
{
rt_printk("comedi: cannot get unshared interrupt, will not use RT interrupts.\n");
ret=request_irq(irq, handler, flags, device, dev_id);
_at__at_ -194,7 +195,7 _at__at_
rt_printk("comedi: null irq struct?\n");
return;
}
- it->handler(irq, it->dev_id, NULL);
+ it->handler(irq, it->dev_id PT_REGS_NULL);
rt_enable_irq(irq); //needed by rtai-adeos, seems like it shouldn't hurt earlier versions
}
_at__at_ -312,7 +313,7 _at__at_
{
struct comedi_irq_struct *it = cookie;
- it->handler(irq, it->dev_id, NULL);
+ it->handler(irq, it->dev_id PT_REGS_NULL);
rthal_irq_enable(irq);
}
_at__at_ -345,13 +346,13 _at__at_
/* RTLinux section */
#ifdef CONFIG_COMEDI_RTL
-static unsigned int handle_rtl_irq(unsigned int irq,struct pt_regs *regs)
+static unsigned int handle_rtl_irq(unsigned int irq PT_REGS_ARG)
{
struct comedi_irq_struct *it;
it = comedi_irqs[irq];
if( it == NULL ) return 0;
- it->handler( irq, it->dev_id, regs );
+ it->handler( irq, it->dev_id PT_REGS_NULL );
rtl_hard_enable_irq(irq);
return 0;
}
diff -urNad comedi-0.7.73~/comedi/rt_pend_tq.c comedi-0.7.73/comedi/rt_pend_tq.c
--- comedi-0.7.73~/comedi/rt_pend_tq.c 2005-06-16 01:24:19.000000000 +0200
+++ comedi-0.7.73/comedi/rt_pend_tq.c 2007-07-25 11:45:27.000000000 +0200
_at__at_ -69,7 +69,7 _at__at_
#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, struct pt_regs * regs)
+void rt_pend_irq_handler(int irq, void *dev PT_REGS_ARG)
#endif
{
while(rt_pend_head!=rt_pend_tail) {
diff -urNad comedi-0.7.73~/include/linux/comedi_rt.h comedi-0.7.73/include/linux/comedi_rt.h
--- comedi-0.7.73~/include/linux/comedi_rt.h 2007-07-25 11:45:07.000000000 +0200
+++ comedi-0.7.73/include/linux/comedi_rt.h 2007-07-25 11:45:51.000000000 +0200
_at__at_ -57,8 +57,8 _at__at_
#define rt_printk printk
#endif
-int comedi_request_irq(unsigned int irq,irqreturn_t (*handler)(int,void *,
- struct pt_regs *regs),unsigned long flags,const char *device,
+int comedi_request_irq(unsigned int irq,irqreturn_t (*handler)(int,void * PT_REGS_ARG),
+ unsigned long flags,const char *device,
comedi_device *dev_id);
void comedi_free_irq(unsigned int irq,comedi_device *dev_id);
void comedi_rt_init(void);
diff -urNad comedi-0.7.73~/include/linux/comedilib.h comedi-0.7.73/include/linux/comedilib.h
--- comedi-0.7.73~/include/linux/comedilib.h 2003-03-27 18:02:43.000000000 +0100
+++ comedi-0.7.73/include/linux/comedilib.h 2007-07-25 11:45:27.000000000 +0200
_at__at_ -117,6 +117,8 _at__at_
int comedi_get_buffer_size(comedi_t *dev,unsigned int subdev);
int comedi_mark_buffer_read( comedi_t *dev, unsigned int subdevice,
unsigned int num_bytes );
+int comedi_mark_buffer_written( comedi_t *dev, unsigned int subdevice,
+ unsigned int num_bytes );
int comedi_get_buffer_contents( comedi_t *dev, unsigned int subdevice );
int comedi_get_buffer_offset( comedi_t *dev, unsigned int subdevice );
diff -urNad comedi-0.7.73~/include/linux/config.h comedi-0.7.73/include/linux/config.h
--- comedi-0.7.73~/include/linux/config.h 2005-10-07 07:04:04.000000000 +0200
+++ comedi-0.7.73/include/linux/config.h 2007-07-25 11:45:27.000000000 +0200
_at__at_ -1,8 +1,12 _at__at_
#ifndef __MULTI_CONFIG_H_
#define __MULTI_CONFIG_H_
+#include <linux/version.h>
+
#include <config.h>
-#include_next <linux/config.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+#include_next <linux/config.h>
#endif
+#endif
diff -urNad comedi-0.7.73~/include/linux/device.h comedi-0.7.73/include/linux/device.h
--- comedi-0.7.73~/include/linux/device.h 2006-01-15 21:34:09.000000000 +0100
+++ comedi-0.7.73/include/linux/device.h 2007-07-25 11:45:27.000000000 +0200
_at__at_ -27,7 +27,7 _at__at_
static inline void class_destroy(struct class *cs)
{};
-static inline struct class_device *CLASS_DEVICE_CREATE(struct class *cls,
+static inline struct class_device *COMEDI_CLASS_DEVICE_CREATE(struct class *cls,
struct class_device *parent, dev_t devt, struct device *device,
char *fmt, ...)
{
_at__at_ -47,7 +47,7 _at__at_
(struct class *)class_simple_create(owner, name)
#define class_destroy(cs) \
class_simple_destroy((struct class_simple *)(cs))
-#define CLASS_DEVICE_CREATE(cs, parent, dev, device, fmt...) \
+#define COMEDI_CLASS_DEVICE_CREATE(cs, parent, dev, device, fmt...) \
class_simple_device_add((struct class_simple *)(cs), \
dev, device, fmt)
#define class_device_destroy(cs, dev) \
_at__at_ -57,12 +57,12 _at__at_
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,15)
-#define CLASS_DEVICE_CREATE(cs, parent, dev, device, fmt...) \
+#define COMEDI_CLASS_DEVICE_CREATE(cs, parent, dev, device, fmt...) \
class_device_create(cs, dev, device, fmt)
#else
-#define CLASS_DEVICE_CREATE(cs, parent, dev, device, fmt...) \
+#define COMEDI_CLASS_DEVICE_CREATE(cs, parent, dev, device, fmt...) \
class_device_create(cs, parent, dev, device, fmt)
#endif // LINUX_VERSION_CODE < KERNEL_VERSION(2,6,15)
diff -urNad comedi-0.7.73~/include/linux/interrupt.h comedi-0.7.73/include/linux/interrupt.h
--- comedi-0.7.73~/include/linux/interrupt.h 2003-12-19 23:47:17.000000000 +0100
+++ comedi-0.7.73/include/linux/interrupt.h 2007-07-25 11:45:27.000000000 +0200
_at__at_ -19,16 +19,50 _at__at_
#ifndef __COMPAT_LINUX_INTERRUPT_H_
#define __COMPAT_LINUX_INTERRUPT_H_
+#include_next <linux/interrupt.h>
+
#include <linux/version.h>
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 23)
+#ifndef IRQ_NONE
typedef void irqreturn_t;
#define IRQ_NONE
#define IRQ_HANDLED
#define IRQ_RETVAL(x) (void)(x)
#endif
-#include_next <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
+
+/* if interrupt handler prototype has pt_regs* parameter */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+#define PT_REGS_ARG , struct pt_regs *regs
+#define PT_REGS_CALL , regs
+#define PT_REGS_NULL , NULL
+#else
+#define PT_REGS_ARG
+#define PT_REGS_CALL
+#define PT_REGS_NULL
+#endif
#endif
diff -urNad comedi-0.7.73~/include/linux/stddef.h comedi-0.7.73/include/linux/stddef.h
--- comedi-0.7.73~/include/linux/stddef.h 1970-01-01 01:00:00.000000000 +0100
+++ comedi-0.7.73/include/linux/stddef.h 2007-07-25 11:45:27.000000000 +0200
_at__at_ -0,0 +1,34 _at__at_
+/*
+ linux/stddef.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_STDDEF_H_
+#define __COMPAT_LINUX_STDDEF_H_
+
+#include <linux/version.h>
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+typedef enum
+{
+ false,
+ true
+} bool;
+#endif
+
+#include_next <linux/stddef.h>
+
+#endif
Received on 2007-07-30Z11:05:13