diff options
author | Oliver Endriss <o.endriss@gmx.de> | 2010-05-16 04:17:49 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-06-01 00:20:10 -0400 |
commit | eb05d155bc9f51ff701c09bc9b5e4b4f5a4b4d9f (patch) | |
tree | 3b09f3f714b3b958e896782cb7895123932bc931 | |
parent | 9d78f46071b2cbc91eaf533e1ea441af36eed06a (diff) |
V4L/DVB: ngene: Do not call demuxer with interrupts disabled
It is neither a good idea nor necessary to call the demuxer with interrupts disabled.
Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r-- | drivers/media/dvb/ngene/ngene-core.c | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/drivers/media/dvb/ngene/ngene-core.c b/drivers/media/dvb/ngene/ngene-core.c index c8b4dfa0ab5f..46749d6ef1ee 100644 --- a/drivers/media/dvb/ngene/ngene-core.c +++ b/drivers/media/dvb/ngene/ngene-core.c | |||
@@ -147,24 +147,24 @@ static void demux_tasklet(unsigned long data) | |||
147 | } else { | 147 | } else { |
148 | if (chan->HWState == HWSTATE_RUN) { | 148 | if (chan->HWState == HWSTATE_RUN) { |
149 | u32 Flags = 0; | 149 | u32 Flags = 0; |
150 | IBufferExchange *exch1 = chan->pBufferExchange; | ||
151 | IBufferExchange *exch2 = chan->pBufferExchange2; | ||
150 | if (Cur->ngeneBuffer.SR.Flags & 0x01) | 152 | if (Cur->ngeneBuffer.SR.Flags & 0x01) |
151 | Flags |= BEF_EVEN_FIELD; | 153 | Flags |= BEF_EVEN_FIELD; |
152 | if (Cur->ngeneBuffer.SR.Flags & 0x20) | 154 | if (Cur->ngeneBuffer.SR.Flags & 0x20) |
153 | Flags |= BEF_OVERFLOW; | 155 | Flags |= BEF_OVERFLOW; |
154 | if (chan->pBufferExchange) | 156 | spin_unlock_irq(&chan->state_lock); |
155 | chan->pBufferExchange(chan, | 157 | if (exch1) |
156 | Cur->Buffer1, | 158 | exch1(chan, Cur->Buffer1, |
157 | chan-> | 159 | chan->Capture1Length, |
158 | Capture1Length, | 160 | Cur->ngeneBuffer.SR.Clock, |
159 | Cur->ngeneBuffer. | 161 | Flags); |
160 | SR.Clock, Flags); | 162 | if (exch2) |
161 | if (chan->pBufferExchange2) | 163 | exch2(chan, Cur->Buffer2, |
162 | chan->pBufferExchange2(chan, | 164 | chan->Capture2Length, |
163 | Cur->Buffer2, | 165 | Cur->ngeneBuffer.SR.Clock, |
164 | chan-> | 166 | Flags); |
165 | Capture2Length, | 167 | spin_lock_irq(&chan->state_lock); |
166 | Cur->ngeneBuffer. | ||
167 | SR.Clock, Flags); | ||
168 | } else if (chan->HWState != HWSTATE_STOP) | 168 | } else if (chan->HWState != HWSTATE_STOP) |
169 | chan->HWState = HWSTATE_RUN; | 169 | chan->HWState = HWSTATE_RUN; |
170 | } | 170 | } |