mirror of
https://github.com/torvalds/linux.git
synced 2024-11-16 09:02:00 +00:00
V4L/DVB (6043): ivtv: fix incorrect round-robin implementation
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
parent
b1139e353c
commit
33bc4dea0e
@ -859,8 +859,9 @@ irqreturn_t ivtv_irq_handler(int irq, void *dev_id)
|
||||
}
|
||||
|
||||
if ((combo & IVTV_IRQ_DMA) && !test_bit(IVTV_F_I_DMA, &itv->i_flags)) {
|
||||
itv->irq_rr_idx++;
|
||||
for (i = 0; i < IVTV_MAX_STREAMS; i++) {
|
||||
int idx = (i + itv->irq_rr_idx++) % IVTV_MAX_STREAMS;
|
||||
int idx = (i + itv->irq_rr_idx) % IVTV_MAX_STREAMS;
|
||||
struct ivtv_stream *s = &itv->streams[idx];
|
||||
|
||||
if (!test_and_clear_bit(IVTV_F_S_DMA_PENDING, &s->s_flags))
|
||||
@ -877,8 +878,9 @@ irqreturn_t ivtv_irq_handler(int irq, void *dev_id)
|
||||
}
|
||||
|
||||
if ((combo & IVTV_IRQ_DMA) && !test_bit(IVTV_F_I_PIO, &itv->i_flags)) {
|
||||
itv->irq_rr_idx++;
|
||||
for (i = 0; i < IVTV_MAX_STREAMS; i++) {
|
||||
int idx = (i + itv->irq_rr_idx++) % IVTV_MAX_STREAMS;
|
||||
int idx = (i + itv->irq_rr_idx) % IVTV_MAX_STREAMS;
|
||||
struct ivtv_stream *s = &itv->streams[idx];
|
||||
|
||||
if (!test_and_clear_bit(IVTV_F_S_PIO_PENDING, &s->s_flags))
|
||||
|
Loading…
Reference in New Issue
Block a user