diff options
Diffstat (limited to 'drivers/staging/comedi')
-rw-r--r-- | drivers/staging/comedi/drivers/pcl818.c | 47 |
1 files changed, 27 insertions, 20 deletions
diff --git a/drivers/staging/comedi/drivers/pcl818.c b/drivers/staging/comedi/drivers/pcl818.c index 4ab4154242e..29cc5a5151a 100644 --- a/drivers/staging/comedi/drivers/pcl818.c +++ b/drivers/staging/comedi/drivers/pcl818.c | |||
@@ -1025,26 +1025,32 @@ static int pcl818_ai_cmd_mode(int mode, struct comedi_device * dev, | |||
1025 | } | 1025 | } |
1026 | #endif | 1026 | #endif |
1027 | break; | 1027 | break; |
1028 | case 0: /* IRQ */ | 1028 | case 0: |
1029 | /* rt_printk("IRQ\n"); */ | 1029 | if (!devpriv->usefifo) { |
1030 | if (mode == 1) { | 1030 | /* IRQ */ |
1031 | devpriv->ai_mode = INT_TYPE_AI1_INT; | 1031 | /* rt_printk("IRQ\n"); */ |
1032 | outb(0x83 | (dev->irq << 4), dev->iobase + PCL818_CONTROL); /* Pacer+IRQ */ | 1032 | if (mode == 1) { |
1033 | } else { | 1033 | devpriv->ai_mode = INT_TYPE_AI1_INT; |
1034 | devpriv->ai_mode = INT_TYPE_AI3_INT; | 1034 | /* Pacer+IRQ */ |
1035 | outb(0x82 | (dev->irq << 4), dev->iobase + PCL818_CONTROL); /* Ext trig+IRQ */ | 1035 | outb(0x83 | (dev->irq << 4), dev->iobase + PCL818_CONTROL); |
1036 | }; | 1036 | } else { |
1037 | break; | 1037 | devpriv->ai_mode = INT_TYPE_AI3_INT; |
1038 | case -1: /* FIFO */ | 1038 | /* Ext trig+IRQ */ |
1039 | outb(1, dev->iobase + PCL818_FI_ENABLE); /* enable FIFO */ | 1039 | outb(0x82 | (dev->irq << 4), dev->iobase + PCL818_CONTROL); |
1040 | if (mode == 1) { | 1040 | } |
1041 | devpriv->ai_mode = INT_TYPE_AI1_FIFO; | ||
1042 | outb(0x03, dev->iobase + PCL818_CONTROL); /* Pacer */ | ||
1043 | } else { | 1041 | } else { |
1044 | devpriv->ai_mode = INT_TYPE_AI3_FIFO; | 1042 | /* FIFO */ |
1045 | outb(0x02, dev->iobase + PCL818_CONTROL); | 1043 | /* enable FIFO */ |
1046 | }; /* Ext trig */ | 1044 | outb(1, dev->iobase + PCL818_FI_ENABLE); |
1047 | break; | 1045 | if (mode == 1) { |
1046 | devpriv->ai_mode = INT_TYPE_AI1_FIFO; | ||
1047 | /* Pacer */ | ||
1048 | outb(0x03, dev->iobase + PCL818_CONTROL); | ||
1049 | } else { | ||
1050 | devpriv->ai_mode = INT_TYPE_AI3_FIFO; | ||
1051 | outb(0x02, dev->iobase + PCL818_CONTROL); | ||
1052 | } | ||
1053 | } | ||
1048 | } | 1054 | } |
1049 | 1055 | ||
1050 | start_pacer(dev, mode, divisor1, divisor2); | 1056 | start_pacer(dev, mode, divisor1, divisor2); |
@@ -1687,7 +1693,8 @@ static int pcl818_attach(struct comedi_device * dev, struct comedi_devconfig * i | |||
1687 | { | 1693 | { |
1688 | int ret; | 1694 | int ret; |
1689 | unsigned long iobase; | 1695 | unsigned long iobase; |
1690 | unsigned int irq, dma; | 1696 | unsigned int irq; |
1697 | int dma; | ||
1691 | unsigned long pages; | 1698 | unsigned long pages; |
1692 | struct comedi_subdevice *s; | 1699 | struct comedi_subdevice *s; |
1693 | 1700 | ||