Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 317910
b: refs/heads/master
c: 9d8ed35
h: refs/heads/master
v: v3
  • Loading branch information
H Hartley Sweeten authored and Greg Kroah-Hartman committed Jul 13, 2012
1 parent d1eea3e commit 34c3b45
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 10 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: a2b520b7867c964bb629633c1f909f6ac901f91b
refs/heads/master: 9d8ed35d02c54282eef1f14523aec78551b56e49
20 changes: 11 additions & 9 deletions trunk/drivers/staging/comedi/drivers/rtd520.c
Original file line number Diff line number Diff line change
Expand Up @@ -406,10 +406,6 @@ struct rtdPrivate {

/* Macros to access registers */

/* Interrupt clear mask */
#define RtdInterruptClearMask(dev, v) \
writew((devpriv->intClearMask = (v)), devpriv->las0+LAS0_CLEAR)

/* Interrupt overrun status */
#define RtdInterruptOverrunStatus(dev) \
readl(devpriv->las0+LAS0_OVERRUN)
Expand Down Expand Up @@ -1124,7 +1120,8 @@ static irqreturn_t rtd_interrupt(int irq, /* interrupt number (ignored) */
}

/* clear the interrupt */
RtdInterruptClearMask(dev, status);
devpriv->intClearMask = status;
writew(devpriv->intClearMask, devpriv->las0 + LAS0_CLEAR);
readw(devpriv->las0 + LAS0_CLEAR);
return IRQ_HANDLED;

Expand Down Expand Up @@ -1165,7 +1162,8 @@ static irqreturn_t rtd_interrupt(int irq, /* interrupt number (ignored) */

/* clear the interrupt */
status = readw(devpriv->las0 + LAS0_IT);
RtdInterruptClearMask(dev, status);
devpriv->intClearMask = status;
writew(devpriv->intClearMask, devpriv->las0 + LAS0_CLEAR);
readw(devpriv->las0 + LAS0_CLEAR);

fifoStatus = readl(devpriv->las0 + LAS0_ADC);
Expand Down Expand Up @@ -1560,7 +1558,8 @@ static int rtd_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)

/* This doesn't seem to work. There is no way to clear an interrupt
that the priority controller has queued! */
RtdInterruptClearMask(dev, ~0); /* clear any existing flags */
devpriv->intClearMask = ~0;
writew(devpriv->intClearMask, devpriv->las0 + LAS0_CLEAR);
readw(devpriv->las0 + LAS0_CLEAR);

/* TODO: allow multiple interrupt sources */
Expand Down Expand Up @@ -1963,7 +1962,8 @@ static int rtd_attach(struct comedi_device *dev, struct comedi_devconfig *it)
RtdPlxInterruptWrite(dev, 0);
devpriv->intMask = 0;
writew(devpriv->intMask, devpriv->las0 + LAS0_IT);
RtdInterruptClearMask(dev, ~0); /* and sets shadow */
devpriv->intClearMask = ~0;
writew(devpriv->intClearMask, devpriv->las0 + LAS0_CLEAR);
readw(devpriv->las0 + LAS0_CLEAR);
RtdInterruptOverrunClear(dev);
writel(0, devpriv->las0 + LAS0_CGT_CLEAR);
Expand Down Expand Up @@ -2143,7 +2143,9 @@ static void rtd_detach(struct comedi_device *dev)
writel(0, devpriv->las0 + LAS0_BOARD_RESET);
devpriv->intMask = 0;
writew(devpriv->intMask, devpriv->las0 + LAS0_IT);
RtdInterruptClearMask(dev, ~0);
devpriv->intClearMask = ~0;
writew(devpriv->intClearMask,
devpriv->las0 + LAS0_CLEAR);
readw(devpriv->las0 + LAS0_CLEAR);
}
#ifdef USE_DMA
Expand Down

0 comments on commit 34c3b45

Please sign in to comment.