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 ... If that list_is_last is not good, would you provide me with a better alternative ? Cheers. -- Robert -- 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