fixes for bugs suggested by check_driver
authorDavid Schleef <ds@schleef.org>
Sun, 4 Mar 2001 10:55:52 +0000 (10:55 +0000)
committerDavid Schleef <ds@schleef.org>
Sun, 4 Mar 2001 10:55:52 +0000 (10:55 +0000)
20 files changed:
comedi/drivers/adl_pci9118.c
comedi/drivers/check_driver
comedi/drivers/das16-new.c
comedi/drivers/das16.c
comedi/drivers/das6402.c
comedi/drivers/dt2811.c
comedi/drivers/dt2814.c
comedi/drivers/dt2815.c
comedi/drivers/dt282x.c
comedi/drivers/ni_atmio16d.c
comedi/drivers/ni_pcidio.c
comedi/drivers/ni_pcimio.c
comedi/drivers/pcl711.c
comedi/drivers/pcl724.c
comedi/drivers/pcl725.c
comedi/drivers/pcl726.c
comedi/drivers/pcl812.c
comedi/drivers/pcl818.c
comedi/drivers/rti800.c
comedi/drivers/rti802.c

index caf9d1daec746769210a706769fee858fb945f62..b3431abc6dc3b339c79e3b595eb28ddeb8ece948 100644 (file)
@@ -1298,7 +1298,7 @@ static int pci9118_attach(comedi_device *dev,comedi_devconfig *it)
         request_region(devpriv->iobase_a, devpriv->iosize_a, "ADLink PCI-9118");
        
        if (irq>0)  {
-               if (request_irq(irq, interrupt_pci9118, SA_INTERRUPT, "ADLink PCI-9118", dev)) {
+               if (comedi_request_irq(irq, interrupt_pci9118, 0, "ADLink PCI-9118", dev)) {
                        rt_printk(", unable to allocate IRQ %d, DISABLING IT", irq);
                        irq=0; /* Can't use IRQ */
                } else {
index 035fb04d91c1308d2805f86a4c3034ab0718b2af..b88bfb6458dcb04b142ac1e852f53f9a4d798420 100755 (executable)
@@ -111,6 +111,7 @@ if grep 'comedi_cmd' ${driver} &>/dev/null;then
        echo "uses cmd"
        cmd=yes
 else
+       echo "W: doesn't use cmd"
        cmd=no
 fi
 
@@ -118,6 +119,7 @@ if grep 'comedi_insn' ${driver} &>/dev/null;then
        echo "uses insn"
        insn=yes
 else
+       echo "W: doesn't use insn"
        insn=no
 fi
 
@@ -169,4 +171,7 @@ if grep 'int init_module' ${driver} &>/dev/null;then
        echo "W: suggest using COMEDI_INITCLEANUP"
 fi
 
+if grep 'range_unknown' ${driver} &>/dev/null;then
+       echo "W: uses range_unknown"
+fi
 
index 5b0db90247286c4e4c0a0dd1e8844b4090be49cb..190bfbe2b90b555e5ed96d92f633b578ff22d229 100644 (file)
@@ -1034,7 +1034,7 @@ static int das16_attach(comedi_device *dev, comedi_devconfig *it)
        /* now for the irq */
        irq=it->options[1];
        if(irq>0){
-               if((ret=request_irq(irq,das16_interrupt,SA_INTERRUPT,"das16",dev))<0)
+               if((ret=comedi_request_irq(irq,das16_interrupt,0,"das16",dev))<0)
                        return ret;
                dev->irq=irq;
                printk(" ( irq = %d )\n",irq);
index 2952bf34ef11002cf00287f9b5d51204dc1ac8ff..be34fd812ab7db183d467d7f1ecbc512b2ac5fb9 100644 (file)
@@ -317,7 +317,7 @@ static int das16_attach(comedi_device *dev,comedi_devconfig *it)
        if(irq<0 || irq>=16 || irq_list[irq]<0){
                return -EINVAL;
        }
-       if (request_irq(irq, das16_interrupt, SA_INTERRUPT, "das16", dev) == 0) {
+       if (comedi_request_irq(irq, das16_interrupt, 0, "das16", dev) == 0) {
                return -EIO;
        }
        dev->irq=irq;
index 216695941fe86b2f21be5f7577e4dd4e7728a8b9..f7815cab452bc63128e1d2d30247bac087051f54 100644 (file)
@@ -339,7 +339,7 @@ static int das6402_attach(comedi_device *dev,comedi_devconfig *it)
 
        irq=it->options[0];
        printk(" ( irq = %d )", irq);
-       ret=request_irq(irq, intr_handler, 0, "das6402", dev);
+       ret=comedi_request_irq(irq, intr_handler, 0, "das6402", dev);
        if(ret<0){
                printk("irq conflict\n");
                return ret;
index ffc6370e96651c32ba5b975e8d21976bdc613e6f..0586f76c80d448ef2007601044eacbf24f97c0f7 100644 (file)
@@ -203,6 +203,7 @@ comedi_driver driver_dt2811={
        num_names:      sizeof(boardtypes)/sizeof(boardtype),
        offset:         sizeof(boardtype),
 };
+COMEDI_INITCLEANUP(driver_dt2811);
 
 static int dt2811_ai(comedi_device * dev, comedi_subdevice * s, comedi_trig * it);
 #if 0
@@ -327,7 +328,8 @@ static int dt2811_attach(comedi_device * dev, comedi_devconfig * it)
                        i = inb(dev->iobase + DT2811_ADDATLO);
                        i = inb(dev->iobase + DT2811_ADDATHI);
                        printk("(irq = %d)\n", irq);
-                       request_irq(irq, dt2811_interrupt, 0 * SA_INTERRUPT, driver_name, dev);
+                       ret = comedi_request_irq(irq, dt2811_interrupt, 0, driver_name, dev);
+                       if(ret<0)return -EIO;
                        dev->irq = irq;
                } else if (irq == 0) {
                        printk("(no irq)\n");
@@ -553,16 +555,3 @@ static int dt2811_do(comedi_device * dev, comedi_subdevice * s, comedi_trig * it
        return it->n_chan;
 }
 
-#ifdef MODULE
-int init_module(void)
-{
-       comedi_driver_register(&driver_dt2811);
-       
-       return 0;
-}
-
-void cleanup_module(void)
-{
-       comedi_driver_unregister(&driver_dt2811);
-}
-#endif
index dc0b96fef3956b2e7392614ba108f14390a9c285..b6909c3a5d793e9f847b19eab4d7c20af74ee688 100644 (file)
@@ -61,6 +61,7 @@ comedi_driver driver_dt2814={
        attach:         dt2814_attach,
        detach:         dt2814_detach,
 };
+COMEDI_INITCLEANUP(driver_dt2814);
 
 static void dt2814_interrupt(int irq,void *dev,struct pt_regs * regs);
 
@@ -304,7 +305,7 @@ static int dt2814_attach(comedi_device *dev,comedi_devconfig *it)
        dev->irq=0;
        if(irq>0){
                printk("( irq = %d )\n",irq);
-               request_irq(irq,dt2814_interrupt,0*SA_INTERRUPT,"dt2814",dev);
+               comedi_request_irq(irq,dt2814_interrupt,0,"dt2814",dev);
                dev->irq=irq;
        }else if(irq==0){
                printk("(no irq)\n");
@@ -387,17 +388,3 @@ static void dt2814_interrupt(int irq,void *d,struct pt_regs * regs)
        }
 }
 
-
-#ifdef MODULE
-int init_module(void)
-{
-       comedi_driver_register(&driver_dt2814);
-       
-       return 0;
-}
-
-void cleanup_module(void)
-{
-       comedi_driver_unregister(&driver_dt2814);
-}
-#endif
index ebb96eeae5c0e80f015b4cd99569cc0f853806cf..c9ebe9b142e483c3916812acff858ced3c6b4636 100644 (file)
@@ -56,6 +56,7 @@ comedi_driver driver_dt2815={
        attach:         dt2815_attach,
        detach:         dt2815_detach,
 };
+COMEDI_INITCLEANUP(driver_dt2815);
 
 static void dt2815_free_resources(comedi_device * dev);
 
@@ -220,16 +221,3 @@ static int dt2815_detach(comedi_device * dev)
   return 0;
 }
 
-#ifdef MODULE
-int init_module(void)
-{
-       comedi_driver_register(&driver_dt2815);
-       
-       return 0;
-}
-
-void cleanup_module(void)
-{
-       comedi_driver_unregister(&driver_dt2815);
-}
-#endif
index abf27fc7be955dfb58232b87e308825b7c32c8ad..83f55c306295d8b74f684c1a64125e94e8234605 100644 (file)
@@ -1438,7 +1438,8 @@ static int dt282x_attach(comedi_device * dev, comedi_devconfig * it)
        dev->irq = 0;
        if (irq > 0) {
                printk(" ( irq = %d )", irq);
-               request_irq(irq, dt282x_interrupt, SA_INTERRUPT, "dt282x", dev);
+               ret = comedi_request_irq(irq, dt282x_interrupt, 0, "dt282x", dev);
+               if(ret<0)return -EIO;
                dev->irq = irq;
        } else if (irq == 0) {
                printk(" (no irq)");
index 3e5758640525c437fb4843bd1f40c43b07f958a9..88523646d26941dc0351363b627d59de70897490 100644 (file)
@@ -146,6 +146,7 @@ comedi_driver driver_atmio16d={
        num_names:      n_atmio16_boards,
        offset:         sizeof(atmio16_board_t),
 };
+COMEDI_INITCLEANUP(driver_atmio16d);
 
 /* range structs */
 static comedi_lrange range_atmio16d_ai_10_bipolar = { 4, {
@@ -726,8 +727,8 @@ static int atmio16d_attach(comedi_device * dev, comedi_devconfig * it)
        /* check if our interrupt is available and get it */
        irq=it->options[1];
        if(irq>0){
-               if((ret=request_irq(irq,atmio16d_interrupt,
-                                                       SA_INTERRUPT, "atmio16d", dev))<0)
+               if((ret=comedi_request_irq(irq,atmio16d_interrupt,
+                       0, "atmio16d", dev))<0)
                        return ret;
                dev->irq=irq;
                printk("( irq = %d )\n",irq);
@@ -850,17 +851,3 @@ static int atmio16d_detach(comedi_device * dev)
        return 0;
 }
 
-#ifdef MODULE
-int init_module(void)
-{
-       comedi_driver_register(&driver_atmio16d);
-       
-       return 0;
-}
-
-void cleanup_module(void)
-{
-       comedi_driver_unregister(&driver_atmio16d);
-       
-}
-#endif
index 10d0ca710a0812a16aa88e531b67c0f240bc7b43..3ab3feaa2ff8e240c539dce2dd560859921f21f3 100644 (file)
@@ -152,6 +152,7 @@ comedi_driver driver_pcidio={
        attach:         nidio_attach,
        detach:         nidio_detach,
 };
+COMEDI_INITCLEANUP(driver_pcidio);
 
 typedef struct{
        int dev_id;
@@ -510,17 +511,3 @@ static int nidio_find_device(comedi_device *dev,int bus,int slot)
        return -EIO;
 }
 
-
-#ifdef MODULE
-int init_module(void)
-{
-       comedi_driver_register(&driver_pcidio);
-       
-       return 0;
-}
-
-void cleanup_module(void)
-{
-       comedi_driver_unregister(&driver_pcidio);
-}
-#endif
index f469cc5c6b194eb38554c5b44cbc1bffa689f6c2..84505d72cc6bd481d60c99cda8c19ceb6e041df0 100644 (file)
@@ -356,6 +356,7 @@ comedi_driver driver_pcimio={
        attach:         pcimio_attach,
        detach:         pcimio_detach,
 };
+COMEDI_INITCLEANUP(driver_pcimio);
 
 
 /* How we access registers */
@@ -479,17 +480,3 @@ static int pcimio_find_device(comedi_device *dev,int bus,int slot)
        return -EIO;
 }
 
-
-#ifdef MODULE
-int init_module(void)
-{
-       comedi_driver_register(&driver_pcimio);
-       
-       return 0;
-}
-
-void cleanup_module(void)
-{
-       comedi_driver_unregister(&driver_pcimio);
-}
-#endif
index 005ac94c267ec77f993e08ce3d18c63bd7ae8873..b4d28d5d0159ac8f8ea1448e1c264e3b3ceae823 100644 (file)
@@ -424,7 +424,7 @@ static int pcl711_attach(comedi_device * dev, comedi_devconfig * it)
                return -EINVAL;
        }
        if (irq) {
-               if (request_irq(irq, pcl711_interrupt, SA_INTERRUPT, "pcl711", dev)) {
+               if (comedi_request_irq(irq, pcl711_interrupt, 0, "pcl711", dev)) {
                        printk("unable to allocate irq %d\n", irq);
                        free_resources(dev);
                        return -EINVAL;
index 932977e6e9379c34402c6886f8b1a0baf4553e1d..41d340a675577c394850aa50a7d72fb6bb52cb2e 100644 (file)
@@ -143,7 +143,7 @@ static int pcl724_attach(comedi_device *dev,comedi_devconfig *it)
                                rt_printk(", IRQ %d is out of allowed range, DISABLING IT",irq);
                                irq=0; /* Bad IRQ */
                        } else { 
-                               if (request_irq(irq, interrupt_pcl724, SA_INTERRUPT, "pcl724", dev)) {
+                               if (comedi_request_irq(irq, interrupt_pcl724, 0, "pcl724", dev)) {
                                        rt_printk(", unable to allocate IRQ %d, DISABLING IT", irq);
                                        irq=0; /* Can't use IRQ */
                                } else {
index 9da84127d1db045de1b7bf054f3818d60775a178..874f0500617a898c370bb7cc643cbe117b37f3e0 100644 (file)
@@ -32,6 +32,7 @@ comedi_driver driver_pcl725={
        attach:         pcl725_attach,
        detach:         pcl725_detach,
 };
+COMEDI_INITCLEANUP(driver_pcl725);
 
 static int pcl725_do(comedi_device *dev,comedi_subdevice *s,comedi_trig *it);
 static int pcl725_di(comedi_device *dev,comedi_subdevice *s,comedi_trig *it);
@@ -102,20 +103,9 @@ static int pcl725_attach(comedi_device *dev,comedi_devconfig *it)
 static int pcl725_detach(comedi_device *dev)
 {
        printk("comedi%d: pcl725: remove\n",dev->minor);
-       
-       return 0;
-}
 
-#ifdef MODULE
-int init_module(void)
-{
-       comedi_driver_register(&driver_pcl725);
+       if(dev->iobase)release_region(dev->iobase,dev->iosize);
        
        return 0;
 }
 
-void cleanup_module(void)
-{
-       comedi_driver_unregister(&driver_pcl725);
-}
-#endif
index 33ea30460797b08e717cc6ea6a0c20e5aa618046..354f2a2ec7e5f7ed934a26d7cd66788462ec7667 100644 (file)
@@ -249,7 +249,7 @@ static int pcl726_attach(comedi_device *dev,comedi_devconfig *it)
                                rt_printk(", IRQ %d is out of allowed range, DISABLING IT",irq);
                                irq=0; /* Bad IRQ */
                        } else { 
-                               if (request_irq(irq, interrupt_pcl818, SA_INTERRUPT, "pcl726", dev)) {
+                               if (comedi_request_irq(irq, interrupt_pcl818, 0, "pcl726", dev)) {
                                        rt_printk(", unable to allocate IRQ %d, DISABLING IT", irq);
                                        irq=0; /* Can't use IRQ */
                                } else {
index 526a42b98e97d3cab7f2f7efed5c32c249e81ec1..006b1122f7d83c1511757d0676b280bc07fbd106 100644 (file)
@@ -192,6 +192,7 @@ comedi_driver driver_pcl812={
        num_names:      n_boardtypes,
        offset:         sizeof(boardtype),
 };
+COMEDI_INITCLEANUP(driver_pcl812);
 
 typedef struct {
 #ifdef USE_DMA
@@ -639,7 +640,7 @@ static int pcl812_attach(comedi_device * dev, comedi_devconfig * it)
                                printk(", IRQ %d is out of allowed range, DISABLING IT", irq);
                                irq = 0;        /* Bad IRQ */
                        } else {
-                               if (request_irq(irq, interrupt_pcl812, SA_INTERRUPT, "pcl812", dev)) {
+                               if (comedi_request_irq(irq, interrupt_pcl812, 0, "pcl812", dev)) {
                                        printk(", unable to allocate IRQ %d, DISABLING IT", irq);
                                        irq = 0;        /* Can't use IRQ */
                                } else {
@@ -837,24 +838,6 @@ static int pcl812_detach(comedi_device * dev)
        return 0;
 }
 
-/*  
-==============================================================================
-*/
-#ifdef MODULE
-int init_module(void)
-{
-       comedi_driver_register(&driver_pcl812);
-
-       return 0;
-}
-
-void cleanup_module(void)
-{
-       comedi_driver_unregister(&driver_pcl812);
-}
-
-#endif
-
 
 #if 0
 /* @@Kluvi: magic crystaline sphere error correction, I hope
index 14177002f87ea2c426b21154483ac3b3d6e7a574..c12add38fefd15dc2f2d1270cabd27a799fb8186 100644 (file)
@@ -260,6 +260,7 @@ comedi_driver driver_pcl818={
        num_names:      n_boardtypes,
        offset:         sizeof(boardtype),
 };
+COMEDI_INITCLEANUP(driver_pcl818);
 
 
 typedef struct {
@@ -1362,7 +1363,7 @@ static int pcl818_attach(comedi_device * dev, comedi_devconfig * it)
                                rt_printk(", IRQ %d is out of allowed range, DISABLING IT",irq);
                                irq=0; /* Bad IRQ */
                        } else { 
-                               if (request_irq(irq, interrupt_pcl818, SA_INTERRUPT, "pcl818", dev)) {
+                               if (comedi_request_irq(irq, interrupt_pcl818, 0, "pcl818", dev)) {
                                        rt_printk(", unable to allocate IRQ %d, DISABLING IT", irq);
                                        irq=0; /* Can't use IRQ */
                                } else {
@@ -1388,7 +1389,7 @@ static int pcl818_attach(comedi_device * dev, comedi_devconfig * it)
                devpriv->rtc_iobase=RTC_PORT(0);
                devpriv->rtc_iosize=RTC_IO_EXTENT;
                RTC_lock++;
-               if (!request_irq(RTC_IRQ, interrupt_pcl818_ai_mode13_dma_rtc, SA_INTERRUPT|SA_SHIRQ, "pcl818 DMA (RTC)", dev)) {
+               if (!comedi_request_irq(RTC_IRQ, interrupt_pcl818_ai_mode13_dma_rtc, 0, "pcl818 DMA (RTC)", dev)) {
                        devpriv->dma_rtc=1;
                        devpriv->rtc_irq=RTC_IRQ;
                        rt_printk(", dma_irq=%d", devpriv->rtc_irq);
@@ -1585,20 +1586,3 @@ static int pcl818_detach(comedi_device * dev)
         return 0;
 }
 
-/*  
-==============================================================================
-*/
-#ifdef MODULE
-int init_module(void)
-{
-        comedi_driver_register(&driver_pcl818);
-        return 0;
-}
-
-void cleanup_module(void)
-{
-        //  rt_printk("comedi: pcl818: unreg\n");
-        comedi_driver_unregister(&driver_pcl818);
-        // rt_printk("comedi: pcl818: unreg end\n");
-}
-#endif
index 8bd3f6401f05633ba0e2a67bbca4ab79585edc55..933ca6323b0bc53107e786bf92192f3e8c8e7748 100644 (file)
@@ -117,6 +117,7 @@ comedi_driver driver_rti800={
        board_name:     boardtypes,
        offset:         sizeof(boardtype),
 };
+COMEDI_INITCLEANUP(driver_rti800);
 
 static void rti800_interrupt(int irq, void *dev, struct pt_regs *regs);
 
@@ -314,7 +315,7 @@ static int rti800_attach(comedi_device * dev, comedi_devconfig * it)
        irq=it->options[1];
        if(irq>0){
                printk("( irq = %d )\n",irq);
-               if((ret=request_irq(irq,rti800_interrupt, SA_INTERRUPT, "rti800", dev))<0)
+               if((ret=comedi_request_irq(irq,rti800_interrupt, 0, "rti800", dev))<0)
                        return ret;
                dev->irq=irq;
        }else if(irq == 0){
@@ -434,16 +435,3 @@ static int rti800_detach(comedi_device * dev)
        return 0;
 }
 
-#ifdef MODULE
-int init_module(void)
-{
-       comedi_driver_register(&driver_rti800);
-       
-       return 0;
-}
-
-void cleanup_module(void)
-{
-       comedi_driver_unregister(&driver_rti800);
-}
-#endif
index 4ab9c39f79c0800509448c417847c64739584451..382dd52db88a5a4dd0804b4d31308c308c1405e6 100644 (file)
@@ -50,6 +50,7 @@ comedi_driver driver_rti802={
        attach:         rti802_attach,
        detach:         rti802_detach,
 };
+COMEDI_INITCLEANUP(driver_rti802);
 
 static void rti802_free_resources(comedi_device * dev);
 
@@ -148,16 +149,3 @@ static int rti802_detach(comedi_device * dev)
        return 0;
 }
 
-#ifdef MODULE
-int init_module(void)
-{
-       comedi_driver_register(&driver_rti802);
-       
-       return 0;
-}
-
-void cleanup_module(void)
-{
-       comedi_driver_unregister(&driver_rti802);
-}
-#endif