Commit 1869ae02 authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman

staging: comedi: addi_apci_3120: define the "enable" bits in the mode register

For aesthetics, redefine the bits in the mode register that enable interrupts
and scanning.
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 67d3a2e7
...@@ -84,12 +84,6 @@ This program is distributed in the hope that it will be useful, but WITHOUT ANY ...@@ -84,12 +84,6 @@ This program is distributed in the hope that it will be useful, but WITHOUT ANY
#define APCI3120_RD_STATUS 0x02 #define APCI3120_RD_STATUS 0x02
#define APCI3120_RD_FIFO 0x00 #define APCI3120_RD_FIFO 0x00
/* nWrMode_Select */
#define APCI3120_ENABLE_SCAN 0x8
#define APCI3120_ENABLE_EOS_INT 0x2
#define APCI3120_ENABLE_EOC_INT 0x1
/* status register bits */ /* status register bits */
#define APCI3120_EOC 0x8000 #define APCI3120_EOC 0x8000
#define APCI3120_EOS 0x2000 #define APCI3120_EOS 0x2000
...@@ -104,7 +98,6 @@ This program is distributed in the hope that it will be useful, but WITHOUT ANY ...@@ -104,7 +98,6 @@ This program is distributed in the hope that it will be useful, but WITHOUT ANY
#define APCI3120_WATCHDOG 2 #define APCI3120_WATCHDOG 2
#define APCI3120_TIMER_DISABLE 0 #define APCI3120_TIMER_DISABLE 0
#define APCI3120_TIMER_ENABLE 1 #define APCI3120_TIMER_ENABLE 1
#define APCI3120_ENABLE_TIMER_INT 0x04
#define APCI3120_WRITE_MODE_SELECT 0x0e #define APCI3120_WRITE_MODE_SELECT 0x0e
#define APCI3120_RD_STATUS 0x02 #define APCI3120_RD_STATUS 0x02
...@@ -246,7 +239,7 @@ static int apci3120_ai_insn_read(struct comedi_device *dev, ...@@ -246,7 +239,7 @@ static int apci3120_ai_insn_read(struct comedi_device *dev,
apci3120_timer_set_mode(dev, 0, APCI3120_TIMER_MODE4); apci3120_timer_set_mode(dev, 0, APCI3120_TIMER_MODE4);
if (devpriv->b_EocEosInterrupt == APCI3120_ENABLE) { if (devpriv->b_EocEosInterrupt == APCI3120_ENABLE) {
devpriv->mode |= APCI3120_ENABLE_EOC_INT; devpriv->mode |= APCI3120_MODE_EOC_IRQ_ENA;
inw(dev->iobase + 0); inw(dev->iobase + 0);
} }
...@@ -294,13 +287,13 @@ static int apci3120_ai_insn_read(struct comedi_device *dev, ...@@ -294,13 +287,13 @@ static int apci3120_ai_insn_read(struct comedi_device *dev,
apci3120_timer_write(dev, 0, divisor); apci3120_timer_write(dev, 0, divisor);
/* Set the scan bit */ /* Set the scan bit */
devpriv->mode |= APCI3120_ENABLE_SCAN; devpriv->mode |= APCI3120_MODE_SCAN_ENA;
outb(devpriv->mode, outb(devpriv->mode,
dev->iobase + APCI3120_WRITE_MODE_SELECT); dev->iobase + APCI3120_WRITE_MODE_SELECT);
/* If Interrupt function is loaded */ /* If Interrupt function is loaded */
if (devpriv->b_EocEosInterrupt == APCI3120_ENABLE) { if (devpriv->b_EocEosInterrupt == APCI3120_ENABLE) {
devpriv->mode |= APCI3120_ENABLE_EOS_INT; devpriv->mode |= APCI3120_MODE_EOS_IRQ_ENA;
inw(dev->iobase + 0); inw(dev->iobase + 0);
} }
...@@ -556,7 +549,7 @@ static int apci3120_cyclic_ai(int mode, ...@@ -556,7 +549,7 @@ static int apci3120_cyclic_ai(int mode,
devpriv->b_InterruptMode = APCI3120_EOS_MODE; devpriv->b_InterruptMode = APCI3120_EOS_MODE;
devpriv->b_EocEosInterrupt = APCI3120_ENABLE; devpriv->b_EocEosInterrupt = APCI3120_ENABLE;
devpriv->mode |= APCI3120_ENABLE_EOS_INT; devpriv->mode |= APCI3120_MODE_EOS_IRQ_ENA;
outb(devpriv->mode, dev->iobase + APCI3120_WRITE_MODE_SELECT); outb(devpriv->mode, dev->iobase + APCI3120_WRITE_MODE_SELECT);
if (cmd->stop_src == TRIG_COUNT) { if (cmd->stop_src == TRIG_COUNT) {
...@@ -575,7 +568,7 @@ static int apci3120_cyclic_ai(int mode, ...@@ -575,7 +568,7 @@ static int apci3120_cyclic_ai(int mode,
/* select EOS clock input for timer 2 */ /* select EOS clock input for timer 2 */
devpriv->mode |= APCI3120_TIMER2_SELECT_EOS; devpriv->mode |= APCI3120_TIMER2_SELECT_EOS;
/* Enable timer2 interrupt */ /* Enable timer2 interrupt */
devpriv->mode |= APCI3120_ENABLE_TIMER_INT; devpriv->mode |= APCI3120_MODE_TIMER2_IRQ_ENA;
outb(devpriv->mode, outb(devpriv->mode,
dev->iobase + APCI3120_WRITE_MODE_SELECT); dev->iobase + APCI3120_WRITE_MODE_SELECT);
devpriv->b_Timer2Mode = APCI3120_COUNTER; devpriv->b_Timer2Mode = APCI3120_COUNTER;
...@@ -965,7 +958,7 @@ static irqreturn_t apci3120_interrupt(int irq, void *d) ...@@ -965,7 +958,7 @@ static irqreturn_t apci3120_interrupt(int irq, void *d)
send_sig(SIGIO, devpriv->tsk_Current, 0); /* send signal to the sample */ send_sig(SIGIO, devpriv->tsk_Current, 0); /* send signal to the sample */
} else { } else {
/* Disable EOC Interrupt */ /* Disable EOC Interrupt */
devpriv->mode &= ~APCI3120_ENABLE_EOC_INT; devpriv->mode &= ~APCI3120_MODE_EOC_IRQ_ENA;
outb(devpriv->mode, outb(devpriv->mode,
dev->iobase + APCI3120_WRITE_MODE_SELECT); dev->iobase + APCI3120_WRITE_MODE_SELECT);
} }
...@@ -979,7 +972,7 @@ static irqreturn_t apci3120_interrupt(int irq, void *d) ...@@ -979,7 +972,7 @@ static irqreturn_t apci3120_interrupt(int irq, void *d)
if (devpriv->ai_running) { if (devpriv->ai_running) {
ui_Check = 0; ui_Check = 0;
apci3120_interrupt_handle_eos(dev); apci3120_interrupt_handle_eos(dev);
devpriv->mode |= APCI3120_ENABLE_EOS_INT; devpriv->mode |= APCI3120_MODE_EOS_IRQ_ENA;
outb(devpriv->mode, outb(devpriv->mode,
dev->iobase + APCI3120_WRITE_MODE_SELECT); dev->iobase + APCI3120_WRITE_MODE_SELECT);
} else { } else {
...@@ -998,7 +991,7 @@ static irqreturn_t apci3120_interrupt(int irq, void *d) ...@@ -998,7 +991,7 @@ static irqreturn_t apci3120_interrupt(int irq, void *d)
} }
} else { } else {
devpriv->mode &= ~APCI3120_ENABLE_EOS_INT; devpriv->mode &= ~APCI3120_MODE_EOS_IRQ_ENA;
outb(devpriv->mode, outb(devpriv->mode,
dev->iobase + APCI3120_WRITE_MODE_SELECT); dev->iobase + APCI3120_WRITE_MODE_SELECT);
devpriv->b_EocEosInterrupt = APCI3120_DISABLE; /* Default settings */ devpriv->b_EocEosInterrupt = APCI3120_DISABLE; /* Default settings */
...@@ -1011,7 +1004,7 @@ static irqreturn_t apci3120_interrupt(int irq, void *d) ...@@ -1011,7 +1004,7 @@ static irqreturn_t apci3120_interrupt(int irq, void *d)
switch (devpriv->b_Timer2Mode) { switch (devpriv->b_Timer2Mode) {
case APCI3120_COUNTER: case APCI3120_COUNTER:
devpriv->mode &= ~APCI3120_ENABLE_EOS_INT; devpriv->mode &= ~APCI3120_MODE_EOS_IRQ_ENA;
outb(devpriv->mode, outb(devpriv->mode,
dev->iobase + APCI3120_WRITE_MODE_SELECT); dev->iobase + APCI3120_WRITE_MODE_SELECT);
...@@ -1033,7 +1026,7 @@ static irqreturn_t apci3120_interrupt(int irq, void *d) ...@@ -1033,7 +1026,7 @@ static irqreturn_t apci3120_interrupt(int irq, void *d)
default: default:
/* disable Timer Interrupt */ /* disable Timer Interrupt */
devpriv->mode &= ~APCI3120_ENABLE_TIMER_INT; devpriv->mode &= ~APCI3120_MODE_TIMER2_IRQ_ENA;
outb(devpriv->mode, outb(devpriv->mode,
dev->iobase + APCI3120_WRITE_MODE_SELECT); dev->iobase + APCI3120_WRITE_MODE_SELECT);
} }
...@@ -1089,11 +1082,12 @@ static int apci3120_config_insn_timer(struct comedi_device *dev, ...@@ -1089,11 +1082,12 @@ static int apci3120_config_insn_timer(struct comedi_device *dev,
apci3120_timer_enable(dev, 2, false); apci3120_timer_enable(dev, 2, false);
/* Disable TIMER Interrupt */ /* Disable TIMER Interrupt */
devpriv->mode &= ~APCI3120_ENABLE_TIMER_INT & devpriv->mode &= ~APCI3120_MODE_TIMER2_IRQ_ENA &
~APCI3120_ENABLE_TIMER_COUNTER; ~APCI3120_ENABLE_TIMER_COUNTER;
/* Disable Eoc and Eos Interrupts */ /* Disable Eoc and Eos Interrupts */
devpriv->mode &= ~APCI3120_ENABLE_EOC_INT & ~APCI3120_ENABLE_EOS_INT; devpriv->mode &= ~APCI3120_MODE_EOC_IRQ_ENA &
~APCI3120_MODE_EOS_IRQ_ENA;
outb(devpriv->mode, dev->iobase + APCI3120_WRITE_MODE_SELECT); outb(devpriv->mode, dev->iobase + APCI3120_WRITE_MODE_SELECT);
if (data[0] == APCI3120_TIMER) { /* initialize timer */ if (data[0] == APCI3120_TIMER) { /* initialize timer */
...@@ -1170,12 +1164,12 @@ static int apci3120_write_insn_timer(struct comedi_device *dev, ...@@ -1170,12 +1164,12 @@ static int apci3120_write_insn_timer(struct comedi_device *dev,
/* enable disable interrupt */ /* enable disable interrupt */
if ((devpriv->b_Timer2Interrupt) == APCI3120_ENABLE) { if ((devpriv->b_Timer2Interrupt) == APCI3120_ENABLE) {
devpriv->mode |= APCI3120_ENABLE_TIMER_INT; devpriv->mode |= APCI3120_MODE_TIMER2_IRQ_ENA;
/* save the task structure to pass info to user */ /* save the task structure to pass info to user */
devpriv->tsk_Current = current; devpriv->tsk_Current = current;
} else { } else {
devpriv->mode &= ~APCI3120_ENABLE_TIMER_INT; devpriv->mode &= ~APCI3120_MODE_TIMER2_IRQ_ENA;
} }
outb(devpriv->mode, dev->iobase + APCI3120_WRITE_MODE_SELECT); outb(devpriv->mode, dev->iobase + APCI3120_WRITE_MODE_SELECT);
...@@ -1193,7 +1187,7 @@ static int apci3120_write_insn_timer(struct comedi_device *dev, ...@@ -1193,7 +1187,7 @@ static int apci3120_write_insn_timer(struct comedi_device *dev,
devpriv->mode &= ~APCI3120_ENABLE_WATCHDOG; devpriv->mode &= ~APCI3120_ENABLE_WATCHDOG;
} }
/* Disable timer interrupt */ /* Disable timer interrupt */
devpriv->mode &= ~APCI3120_ENABLE_TIMER_INT; devpriv->mode &= ~APCI3120_MODE_TIMER2_IRQ_ENA;
outb(devpriv->mode, dev->iobase + APCI3120_WRITE_MODE_SELECT); outb(devpriv->mode, dev->iobase + APCI3120_WRITE_MODE_SELECT);
apci3120_timer_enable(dev, 2, false); apci3120_timer_enable(dev, 2, false);
......
...@@ -40,6 +40,10 @@ ...@@ -40,6 +40,10 @@
#define APCI3120_CTR0_REG 0x0d #define APCI3120_CTR0_REG 0x0d
#define APCI3120_CTR0_DO_BITS(x) ((x) << 4) #define APCI3120_CTR0_DO_BITS(x) ((x) << 4)
#define APCI3120_CTR0_TIMER_SEL(x) ((x) << 0) #define APCI3120_CTR0_TIMER_SEL(x) ((x) << 0)
#define APCI3120_MODE_SCAN_ENA (1 << 3)
#define APCI3120_MODE_TIMER2_IRQ_ENA (1 << 2)
#define APCI3120_MODE_EOS_IRQ_ENA (1 << 1)
#define APCI3120_MODE_EOC_IRQ_ENA (1 << 0)
/* /*
* PCI BAR 2 register map (devpriv->addon) * PCI BAR 2 register map (devpriv->addon)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment