Re: OMAP3 ISP and tvp5151 driver.
Hi Raffaele, On Wednesday 20 April 2011 17:25:58 Raffaele Recalcati wrote: On Wed, Mar 30, 2011 at 3:32 PM, Laurent Pinchart wrote: On Wednesday 30 March 2011 13:05:08 Loïc Akue wrote: Hi Laurent, The OMAP3 ISP should support interleaving interlaced frames, but that's not implemented in the driver. You will need to at least implement interlaced frames support in the CCDC module to report field identifiers to userspace. Are you saying that the OMAP ISP could be configured to provide some full field frames on the CCDC output? I'm looking at the ISP's TRM but I can't find anything interesting. Look at the Line-Output Control section in the OMAP3 TRM (SWPU177B, page 1201). Or is it the job of the user space application to recompose the image with the interleaved frames? I'm using tvp5151 in DaVinci with the drivers/media/video/tvp5150.c driver with little modification to enhance v4l2 interface. It works. Now I'm moving to dm3730 and I see that evm dm3730 uses tvp514x-int.c from Arago tree, that is really different from tvp514x.c . I'm trying to understand if I need to create a tvp5150-int.c using the call v4l2_int_device_register instead of v4l2_i2c_subdev_init. The drivers/media/video/omap34xxcam.c driver calls v4l2_int_device_register and so it needs v4l2_int_device_register. Maybe you have done some modifications to drivers/media/video/tvp5150.c that I could merge with mines ? My best advice is to get rid of the Arago kernel tree and go for the latest mainline kernel version. The OMAP3 ISP driver has been merged into mainline in 2.6.39-rc1. The version available in the Arago kernel tree is plain crap and should never ever be used. -- Regards, Laurent Pinchart -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: OMAP3 ISP and tvp5151 driver.
Hi Laurent, On Wed, Mar 30, 2011 at 3:32 PM, Laurent Pinchart laurent.pinch...@ideasonboard.com wrote: Hi Loïc, On Wednesday 30 March 2011 13:05:08 Loïc Akue wrote: Hi Laurent, The OMAP3 ISP should support interleaving interlaced frames, but that's not implemented in the driver. You will need to at least implement interlaced frames support in the CCDC module to report field identifiers to userspace. Are you saying that the OMAP ISP could be configured to provide some full field frames on the CCDC output? I'm looking at the ISP's TRM but I can't find anything interesting. Look at the Line-Output Control section in the OMAP3 TRM (SWPU177B, page 1201). Or is it the job of the user space application to recompose the image with the interleaved frames? -- Regards, Laurent Pinchart -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html I'm using tvp5151 in DaVinci with the drivers/media/video/tvp5150.c driver with little modification to enhance v4l2 interface. It works. Now I'm moving to dm3730 and I see that evm dm3730 uses tvp514x-int.c from Arago tree, that is really different from tvp514x.c . I'm trying to understand if I need to create a tvp5150-int.c using the call v4l2_int_device_register instead of v4l2_i2c_subdev_init. The drivers/media/video/omap34xxcam.c driver calls v4l2_int_device_register and so it needs v4l2_int_device_register. Maybe you have done some modifications to drivers/media/video/tvp5150.c that I could merge with mines ? Bye, Raffaele -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: OMAP3 ISP and tvp5151 driver.
Hi Laurent, On Wed, Apr 20, 2011 at 5:25 PM, Raffaele Recalcati lamiapost...@gmail.com wrote: Hi Laurent, On Wed, Mar 30, 2011 at 3:32 PM, Laurent Pinchart laurent.pinch...@ideasonboard.com wrote: Hi Loïc, On Wednesday 30 March 2011 13:05:08 Loïc Akue wrote: Hi Laurent, The OMAP3 ISP should support interleaving interlaced frames, but that's not implemented in the driver. You will need to at least implement interlaced frames support in the CCDC module to report field identifiers to userspace. Are you saying that the OMAP ISP could be configured to provide some full field frames on the CCDC output? I'm looking at the ISP's TRM but I can't find anything interesting. Look at the Line-Output Control section in the OMAP3 TRM (SWPU177B, page 1201). Or is it the job of the user space application to recompose the image with the interleaved frames? -- Regards, Laurent Pinchart -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html I'm using tvp5151 in DaVinci with the drivers/media/video/tvp5150.c driver with little modification to enhance v4l2 interface. It works. Now I'm moving to dm3730 and I see that evm dm3730 uses tvp514x-int.c from Arago tree, that is really different from tvp514x.c . I'm trying to understand if I need to create a tvp5150-int.c using the call v4l2_int_device_register instead of v4l2_i2c_subdev_init. The drivers/media/video/omap34xxcam.c driver calls v4l2_int_device_register and so it needs v4l2_int_device_register. Maybe you have done some modifications to drivers/media/video/tvp5150.c that I could merge with mines ? I stop boring you with this item. I have seen in linuxtv tree the omap3isp directory. At the moment I think not to move from 2.6.32 to latest linuxtv kernel, but I keep in mind this possibility. Regards, Raffaele -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: OMAP3 ISP and tvp5151 driver.
Hi Loïc, On Wednesday 30 March 2011 13:05:08 Loïc Akue wrote: Hi Laurent, The OMAP3 ISP should support interleaving interlaced frames, but that's not implemented in the driver. You will need to at least implement interlaced frames support in the CCDC module to report field identifiers to userspace. Are you saying that the OMAP ISP could be configured to provide some full field frames on the CCDC output? I'm looking at the ISP's TRM but I can't find anything interesting. Look at the Line-Output Control section in the OMAP3 TRM (SWPU177B, page 1201). Or is it the job of the user space application to recompose the image with the interleaved frames? -- Regards, Laurent Pinchart -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: OMAP3 ISP and tvp5151 driver.
Hello all, 2011/1/19 Laurent Pinchart laurent.pinch...@ideasonboard.com: Hi Enric, On Wednesday 19 January 2011 12:05:54 Enric Balletbò i Serra wrote: 2011/1/18 Laurent Pinchart laurent.pinch...@ideasonboard.com: On Tuesday 18 January 2011 10:20:43 Enric Balletbò i Serra wrote: Now seems yavta is blocked dequeuing a buffer ( VIDIOC_DQBUF ), with strace I get $ strace ./yavta -f SGRBG10 -s 720x525 -n 1 --capture=1 -F /dev/video2 mmap2(NULL, 756000, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0) = 0x4011f000 write(1, Buffer 0 mapped at address 0x401..., 39Buffer 0 mapped at address 0x4011f000. ) = 39 ioctl(3, VIDIOC_QBUF or VT_SETACTIVATE, 0xbede36cc) = 0 ioctl(3, VIDIOC_STREAMON, 0xbede365c) = 0 gettimeofday({10879, 920196}, NULL) = 0 ioctl(3, VIDIOC_DQBUF and the code where stops is here ispqueue.c 913 buf = list_first_entry(queue-queue, struct isp_video_buffer, stream); 914 ret = isp_video_buffer_wait(buf, nonblocking); Any idea ? My guess is that the CCDC doesn't receive the amount of lines it expects. The CCDC generates an interrupt at 2/3 of the image and another one at the beginning of the last line. Start by checking if the ISP generates any interrupt to the host with cat /proc/interrupts. If it doesn't, then the CCDC receives less than 2/3 of the expected number of lines. If it does, it probably receives between 2/3 and 3/3. You can add printk statements in ispccdc_vd0_isr() and ispccdc_vd1_isr() to confirm this. Looks like my problem is that ispccdc_vd0_isr() and ispccdc_vd1_isr() are never called, adding printk in these functions I see only a lots of ispccdc_hs_vs_isr(), Seems the CCDC receives less than 2/3 of expected number lines. Using an oscilloscope I see VS and HS data lines of the camera interface, so seems physical interface is working. I guess I'm missing something to configure in tvp5150 driver but I don't know. Any help ? Try to hack the ISP driver to generate the VD1 interrupt much earlier (after a couple of lines only). If you get it, then modify the number of lines to see how many lines the CCDC receives. This should hopefully give you a hint. After a parenthesis, back to work with tvp5151. I programmed tvp5151 as 8-bit ITU-R BT.656 parallel interface and capture PAL-B, D, G, H, I standard ( Pixels per line: 864, Active pixels per line: 720, Line per frame: 625 ) As Laurent's suggest I modified the number of lines to see how many lines the CCDC receives and I get 312 lines, he did the trick. I think this is because the tvp5151 sends the images in interlaced mode, so the first frame I receive contains the odd lines and the second frame the even lines. Still having some issues but at least I get some images with yavta and gstreamer using these commands: $ ./media-ctl --set-format 'tvp5150 2-005c:0 [UYVY 720x312]' $ ./yavta -f UYVY -s 720x312 -n 4 --capture=4 --skip 3 -F /dev/video2 $ gst-launch -v v4l2src device=/dev/video2 queue-size=14 ! video/x-raw-yuv,format=\(fourcc\)UYVY,width=720,height=312 ! ffmpegcolorspace ! xvimagesink Maybe someone can help me with these questions: I get a 720x312 image, how can I get 720x525 (the real size) ? The OMAP ISP can do this ? Gstreamer can do this ? And, maybe a stupid question, but, why the CCDC generates an interrupt at 2/3 of the image ? Thanks in advance, Enric -- Regards, Laurent Pinchart -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: OMAP3 ISP and tvp5151 driver.
Hi Enric, On Tuesday 29 March 2011 17:19:53 Enric Balletbò i Serra wrote: 2011/1/19 Laurent Pinchart laurent.pinch...@ideasonboard.com: On Wednesday 19 January 2011 12:05:54 Enric Balletbò i Serra wrote: 2011/1/18 Laurent Pinchart laurent.pinch...@ideasonboard.com: On Tuesday 18 January 2011 10:20:43 Enric Balletbò i Serra wrote: Now seems yavta is blocked dequeuing a buffer ( VIDIOC_DQBUF ), with strace I get $ strace ./yavta -f SGRBG10 -s 720x525 -n 1 --capture=1 -F /dev/video2 mmap2(NULL, 756000, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0) = 0x4011f000 write(1, Buffer 0 mapped at address 0x401..., 39Buffer 0 mapped at address 0x4011f000. ) = 39 ioctl(3, VIDIOC_QBUF or VT_SETACTIVATE, 0xbede36cc) = 0 ioctl(3, VIDIOC_STREAMON, 0xbede365c) = 0 gettimeofday({10879, 920196}, NULL) = 0 ioctl(3, VIDIOC_DQBUF and the code where stops is here ispqueue.c 913 buf = list_first_entry(queue-queue, struct isp_video_buffer, stream); 914 ret = isp_video_buffer_wait(buf, nonblocking); Any idea ? My guess is that the CCDC doesn't receive the amount of lines it expects. The CCDC generates an interrupt at 2/3 of the image and another one at the beginning of the last line. Start by checking if the ISP generates any interrupt to the host with cat /proc/interrupts. If it doesn't, then the CCDC receives less than 2/3 of the expected number of lines. If it does, it probably receives between 2/3 and 3/3. You can add printk statements in ispccdc_vd0_isr() and ispccdc_vd1_isr() to confirm this. Looks like my problem is that ispccdc_vd0_isr() and ispccdc_vd1_isr() are never called, adding printk in these functions I see only a lots of ispccdc_hs_vs_isr(), Seems the CCDC receives less than 2/3 of expected number lines. Using an oscilloscope I see VS and HS data lines of the camera interface, so seems physical interface is working. I guess I'm missing something to configure in tvp5150 driver but I don't know. Any help ? Try to hack the ISP driver to generate the VD1 interrupt much earlier (after a couple of lines only). If you get it, then modify the number of lines to see how many lines the CCDC receives. This should hopefully give you a hint. After a parenthesis, back to work with tvp5151. I programmed tvp5151 as 8-bit ITU-R BT.656 parallel interface and capture PAL-B, D, G, H, I standard ( Pixels per line: 864, Active pixels per line: 720, Line per frame: 625 ) As Laurent's suggest I modified the number of lines to see how many lines the CCDC receives and I get 312 lines, he did the trick. I think this is because the tvp5151 sends the images in interlaced mode, so the first frame I receive contains the odd lines and the second frame the even lines. That seems quite likely. Still having some issues but at least I get some images with yavta and gstreamer using these commands: $ ./media-ctl --set-format 'tvp5150 2-005c:0 [UYVY 720x312]' $ ./yavta -f UYVY -s 720x312 -n 4 --capture=4 --skip 3 -F /dev/video2 $ gst-launch -v v4l2src device=/dev/video2 queue-size=14 ! video/x-raw-yuv,format=\(fourcc\)UYVY,width=720,height=312 ! ffmpegcolorspace ! xvimagesink Maybe someone can help me with these questions: I get a 720x312 image, how can I get 720x525 (the real size) ? The OMAP ISP can do this ? The OMAP3 ISP should support interleaving interlaced frames, but that's not implemented in the driver. You will need to at least implement interlaced frames support in the CCDC module to report field identifiers to userspace. Gstreamer can do this ? And, maybe a stupid question, but, why the CCDC generates an interrupt at 2/3 of the image ? That's for internal reasons. The driver needs to reconfigure the CCDC before the end of the image. -- Regards, Laurent Pinchart -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: OMAP3 ISP and tvp5151 driver.
Hi Laurent, 2011/1/18 Laurent Pinchart laurent.pinch...@ideasonboard.com: Hi Enric, On Tuesday 18 January 2011 10:20:43 Enric Balletbò i Serra wrote: Now seems yavta is blocked dequeuing a buffer ( VIDIOC_DQBUF ), with strace I get $ strace ./yavta -f SGRBG10 -s 720x525 -n 1 --capture=1 -F /dev/video2 mmap2(NULL, 756000, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0) = 0x4011f000 write(1, Buffer 0 mapped at address 0x401..., 39Buffer 0 mapped at address 0x4011f000. ) = 39 ioctl(3, VIDIOC_QBUF or VT_SETACTIVATE, 0xbede36cc) = 0 ioctl(3, VIDIOC_STREAMON, 0xbede365c) = 0 gettimeofday({10879, 920196}, NULL) = 0 ioctl(3, VIDIOC_DQBUF and the code where stops is here ispqueue.c 913 buf = list_first_entry(queue-queue, struct isp_video_buffer, stream); 914 ret = isp_video_buffer_wait(buf, nonblocking); Any idea ? My guess is that the CCDC doesn't receive the amount of lines it expects. The CCDC generates an interrupt at 2/3 of the image and another one at the beginning of the last line. Start by checking if the ISP generates any interrupt to the host with cat /proc/interrupts. If it doesn't, then the CCDC receives less than 2/3 of the expected number of lines. If it does, it probably receives between 2/3 and 3/3. You can add printk statements in ispccdc_vd0_isr() and ispccdc_vd1_isr() to confirm this. Looks like my problem is that ispccdc_vd0_isr() and ispccdc_vd1_isr() are never called, adding printk in these functions I see only a lots of ispccdc_hs_vs_isr(), Seems the CCDC receives less than 2/3 of expected number lines. Using an oscilloscope I see VS and HS data lines of the camera interface, so seems physical interface is working. I guess I'm missing something to configure in tvp5150 driver but I don't know. Any help ? Here is a CCDC Register dump [ 6211.404205] *** ccdc_configure : height 525 [ 6211.404205] *** ccdc_configure : width 720 [ 6211.404205] omap3isp omap3isp: -CCDC Register dump- [ 6211.411315] omap3isp omap3isp: ###CCDC PCR=0x0001 [ 6211.416381] omap3isp omap3isp: ###CCDC SYN_MODE=0x0001 [ 6211.421905] omap3isp omap3isp: ###CCDC HD_VD_WID=0x [ 6211.427520] omap3isp omap3isp: ###CCDC PIX_LINES=0x [ 6211.433135] omap3isp omap3isp: ###CCDC HORZ_INFO=0x028f [ 6211.438751] omap3isp omap3isp: ###CCDC VERT_START=0x [ 6211.58] omap3isp omap3isp: ###CCDC VERT_LINES=0x [ 6211.450164] omap3isp omap3isp: ###CCDC CULLING=0x [ 6211.455566] omap3isp omap3isp: ###CCDC HSIZE_OFF=0x [ 6211.461181] omap3isp omap3isp: ###CCDC SDOFST=0x [ 6211.466552] omap3isp omap3isp: ###CCDC SDR_ADDR=0x [ 6211.472076] omap3isp omap3isp: ###CCDC CLAMP=0x [ 6211.477325] omap3isp omap3isp: ###CCDC DCSUB=0x [ 6211.482604] omap3isp omap3isp: ###CCDC COLPTN=0x [ 6211.487945] omap3isp omap3isp: ###CCDC BLKCMP=0x [ 6211.493286] omap3isp omap3isp: ###CCDC FPC=0x8000 [ 6211.498382] omap3isp omap3isp: ###CCDC FPC_ADDR=0x [ 6211.503906] omap3isp omap3isp: ###CCDC VDINT=0x002a [ 6211.509155] omap3isp omap3isp: ###CCDC ALAW=0x [ 6211.514343] omap3isp omap3isp: ###CCDC REC656IF=0x0002 [ 6211.519866] omap3isp omap3isp: ###CCDC CFG=0xb210 [ 6211.524932] omap3isp omap3isp: ###CCDC FMTCFG=0x [ 6211.530303] omap3isp omap3isp: ###CCDC FMT_HORZ=0x02d0 [ 6211.535827] omap3isp omap3isp: ###CCDC FMT_VERT=0x0200 [ 6211.541351] omap3isp omap3isp: ###CCDC PRGEVEN0=0x00013210 [ 6211.546875] omap3isp omap3isp: ###CCDC PRGEVEN1=0x [ 6211.552398] omap3isp omap3isp: ###CCDC PRGODD0=0x [ 6211.557830] omap3isp omap3isp: ###CCDC PRGODD1=0x [ 6211.563262] omap3isp omap3isp: ###CCDC VP_OUT=0x04182d00 [ 6211.568603] omap3isp omap3isp: ###CCDC LSC_CONFIG=0x [ 6211.574310] omap3isp omap3isp: ###CCDC LSC_INITIAL=0x [ 6211.580108] omap3isp omap3isp: ###CCDC LSC_TABLE_BASE=0x [ 6211.586151] omap3isp omap3isp: ###CCDC LSC_TABLE_OFFSET=0x [ 6211.592376] omap3isp omap3isp: Thanks in advance, Enric -- Regards, Laurent Pinchart -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: OMAP3 ISP and tvp5151 driver.
Hi Enric, On Wednesday 19 January 2011 12:05:54 Enric Balletbò i Serra wrote: 2011/1/18 Laurent Pinchart laurent.pinch...@ideasonboard.com: On Tuesday 18 January 2011 10:20:43 Enric Balletbò i Serra wrote: Now seems yavta is blocked dequeuing a buffer ( VIDIOC_DQBUF ), with strace I get $ strace ./yavta -f SGRBG10 -s 720x525 -n 1 --capture=1 -F /dev/video2 mmap2(NULL, 756000, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0) = 0x4011f000 write(1, Buffer 0 mapped at address 0x401..., 39Buffer 0 mapped at address 0x4011f000. ) = 39 ioctl(3, VIDIOC_QBUF or VT_SETACTIVATE, 0xbede36cc) = 0 ioctl(3, VIDIOC_STREAMON, 0xbede365c) = 0 gettimeofday({10879, 920196}, NULL) = 0 ioctl(3, VIDIOC_DQBUF and the code where stops is here ispqueue.c 913 buf = list_first_entry(queue-queue, struct isp_video_buffer, stream); 914 ret = isp_video_buffer_wait(buf, nonblocking); Any idea ? My guess is that the CCDC doesn't receive the amount of lines it expects. The CCDC generates an interrupt at 2/3 of the image and another one at the beginning of the last line. Start by checking if the ISP generates any interrupt to the host with cat /proc/interrupts. If it doesn't, then the CCDC receives less than 2/3 of the expected number of lines. If it does, it probably receives between 2/3 and 3/3. You can add printk statements in ispccdc_vd0_isr() and ispccdc_vd1_isr() to confirm this. Looks like my problem is that ispccdc_vd0_isr() and ispccdc_vd1_isr() are never called, adding printk in these functions I see only a lots of ispccdc_hs_vs_isr(), Seems the CCDC receives less than 2/3 of expected number lines. Using an oscilloscope I see VS and HS data lines of the camera interface, so seems physical interface is working. I guess I'm missing something to configure in tvp5150 driver but I don't know. Any help ? Try to hack the ISP driver to generate the VD1 interrupt much earlier (after a couple of lines only). If you get it, then modify the number of lines to see how many lines the CCDC receives. This should hopefully give you a hint. -- Regards, Laurent Pinchart -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: OMAP3 ISP and tvp5151 driver.
Hi Laurent, 2011/1/14 Laurent Pinchart laurent.pinch...@ideasonboard.com: Hi Enric, On Thursday 13 January 2011 13:27:43 Enric Balletbò i Serra wrote: 2011/1/12 Laurent Pinchart laurent.pinch...@ideasonboard.com: On Wednesday 12 January 2011 12:58:04 Enric Balletbò i Serra wrote: Hi all, As explained in my first mail I would like port the tvp515x driver to new media framework, I'm a newbie with the v4l2 API and of course with the new media framework API, so sorry if next questions are stupid or trivial (please, patience with me). My idea is follow this link schem: --- - | | | 1 | -- | OMAP3 ISP CCDC OUTPUT | | TVP515x | 0 | - | 0 | OMAP3 ISP CCDC --- | | | | 2 | --- ASCII art would look much better if you drew it in a non-proportional font, with 80 character per line at most. Where: * TVP515x is /dev/v4l-subdev8 c 81 15 * OMAP3 ISP CCDC is /dev/v4l-subdev2 c 81 4 * OMAP3 ISP CCDC OUTPUT is /dev/video2 c 81 5 Then activate these links with ./media-ctl -r -l 'tvp5150 2-005c:0-OMAP3 ISP CCDC:0[1], OMAP3 ISP CCDC:1-OMAP3 ISP CCDC output:0[1]' Resetting all links to disabled Setting up link 16:0 - 5:0 [1] Setting up link 5:1 - 6:0 [1] I'm on the right way or I'm completely lost ? That's correct. I think the next step is adapt the tvp515x driver to new media framework, I'm not sure how to do this, someone can give some points ? You need to implement subdev pad operations. get_fmt and set_fmt are required. I configured the TVP5151 to 8-bit 4:2:3 YCbCr output format. Is 8-bit 4:2:3 YCbCr output format implemented in OMAP3 ISP CCDC ? I suppose you mean 4:2:2. The CCDC doesn't support that yet. Once this is done, I suppose I can test using gstreamer, for example using something like this. gst-launch v4l2src device=/dev/video2 ! ffmpegcolorspace ! xvimagesink I'm right in this point ? You need to specify the format explicitly. It must be identical to the format configured on pad CCDC:1. Can you give me an example using gstreamer ? I'm not a gstreamer expert, sorry. Running yavta I get # ./yavta -f SGRBG10 -s 720x525 -n 4 --capture=4 --skip 3 -F /dev/video2 Device /dev/video2 opened: OMAP3 ISP CCDC output (media). Video format set: width: 720 height: 525 buffer size: 756000 Video format: BA10 (30314142) 720x525 4 buffers requested. length: 756000 offset: 0 Buffer 0 mapped at address 0x400f2000. length: 756000 offset: 757760 Buffer 1 mapped at address 0x40385000. length: 756000 offset: 1515520 Buffer 2 mapped at address 0x40466000. length: 756000 offset: 2273280 Buffer 3 mapped at address 0x405ed000. Unable to start streaming: 22. Unable to dequeue buffer (22). 4 buffers released. I know the format is not correct, but, is the Unable to start streaming: 22 error related to the format or is related to another problem ? That usually means that the format configured on the video device node (SGRBG10 720x525 in this case) is different than the format setup on the connected subdev output (CCDC pad 1 in this case). My guess is that you probably forgot to setup formats on the subdev pads (using media-ctl -f). Right and solved, thanks, one little step more. Now seems yavta is blocked dequeuing a buffer ( VIDIOC_DQBUF ), with strace I get $ strace ./yavta -f SGRBG10 -s 720x525 -n 1 --capture=1 -F /dev/video2 mmap2(NULL, 756000, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0) = 0x4011f000 write(1, Buffer 0 mapped at address 0x401..., 39Buffer 0 mapped at address 0x4011f000. ) = 39 ioctl(3, VIDIOC_QBUF or VT_SETACTIVATE, 0xbede36cc) = 0 ioctl(3, VIDIOC_STREAMON, 0xbede365c) = 0 gettimeofday({10879, 920196}, NULL) = 0 ioctl(3, VIDIOC_DQBUF and the code where stops is here ispqueue.c 913 buf = list_first_entry(queue-queue, struct isp_video_buffer, stream); 914 ret = isp_video_buffer_wait(buf, nonblocking); Any idea ? Thanks in advance Enric -- Regards, Laurent Pinchart -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: OMAP3 ISP and tvp5151 driver.
Hi Enric, On Tuesday 18 January 2011 10:20:43 Enric Balletbò i Serra wrote: Now seems yavta is blocked dequeuing a buffer ( VIDIOC_DQBUF ), with strace I get $ strace ./yavta -f SGRBG10 -s 720x525 -n 1 --capture=1 -F /dev/video2 mmap2(NULL, 756000, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0) = 0x4011f000 write(1, Buffer 0 mapped at address 0x401..., 39Buffer 0 mapped at address 0x4011f000. ) = 39 ioctl(3, VIDIOC_QBUF or VT_SETACTIVATE, 0xbede36cc) = 0 ioctl(3, VIDIOC_STREAMON, 0xbede365c) = 0 gettimeofday({10879, 920196}, NULL) = 0 ioctl(3, VIDIOC_DQBUF and the code where stops is here ispqueue.c 913 buf = list_first_entry(queue-queue, struct isp_video_buffer, stream); 914 ret = isp_video_buffer_wait(buf, nonblocking); Any idea ? My guess is that the CCDC doesn't receive the amount of lines it expects. The CCDC generates an interrupt at 2/3 of the image and another one at the beginning of the last line. Start by checking if the ISP generates any interrupt to the host with cat /proc/interrupts. If it doesn't, then the CCDC receives less than 2/3 of the expected number of lines. If it does, it probably receives between 2/3 and 3/3. You can add printk statements in ispccdc_vd0_isr() and ispccdc_vd1_isr() to confirm this. -- Regards, Laurent Pinchart -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: OMAP3 ISP and tvp5151 driver.
Hi Enric, On Thursday 13 January 2011 13:27:43 Enric Balletbò i Serra wrote: 2011/1/12 Laurent Pinchart laurent.pinch...@ideasonboard.com: On Wednesday 12 January 2011 12:58:04 Enric Balletbò i Serra wrote: Hi all, As explained in my first mail I would like port the tvp515x driver to new media framework, I'm a newbie with the v4l2 API and of course with the new media framework API, so sorry if next questions are stupid or trivial (please, patience with me). My idea is follow this link schem: --- - || | 1 | -- | OMAP3 ISP CCDC OUTPUT | | TVP515x | 0 | - | 0 | OMAP3 ISP CCDC --- | || | 2 | --- ASCII art would look much better if you drew it in a non-proportional font, with 80 character per line at most. Where: * TVP515x is /dev/v4l-subdev8 c 81 15 * OMAP3 ISP CCDC is /dev/v4l-subdev2 c 81 4 * OMAP3 ISP CCDC OUTPUT is /dev/video2 c 81 5 Then activate these links with ./media-ctl -r -l 'tvp5150 2-005c:0-OMAP3 ISP CCDC:0[1], OMAP3 ISP CCDC:1-OMAP3 ISP CCDC output:0[1]' Resetting all links to disabled Setting up link 16:0 - 5:0 [1] Setting up link 5:1 - 6:0 [1] I'm on the right way or I'm completely lost ? That's correct. I think the next step is adapt the tvp515x driver to new media framework, I'm not sure how to do this, someone can give some points ? You need to implement subdev pad operations. get_fmt and set_fmt are required. I configured the TVP5151 to 8-bit 4:2:3 YCbCr output format. Is 8-bit 4:2:3 YCbCr output format implemented in OMAP3 ISP CCDC ? I suppose you mean 4:2:2. The CCDC doesn't support that yet. Once this is done, I suppose I can test using gstreamer, for example using something like this. gst-launch v4l2src device=/dev/video2 ! ffmpegcolorspace ! xvimagesink I'm right in this point ? You need to specify the format explicitly. It must be identical to the format configured on pad CCDC:1. Can you give me an example using gstreamer ? I'm not a gstreamer expert, sorry. Running yavta I get # ./yavta -f SGRBG10 -s 720x525 -n 4 --capture=4 --skip 3 -F /dev/video2 Device /dev/video2 opened: OMAP3 ISP CCDC output (media). Video format set: width: 720 height: 525 buffer size: 756000 Video format: BA10 (30314142) 720x525 4 buffers requested. length: 756000 offset: 0 Buffer 0 mapped at address 0x400f2000. length: 756000 offset: 757760 Buffer 1 mapped at address 0x40385000. length: 756000 offset: 1515520 Buffer 2 mapped at address 0x40466000. length: 756000 offset: 2273280 Buffer 3 mapped at address 0x405ed000. Unable to start streaming: 22. Unable to dequeue buffer (22). 4 buffers released. I know the format is not correct, but, is the Unable to start streaming: 22 error related to the format or is related to another problem ? That usually means that the format configured on the video device node (SGRBG10 720x525 in this case) is different than the format setup on the connected subdev output (CCDC pad 1 in this case). My guess is that you probably forgot to setup formats on the subdev pads (using media-ctl -f). -- Regards, Laurent Pinchart -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: OMAP3 ISP and tvp5151 driver.
Hi all, 2011/1/12 Laurent Pinchart laurent.pinch...@ideasonboard.com: Hi Enric, On Wednesday 12 January 2011 12:58:04 Enric Balletbò i Serra wrote: Hi all, As explained in my first mail I would like port the tvp515x driver to new media framework, I'm a newbie with the v4l2 API and of course with the new media framework API, so sorry if next questions are stupid or trivial (please, patience with me). My idea is follow this link schem: --- - | | | 1 | -- | OMAP3 ISP CCDC OUTPUT | | TVP515x | 0 | - | 0 | OMAP3 ISP CCDC --- | | | | 2 | --- ASCII art would look much better if you drew it in a non-proportional font, with 80 character per line at most. Where: * TVP515x is /dev/v4l-subdev8 c 81 15 * OMAP3 ISP CCDC is /dev/v4l-subdev2 c 81 4 * OMAP3 ISP CCDC OUTPUT is /dev/video2 c 81 5 Then activate these links with ./media-ctl -r -l 'tvp5150 2-005c:0-OMAP3 ISP CCDC:0[1], OMAP3 ISP CCDC:1-OMAP3 ISP CCDC output:0[1]' Resetting all links to disabled Setting up link 16:0 - 5:0 [1] Setting up link 5:1 - 6:0 [1] I'm on the right way or I'm completely lost ? That's correct. I think the next step is adapt the tvp515x driver to new media framework, I'm not sure how to do this, someone can give some points ? You need to implement subdev pad operations. get_fmt and set_fmt are required. I configured the TVP5151 to 8-bit 4:2:3 YCbCr output format. Is 8-bit 4:2:3 YCbCr output format implemented in OMAP3 ISP CCDC ? Once this is done, I suppose I can test using gstreamer, for example using something like this. gst-launch v4l2src device=/dev/video2 ! ffmpegcolorspace ! xvimagesink I'm right in this point ? You need to specify the format explicitly. It must be identical to the format configured on pad CCDC:1. Can you give me an example using gstreamer ? Running yavta I get # ./yavta -f SGRBG10 -s 720x525 -n 4 --capture=4 --skip 3 -F /dev/video2 Device /dev/video2 opened: OMAP3 ISP CCDC output (media). Video format set: width: 720 height: 525 buffer size: 756000 Video format: BA10 (30314142) 720x525 4 buffers requested. length: 756000 offset: 0 Buffer 0 mapped at address 0x400f2000. length: 756000 offset: 757760 Buffer 1 mapped at address 0x40385000. length: 756000 offset: 1515520 Buffer 2 mapped at address 0x40466000. length: 756000 offset: 2273280 Buffer 3 mapped at address 0x405ed000. Unable to start streaming: 22. Unable to dequeue buffer (22). 4 buffers released. I know the format is not correct, but, is the Unable to start streaming: 22 error related to the format or is related to another problem ? Thanks in advance, Enric -- Regards, Laurent Pinchart -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: OMAP3 ISP and tvp5151 driver.
Hi all, As explained in my first mail I would like port the tvp515x driver to new media framework, I'm a newbie with the v4l2 API and of course with the new media framework API, so sorry if next questions are stupid or trivial (please, patience with me). My idea is follow this link schem: --- - || | 1 | -- | OMAP3 ISP CCDC OUTPUT | | TVP515x | 0 | - | 0 | OMAP3 ISP CCDC --- | || | 2 | --- Where: * TVP515x is /dev/v4l-subdev8 c 81 15 * OMAP3 ISP CCDC is /dev/v4l-subdev2 c 81 4 * OMAP3 ISP CCDC OUTPUT is /dev/video2 c 81 5 Then activate these links with ./media-ctl -r -l 'tvp5150 2-005c:0-OMAP3 ISP CCDC:0[1], OMAP3 ISP CCDC:1-OMAP3 ISP CCDC output:0[1]' Resetting all links to disabled Setting up link 16:0 - 5:0 [1] Setting up link 5:1 - 6:0 [1] I'm on the right way or I'm completely lost ? I think the next step is adapt the tvp515x driver to new media framework, I'm not sure how to do this, someone can give some points ? Once this is done, I suppose I can test using gstreamer, for example using something like this. gst-launch v4l2src device=/dev/video2 ! ffmpegcolorspace ! xvimagesink I'm right in this point ? Any help will be apreciated. Thanks in advance, Enric 2010/12/28 Laurent Pinchart laurent.pinch...@ideasonboard.com: Hi Enric, On Monday 27 December 2010 17:24:13 Enric Balletbò i Serra wrote: Hello all, I'm new on media and camera, I try to use the OMAP3 ISP driver on OMAP3530 with media framework. I've a TVP5151 connected on ISP port though the parallel interface on own custom board Against which repository/branch should I start the development ? The most up-to-date code is located in the media-0004-omap3isp branch of the http://git.linuxtv.org/pinchartl/media.git repository. Should I port tvp5150 driver to new tvp5151 device and new media framework ? That would be great :-) Any driver as reference ? The MT9T001 and MT9V032 drivers in the media-0005-sensors branch. I haven't tested the MT9T001 driver recently, so my advice would be to use the MT9V032 driver. Hopefully, somebody can give me some tips. Thanks -- Regards, Laurent Pinchart -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: OMAP3 ISP and tvp5151 driver.
Hi Enric, On Wednesday 12 January 2011 12:58:04 Enric Balletbò i Serra wrote: Hi all, As explained in my first mail I would like port the tvp515x driver to new media framework, I'm a newbie with the v4l2 API and of course with the new media framework API, so sorry if next questions are stupid or trivial (please, patience with me). My idea is follow this link schem: --- - || | 1 | -- | OMAP3 ISP CCDC OUTPUT | | TVP515x | 0 | - | 0 | OMAP3 ISP CCDC --- | || | 2 | --- ASCII art would look much better if you drew it in a non-proportional font, with 80 character per line at most. Where: * TVP515x is /dev/v4l-subdev8 c 81 15 * OMAP3 ISP CCDC is /dev/v4l-subdev2 c 81 4 * OMAP3 ISP CCDC OUTPUT is /dev/video2 c 81 5 Then activate these links with ./media-ctl -r -l 'tvp5150 2-005c:0-OMAP3 ISP CCDC:0[1], OMAP3 ISP CCDC:1-OMAP3 ISP CCDC output:0[1]' Resetting all links to disabled Setting up link 16:0 - 5:0 [1] Setting up link 5:1 - 6:0 [1] I'm on the right way or I'm completely lost ? That's correct. I think the next step is adapt the tvp515x driver to new media framework, I'm not sure how to do this, someone can give some points ? You need to implement subdev pad operations. get_fmt and set_fmt are required. Once this is done, I suppose I can test using gstreamer, for example using something like this. gst-launch v4l2src device=/dev/video2 ! ffmpegcolorspace ! xvimagesink I'm right in this point ? You need to specify the format explicitly. It must be identical to the format configured on pad CCDC:1. -- Regards, Laurent Pinchart -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: OMAP3 ISP and tvp5151 driver.
Hi Enric, On Monday 27 December 2010 17:24:13 Enric Balletbò i Serra wrote: Hello all, I'm new on media and camera, I try to use the OMAP3 ISP driver on OMAP3530 with media framework. I've a TVP5151 connected on ISP port though the parallel interface on own custom board Against which repository/branch should I start the development ? The most up-to-date code is located in the media-0004-omap3isp branch of the http://git.linuxtv.org/pinchartl/media.git repository. Should I port tvp5150 driver to new tvp5151 device and new media framework ? That would be great :-) Any driver as reference ? The MT9T001 and MT9V032 drivers in the media-0005-sensors branch. I haven't tested the MT9T001 driver recently, so my advice would be to use the MT9V032 driver. Hopefully, somebody can give me some tips. Thanks -- Regards, Laurent Pinchart -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html