Hi Christian, On Mon, 03 Mar 2003, Christian Schmidt-Madsen wrote: > After an upgrade from Cord Seele's meteor2 driver v. 1.0 to v. 1.1 I am > experiencing unpredictable errors. More specifically the problem occurs > when I repeatedly grab a single image from a camera in a loop similar to > this: > > while (condition) { > ... > n = read(v4l2->fd, img, v4l2->fmt.fmt.pix.sizeimage); > ... > condition = process_image(); > } > > This runs just fine for a while but then hangs in the read call. The > debug output from the meteor2 driver is shown below. Since the error > does not occur everytime I run the code (but on more than half of the > executions) it is probably a timing/race problem. > > <log> > Mar 3 14:58:15 vegan kernel: meteor2[via_v4l2_open]: new id: CAEEFE80 > flags: 0 512 > Mar 3 14:58:15 vegan kernel: meteor2[via_v4l2_read]: no filled buffer, > start snapshot > Mar 3 14:58:15 vegan kernel: meteor2[via_v4l2_read]: no buffers > requested so far > Mar 3 14:58:15 vegan kernel: meteor2[via_free_himem_bufs]: freeing 3 > stream_bufs @ c1362d80 > Mar 3 14:58:15 vegan kernel: meteor2[via_free_himem_bufs]: yanking buf 0 > Mar 3 14:58:15 vegan kernel: meteor2[via_free_himem_bufs]: buf 1 not queued > Mar 3 14:58:15 vegan kernel: meteor2[via_free_himem_bufs]: buf 2 not queued > Mar 3 14:58:15 vegan kernel: meteor2[unmap_stream_bufs]: unmapping 3 > bufs @ 0xc1362d80 > Mar 3 14:58:15 vegan kernel: meteor2[unmap_stream_bufs]: sbuf->virt: > 0xd8a5f000 > Mar 3 14:58:15 vegan kernel: meteor2[unmap_stream_bufs]: sbuf->virt: > 0xd8b90000 > Mar 3 14:58:15 vegan kernel: meteor2[unmap_stream_bufs]: sbuf->virt: > 0xd8cc1000 > Mar 3 14:58:15 vegan kernel: meteor2[remap_stream_bufs]: mapping 3 bufs > @ 0xc1362d80 > Mar 3 14:58:15 vegan kernel: meteor2[remap_stream_bufs]: addr->virt: > 0xfc00000->0xd8a5f000 > Mar 3 14:58:15 vegan kernel: meteor2[remap_stream_bufs]: addr->virt: > 0xfd30000->0xd8b90000 > Mar 3 14:58:15 vegan kernel: meteor2[remap_stream_bufs]: addr->virt: > 0xfe60000->0xd8cc1000 > Mar 3 14:58:15 vegan kernel: meteor2[via_v4l2_read]: need to queue a > DMA buffer > Mar 3 14:58:15 vegan kernel: meteor2[via_handle_irq_eog]: INTERNAL > ERROR: unexpected grab_state 3 > </log> Please, provide a more detailed log from the beginning (dcf load) until the error occurs and send it to me privately. > grab_state 3 is STATE_G_PENDING which is set in via_snapshot_start() but > this function is seemingly only used for streaming video?! It's used in via_snapshot_start() _and_ via_streaming_start()... ?? Cord