From 5851f60ba43e58390ea421c463efeba1efc90567 Mon Sep 17 00:00:00 2001 From: H Hartley Sweeten Date: Tue, 10 Jul 2012 16:55:04 -0700 Subject: [PATCH] --- yaml --- r: 317911 b: refs/heads/master c: 4c977b86b123e0ae1da8bf25b00125443fd514c9 h: refs/heads/master i: 317909: d1eea3e7b96ee36dea4173ed1cc80399015f2884 317907: 061aa793ceaa1c7af3521ccf628bd85b78b51530 317903: 463e4eb944396b74506d5e4d43055029858cdbc9 v: v3 --- [refs] | 2 +- trunk/drivers/staging/comedi/drivers/rtd520.c | 21 +++++++++---------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/[refs] b/[refs] index f146df18cbe9..7b78881589f9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9d8ed35d02c54282eef1f14523aec78551b56e49 +refs/heads/master: 4c977b86b123e0ae1da8bf25b00125443fd514c9 diff --git a/trunk/drivers/staging/comedi/drivers/rtd520.c b/trunk/drivers/staging/comedi/drivers/rtd520.c index 07260cda4197..3c501ca33787 100644 --- a/trunk/drivers/staging/comedi/drivers/rtd520.c +++ b/trunk/drivers/staging/comedi/drivers/rtd520.c @@ -406,10 +406,6 @@ struct rtdPrivate { /* Macros to access registers */ -/* Interrupt overrun status */ -#define RtdInterruptOverrunStatus(dev) \ - readl(devpriv->las0+LAS0_OVERRUN) - /* Interrupt overrun clear */ #define RtdInterruptOverrunClear(dev) \ writel(0, devpriv->las0+LAS0_OVERRUN) @@ -1013,9 +1009,10 @@ static irqreturn_t rtd_interrupt(int irq, /* interrupt number (ignored) */ void *d) { /* our data *//* cpu context (ignored) */ struct comedi_device *dev = d; /* must be called "dev" for devpriv */ + struct comedi_subdevice *s = dev->subdevices + 0; /* analog in subdevice */ + u32 overrun; u16 status; u16 fifoStatus; - struct comedi_subdevice *s = dev->subdevices + 0; /* analog in subdevice */ if (!dev->attached) return IRQ_NONE; @@ -1112,10 +1109,11 @@ static irqreturn_t rtd_interrupt(int irq, /* interrupt number (ignored) */ DPRINTK("rtd520: unknown interrupt source!\n"); } - if (0xffff & RtdInterruptOverrunStatus(dev)) { /* interrupt overrun */ + overrun = readl(devpriv->las0 + LAS0_OVERRUN) & 0xffff; + if (overrun) { DPRINTK ("rtd520: Interrupt overrun with %ld to go! over_status=0x%x\n", - devpriv->aiCount, 0xffff & RtdInterruptOverrunStatus(dev)); + devpriv->aiCount, overrun); goto abortTransfer; } @@ -1167,10 +1165,10 @@ static irqreturn_t rtd_interrupt(int irq, /* interrupt number (ignored) */ readw(devpriv->las0 + LAS0_CLEAR); fifoStatus = readl(devpriv->las0 + LAS0_ADC); + overrun = readl(devpriv->las0 + LAS0_OVERRUN) & 0xffff; DPRINTK ("rtd520: Acquisition complete. %ld ints, intStat=%x, overStat=%x\n", - devpriv->intCount, status, - 0xffff & RtdInterruptOverrunStatus(dev)); + devpriv->intCount, status, overrun); return IRQ_HANDLED; } @@ -1603,6 +1601,7 @@ static int rtd_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s) */ static int rtd_ai_cancel(struct comedi_device *dev, struct comedi_subdevice *s) { + u32 overrun; u16 status; writel(0, devpriv->las0 + LAS0_PACER_STOP); @@ -1620,10 +1619,10 @@ static int rtd_ai_cancel(struct comedi_device *dev, struct comedi_subdevice *s) } #endif /* USE_DMA */ status = readw(devpriv->las0 + LAS0_IT); + overrun = readl(devpriv->las0 + LAS0_OVERRUN) & 0xffff; DPRINTK ("rtd520: Acquisition canceled. %ld ints, intStat=%x, overStat=%x\n", - devpriv->intCount, status, - 0xffff & RtdInterruptOverrunStatus(dev)); + devpriv->intCount, status, overrun); return 0; }