Hi Philipp,
I've created a test branch off my imx-media-staging-md-wip called tc358743,
which cherry-picks a couple of your commits from your
imx-media-staging-md-wip
branch:
[media] tc358743: set entity function to video interface bridge
[media] tc358743: put lanes in STOP state before starting streaming
And one more commit that enables the tc358743 in the DT for sabrelite:
ARM: dts: imx6-sabrelite: switch to tc358743
which is based off your work in imx6qdl-nitrogen6x-bd-hdmi-mipi.dtsi.
With that the tc358743 is loading fine, and is present in the media graph:
root@mx6q:~# dmesg | grep -i tc358
[ 11.056799] imx-media: Registered subdev tc358743 1-000f
[ 11.122133] imx-media: imx_media_create_link: tc358743 1-000f:0 ->
imx6-mipi-csi2:0
[ 11.490274] tc358743 1-000f: tc358743 found @ 0x1e (21a4000.i2c)
But I'm not able to get to testing streaming yet, see below.
On 01/31/2017 05:54 AM, Philipp Zabel wrote:
Hi Steve,
I have just tested the imx-media-staging-md-wip branch on a Nitrogen6X
with a tc358743 (BD_HDMI_MIPI HDMI to MIPI CSI-2 receiver board). Some
observations:
# Link pipeline
media-ctl -l "'tc358743 1-000f':0->'imx6-mipi-csi2':0[1]"
media-ctl -l "'imx6-mipi-csi2':1->'ipu1_csi0_mux':0[1]"
media-ctl -l "'ipu1_csi0_mux':2->'ipu1_csi0':0[1]"
media-ctl -l "'ipu1_csi0':2->'ipu1_csi0 capture':0[1]"
This works fine, I can create these links.
# Provide an EDID to the HDMI source
v4l2-ctl -d /dev/v4l-subdev2 --set-edid=file=edid-1080p.hex
I can probably generate this Intel hex file myself from sysfs
edid outputs, but for convenience do you mind sending me this
file? I have a 1080p HDMI source I can plug into the tc358743.
The other problem here is that my version of v4l2-ctl, built from
master branch of git@xxxxxxxxxx:gjasny/v4l-utils.git, does not
support taking a subdev node:
root@mx6q:~# v4l2-ctl -d /dev/v4l-subdev15 --get-edid=format=hex
VIDIOC_QUERYCAP: failed: Inappropriate ioctl for device
/dev/v4l-subdev15: not a v4l2 node
Is this something you added yourself, or where can I find this version
of v4l2-ctrl?
Thanks,
Steve
# At this point the HDMI source is enabled and sends a 1080p60 signal
# Configure detected DV timings
media-ctl --set-dv "'tc358743 1-000f':0"
# Set pad formats
media-ctl --set-v4l2 "'tc358743 1-000f':0[fmt:UYVY/1920x1080]"
media-ctl --set-v4l2 "'imx6-mipi-csi2':1[fmt:UYVY2X8/1920x1080]"
media-ctl --set-v4l2 "'ipu1_csi0_mux':2[fmt:UYVY2X8/1920x1080]"
media-ctl --set-v4l2 "'ipu1_csi0':2[fmt:AYUV32/1920x1080]"
v4l2-ctl -d /dev/video4 -V
# This still is configured to 640x480, which is inconsistent with
# the 'ipu1_csi0':2 pad format. The pad set_fmt above should
# have set this, too.
v4l2-ctl --list-formats -d /dev/video4
# This lists all the RGB formats, which it shouldn't. There is
# no CSC in this pipeline, so we should be limited to YUV formats
# only.
# Set capture format
v4l2-ctl -d /dev/video4 -v width=1920,height=1080,pixelformat=UYVY
v4l2-ctl -d /dev/video4 -V
# Now the capture format is correctly configured to 1920x1080.
v4l2-ctl -d 4 --list-frameintervals=width=1920,height=1080,pixelformat=UYVY
# This lists nothing. We should at least provide the 'ipu1_csi0':2 pad
# frame interval. In the future this should list fractions achievable
# via frame skipping.
v4l2-compliance -d /dev/video4
# This fails two tests:
# fail: v4l2-test-input-output.cpp(383): std == 0
# fail: v4l2-test-input-output.cpp(449): invalid attributes for input 0
# test VIDIOC_G/S/ENUMINPUT: FAIL
# and
# fail: v4l2-test-controls.cpp(782): subscribe event for control 'User Controls' failed
# test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: FAIL
# (Slowly) stream JPEG images to a display host:
gst-launch-1.0 -v v4l2src device=/dev/video4 ! jpegenc ! rtpjpegpay ! udpsink
I've done this a few times, and sometimes I only get a "ipu1_csi0: EOF
timeout" message when starting streaming.
regards
Philipp
_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel