Re: OMAP3 ISP and tvp5151 driver.

2011-04-21 Thread Laurent Pinchart
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.

2011-04-20 Thread Raffaele Recalcati
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.

2011-04-20 Thread Raffaele Recalcati
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.

2011-03-30 Thread Laurent Pinchart
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.

2011-03-29 Thread Enric Balletbò i Serra
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.

2011-03-29 Thread Laurent Pinchart
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.

2011-01-19 Thread Enric Balletbò i Serra
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.

2011-01-19 Thread Laurent Pinchart
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.

2011-01-18 Thread Enric Balletbò i Serra
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.

2011-01-18 Thread Laurent Pinchart
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.

2011-01-14 Thread Laurent Pinchart
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.

2011-01-13 Thread Enric Balletbò i Serra
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.

2011-01-12 Thread Enric Balletbò i Serra
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.

2011-01-12 Thread Laurent Pinchart
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.

2010-12-28 Thread Laurent Pinchart
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