Re: [PATCH v5 00/49] DaVinci: vpif: upgrade with v4l helpers and v4l compliance fixes

2014-05-23 Thread Hans Verkuil
Hi Prabhakar,

Thanks for this patch series, it looks good to me and I'll make a pull
request for this.

I did find a few issues, but they are all pre-existing problems, so they
can be fixed in follow-up patches.

I'll comment on those in the relevant patches. Since display and capture are
so similar I will only comment on the display patches, but it's valid for
both.

Regards,

Hans

On 05/16/2014 03:33 PM, Lad, Prabhakar wrote:
 From: Lad, Prabhakar prabhakar.cse...@gmail.com
 
 Hi,
 
 This patch series upgrades the vpif capture  display
 driver with the all the helpers provided by v4l, this makes
 the driver much simpler and cleaner. This also includes few
 checkpatch issues.
 
 Changes for v2:
 a Added a copyright.
 b Dropped buf_init() callback from vb2_ops.
 c Fixed enabling  disabling of interrupts in case of HD formats.
 
 Changes for v3:
 a Fixed review comments pointed by Hans.
 
 Changes for v4: Rebased the patches on media tree.
 
 Changes for v5: Split up the patches
 
 Following is the output of v4l-compliance for capture:
 --
 
 ./v4l2-compliance -d /dev/video0 -i 0 -s -v --expbuf-device=2
 
 Driver Info:
 Driver name   : vpif_capture
 Card type : DA850/OMAP-L138 Video Capture
 Bus info  : platform:vpif_capture
 Driver version: 3.15.0
 Capabilities  : 0x8401
 Video Capture
 Streaming
 Device Capabilities
 Device Caps   : 0x0401
 Video Capture
 Streaming
 
 Compliance test for device /dev/video0 (not using libv4l2):
 
 Required ioctls:
 test VIDIOC_QUERYCAP: OK
 
 Allow for multiple opens:
 test second video open: OK
 test VIDIOC_QUERYCAP: OK
 test VIDIOC_G/S_PRIORITY: OK
 
 Debug ioctls:
 test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
 test VIDIOC_LOG_STATUS: OK
 
 Input ioctls:
 test VIDIOC_G/S_TUNER: OK (Not Supported)
 test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
 test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
 test VIDIOC_ENUMAUDIO: OK (Not Supported)
 test VIDIOC_G/S/ENUMINPUT: OK
 test VIDIOC_G/S_AUDIO: OK (Not Supported)
 Inputs: 1 Audio Inputs: 0 Tuners: 0
 
 Output ioctls:
 test VIDIOC_G/S_MODULATOR: OK (Not Supported)
 test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
 test VIDIOC_ENUMAUDOUT: OK (Not Supported)
 test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
 test VIDIOC_G/S_AUDOUT: OK (Not Supported)
 Outputs: 0 Audio Outputs: 0 Modulators: 0
 
 Input/Output configuration ioctls:
 test VIDIOC_ENUM/G/S/QUERY_STD: OK
 test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
 test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
 test VIDIOC_G/S_EDID: OK (Not Supported)
 
 Test input 0:
 
 Control ioctls:
 test VIDIOC_QUERYCTRL/MENU: OK (Not Supported)
 test VIDIOC_G/S_CTRL: OK (Not Supported)
 test VIDIOC_G/S/TRY_EXT_CTRLS: OK (Not Supported)
 test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK (Not Supported)
 test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
 Standard Controls: 0 Private Controls: 0
 
 Format ioctls:
 info: found 1 formats for buftype 1
 test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
 fail: v4l2-test-formats.cpp(1003): cap-readbuffers
 test VIDIOC_G/S_PARM: FAIL
 test VIDIOC_G_FBUF: OK (Not Supported)
 test VIDIOC_G_FMT: OK
 test VIDIOC_TRY_FMT: OK
 test VIDIOC_S_FMT: OK
 test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
 
 Codec ioctls:
 test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
 test VIDIOC_G_ENC_INDEX: OK (Not Supported)
 test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)
 
 Buffer ioctls:
 info: test buftype Video Capture
 test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
 test VIDIOC_EXPBUF: OK
 test read/write: OK (Not Supported)
 Video Capture:
 Buffer: 0 Sequence: 0 Field: Interlaced Timestamp: 145.509130s
 Buffer: 1 Sequence: 0 Field: Interlaced Timestamp: 145.549125s
 Buffer: 2 Sequence: 0 Field: Interlaced Timestamp: 145.589148s
 Buffer: 3 Sequence: 0 Field: Interlaced Timestamp: 145.629106s
 Buffer: 0 Sequence: 0 Field: Interlaced Timestamp: 145.669110s
 Buffer: 1 Sequence: 0 Field: Interlaced Timestamp: 145.709102s
 Buffer: 2 Sequence: 0 Field: Interlaced Timestamp: 145.749099s
 Buffer: 3 Sequence: 0 Field: Interlaced Timestamp: 145.789128s
 Buffer: 0 Sequence: 0 Field: Interlaced 

Re: [PATCH v5 00/49] DaVinci: vpif: upgrade with v4l helpers and v4l compliance fixes

2014-05-23 Thread Hans Verkuil
On 05/16/2014 03:33 PM, Lad, Prabhakar wrote:
 From: Lad, Prabhakar prabhakar.cse...@gmail.com
 
 Hi,
 
 This patch series upgrades the vpif capture  display
 driver with the all the helpers provided by v4l, this makes
 the driver much simpler and cleaner. This also includes few
 checkpatch issues.
 
 Changes for v2:
 a Added a copyright.
 b Dropped buf_init() callback from vb2_ops.
 c Fixed enabling  disabling of interrupts in case of HD formats.
 
 Changes for v3:
 a Fixed review comments pointed by Hans.
 
 Changes for v4: Rebased the patches on media tree.
 
 Changes for v5: Split up the patches
 
 Following is the output of v4l-compliance for capture:
 --
 
 ./v4l2-compliance -d /dev/video0 -i 0 -s -v --expbuf-device=2
 
 Driver Info:
 Driver name   : vpif_capture
 Card type : DA850/OMAP-L138 Video Capture
 Bus info  : platform:vpif_capture
 Driver version: 3.15.0
 Capabilities  : 0x8401
 Video Capture
 Streaming
 Device Capabilities
 Device Caps   : 0x0401
 Video Capture
 Streaming
 
 Compliance test for device /dev/video0 (not using libv4l2):
 
 Required ioctls:
 test VIDIOC_QUERYCAP: OK
 
 Allow for multiple opens:
 test second video open: OK
 test VIDIOC_QUERYCAP: OK
 test VIDIOC_G/S_PRIORITY: OK
 
 Debug ioctls:
 test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
 test VIDIOC_LOG_STATUS: OK
 
 Input ioctls:
 test VIDIOC_G/S_TUNER: OK (Not Supported)
 test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
 test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
 test VIDIOC_ENUMAUDIO: OK (Not Supported)
 test VIDIOC_G/S/ENUMINPUT: OK
 test VIDIOC_G/S_AUDIO: OK (Not Supported)
 Inputs: 1 Audio Inputs: 0 Tuners: 0
 
 Output ioctls:
 test VIDIOC_G/S_MODULATOR: OK (Not Supported)
 test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
 test VIDIOC_ENUMAUDOUT: OK (Not Supported)
 test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
 test VIDIOC_G/S_AUDOUT: OK (Not Supported)
 Outputs: 0 Audio Outputs: 0 Modulators: 0
 
 Input/Output configuration ioctls:
 test VIDIOC_ENUM/G/S/QUERY_STD: OK
 test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
 test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
 test VIDIOC_G/S_EDID: OK (Not Supported)
 
 Test input 0:
 
 Control ioctls:
 test VIDIOC_QUERYCTRL/MENU: OK (Not Supported)
 test VIDIOC_G/S_CTRL: OK (Not Supported)
 test VIDIOC_G/S/TRY_EXT_CTRLS: OK (Not Supported)
 test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK (Not Supported)
 test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
 Standard Controls: 0 Private Controls: 0
 
 Format ioctls:
 info: found 1 formats for buftype 1
 test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
 fail: v4l2-test-formats.cpp(1003): cap-readbuffers

Just set readbuffers to 3, which is what queue_setup uses as well as the
minimum number of buffers.

 test VIDIOC_G/S_PARM: FAIL
 test VIDIOC_G_FBUF: OK (Not Supported)
 test VIDIOC_G_FMT: OK
 test VIDIOC_TRY_FMT: OK
 test VIDIOC_S_FMT: OK
 test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
 
 Codec ioctls:
 test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
 test VIDIOC_G_ENC_INDEX: OK (Not Supported)
 test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)
 
 Buffer ioctls:
 info: test buftype Video Capture
 test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
 test VIDIOC_EXPBUF: OK
 test read/write: OK (Not Supported)
 Video Capture:
 Buffer: 0 Sequence: 0 Field: Interlaced Timestamp: 145.509130s

This is strange: the sequence number is not updated for each field, but why 
doesn't
v4l2-compliance fail on that? If I hack vivi to always return sequence 0 the
compliance tool immediately fails on that.

Can you find out why v4l2-compliance doesn't fail here? The check happens in
v4l2-test-buffers.cpp, line 321.

 Buffer: 1 Sequence: 0 Field: Interlaced Timestamp: 145.549125s
 Buffer: 2 Sequence: 0 Field: Interlaced Timestamp: 145.589148s
 Buffer: 3 Sequence: 0 Field: Interlaced Timestamp: 145.629106s
 Buffer: 0 Sequence: 0 Field: Interlaced Timestamp: 145.669110s
 Buffer: 1 Sequence: 0 Field: Interlaced Timestamp: 145.709102s
 Buffer: 2 Sequence: 0 Field: Interlaced Timestamp: 145.749099s
 Buffer: 3 Sequence: 0 Field: Interlaced Timestamp: 145.789128s
 Buffer: 0 Sequence: 0 

Re: [PATCH v5 00/49] DaVinci: vpif: upgrade with v4l helpers and v4l compliance fixes

2014-05-23 Thread Prabhakar Lad
Hi Hans,

Thanks for the review from 2 patches to 50 :)

On Fri, May 23, 2014 at 2:00 PM, Hans Verkuil hverk...@xs4all.nl wrote:
 Hi Prabhakar,

 Thanks for this patch series, it looks good to me and I'll make a pull
 request for this.

Thanks.

 I did find a few issues, but they are all pre-existing problems, so they
 can be fixed in follow-up patches.

 I'll comment on those in the relevant patches. Since display and capture are
 so similar I will only comment on the display patches, but it's valid for
 both.

Ok will fix them up soon I am relocating next week so will take me at-least
2-3 weeks for me to get back the boards and get in action.

Regards,
--Prabhakar Lad

 Regards,

 Hans

 On 05/16/2014 03:33 PM, Lad, Prabhakar wrote:
 From: Lad, Prabhakar prabhakar.cse...@gmail.com

 Hi,

 This patch series upgrades the vpif capture  display
 driver with the all the helpers provided by v4l, this makes
 the driver much simpler and cleaner. This also includes few
 checkpatch issues.

 Changes for v2:
 a Added a copyright.
 b Dropped buf_init() callback from vb2_ops.
 c Fixed enabling  disabling of interrupts in case of HD formats.

 Changes for v3:
 a Fixed review comments pointed by Hans.

 Changes for v4: Rebased the patches on media tree.

 Changes for v5: Split up the patches

 Following is the output of v4l-compliance for capture:
 --

 ./v4l2-compliance -d /dev/video0 -i 0 -s -v --expbuf-device=2

 Driver Info:
 Driver name   : vpif_capture
 Card type : DA850/OMAP-L138 Video Capture
 Bus info  : platform:vpif_capture
 Driver version: 3.15.0
 Capabilities  : 0x8401
 Video Capture
 Streaming
 Device Capabilities
 Device Caps   : 0x0401
 Video Capture
 Streaming

 Compliance test for device /dev/video0 (not using libv4l2):

 Required ioctls:
 test VIDIOC_QUERYCAP: OK

 Allow for multiple opens:
 test second video open: OK
 test VIDIOC_QUERYCAP: OK
 test VIDIOC_G/S_PRIORITY: OK

 Debug ioctls:
 test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
 test VIDIOC_LOG_STATUS: OK

 Input ioctls:
 test VIDIOC_G/S_TUNER: OK (Not Supported)
 test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
 test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
 test VIDIOC_ENUMAUDIO: OK (Not Supported)
 test VIDIOC_G/S/ENUMINPUT: OK
 test VIDIOC_G/S_AUDIO: OK (Not Supported)
 Inputs: 1 Audio Inputs: 0 Tuners: 0

 Output ioctls:
 test VIDIOC_G/S_MODULATOR: OK (Not Supported)
 test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
 test VIDIOC_ENUMAUDOUT: OK (Not Supported)
 test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
 test VIDIOC_G/S_AUDOUT: OK (Not Supported)
 Outputs: 0 Audio Outputs: 0 Modulators: 0

 Input/Output configuration ioctls:
 test VIDIOC_ENUM/G/S/QUERY_STD: OK
 test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
 test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
 test VIDIOC_G/S_EDID: OK (Not Supported)

 Test input 0:

 Control ioctls:
 test VIDIOC_QUERYCTRL/MENU: OK (Not Supported)
 test VIDIOC_G/S_CTRL: OK (Not Supported)
 test VIDIOC_G/S/TRY_EXT_CTRLS: OK (Not Supported)
 test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK (Not Supported)
 test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
 Standard Controls: 0 Private Controls: 0

 Format ioctls:
 info: found 1 formats for buftype 1
 test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
 fail: v4l2-test-formats.cpp(1003): cap-readbuffers
 test VIDIOC_G/S_PARM: FAIL
 test VIDIOC_G_FBUF: OK (Not Supported)
 test VIDIOC_G_FMT: OK
 test VIDIOC_TRY_FMT: OK
 test VIDIOC_S_FMT: OK
 test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)

 Codec ioctls:
 test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
 test VIDIOC_G_ENC_INDEX: OK (Not Supported)
 test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)

 Buffer ioctls:
 info: test buftype Video Capture
 test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
 test VIDIOC_EXPBUF: OK
 test read/write: OK (Not Supported)
 Video Capture:
 Buffer: 0 Sequence: 0 Field: Interlaced Timestamp: 
 145.509130s
 Buffer: 1 Sequence: 0 Field: Interlaced Timestamp: 
 145.549125s
 Buffer: 2 Sequence: 0 Field: Interlaced Timestamp: 
 145.589148s
 Buffer: 3 Sequence: 0 Field: Interlaced Timestamp: 
 145.629106s
 Buffer: 0 Sequence: 0 Field: Interlaced Timestamp: 
 145.669110s
   

[PATCH v5 00/49] DaVinci: vpif: upgrade with v4l helpers and v4l compliance fixes

2014-05-16 Thread Lad, Prabhakar
From: Lad, Prabhakar prabhakar.cse...@gmail.com

Hi,

This patch series upgrades the vpif capture  display
driver with the all the helpers provided by v4l, this makes
the driver much simpler and cleaner. This also includes few
checkpatch issues.

Changes for v2:
a Added a copyright.
b Dropped buf_init() callback from vb2_ops.
c Fixed enabling  disabling of interrupts in case of HD formats.

Changes for v3:
a Fixed review comments pointed by Hans.

Changes for v4: Rebased the patches on media tree.

Changes for v5: Split up the patches

Following is the output of v4l-compliance for capture:
--

./v4l2-compliance -d /dev/video0 -i 0 -s -v --expbuf-device=2

Driver Info:
Driver name   : vpif_capture
Card type : DA850/OMAP-L138 Video Capture
Bus info  : platform:vpif_capture
Driver version: 3.15.0
Capabilities  : 0x8401
Video Capture
Streaming
Device Capabilities
Device Caps   : 0x0401
Video Capture
Streaming

Compliance test for device /dev/video0 (not using libv4l2):

Required ioctls:
test VIDIOC_QUERYCAP: OK

Allow for multiple opens:
test second video open: OK
test VIDIOC_QUERYCAP: OK
test VIDIOC_G/S_PRIORITY: OK

Debug ioctls:
test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
test VIDIOC_LOG_STATUS: OK

Input ioctls:
test VIDIOC_G/S_TUNER: OK (Not Supported)
test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
test VIDIOC_ENUMAUDIO: OK (Not Supported)
test VIDIOC_G/S/ENUMINPUT: OK
test VIDIOC_G/S_AUDIO: OK (Not Supported)
Inputs: 1 Audio Inputs: 0 Tuners: 0

Output ioctls:
test VIDIOC_G/S_MODULATOR: OK (Not Supported)
test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
test VIDIOC_ENUMAUDOUT: OK (Not Supported)
test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
test VIDIOC_G/S_AUDOUT: OK (Not Supported)
Outputs: 0 Audio Outputs: 0 Modulators: 0

Input/Output configuration ioctls:
test VIDIOC_ENUM/G/S/QUERY_STD: OK
test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
test VIDIOC_G/S_EDID: OK (Not Supported)

Test input 0:

Control ioctls:
test VIDIOC_QUERYCTRL/MENU: OK (Not Supported)
test VIDIOC_G/S_CTRL: OK (Not Supported)
test VIDIOC_G/S/TRY_EXT_CTRLS: OK (Not Supported)
test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK (Not Supported)
test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
Standard Controls: 0 Private Controls: 0

Format ioctls:
info: found 1 formats for buftype 1
test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
fail: v4l2-test-formats.cpp(1003): cap-readbuffers
test VIDIOC_G/S_PARM: FAIL
test VIDIOC_G_FBUF: OK (Not Supported)
test VIDIOC_G_FMT: OK
test VIDIOC_TRY_FMT: OK
test VIDIOC_S_FMT: OK
test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)

Codec ioctls:
test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
test VIDIOC_G_ENC_INDEX: OK (Not Supported)
test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)

Buffer ioctls:
info: test buftype Video Capture
test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: OK
test VIDIOC_EXPBUF: OK
test read/write: OK (Not Supported)
Video Capture:
Buffer: 0 Sequence: 0 Field: Interlaced Timestamp: 145.509130s
Buffer: 1 Sequence: 0 Field: Interlaced Timestamp: 145.549125s
Buffer: 2 Sequence: 0 Field: Interlaced Timestamp: 145.589148s
Buffer: 3 Sequence: 0 Field: Interlaced Timestamp: 145.629106s
Buffer: 0 Sequence: 0 Field: Interlaced Timestamp: 145.669110s
Buffer: 1 Sequence: 0 Field: Interlaced Timestamp: 145.709102s
Buffer: 2 Sequence: 0 Field: Interlaced Timestamp: 145.749099s
Buffer: 3 Sequence: 0 Field: Interlaced Timestamp: 145.789128s
Buffer: 0 Sequence: 0 Field: Interlaced Timestamp: 145.829116s
Buffer: 1 Sequence: 0 Field: Interlaced Timestamp: 145.869105s
Buffer: 2 Sequence: 0 Field: Interlaced Timestamp: 145.909100s
Buffer: 3 Sequence: 0 Field: Interlaced Timestamp: 145.949098s
Buffer: 0 Sequence: 0 Field: Interlaced Timestamp: 145.989086s
Buffer: 1 Sequence: 0 Field: Interlaced Timestamp: 146.029083s
Buffer: 2 Sequence: 0 Field: Interlaced Timestamp: 146.069083s
Buffer: 3 Sequence: 0 Field: Interlaced Timestamp: