Re: [PATCH v1 0/6] Add support of OV9655 camera

From: Hugues FRUCHET
Date: Mon Jul 03 2017 - 04:17:16 EST


Hi Nikolaus,
Could you enable V4L2 UAPI traces ? Something like:
echo 0xFF > /sys/devices/platform/soc/<isp address>.<isp
name>/video4linux/video2/dev_debug

you will see then in kernel dmesg the V4L2 calls and their
parameters/return values.

BR,
Hugues.

On 07/01/2017 11:00 PM, H. Nikolaus Schaller wrote:
> Hi,
>
> Firstly, it turned out that we also must have V4L2_CID_PIXEL_RATE for omap3isp compatibility
> (see https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?&id=0bc77f3f06fcf2ca7b7fad782d70926cd4d235f1 ).
>
> And secondly, I have tried to add some SXGA config and it looks good by oscilloscope:
> - XCLK ca. 24 MHz
> - PCLK ca. 12 MHz
> - HREF ca. 15.6 kHz negative going impulses
> - VSYNC ca. 15 Hz (fps) positive going impulses
> - D8 data line shows changing 0/1 patterns which depend on light falling in camera lens
>
> But mplayer still shows a green screen and reports v4l2: select timeout.
>
> I assume we should see a at least scrambled image but not a green screen,
> even if sync position and polarity or data format would not be correctly
> set up.
>
> This time the omap3isp is fully initialized and does a register dump:
>
>> root@letux:~# ./camera-demo sxga
>> Camera: /dev/v4l-subdev8
>> Setting mode sxga
>> media-ctl -r
>> media-ctl -l '"ov965x":0 -> "OMAP3 ISP CCDC":0[1]'
>> media-ctl -l '"OMAP3 ISP CCDC":1 -> "OMAP3 ISP CCDC output":0[1]'
>> media-ctl -V '"ov965x":0 [UYVY2X8 1280x1024]'
>> media-ctl -V '"OMAP3 ISP CCDC":0 [UYVY2X8 1280x1024]'
>> media-ctl -V '"OMAP3 ISP CCDC":1 [UYVY 1280x1024]'
>> ### starting mplayer in sxga mode ###
>> mplayer tv:// -vf rotate=2 -tv driver=v4l2:device=/dev/video2:outfmt=uyvy:width=1280:height=1024:fps=15 -vo x11
>
> NOTE: /dev/video2 is $(media-ctl -e "OMAP3 ISP CCDC output")
>
>> MPlayer2 2.0-728-g2c378c7-4+b1 (C) 2000-2012 MPlayer Team
>>
>> Playing tv://.
>> Detected file format: TV
>> Selected driver: v4l2
>> name: Video 4 Linux 2 input
>> author: Martin Olschewski <olschewski@xxxxxxxxxxxxxxxx>
>> comment: first try, more to come ;-)
>> v4l2: ioctl get standard failed: Invalid argument
>
> ^^^ does not look harmful
>
>> Selected device: OMAP3 ISP CCDC output
>> Capabilities: video capture video output streaming
>> supported norms:
>> inputs: 0 = camera;
>> Current input: 0
>> Current format: unknown (0x0)
>> tv.c: norm_from_string(pal): Bogus norm parameter, setting default.
>> v4l2: ioctl enum norm failed: Inappropriate ioctl for device
>
> ^^^ does not look harmful
>
>> Error: Cannot set norm!
>> Selected input hasn't got a tuner!
>
> ^^^ does not look harmful
>
>> v4l2: ioctl set mute failed: Inappropriate ioctl for device
>> v4l2: ioctl query control failed: Inappropriate ioctl for device
>> v4l2: ioctl query control failed: Inappropriate ioctl for device
>> v4l2: ioctl query control failed: Inappropriate ioctl for device
>> v4l2: ioctl query control failed: Inappropriate ioctl for device
>
> ^^^ does not look harmful
>
>> [ 558.848815] configuring for 1280(2560)x1024
>> [ 558.854003] omap3isp 480bc000.isp: -------------CCDC Register dump-------------
>> [ 558.863983] omap3isp 480bc000.isp: ###CCDC PCR=0x00000000
>> [ 558.870880] omap3isp 480bc000.isp: ###CCDC SYN_MODE=0x00071704
>> [ 558.877227] omap3isp 480bc000.isp: ###CCDC HD_VD_WID=0x00000000
>> [ 558.884613] omap3isp 480bc000.isp: ###CCDC PIX_LINES=0x00000000
>> [ 558.891876] omap3isp 480bc000.isp: ###CCDC HORZ_INFO=0x000004ff
>> [ 558.898132] omap3isp 480bc000.isp: ###CCDC VERT_START=0x00000000
>> [ 558.905700] omap3isp 480bc000.isp: ###CCDC VERT_LINES=0x000003ff
>> [ 558.913421] omap3isp 480bc000.isp: ###CCDC CULLING=0xffff00ff
>> [ 558.920471] omap3isp 480bc000.isp: ###CCDC HSIZE_OFF=0x00000a00
>> [ 558.926727] omap3isp 480bc000.isp: ###CCDC SDOFST=0x00000000
>> [ 558.933929] omap3isp 480bc000.isp: ###CCDC SDR_ADDR=0x40000000
>> [ 558.940948] omap3isp 480bc000.isp: ###CCDC CLAMP=0x00000010
>> [ 558.946990] omap3isp 480bc000.isp: ###CCDC DCSUB=0x00000000
>> [ 558.953948] omap3isp 480bc000.isp: ###CCDC COLPTN=0xbb11bb11
>> [ 558.960845] omap3isp 480bc000.isp: ###CCDC BLKCMP=0x00000000
>> [ 558.966888] omap3isp 480bc000.isp: ###CCDC FPC=0x00000000
>> [ 558.973724] omap3isp 480bc000.isp: ###CCDC FPC_ADDR=0x00000000
>> [ 558.982757] omap3isp 480bc000.isp: ###CCDC VDINT=0x03fe02aa
>> [ 558.988769] omap3isp 480bc000.isp: ###CCDC ALAW=0x00000004
>> [ 558.995483] omap3isp 480bc000.isp: ###CCDC REC656IF=0x00000000
>> [ 559.002380] omap3isp 480bc000.isp: ###CCDC CFG=0x00008800
>> [ 559.008056] omap3isp 480bc000.isp: ###CCDC FMTCFG=0x00000000
>> [ 559.014892] omap3isp 480bc000.isp: ###CCDC FMT_HORZ=0x00000000
>> [ 559.021697] omap3isp 480bc000.isp: ###CCDC FMT_VERT=0x00000000
>> [ 559.027954] omap3isp 480bc000.isp: ###CCDC PRGEVEN0=0x00000000
>> [ 559.034912] omap3isp 480bc000.isp: ###CCDC PRGEVEN1=0x00000000
>> [ 559.041748] omap3isp 480bc000.isp: ###CCDC PRGODD0=0x00000000
>> [ 559.047790] omap3isp 480bc000.isp: ###CCDC PRGODD1=0x00000000
>> [ 559.054687] omap3isp 480bc000.isp: ###CCDC VP_OUT=0x00000000
>> [ 559.061645] omap3isp 480bc000.isp: ###CCDC LSC_CONFIG=0x00006600
>> [ 559.068084] omap3isp 480bc000.isp: ###CCDC LSC_INITIAL=0x00000000
>> [ 559.075378] omap3isp 480bc000.isp: ###CCDC LSC_TABLE_BASE=0x00000000
>> [ 559.082916] omap3isp 480bc000.isp: ###CCDC LSC_TABLE_OFFSET=0x00000000
>> [ 559.090454] omap3isp 480bc000.isp: --------------------------------------------
>> [ass] auto-open
>> Opening video filter: [rotate=2]
>> VIDEO: 1280x1024 15.000 fps 0.0 kbps ( 0.0 kB/s)
>> Could not find matching colorspace - retrying with -vf scale...
>> Opening video filter: [scale]
>> [swscaler @ 0xb5d45980]using unscaled uyvy422 -> yuv420p special converter
>> VO: [x11] 1024x1280 => 1024x1280 Planar YV12
>> [swscaler @ 0xb5d45980]No accelerated colorspace conversion found from yuv420p to bgra.
>> Colorspace details not fully supported by selected vo.
>> Selected video codec: RAW UYVY [raw]
>> Audio: no sound
>> Starting playback...
>> v4l2: select timeout
>> V: 0.0 1/ 1 ??% ??% ??,?% 0 0
>> v4l2: select timeout
>> V: 0.0 3/ 3 ??% ??% ??,?% 0 0
>> v4l2: select timeout
>> V: 0.0 4/ 4 ??% ??% ??,?% 0 0
>> v4l2: select timeout
>> V: 0.0 5/ 5 ??% ??% ??,?% 0 0
>> v4l2: select timeout
>>
>>
>> MPlayer interrupted by signal 2 in module: filter_video
>> V: 0.0 6/ 6 ??% ??% ??,?% 0 0
>> v4l2: select timeout
>> [ 565.122406] omap3isp 480bc000.isp: OMAP3 ISP AEWB: user wants to disable module.
>> [ 565.130950] omap3isp 480bc000.isp: OMAP3 ISP AEWB: module is being disabled
>> [ 565.138397] omap3isp 480bc000.isp: OMAP3 ISP AF: user wants to disable module.
>> [ 565.149047] omap3isp 480bc000.isp: OMAP3 ISP AF: module is being disabled
>> [ 565.158660] omap3isp 480bc000.isp: OMAP3 ISP histogram: user wants to disable module.
>> [ 565.168945] omap3isp 480bc000.isp: OMAP3 ISP histogram: module is being disabled
>> [ 567.221099] omap3isp 480bc000.isp: CCDC stop timeout!
>> [ 567.226593] omap3isp 480bc000.isp: Unable to stop OMAP3 ISP CCDC
>
> ^^^ that looks like some lockup of the CCDC?
>
>> v4l2: ioctl set mute failed: Inappropriate ioctl for device
>> v4l2: 0 frames successfully processed, 1 frames dropped.
>>
>> Exiting... (Quit)
>> root@letux:~#
>
> Latest patches are here:
>
> http://git.goldelico.com/?p=gta04-kernel.git;a=shortlog;h=refs/heads/extern/ov9655-v2
>
> Device tree:
>
> http://git.goldelico.com/?p=gta04-kernel.git;a=blob;f=arch/arm/boot/dts/omap3-gta04.dtsi;hb=80a33790b381c83fd6e99af15cb5bd6c97abb0a7#l941
>
> Any ideas how to debug 'v4l2: select timeout'?
>
> BR and thanks,
> Nikolaus
>