Commit 52037a0d authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman

staging: comedi: drivers should not clear the async->events

The comedi core resets the async->events in comedi_buf_reset() which is
called when the subdevice is restored to an idle state and at the start
of an async command. The async->events are also cleared after handling
the events in comedi_event().

Drivers should not clear the events manually.
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 fb6aa250
...@@ -1574,8 +1574,6 @@ static int i_APCI3120_InterruptHandleEos(struct comedi_device *dev) ...@@ -1574,8 +1574,6 @@ static int i_APCI3120_InterruptHandleEos(struct comedi_device *dev)
n_chan = devpriv->ui_AiNbrofChannels; n_chan = devpriv->ui_AiNbrofChannels;
s->async->events = 0;
for (i = 0; i < n_chan; i++) for (i = 0; i < n_chan; i++)
err &= comedi_buf_put(s->async, inw(dev->iobase + 0)); err &= comedi_buf_put(s->async, inw(dev->iobase + 0));
......
...@@ -2619,7 +2619,6 @@ static int i_APCI3200_InterruptHandleEos(struct comedi_device *dev) ...@@ -2619,7 +2619,6 @@ static int i_APCI3200_InterruptHandleEos(struct comedi_device *dev)
/* BEGIN JK 18.10.2004: APCI-3200 Driver update 0.7.57 -> 0.7.68 */ /* BEGIN JK 18.10.2004: APCI-3200 Driver update 0.7.57 -> 0.7.68 */
/* This value is not used */ /* This value is not used */
/* ui_ChannelNumber = inl(devpriv->iobase+s_BoardInfos [dev->minor].i_Offset + 24); */ /* ui_ChannelNumber = inl(devpriv->iobase+s_BoardInfos [dev->minor].i_Offset + 24); */
s->async->events = 0;
/* END JK 18.10.2004: APCI-3200 Driver update 0.7.57 -> 0.7.68 */ /* END JK 18.10.2004: APCI-3200 Driver update 0.7.57 -> 0.7.68 */
/*************************************/ /*************************************/
......
...@@ -955,8 +955,6 @@ static void interrupt_pci9118_ai_onesample(struct comedi_device *dev, ...@@ -955,8 +955,6 @@ static void interrupt_pci9118_ai_onesample(struct comedi_device *dev,
struct pci9118_private *devpriv = dev->private; struct pci9118_private *devpriv = dev->private;
unsigned short sampl; unsigned short sampl;
s->async->events = 0;
if (int_adstat & devpriv->ai_maskerr) if (int_adstat & devpriv->ai_maskerr)
if (pci9118_decode_error_status(dev, s, int_adstat)) if (pci9118_decode_error_status(dev, s, int_adstat))
return; return;
......
...@@ -185,7 +185,6 @@ static void waveform_ai_interrupt(unsigned long arg) ...@@ -185,7 +185,6 @@ static void waveform_ai_interrupt(unsigned long arg)
(devpriv->usec_remainder + elapsed_time) / devpriv->scan_period; (devpriv->usec_remainder + elapsed_time) / devpriv->scan_period;
devpriv->usec_remainder = devpriv->usec_remainder =
(devpriv->usec_remainder + elapsed_time) % devpriv->scan_period; (devpriv->usec_remainder + elapsed_time) % devpriv->scan_period;
async->events = 0;
if (cmd->stop_src == TRIG_COUNT) { if (cmd->stop_src == TRIG_COUNT) {
unsigned int remaining = cmd->stop_arg - devpriv->ai_count; unsigned int remaining = cmd->stop_arg - devpriv->ai_count;
......
...@@ -416,7 +416,6 @@ static void das16m1_handler(struct comedi_device *dev, unsigned int status) ...@@ -416,7 +416,6 @@ static void das16m1_handler(struct comedi_device *dev, unsigned int status)
s = dev->read_subdev; s = dev->read_subdev;
async = s->async; async = s->async;
async->events = 0;
cmd = &async->cmd; cmd = &async->cmd;
/* figure out how many samples are in fifo */ /* figure out how many samples are in fifo */
......
...@@ -646,7 +646,6 @@ static void das1800_ai_handler(struct comedi_device *dev) ...@@ -646,7 +646,6 @@ static void das1800_ai_handler(struct comedi_device *dev)
struct comedi_cmd *cmd = &async->cmd; struct comedi_cmd *cmd = &async->cmd;
unsigned int status = inb(dev->iobase + DAS1800_STATUS); unsigned int status = inb(dev->iobase + DAS1800_STATUS);
async->events = 0;
/* select adc for base address + 0 */ /* select adc for base address + 0 */
outb(ADC, dev->iobase + DAS1800_SELECT); outb(ADC, dev->iobase + DAS1800_SELECT);
/* dma buffer full */ /* dma buffer full */
......
...@@ -448,7 +448,6 @@ static int das800_ai_do_cmd(struct comedi_device *dev, ...@@ -448,7 +448,6 @@ static int das800_ai_do_cmd(struct comedi_device *dev,
das800_ind_write(dev, conv_bits, CONV_CONTROL); das800_ind_write(dev, conv_bits, CONV_CONTROL);
spin_unlock_irqrestore(&dev->spinlock, irq_flags); spin_unlock_irqrestore(&dev->spinlock, irq_flags);
async->events = 0;
das800_enable(dev); das800_enable(dev);
return 0; return 0;
} }
......
...@@ -746,8 +746,6 @@ static irqreturn_t handle_interrupt(int irq, void *d) ...@@ -746,8 +746,6 @@ static irqreturn_t handle_interrupt(int irq, void *d)
hpdi_intr_status = readl(devpriv->hpdi_iobase + INTERRUPT_STATUS_REG); hpdi_intr_status = readl(devpriv->hpdi_iobase + INTERRUPT_STATUS_REG);
hpdi_board_status = readl(devpriv->hpdi_iobase + BOARD_STATUS_REG); hpdi_board_status = readl(devpriv->hpdi_iobase + BOARD_STATUS_REG);
async->events = 0;
if (hpdi_intr_status) { if (hpdi_intr_status) {
writel(hpdi_intr_status, writel(hpdi_intr_status,
devpriv->hpdi_iobase + INTERRUPT_STATUS_REG); devpriv->hpdi_iobase + INTERRUPT_STATUS_REG);
......
...@@ -1112,9 +1112,6 @@ static irqreturn_t me4000_ai_isr(int irq, void *dev_id) ...@@ -1112,9 +1112,6 @@ static irqreturn_t me4000_ai_isr(int irq, void *dev_id)
if (!dev->attached) if (!dev->attached)
return IRQ_NONE; return IRQ_NONE;
/* Reset all events */
s->async->events = 0;
if (inl(dev->iobase + ME4000_IRQ_STATUS_REG) & if (inl(dev->iobase + ME4000_IRQ_STATUS_REG) &
ME4000_IRQ_STATUS_BIT_AI_HF) { ME4000_IRQ_STATUS_BIT_AI_HF) {
/* Read status register to find out what happened */ /* Read status register to find out what happened */
......
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