On Thu, 12 Mar 2009, Robert Jarzmik wrote: > Guennadi Liakhovetski <g.liakhovetski@xxxxxx> writes: > > >> diff --git a/drivers/media/video/pxa_camera.c b/drivers/media/video/pxa_camera.c > >> index 16bf0a3..dd56c35 100644 > >> --- a/drivers/media/video/pxa_camera.c > >> +++ b/drivers/media/video/pxa_camera.c > >> @@ -734,14 +734,18 @@ static void pxa_camera_dma_irq(int channel, struct pxa_camera_dev *pcdev, > >> status & DCSR_ENDINTR ? "EOF " : "", vb, DDADR(channel)); > >> > >> if (status & DCSR_ENDINTR) { > >> - if (camera_status & overrun) { > >> + /* > >> + * It's normal if the last frame creates an overrun, as there > >> + * are no more DMA descriptors to fetch from QIF fifos > >> + */ > >> + if (camera_status & overrun > >> + && !list_is_last(pcdev->capture.next, &pcdev->capture)) { > > > > On a second look - didn't you want to test for ->active being the last? > > Mmm, I'm not sure I get you right here. AFAICR pcdev->active has no direct link > with pcdev->capture (it has nothing to do with a list_head *). Of course with a > bit of "container_of" magic (or list_entry equivalent), I'll find it ... Ah, sorry, scratch it, I now understand what you're doing here, looks ok. Thanks Guennadi --- Guennadi Liakhovetski, Ph.D. Freelance Open-Source Software Developer -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html