Re: omap3isp-bt656 stopping issue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Julien,

Going through my old BT.656-related e-mails, I think this is my most late 
reply so far. Let's hope I won't break the record in the future.

Now that BT.656 support for the OMAP3 ISP is finally going to mainline, I was 
wondering if you still had access to the platform mentioned below, and if you 
could test whether the problem still occurs.

The OMAP3 ISP code is available at

	git://linuxtv.org/pinchartl/media.git omap3isp/next

tvp5151 test patches can be found in the omap3isp/bt656 branch of the same 
repository.

On Wednesday 07 November 2012 11:37:36 Julien BERAUD wrote:
> Hello,
> 
> I have been working on a platform based on an omap3630 with a tvp5151 in
> bt656 mode and I have iommu translation faults when starting and
> stopping capture in a loop a certain number of times.
> I think I have identified the problem and though my working branch is
> not exactly the same as yours, I think that you have the same issue.
> 
> When stopping ccdc capture(ccdc_set_stream), function ccdc_disable is
> called which clears the bit  ISPCCDC_PCR_EN (__ccdc_disable) and waits
> for the current frame to finish.
> In progressive mode, the next vd0_isr will call ccdc_isr_buffer which
> will wait for the ccdc pcr busy flag to go off and then call function
> __ccdc_handle_stopping which will set the flags that will allow the
> stopping process to go on.
> 
> The problem seems to be that in interlaced mode, if the next vd0_isr is
> received for the first half of the frame(odd field), the ccdc_isr_buffer
> routine is not called,  __ccdc_handle_stopping is called and sets the
> flags that will allow the stopping process to go on without waiting for
> the frame to finish like it should be the case, or like it is the case
> if the next vd0_isr is received for the second part of the frame(even
> field).
> 
> Calling ccdc_isr_buffer in case ccdc->stopping & CCDC_STOP_REQUEST != 0
> makes that the flags are set only after the busy signal goes off and it
> fixes the issue I have.
> 
> By the way, I haven't seen anything in the omap3630 trm that tells me
> that in case we are in progressive mode, the busy flag goes off after
> the current field(half frame) is finished instead of the whole frame but
> I noticed this is the case.
> 
> If there is something I missed, or if the behaviour of the ccdc isn't
> supposed to be like that, could you explain what I got wrong?

-- 
Regards,

Laurent Pinchart

--
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




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux