Skip to content

Commit

Permalink
V4L/DVB (6043): ivtv: fix incorrect round-robin implementation
Browse files Browse the repository at this point in the history
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
  • Loading branch information
Hans Verkuil authored and Mauro Carvalho Chehab committed Oct 10, 2007
1 parent b1139e3 commit 33bc4de
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions drivers/media/video/ivtv/ivtv-irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand All @@ -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))
Expand Down

0 comments on commit 33bc4de

Please sign in to comment.