[PATCH 3/5] staging: comedi: ni_labpc: pass the isr_flags to labpc_common_attach()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The PCI and PCMCIA LabPC boards use shared interrupts and need the
IRQF_SHARED flag set when requesting the irq, the ISA boards do not.

Instead of checking the 'bustype' in labpc_common_attach() in order
to determine the isr_flags, just pass the flags as a parameter to the
function.

Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Cc: Ian Abbott <abbotti@xxxxxxxxx>
Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
 drivers/staging/comedi/drivers/ni_labpc.c     | 9 ++-------
 drivers/staging/comedi/drivers/ni_labpc.h     | 2 +-
 drivers/staging/comedi/drivers/ni_labpc_cs.c  | 2 +-
 drivers/staging/comedi/drivers/ni_labpc_pci.c | 2 +-
 4 files changed, 5 insertions(+), 10 deletions(-)

diff --git a/drivers/staging/comedi/drivers/ni_labpc.c b/drivers/staging/comedi/drivers/ni_labpc.c
index 56fb5b2..365149a 100644
--- a/drivers/staging/comedi/drivers/ni_labpc.c
+++ b/drivers/staging/comedi/drivers/ni_labpc.c
@@ -1588,12 +1588,11 @@ static int labpc_eeprom_insn_read(struct comedi_device *dev,
 }
 
 int labpc_common_attach(struct comedi_device *dev,
-			unsigned int irq)
+			unsigned int irq, unsigned long isr_flags)
 {
 	const struct labpc_boardinfo *board = comedi_board(dev);
 	struct labpc_private *devpriv = dev->private;
 	struct comedi_subdevice *s;
-	unsigned long isr_flags;
 	int ret;
 	int i;
 
@@ -1616,10 +1615,6 @@ int labpc_common_attach(struct comedi_device *dev,
 	}
 
 	if (irq) {
-		isr_flags = 0;
-		if (board->bustype == pci_bustype ||
-		    board->bustype == pcmcia_bustype)
-			isr_flags |= IRQF_SHARED;
 		ret = request_irq(irq, labpc_interrupt, isr_flags,
 				  dev->board_name, dev);
 		if (ret == 0)
@@ -1738,7 +1733,7 @@ static int labpc_attach(struct comedi_device *dev, struct comedi_devconfig *it)
 	if (ret)
 		return ret;
 
-	ret = labpc_common_attach(dev, irq);
+	ret = labpc_common_attach(dev, irq, 0);
 	if (ret)
 		return ret;
 
diff --git a/drivers/staging/comedi/drivers/ni_labpc.h b/drivers/staging/comedi/drivers/ni_labpc.h
index 7f8a828..9f12660 100644
--- a/drivers/staging/comedi/drivers/ni_labpc.h
+++ b/drivers/staging/comedi/drivers/ni_labpc.h
@@ -101,7 +101,7 @@ struct labpc_private {
 };
 
 int labpc_common_attach(struct comedi_device *dev,
-			unsigned int irq);
+			unsigned int irq, unsigned long isr_flags);
 void labpc_common_detach(struct comedi_device *dev);
 
 extern const int labpc_1200_ai_gain_bits[];
diff --git a/drivers/staging/comedi/drivers/ni_labpc_cs.c b/drivers/staging/comedi/drivers/ni_labpc_cs.c
index 4b4a72d..1f4b763 100644
--- a/drivers/staging/comedi/drivers/ni_labpc_cs.c
+++ b/drivers/staging/comedi/drivers/ni_labpc_cs.c
@@ -111,7 +111,7 @@ static int labpc_auto_attach(struct comedi_device *dev,
 		return -ENOMEM;
 	dev->private = devpriv;
 
-	return labpc_common_attach(dev, link->irq);
+	return labpc_common_attach(dev, link->irq, IRQF_SHARED);
 }
 
 static void labpc_detach(struct comedi_device *dev)
diff --git a/drivers/staging/comedi/drivers/ni_labpc_pci.c b/drivers/staging/comedi/drivers/ni_labpc_pci.c
index 13ae267..4beadfe 100644
--- a/drivers/staging/comedi/drivers/ni_labpc_pci.c
+++ b/drivers/staging/comedi/drivers/ni_labpc_pci.c
@@ -92,7 +92,7 @@ static int labpc_pci_auto_attach(struct comedi_device *dev,
 		return ret;
 	dev->iobase = (unsigned long)devpriv->mite->daq_io_addr;
 
-	return labpc_common_attach(dev, mite_irq(devpriv->mite));
+	return labpc_common_attach(dev, mite_irq(devpriv->mite), IRQF_SHARED);
 }
 
 static void labpc_pci_detach(struct comedi_device *dev)
-- 
1.8.1.4

_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel




[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux