I have a HW with TC358743 HDMI Decoder connected to MIPI-CSI interface and a TVP5150AM connected as 8-Bit parallel device to CSI1. I am running NXP kernel 4.1.15.
I2C setup etc. all works well, also registration in V4L2 etc but if try to capture the stream of either device, the camera_callback function is never called and no buffers are queued, e.g. using gstreamer or v4l2grab.
I can see that there is activity both on MIPI-CSI and on CSI1 as soon as I start streaming but camera_callback s never called.
Please find my device tree file and my kernel config attached.
Is there any way to further debug the IPU why there is no callback executed ?
# v4l2grab -o test.jpg -W 640 -H 480 -d /dev/video1
In MVC: mxc_v4l_open
device name is Mxc Camera
End of mxc_v4l_open: v2f pix widthxheight 288 x 352
End of mxc_v4l_open: crop_bounds widthxheight 720 x 525
End of mxc_v4l_open: crop_defrect widthxheight 720 x 525
End of mxc_v4l_open: crop_current widthxheight 720 x 525
On Open: Input to ipu size is 720 x 525
INIT Test Generator
Selecting video route: route input=0, output=0 => tvp5150 input=0, opmode=0
Set video std register to 0.
Selecting video route: route input=0, output=0 => tvp5150 input=0, opmode=0
Set video std register to 0.
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl 80685600
case VIDIOC_QUERYCAP
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl 80685600
case VIDIOC_QUERYCAP
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0cc5604
case VIDIOC_G_FMT
In MVC: mxc_v4l2_g_fmt type=1
type is V4L2_BUF_TYPE_VIDEO_CAPTURE
End of mxc_v4l2_g_fmt: v2f pix widthxheight 288 x 352
End of mxc_v4l2_g_fmt: crop_bounds widthxheight 720 x 525
End of mxc_v4l2_g_fmt: crop_defrect widthxheight 720 x 525
End of mxc_v4l2_g_fmt: crop_current widthxheight 720 x 525
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0cc5615
case VIDIOC_G_PARM
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0405602
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c02c564a
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c02c564a
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0405602
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl 80685600
case VIDIOC_QUERYCAP
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl 80045626
case VIDIOC_G_INPUT
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c050561a
case VIDIOC_ENUMINPUT
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0445624
case default or not supported:-1069263324 - 0xC0445624
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl 80685600
case VIDIOC_QUERYCAP
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c02c563a
case VIDIOC_CROPCAP
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl 4014563c
case VIDIOC_S_CROP
Cropping Input to ipu size 720 x 525
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0cc5640
case VIDIOC_S_FMT
In MVC: mxc_v4l2_s_fmt
type=V4L2_BUF_TYPE_VIDEO_CAPTURE
End of mxc_v4l2_s_fmt: v2f pix widthxheight 640 x 480
End of mxc_v4l2_s_fmt: crop_bounds widthxheight 720 x 525
End of mxc_v4l2_s_fmt: crop_defrect widthxheight 720 x 525
End of mxc_v4l2_s_fmt: crop_current widthxheight 720 x 525
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0cc5605
case VIDIOC_S_FMT
In MVC: mxc_v4l2_s_fmt
type=V4L2_BUF_TYPE_VIDEO_CAPTURE
End of mxc_v4l2_s_fmt: v2f pix widthxheight 640 x 480
End of mxc_v4l2_s_fmt: crop_bounds widthxheight 720 x 525
End of mxc_v4l2_s_fmt: crop_defrect widthxheight 720 x 525
End of mxc_v4l2_s_fmt: crop_current widthxheight 720 x 525
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0cc5615
case VIDIOC_G_PARM
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0cc5616
case VIDIOC_S_PARM
In mxc_v4l2_s_param
Current capabilities are 1001
Current capturemode is 0 change to 0
Current framerate is 30 change to 30
ioctl_s_parm TVP5150_OUTPUT_CONTROL_CHIP_ENABLE
clock_curr=mclk=0
g_fmt_cap returns widthxheight of input as 720 x 525
INIT Test Generator
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0145608
case VIDIOC_REQBUFS
In MVC:mxc_streamoff
MVC: In mxc_free_frame_buf
In MVC:mxc_allocate_frame_buf - size=614400
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0445609
case VIDIOC_QUERYBUF
In MVC:mxc_v4l2_buffer_status
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0445609
case VIDIOC_QUERYBUF
In MVC:mxc_v4l2_buffer_status
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0445609
case VIDIOC_QUERYBUF
In MVC:mxc_v4l2_buffer_status
In MVC:mxc_mmap
pgoff=0x72500, start=0x76b55000, end=0x76beb000
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0445609
case VIDIOC_QUERYBUF
In MVC:mxc_v4l2_buffer_status
In MVC:mxc_mmap
pgoff=0x72600, start=0x76abf000, end=0x76b55000
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c044560f
case VIDIOC_QBUF
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c044560f
case VIDIOC_QBUF
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl 40045612
case VIDIOC_STREAMON
In MVC:mxc_streamon
UYVY
In MVC:mxc_poll
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0445611
case VIDIOC_DQBUF
In MVC:mxc_poll
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0445611
case VIDIOC_DQBUF
In MVC:mxc_poll
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0445611
case VIDIOC_DQBUF
In MVC:mxc_poll
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0445611
case VIDIOC_DQBUF
In MVC:mxc_poll
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0445611
case VIDIOC_DQBUF
In MVC:mxc_poll
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0445611
case VIDIOC_DQBUF
In MVC:mxc_poll
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0445611
case VIDIOC_DQBUF
In MVC:mxc_poll
# gst-launch-1.0 imxv4l2videosrc ! fakesink
Setting pipeline to PAUSED ...
In MVC: mxc_v4l_open
device name is Mxc Camera
ioctl_g_ifparm
ioctl_g_ifparm: clock_curr=mclk=27000000
get_pixelformat: YUV 4:2:2 8-bit (56595559, 1e)
ioctl_g_fmt_cap: 640x480
End of mxc_v4l_open: v2f pix widthxheight 288 x 352
End of mxc_v4l_open: crop_bounds widthxheight 640 x 480
End of mxc_v4l_open: crop_defrect widthxheight 640 x 480
End of mxc_v4l_open: crop_current widthxheight 640 x 480
On Open: Input to ipu size is 640 x 480
INIT Test Generator
tc358743_reset: RESET
power_control: 0
power_control: 1
tc_standby: powerdown=0, power_gp=0xfffffffe
tc358743_minit: capture mode: 0 fps: 60
tc358743_init_mode rate: 0 mode: 0
tc358743_software_reset: mask: 0300 freq: 2700
mipi_reset: mipi_csi2_info:
mipi_en: 1
datatype: 30
dphy_clk: d81d3e80
pixel_clk: d81d3f00
mipi_csi2_base:f008a000
pdev: d818a200
Now Using 1 lanes
tc358743_software_reset: mask: 0200 freq: 2700
get_pixelformat: YUV 4:2:2 8-bit (56595559, 1e)
set_frame_rate_mode: Set 44 regs from 80729100 for frs 0 mode 0 with width 640 height 480
Activate EDID
MIPICSI2_PHY_STATUS: 300
0 mipi csi2 dphy status 300
0 mipi csi2 err1 0
ioctl_init
ioctl_dev_init
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl 80685600
case VIDIOC_QUERYCAP
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl 8008563f
case default or not supported:-2146937281 - 0x8008563F
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl 80085617
case VIDIOC_G_STD
In mxc_v4l2_g_std
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl 40085618
case VIDIOC_S_STD
In mxc_v4l2_s_std 0
ERROR: unrecognized std! 0 (PAL=ff, NTSC=b000
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0cc5604
case VIDIOC_G_FMT
In MVC: mxc_v4l2_g_fmt type=1
type is V4L2_BUF_TYPE_VIDEO_CAPTURE
End of mxc_v4l2_g_fmt: v2f pix widthxheight 288 x 352
End of mxc_v4l2_g_fmt: crop_bounds widthxheight 720 x 625
End of mxc_v4l2_g_fmt: crop_defrect widthxheight 640 x 480
End of mxc_v4l2_g_fmt: crop_current widthxheight 720 x 576
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c02c564a
ioctl_enum_framesizes, mode: 0
get_pixelformat: YUV 4:2:2 8-bit (56595559, 1e)
ioctl_enum_framesizes 640:480 format: 56595559
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0045627
case VIDIOC_S_INPUT
In MVC:mxc_streamoff
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0cc5616
case VIDIOC_S_PARM
In mxc_v4l2_s_param
ioctl_g_parm type: 1
ioctl_g_parm done 0
Current capabilities are 1001
Current capturemode is 0 change to 0
Current framerate is 60 change to 30
ioctl_s_parm
power_control: 1
ioctl_g_ifparm
ioctl_g_ifparm: clock_curr=mclk=27000000
clock_curr=mclk=27000000
get_pixelformat: YUV 4:2:2 8-bit (56595559, 1e)
ioctl_g_fmt_cap: 640x480
g_fmt_cap returns widthxheight of input as 640 x 480
INIT Test Generator
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0cc5605
case VIDIOC_S_FMT
In MVC: mxc_v4l2_s_fmt
type=V4L2_BUF_TYPE_VIDEO_CAPTURE
End of mxc_v4l2_s_fmt: v2f pix widthxheight 640 x 480
End of mxc_v4l2_s_fmt: crop_bounds widthxheight 640 x 480
End of mxc_v4l2_s_fmt: crop_defrect widthxheight 640 x 480
End of mxc_v4l2_s_fmt: crop_current widthxheight 640 x 480
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0cc5604
case VIDIOC_G_FMT
In MVC: mxc_v4l2_g_fmt type=1
type is V4L2_BUF_TYPE_VIDEO_CAPTURE
End of mxc_v4l2_g_fmt: v2f pix widthxheight 640 x 480
End of mxc_v4l2_g_fmt: crop_bounds widthxheight 640 x 480
End of mxc_v4l2_g_fmt: crop_defrect widthxheight 640 x 480
End of mxc_v4l2_g_fmt: crop_current widthxheight 640 x 480
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c008561c
case VIDIOC_S_CTRL
In MVC:mxc_v4l2_s_ctrl
default case
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c008561c
case VIDIOC_S_CTRL
In MVC:mxc_v4l2_s_ctrl
default case
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c008561b
case VIDIOC_G_CTRL
In MVC:mxc_v4l2_g_ctrl
ERROR: v4l2 capture: unsupported ioctrl!
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c008561c
case VIDIOC_S_CTRL
In MVC:mxc_v4l2_s_ctrl
default case
Pipeline is live and does not neeIn MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0cc5604
case VIDIOC_G_FMT
d PREROLL ...
In MVC: mxc_v4l2_g_fmt type=1
type is V4L2_BUF_TYPE_VIDEO_CAPTURE
Setting pipeline to PLAYING ...End of mxc_v4l2_g_fmt: v2f pix widthxheight 640 x 480
End of mxc_v4l2_g_fmt: crop_bounds widthxheight 640 x 480
New clock: GstSystemClock
End of mxc_v4l2_g_fmt: crop_defrect widthxheight 640 x 480
End of mxc_v4l2_g_fmt: crop_current widthxheight 640 x 480
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0cc5604
case VIDIOC_G_FMT
In MVC: mxc_v4l2_g_fmt type=1
type is V4L2_BUF_TYPE_VIDEO_CAPTURE
End of mxc_v4l2_g_fmt: v2f pix widthxheight 640 x 480
End of mxc_v4l2_g_fmt: crop_bounds widthxheight 640 x 480
End of mxc_v4l2_g_fmt: crop_defrect widthxheight 640 x 480
End of mxc_v4l2_g_fmt: crop_current widthxheight 640 x 480
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0145608
case VIDIOC_REQBUFS
In MVC:mxc_streamoff
MVC: In mxc_free_frame_buf
In MVC:mxc_allocate_frame_buf - size=614400
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0445609
case VIDIOC_QUERYBUF
In MVC:mxc_v4l2_buffer_status
In MVC:mxc_mmap
pgoff=0x72500, start=0x75469000, end=0x754ff000
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0445609
case VIDIOC_QUERYBUF
In MVC:mxc_v4l2_buffer_status
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl 80685600
case VIDIOC_QUERYCAP
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c044560f
case VIDIOC_QBUF
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0445609
case VIDIOC_QUERYBUF
In MVC:mxc_v4l2_buffer_status
In MVC:mxc_mmap
pgoff=0x72600, start=0x7526a000, end=0x75300000
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0445609
case VIDIOC_QUERYBUF
In MVC:mxc_v4l2_buffer_status
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl 80685600
case VIDIOC_QUERYCAP
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c044560f
case VIDIOC_QBUF
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0445609
case VIDIOC_QUERYBUF
In MVC:mxc_v4l2_buffer_status
In MVC:mxc_mmap
pgoff=0x72800, start=0x751d4000, end=0x7526a000
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0445609
case VIDIOC_QUERYBUF
In MVC:mxc_v4l2_buffer_status
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl 80685600
case VIDIOC_QUERYCAP
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c044560f
case VIDIOC_QBUF
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0445609
case VIDIOC_QUERYBUF
In MVC:mxc_v4l2_buffer_status
In MVC:mxc_mmap
pgoff=0x72900, start=0x7513e000, end=0x751d4000
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0445609
case VIDIOC_QUERYBUF
In MVC:mxc_v4l2_buffer_status
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl 80685600
case VIDIOC_QUERYCAP
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c044560f
case VIDIOC_QBUF
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0445609
case VIDIOC_QUERYBUF
In MVC:mxc_v4l2_buffer_status
In MVC:mxc_mmap
pgoff=0x72b00, start=0x750a8000, end=0x7513e000
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0445609
case VIDIOC_QUERYBUF
In MVC:mxc_v4l2_buffer_status
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl 80685600
case VIDIOC_QUERYCAP
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c044560f
case VIDIOC_QBUF
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0445609
case VIDIOC_QUERYBUF
In MVC:mxc_v4l2_buffer_status
In MVC:mxc_mmap
pgoff=0x72c00, start=0x75012000, end=0x750a8000
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0445609
case VIDIOC_QUERYBUF
In MVC:mxc_v4l2_buffer_status
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl 80685600
case VIDIOC_QUERYCAP
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c044560f
case VIDIOC_QBUF
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl 40045612
case VIDIOC_STREAMON
In MVC:mxc_streamon
MIPICSI2_ENABLE PIXCLK
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl c0445611
case VIDIOC_DQBUF
In MVC:mxc_v4l_dqueue
ERROR: v4l2 capture: mxc_v4l_dqueue timeout enc_counter 0
ERROR: from element /GstPipeline:In MVC:mxc_v4l_ioctl
pipeline0/GstImxV4l2VideoSrc:imxvIn MVC: mxc_v4l_do_ioctl c008561c
4l2videosrc0: Internal data strea case VIDIOC_S_CTRL
m error.
In MVC:mxc_v4l2_s_ctrl
gstbasesrc.c(3055): gst_base_src default case
_loop (): /GstPipeline:pipeline0/In MVC:mxc_v4l_ioctl
GstImxV4l2VideoSrc:imxv4l2videosrIn MVC: mxc_v4l_do_ioctl c008561c
c0:
streaming stopped, reason er case VIDIOC_S_CTRL
ror (-5)
Execution ended after 0In MVC:mxc_v4l2_s_ctrl
:00:10.376569001
Setting pipelin default case
e to PAUSED ...
Setting pipelineIn MVC:mxc_v4l_ioctl
to READY ...
In MVC: mxc_v4l_do_ioctl c008561b
case VIDIOC_G_CTRL
In MVC:mxc_v4l2_g_ctrl
ERROR: v4l2 capture: unsupported ioctrl!
In MVC:mxc_v4l_ioctl
In MVC: mxc_v4l_do_ioctl 40045613
case VIDIOC_STREAMOFF
In MVC:mxc_streamoff
In MVC:mxc_free_frames
In MVC:mxc_v4l_close
power_control: 0
tc_standby: powerdown=1, power_gp=0xfffffffe
mxc_v4l_close: release resource
MVC: In mxc_free_frame_buf
In MVC:mxc_free_frames
Setting pipeline to NULL ...
Freeing pipeline ...
Thanks, Igor.
Hi, actually I am using exactly this driver but as mentioned the camera_callback is never called.
Regards,
Sebastian
Hi Sebastian
one can test with mxc_v4l2_tvin.c from unit tests
http://www.nxp.com/lgfiles/NMG/MAD/YOCTO/imx-test-5.4.tar.gz
Best regards
igor
Hi Sebastian
for TVP5151 one can look at
Also instead "imxv4l2videosrc" community gstreamer-imx plugin one can try
nxp imx-gst1.0-plugins described in Linux Guide found in linux documentation on
i.MX Software and Development Tools | NXP
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
I have found the issue for HDMI In - I need to set regmap_update_bits(gpr, IOMUXC_GPR13, 0x3F, 0x20); so HDMI works well then.
But the TVP5151 in on CSI1 still does not work.