On Mon, Oct 10, 2011 at 10:54 AM, Enrico <ebutera@xxxxxxxxxxxxxxxx> wrote: > On Mon, Oct 10, 2011 at 1:00 AM, Javier Martinez Canillas > <martinez.javier@xxxxxxxxx> wrote: >> On Mon, Oct 10, 2011 at 12:35 AM, Enrico <ebutera@xxxxxxxxxxxxxxxx> wrote: >>> I made some tests and unfortunately there are some problems. >>> >>> Note: i made these tests picking some patches from omap3isp-yuv branch >>> and applying to igep 3.1.0rc9 kernel (more or less like mainline + >>> some bsp patches) so maybe i made some mistakes (the tvp5150 driver is >>> patched too), but due to the nature of the problems i don't think this >>> is the case. >>> >>> Javier patches v1: i can grab frames with yavta but i get only garbage. >>> >>> Javier patches v2: i cannot grab frames with yavta (it hangs). I see >>> only 2 interrupts on the isp, then stops. >>> >>> I compared Javier-v2 registers setup with Deepthy's patches and there >>> are some differences. Moreover i remember that in Deepthy patches vd1 >>> interrupt was not used (and in fact i had the same yavta-hanging >>> problem before, and Deepthy patches solved it). >>> >>> I think Javier-v1 patches didn't hang the isp because they changed >>> vd0/vd1 logic too, so maybe there were only some wrong isp registers >>> but the logic was correct. >>> >>> Now i wonder if it could be easier/better to port Deepthy patches >>> first and then add Javier fixes... >>> >>> Enrico >>> >> >> Hi Enrico, >> >> Yes, you are right in interlaced mode the VD1 interrupt handler >> doesn't have to be executed. In v1 there is a conditional execution >> and that is why the ISP doesn't hang up. >> >> Could you please try changing this on ispccdc.c with v2 patches? >> >> diff --git a/drivers/media/video/omap3isp/ispccdc.c >> b/drivers/media/video/omap3isp/ispccdc.c >> index 9b40968..bfd3f46 100644 >> --- a/drivers/media/video/omap3isp/ispccdc.c >> +++ b/drivers/media/video/omap3isp/ispccdc.c >> @@ -1658,7 +1658,8 @@ int omap3isp_ccdc_isr(struct isp_ccdc_device >> *ccdc, u32 events) >> if (ccdc->state == ISP_PIPELINE_STREAM_STOPPED) >> return 0; >> >> - if (events & IRQ0STATUS_CCDC_VD1_IRQ) >> + if ((events & IRQ0STATUS_CCDC_VD1_IRQ) && >> + !ccdc_input_is_fldmode(ccdc)) >> ccdc_vd1_isr(ccdc); >> >> ccdc_lsc_isr(ccdc, events); >> >> With this change the ISP shouldn't hang but I don't know if you will >> get the right data. > > I tried that but i only get this: > > root@igep0020:~# yavta -c4 -f UYVY -s 720x625 -n 4 /dev/video2 > Device /dev/video2 opened. > Device `OMAP3 ISP CCDC output' on `media' is a video capture device. > Video format set: UYVY (59565955) 720x625 buffer size 900000 > Video format: UYVY (59565955) 720x625 buffer size 900000 > 4 buffers requested. > length: 900000 offset: 0 > Buffer 0 mapped at address 0x4027a000. > length: 900000 offset: 901120 > Buffer 1 mapped at address 0x403de000. > length: 900000 offset: 1802240 > Buffer 2 mapped at address 0x4059b000. > length: 900000 offset: 2703360 > Buffer 3 mapped at address 0x40748000. > [ 952.675170] omap3isp omap3isp: CCDC won't become idle! > [ 952.695159] omap3isp omap3isp: CCDC won't become idle! > [ 952.715179] omap3isp omap3isp: CCDC won't become idle! > [ 952.735137] omap3isp omap3isp: CCDC won't become idle! > > and it continues forever saying that. > > I'm going to try to apply Deepthy patches on omap3isp-yuv and hope it will work. > > Enrico > Hi Enrico, Is your tree (igep 3.1.0rc9 kernel + omap3isp-yuv patches) accessible so I can clone and give a try? I can then make a patch-set on top on that, one that I can actually test on real hardware and be sure that is working well. If I can git clone your tree then it will be faster, otherwise I will try omap3isp-yuv with igep board support added, but it would take me more time to do so. I will find some free time late this afternoon to try that. Best regards, -- Javier Martínez Canillas (+34) 682 39 81 69 Barcelona, Spain -- 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