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

Commit a71f18d2 authored by Ian Abbott's avatar Ian Abbott Committed by Greg Kroah-Hartman
Browse files

Staging: comedi: pcl818: Fix option handling for FIFO mode (hopefully!).

parent 6a2436e4
Loading
Loading
Loading
Loading
+27 −20
Original line number Diff line number Diff line
@@ -1025,26 +1025,32 @@ static int pcl818_ai_cmd_mode(int mode, struct comedi_device * dev,
		}
#endif
		break;
	case 0:		/*  IRQ */
	case 0:
		if (!devpriv->usefifo) {
			/* IRQ */
			/* rt_printk("IRQ\n"); */
			if (mode == 1) {
				devpriv->ai_mode = INT_TYPE_AI1_INT;
			outb(0x83 | (dev->irq << 4), dev->iobase + PCL818_CONTROL);	/* Pacer+IRQ */
				/* Pacer+IRQ */
				outb(0x83 | (dev->irq << 4), dev->iobase + PCL818_CONTROL);
			} else {
				devpriv->ai_mode = INT_TYPE_AI3_INT;
			outb(0x82 | (dev->irq << 4), dev->iobase + PCL818_CONTROL);	/* Ext trig+IRQ */
		};
		break;
	case -1:		/*  FIFO */
		outb(1, dev->iobase + PCL818_FI_ENABLE);	/*  enable FIFO */
				/* Ext trig+IRQ */
				outb(0x82 | (dev->irq << 4), dev->iobase + PCL818_CONTROL);
			}
		} else {
			/* FIFO */
			/* enable FIFO */
			outb(1, dev->iobase + PCL818_FI_ENABLE);
			if (mode == 1) {
				devpriv->ai_mode = INT_TYPE_AI1_FIFO;
			outb(0x03, dev->iobase + PCL818_CONTROL);	/* Pacer */
				/* Pacer */
				outb(0x03, dev->iobase + PCL818_CONTROL);
			} else {
				devpriv->ai_mode = INT_TYPE_AI3_FIFO;
				outb(0x02, dev->iobase + PCL818_CONTROL);
		};		/* Ext trig */
		break;
			}
		}
	}

	start_pacer(dev, mode, divisor1, divisor2);
@@ -1687,7 +1693,8 @@ static int pcl818_attach(struct comedi_device * dev, struct comedi_devconfig * i
{
	int ret;
	unsigned long iobase;
	unsigned int irq, dma;
	unsigned int irq;
	int dma;
	unsigned long pages;
	struct comedi_subdevice *s;