Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3e034797 authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman
Browse files

staging: comedi: ni_labpc: pass the isr_flags to labpc_common_attach()



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: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: default avatarIan Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 76730884
Loading
Loading
Loading
Loading
+2 −7
Original line number Diff line number Diff line
@@ -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;

+1 −1
Original line number Diff line number Diff line
@@ -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[];
+1 −1
Original line number Diff line number Diff line
@@ -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)
+1 −1
Original line number Diff line number Diff line
@@ -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)