i.MX6Q IPU HDMI Detection
Nick Riley
nriley at opto22.com
Fri Jun 26 11:15:57 PDT 2015
I have a SABRESD board based off the i.MX6Q CPU I've been using to
test HDMI monitors with. When I power-up the SABRESD, most monitors
will not display any video (console). Only the Samsung monitor in the
list below works on power-up. But if I hot-swap the HDMI cable, the
other monitors will detect a signal. And if the resolution is
supported it will display video.
I have also tested this with a Freescale Linux kernel 3.14.28_1.0.0_ga
found here, "http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/".
Using this kernel all the monitors I've tested work as expected.
Any help to get this resolved with the Mainline Linux kernel is
appreciated. Thanks.
My setup:
U-Boot Version: U-Boot 2014.04-08650-g5b983bd from Freescale Yocto build (fido)
Mainline Linux Kernel Version: 4.0.6
RFS Tested: core-image-x11 from Freescale Yocto build (fido),
linaro-utopic-alip-20150319-701, and linaro-utopic-nano-20141122-688.
Linux Command Line: console=ttymxc0,115200 root=/dev/mmcblk0p2
rootwait rw video=mxcfb0:dev=hdmi,1920x1080M@,if=RGB24
elevator=deadline
List of Monitors Tested:
Samsung Model No: 2243BWT, Resolution 1680x1050
Dell Model No: P2314T, Resolution 1920x1080
Viewsonic Model No: VG2039M-LED, Resolution 1600x900
Acer Model No: FT200HQL, Resolution 1600x900
Acer Model No: B223W, Resolution 1680x1050
Asus Model No: VH202T, Resolution 1600x900
LG Model No: W2442PAT Resolution 1920x1080
Debug output from "drivers/gpu/ipu-v3/ipu-di.c" using Dell Monitor
P2314T from power-up:
root at imx6qsabresd:~# dmesg | grep ipu
[ 1.448829] imx-ipuv3 2400000.ipu: DI0 base: 0x02640000 remapped to c08c2000
[ 1.448889] imx-ipuv3 2400000.ipu: DI1 base: 0x02648000 remapped to c08ce000
[ 1.450755] imx-ipuv3 2400000.ipu: IPUv3H probed
[ 1.455795] imx-ipuv3 2800000.ipu: DI0 base: 0x02a40000 remapped to c096e000
[ 1.455852] imx-ipuv3 2800000.ipu: DI1 base: 0x02a48000 remapped to c0976000
[ 1.473130] imx-drm display-subsystem: bound imx-ipuv3-crtc.0 (ops
ipu_crtc_ops)
[ 1.480824] imx-drm display-subsystem: bound imx-ipuv3-crtc.1 (ops
ipu_crtc_ops)
[ 1.488508] imx-drm display-subsystem: bound imx-ipuv3-crtc.4 (ops
ipu_crtc_ops)
[ 1.496118] imx-drm display-subsystem: bound imx-ipuv3-crtc.5 (ops
ipu_crtc_ops)
[ 1.596352] imx-ipuv3 2400000.ipu: disp 0: panel size = 1920 x 1080
[ 1.596381] imx-ipuv3 2400000.ipu: Clocks: IPU 264000000Hz DI
24000000Hz Needed 148500000Hz
[ 1.596483] imx-ipuv3 2400000.ipu: IPU clock can give 132000000
with divider 2, error -11.8%
[ 1.596744] imx-ipuv3 2400000.ipu: Want 148500000Hz IPU 264000000Hz
DI 148500000Hz using DI, 148500000Hz
[ 1.634226] imx-ipuv3 2400000.ipu: disp 1: panel size = 1024 x 768
[ 1.634248] imx-ipuv3 2400000.ipu: Clocks: IPU 264000000Hz DI
49500000Hz Needed 65000000Hz
[ 1.634278] imx-ipuv3 2400000.ipu: Want 65000000Hz IPU 264000000Hz
DI 49500000Hz using DI, 49500000Hz
[ 1.713976] imx-ipuv3 2800000.ipu: IPUv3H probed
Debug output from "drivers/gpu/ipu-v3/ipu-di.c" using Dell Monitor
P2314T after hot-swap:
root at imx6qsabresd:~# dmesg | grep ipu
[ 1.448829] imx-ipuv3 2400000.ipu: DI0 base: 0x02640000 remapped to c08c2000
[ 1.448889] imx-ipuv3 2400000.ipu: DI1 base: 0x02648000 remapped to c08ce000
[ 1.450755] imx-ipuv3 2400000.ipu: IPUv3H probed
[ 1.455795] imx-ipuv3 2800000.ipu: DI0 base: 0x02a40000 remapped to c096e000
[ 1.455852] imx-ipuv3 2800000.ipu: DI1 base: 0x02a48000 remapped to c0976000
[ 1.473130] imx-drm display-subsystem: bound imx-ipuv3-crtc.0 (ops
ipu_crtc_ops)
[ 1.480824] imx-drm display-subsystem: bound imx-ipuv3-crtc.1 (ops
ipu_crtc_ops)
[ 1.488508] imx-drm display-subsystem: bound imx-ipuv3-crtc.4 (ops
ipu_crtc_ops)
[ 1.496118] imx-drm display-subsystem: bound imx-ipuv3-crtc.5 (ops
ipu_crtc_ops)
[ 1.596352] imx-ipuv3 2400000.ipu: disp 0: panel size = 1920 x 1080
[ 1.596381] imx-ipuv3 2400000.ipu: Clocks: IPU 264000000Hz DI
24000000Hz Needed 148500000Hz
[ 1.596483] imx-ipuv3 2400000.ipu: IPU clock can give 132000000
with divider 2, error -11.8%
[ 1.596744] imx-ipuv3 2400000.ipu: Want 148500000Hz IPU 264000000Hz
DI 148500000Hz using DI, 148500000Hz
[ 1.634226] imx-ipuv3 2400000.ipu: disp 1: panel size = 1024 x 768
[ 1.634248] imx-ipuv3 2400000.ipu: Clocks: IPU 264000000Hz DI
49500000Hz Needed 65000000Hz
[ 1.634278] imx-ipuv3 2400000.ipu: Want 65000000Hz IPU 264000000Hz
DI 49500000Hz using DI, 49500000Hz
[ 1.713976] imx-ipuv3 2800000.ipu: IPUv3H probed
[ 83.917518] imx-ipuv3 2400000.ipu: DC stop timeout after 50 ms
[ 83.923713] imx-ipuv3 2400000.ipu: disp 0: panel size = 1024 x 768
[ 83.923763] imx-ipuv3 2400000.ipu: Clocks: IPU 264000000Hz DI
454999992Hz Needed 65000000Hz
[ 83.923862] imx-ipuv3 2400000.ipu: Want 65000000Hz IPU 264000000Hz
DI 454999992Hz using DI, 454999992Hz
[ 87.767442] imx-ipuv3 2400000.ipu: DC stop timeout after 50 ms
[ 88.837239] imx-ipuv3 2400000.ipu: Timeout waiting for DMFC FIFOs to clear
[ 88.844214] imx-ipuv3 2400000.ipu: disp 0: panel size = 1920 x 1080
[ 88.844236] imx-ipuv3 2400000.ipu: Clocks: IPU 264000000Hz DI
64999999Hz Needed 148500000Hz
[ 88.844256] imx-ipuv3 2400000.ipu: IPU clock can give 132000000
with divider 2, error -11.8%
[ 88.844319] imx-ipuv3 2400000.ipu: Want 148500000Hz IPU 264000000Hz
DI 129999997Hz using DI, 129999997Hz
[ 88.881781] imx-ipuv3 2400000.ipu: disp 1: panel size = 1024 x 768
[ 88.881804] imx-ipuv3 2400000.ipu: Clocks: IPU 264000000Hz DI
129999997Hz Needed 65000000Hz
[ 88.881830] imx-ipuv3 2400000.ipu: Want 65000000Hz IPU 264000000Hz
DI 129999997Hz using DI, 129999997Hz
More information about the linux-arm-kernel
mailing list