RaspberryPi4B, VC4 fails to output on HDMI
Etienne Buira
etienne.buira at free.fr
Mon May 12 16:58:15 UTC 2025
Hi all (and i hope you won't feel spammed).
I have a Raspberry Pi 4B i want to use with HDMI0, but i can't make it
work (tried lot of kernel versions), and i'd appreciate some guidance.
Overview of dmesg (6.15-rc6 with some trace/stack dump of mine):
[ 0.212555] simple-framebuffer 3e40f000.framebuffer: framebuffer at 0x3e40f000, 0x6e7000 bytes
[ 0.212569] simple-framebuffer 3e40f000.framebuffer: format=a8r8g8b8, mode=1824x984x32, linelength=7296
[ 0.216036] Console: switching to colour frame buffer device 228x61
[ 0.219382] simple-framebuffer 3e40f000.framebuffer: fb0: simplefb registered!
...
[ 1.923879] raspberrypi-firmware soc:firmware: Attached to firmware from 2025-02-17T20:03:07
...
[ 1.957445] v3d fec00000.gpu: [drm] Using Transparent Hugepages
[ 1.964814] [drm] Initialized v3d 1.0.0 for fec00000.gpu on minor 0
[ 1.972428] Console: do_bind_con_driver, backtrace:
[ 1.972437] CPU: 0 UID: 0 PID: 44 Comm: kworker/u16:2 Not tainted 6.15.0-rc6-00001-gb4f861e88093-dirty #2 PREEMPT
[ 1.972446] Hardware name: Raspberry Pi 4 Model B Rev 1.5 (DT)
[ 1.972449] Workqueue: events_unbound deferred_probe_work_func
[ 1.972465] Call trace:
[ 1.972467] show_stack+0x2c/0xc0 (C)
[ 1.972476] dump_stack_lvl+0x60/0x94
[ 1.972483] dump_stack+0x18/0x30
[ 1.972488] do_bind_con_driver.isra.0+0x40/0x294
[ 1.972497] do_unbind_con_driver+0x1b8/0x1dc
[ 1.972506] fbcon_fb_unbind+0x108/0x1d8
[ 1.972512] unregister_framebuffer+0x110/0x120
[ 1.972522] simplefb_remove+0x14/0x2c
[ 1.972527] platform_remove+0x28/0x5c
[ 1.972533] device_remove+0x4c/0xa0
[ 1.972538] device_release_driver_internal+0x1fc/0x250
[ 1.972543] device_release_driver+0x18/0x40
[ 1.972548] bus_remove_device+0xd4/0x17c
[ 1.972552] device_del+0x150/0x3b8
[ 1.972559] platform_device_del+0x28/0xbc
[ 1.972564] platform_device_unregister+0x18/0x50
[ 1.972570] aperture_detach_platform_device+0x14/0x2c
[ 1.972575] aperture_detach_devices+0xb8/0x120
[ 1.972581] aperture_remove_conflicting_devices+0x10/0x2c
[ 1.972587] vc4_drm_bind+0x110/0x364
[ 1.972592] try_to_bring_up_aggregate_device+0x22c/0x308
[ 1.972597] __component_add+0xec/0x224
[ 1.972602] component_add+0x14/0x30
[ 1.972607] vc4_hdmi_dev_probe+0x1c/0x40
[ 1.972614] platform_probe+0x68/0xf0
[ 1.972620] really_probe+0xc0/0x3ac
[ 1.972624] __driver_probe_device+0x7c/0x174
[ 1.972629] driver_probe_device+0x40/0x100
[ 1.972634] __device_attach_driver+0x10c/0x1e0
[ 1.972639] bus_for_each_drv+0x88/0x100
[ 1.972643] __device_attach+0xa0/0x1c8
[ 1.972647] device_initial_probe+0x14/0x30
[ 1.972652] bus_probe_device+0xc8/0xcc
[ 1.972656] deferred_probe_work_func+0xb8/0x12c
[ 1.972661] process_one_work+0x160/0x2d4
[ 1.972668] worker_thread+0x2d8/0x400
[ 1.972673] kthread+0x12c/0x208
[ 1.972678] ret_from_fork+0x10/0x20
[ 1.972720] Console: switching to colour dummy device 80x25
[ 3.115665] vc4-drm gpu: bound fe400000.hvs (ops 0xffffffd14312f480)
[ 3.122490] Registered IR keymap rc-cec
[ 3.125869] rc rc0: vc4-hdmi-0 as /devices/platform/soc/fef00700.hdmi/rc/rc0
[ 3.133033] input: vc4-hdmi-0 as /devices/platform/soc/fef00700.hdmi/rc/rc0/input0
[ 3.141737] vc4-drm gpu: bound fef00700.hdmi (ops 0xffffffd14312bc68)
[ 3.148700] Registered IR keymap rc-cec
[ 3.152074] rc rc1: vc4-hdmi-1 as /devices/platform/soc/fef05700.hdmi/rc/rc1
[ 3.159241] input: vc4-hdmi-1 as /devices/platform/soc/fef05700.hdmi/rc/rc1/input1
[ 3.168548] vc4-drm gpu: bound fef05700.hdmi (ops 0xffffffd14312bc68)
[ 3.174671] vc4-drm gpu: bound fe004000.txp (ops 0xffffffd1431307d0)
[ 3.181044] vc4-drm gpu: bound fe206000.pixelvalve (ops 0xffffffd1431296f0)
[ 3.188070] vc4-drm gpu: bound fe207000.pixelvalve (ops 0xffffffd1431296f0)
[ 3.195114] vc4-drm gpu: bound fe20a000.pixelvalve (ops 0xffffffd1431296f0)
[ 3.202132] vc4-drm gpu: bound fe216000.pixelvalve (ops 0xffffffd1431296f0)
[ 3.210213] [drm] Initialized vc4 0.0.0 for gpu on minor 1
...
[ 12.308295] EDID block 1 read ok (drivers/gpu/drm/drm_edid.c:edid_block_status_print case EDID_BLOCK_OK)
The EDID is fetched ok (but strangely late according to dmesg), and edid-decode
softly complains about it (and it lists a wide range of modes it does not
complain about):
Warnings:
Block 1, CTA-861 Extension Block:
Display Product Serial Number is set, so the Serial Number in the Base EDID should be 0.
Add a Colorimetry Data Block with the sRGB colorimetry bit set to avoid interop issues.
Failures:
Block 1, CTA-861 Extension Block:
Missing VCDB, needed for Set Selectable RGB Quantization to avoid interop issues.
EDID:
Base EDID: Some timings are out of range of the Monitor Ranges:
Vertical Freq: 50.000 - 75.029 Hz (Monitor: 56.000 - 76.000 Hz)
Horizontal Freq: 15.625 - 79.976 kHz (Monitor: 30.000 - 83.000 kHz)
Interestingly enough, while EDID seems to have parsed ok, there is zero
entry in /sys/class/drm/card1-HDMI-A-1/modes (the hdmi node i took the
edid from).
Can someone give me some hint(s) on how to get this hdmi output working?
I can obviously give more informations if needed.
Regards.
More information about the dri-devel
mailing list