This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OMAP3 ISP Linux hang/freeze when capturing raw data

Other Parts Discussed in Thread: DM3730

Hi,

I'm working with an OMAP3 DM3730 processor module with a AR0130 Aptina camera (1280x960x12bit) attached on parallel interface. The system runs Linux (3.0.50) and a Qt application. The Qt application implements v4l2 capabilities required to capture pictures from an the attached camera. It's implemented similar to yavta.

When configuring the ISP pipeline in the following way, image capturing will work stable:
Sensor->CCDC->Preview->Resizer->Memory

When configuring it to:
Sensor->CCDC->Memory
it will start and stop streaming once (for a variable number of frames), but the whole system will completely hang when trying to start streaming a second time (including the Kernel). This problem does not depend on the number of buffers allocated. I've printk'd this problem down to the following routine, where the whole system freezes.

The freeze occurs after leaving the loop 'list_for_each_entry'.

Does someone have an idea what might cause this freeze or how i could further debug this problem?

Thanks a lot,

Michael



int omap3isp_video_queue_streamon(struct isp_video_queue *queue)
{
       struct isp_video_buffer *buf;
       unsigned long flags;

       mutex_lock(&queue->lock);

       if (queue->streaming)
               goto done;

       queue->streaming = 1;

       spin_lock_irqsave(&queue->irqlock, flags);
       list_for_each_entry(buf, &queue->queue, stream) {
               queue->ops->buffer_queue(buf);
       }
       spin_unlock_irqrestore(&queue->irqlock, flags);

done:
       mutex_unlock(&queue->lock);
       return 0;
}