]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
staging: comedi: addi_common.c: remove v_ADDI_Interrupt()
authorH Hartley Sweeten <hsweeten@visionengravers.com>
Tue, 14 Oct 2014 17:44:20 +0000 (10:44 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 29 Oct 2014 07:48:53 +0000 (15:48 +0800)
The addi_apci_035 and addi_apci_1500 are the only drivers left that use
this function in addi_common.c. The function simply calls the 'interrupt'
function that is in the boardinfo of the driver. Both drivers use the
same 'interrupt' function for all boardnfo entries.

Remove the i_ADDI_Reset() function as well as the 'interrupt' boardinfo
and use the 'interrupt' function directly when doing the request_irq().

In addition, the addi_apci_3120 driver has a private v_ADDI_Interrupt()
function that is doing the same thing. Remove that one as well.

Fix the return type of 'interrupt' functions in the drivers and add the
return vaules.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/drivers/addi-data/addi_common.c
drivers/staging/comedi/drivers/addi-data/hwdrv_apci035.c
drivers/staging/comedi/drivers/addi-data/hwdrv_apci1500.c
drivers/staging/comedi/drivers/addi-data/hwdrv_apci3120.c
drivers/staging/comedi/drivers/addi_apci_035.c
drivers/staging/comedi/drivers/addi_apci_1500.c
drivers/staging/comedi/drivers/addi_apci_3120.c

index 850bdae4824327d3eaf44afbafeea6adb9c0b4b1..014342748765d6ebd2d44900bfa91a5f0cf67af7 100644 (file)
@@ -55,12 +55,3 @@ static int i_ADDIDATA_InsnReadEeprom(struct comedi_device *dev,
 
        return insn->n;
 }
-
-static irqreturn_t v_ADDI_Interrupt(int irq, void *d)
-{
-       struct comedi_device *dev = d;
-       const struct addi_board *this_board = dev->board_ptr;
-
-       this_board->interrupt(irq, d);
-       return IRQ_RETVAL(1);
-}
index 53bb51bd77b542f223fbbdca615391f9f65cdb84..a07ee1bd33118e6ea8fa3b8164051f2a766bee50 100644 (file)
@@ -434,7 +434,7 @@ static int apci035_reset(struct comedi_device *dev)
        return 0;
 }
 
-static void apci035_interrupt(int irq, void *d)
+static irqreturn_t apci035_interrupt(int irq, void *d)
 {
        struct comedi_device *dev = d;
        struct addi_private *devpriv = dev->private;
@@ -477,4 +477,6 @@ static void apci035_interrupt(int irq, void *d)
                /*  send signal to the sample */
                send_sig(SIGIO, devpriv->tsk_Current, 0);
        }
+
+       return IRQ_HANDLED;
 }
index 0ea081e1e119665ba952e9d01a282a478ba94d88..9896468d86f91b87c15b81bf78d123b75669d4e9 100644 (file)
@@ -2011,7 +2011,7 @@ static int apci1500_do_bits(struct comedi_device *dev,
        return insn->n;
 }
 
-static void apci1500_interrupt(int irq, void *d)
+static irqreturn_t apci1500_interrupt(int irq, void *d)
 {
 
        struct comedi_device *dev = d;
@@ -2180,6 +2180,8 @@ static void apci1500_interrupt(int irq, void *d)
                        "Interrupt from unknown source\n");
 
        }
+
+       return IRQ_HANDLED;
 }
 
 static int apci1500_reset(struct comedi_device *dev)
index b06142b27df7ced46526d05b259c9c83a0b500c7..ed1d92ecc9ea82eaa1c45d208ceb9918cf83a683 100644 (file)
@@ -1415,7 +1415,7 @@ static int apci3120_interrupt_handle_eos(struct comedi_device *dev)
        return 0;
 }
 
-static void apci3120_interrupt(int irq, void *d)
+static irqreturn_t apci3120_interrupt(int irq, void *d)
 {
        struct comedi_device *dev = d;
        struct addi_private *devpriv = dev->private;
@@ -1432,7 +1432,7 @@ static void apci3120_interrupt(int irq, void *d)
 
        if ((!int_daq) && (!(int_amcc & ANY_S593X_INT))) {
                dev_err(dev->class_dev, "IRQ from unknown source\n");
-               return;
+               return IRQ_NONE;
        }
 
        outl(int_amcc | 0x00ff0000, devpriv->i_IobaseAmcc + AMCC_OP_REG_INTCSR);        /*  shutdown IRQ reasons in AMCC */
@@ -1587,6 +1587,8 @@ static void apci3120_interrupt(int irq, void *d)
 
        }
        comedi_handle_events(dev, s);
+
+       return IRQ_HANDLED;
 }
 
 /*
index 4f068c2e6a7034369a937d6b234e37e7a58e4d1d..a712cc522006a6838f7ccfc8326c6c0ef6196398 100644 (file)
@@ -27,7 +27,6 @@ static const struct addi_board apci035_boardtypes[] = {
                .i_Timer                = 1,
                .ui_MinAcquisitiontimeNs = 10000,
                .ui_MinDelaytimeNs      = 100000,
-               .interrupt              = apci035_interrupt,
                .ai_config              = apci035_ai_config,
                .ai_read                = apci035_ai_read,
                .timer_config           = apci035_timer_config,
@@ -84,7 +83,7 @@ static int apci035_auto_attach(struct comedi_device *dev,
        /* ## */
 
        if (pcidev->irq > 0) {
-               ret = request_irq(pcidev->irq, v_ADDI_Interrupt, IRQF_SHARED,
+               ret = request_irq(pcidev->irq, apci035_interrupt, IRQF_SHARED,
                                  dev->board_name, dev);
                if (ret == 0)
                        dev->irq = pcidev->irq;
index a4a0dab85d6a0240057aeb5bfbd6243009b667cc..857ac987646795dfb350ac59dcd50be7b5e21572 100644 (file)
@@ -20,7 +20,6 @@ static const struct addi_board apci1500_boardtypes[] = {
                .i_NbrDoChannel         = 16,
                .i_DoMaxdata            = 0xffff,
                .i_Timer                = 1,
-               .interrupt              = apci1500_interrupt,
                .di_config              = apci1500_di_config,
                .di_read                = apci1500_di_read,
                .di_write               = apci1500_di_write,
@@ -83,7 +82,7 @@ static int apci1500_auto_attach(struct comedi_device *dev,
        /* ## */
 
        if (pcidev->irq > 0) {
-               ret = request_irq(pcidev->irq, v_ADDI_Interrupt, IRQF_SHARED,
+               ret = request_irq(pcidev->irq, apci1500_interrupt, IRQF_SHARED,
                                  dev->board_name, dev);
                if (ret == 0)
                        dev->irq = pcidev->irq;
index ba71e24a56fd1c6671b3720bf8375f1f0eb7f7a7..38da44bd4eef8ea1f4cdf81ef2514de6b6e9431d 100644 (file)
@@ -26,7 +26,6 @@ static const struct addi_board apci3120_boardtypes[] = {
                .i_NbrDiChannel         = 4,
                .i_NbrDoChannel         = 4,
                .i_DoMaxdata            = 0x0f,
-               .interrupt              = apci3120_interrupt,
        },
        [BOARD_APCI3001] = {
                .pc_DriverName          = "apci3001",
@@ -37,19 +36,9 @@ static const struct addi_board apci3120_boardtypes[] = {
                .i_NbrDiChannel         = 4,
                .i_NbrDoChannel         = 4,
                .i_DoMaxdata            = 0x0f,
-               .interrupt              = apci3120_interrupt,
        },
 };
 
-static irqreturn_t v_ADDI_Interrupt(int irq, void *d)
-{
-       struct comedi_device *dev = d;
-       const struct addi_board *this_board = dev->board_ptr;
-
-       this_board->interrupt(irq, d);
-       return IRQ_RETVAL(1);
-}
-
 static int apci3120_auto_attach(struct comedi_device *dev,
                                unsigned long context)
 {
@@ -82,7 +71,7 @@ static int apci3120_auto_attach(struct comedi_device *dev,
        devpriv->i_IobaseReserved = pci_resource_start(pcidev, 3);
 
        if (pcidev->irq > 0) {
-               ret = request_irq(pcidev->irq, v_ADDI_Interrupt, IRQF_SHARED,
+               ret = request_irq(pcidev->irq, apci3120_interrupt, IRQF_SHARED,
                                  dev->board_name, dev);
                if (ret == 0)
                        dev->irq = pcidev->irq;