I have a custom graphics mode which I need to use:
"1080x1920": 60 138375 1080 1140 1150 1185 1920 1928 1932 1940 0x48 0xa status: 0
At some point, this mode is being set to MODE_BAD (-2).
I cannot find out what is setting this, as a grep only returns:
.../kernel_imx $ grep -R "= MODE_BAD"drivers/gpu/drm/drm_modes.c: if (mode->status == MODE_BAD) {
What part of the DRM (Direct Rendering Manager) sets mode->status
to MODE_BAD, causing it to be pruned in drm_mode_prune_invalid()
?
If I force the mode->status
back to MODE_OK (0)
in drm_mode_prune_invalid()
, it then causes a kernel crash.
It does work to some degree; I see penguins three seconds after the kernel starts.
[ 3.761631] extra_debug: "1080x1920": 60 138375 1080 1140 1150 1185 1920 1928 1932 1940 0x48 0xa status: 0[ 3.787238] ------------[ cut here ]------------[ 3.787241] This function requires support for accurate vblank timestamps.[ 3.787332] WARNING: CPU: 0 PID: 32 at /home/fadedbee/evk_android_10.0.0_2.6.0.edid_and_serial/smarcimx8mq/q_1000_260/android_build/vendor/embedian/kern0[ 3.787335] Modules linked in:[ 3.787346] CPU: 0 PID: 32 Comm: kworker/0:1 Not tainted 5.4.70-g9930f8ebef2b-dirty #47[ 3.787349] Hardware name: Embedian SMARC-iMX8M Computer on Module HDMI (DT)[ 3.787361] Workqueue: events deferred_probe_work_func[ 3.787370] pstate: 60400085 (nZCv daIf +PAN -UAO)[ 3.787376] pc : drm_crtc_accurate_vblank_count+0xb8/0xc0[ 3.787382] lr : drm_crtc_accurate_vblank_count+0xb8/0xc0[ 3.787385] sp : ffff8000126fb440[ 3.787388] x29: ffff8000126fb460 x28: ffff0000f9635600[ 3.787395] x27: 0000000000000000 x26: ffff0000f956c2e0[ 3.787402] x25: 0000000000000001 x24: ffff0000f956cf28[ 3.787409] x23: ffff0000f956c000 x22: 0000000000000000[ 3.787416] x21: 0000000000000000 x20: 0000000000000000[ 3.787423] x19: ffff0000f956c000 x18: 0000000000000001[ 3.787429] x17: 0000000000000044 x16: 00000000000132f0[ 3.787436] x15: 0000000000000000 x14: ffff80001245e000[ 3.787443] x13: 0000000000000004 x12: 0000000000000000[ 3.787449] x11: 0000000000000000 x10: 00000000ffffffff[ 3.787456] x9 : bb7aeb659b18b200 x8 : bb7aeb659b18b200[ 3.787463] x7 : 000000000000003e x6 : ffff80001245ef56[ 3.787469] x5 : 000000000000003e x4 : 000000000000000c[ 3.787476] x3 : 0000000000002e73 x2 : 0000000000000032[ 3.787483] x1 : ffff80001245c622 x0 : 000000000000003e[ 3.787490] Call trace:[ 3.787497] drm_crtc_accurate_vblank_count+0xb8/0xc0[ 3.787503] drm_crtc_arm_vblank_event+0x30/0x7c[ 3.787512] dcss_crtc_atomic_begin+0x48/0x8c[ 3.787519] drm_atomic_helper_commit_planes+0x68/0x1ec[ 3.787526] dcss_drm_atomic_commit_tail+0xc0/0x140[ 3.787533] dcss_drm_atomic_commit+0x214/0x220[ 3.787540] drm_atomic_commit+0x48/0x54[ 3.787547] drm_client_modeset_commit_atomic+0x150/0x1c0[ 3.787554] drm_client_modeset_commit_force+0x48/0x15c[ 3.787561] drm_fb_helper_set_par+0x70/0xa8[ 3.787569] fbcon_init+0x37c/0x4f0[ 3.787577] visual_init+0xb4/0x100[ 3.787583] do_bind_con_driver+0x37c/0x4bc[ 3.787590] do_take_over_console+0x1e0/0x220[ 3.787597] fbcon_fb_registered+0x128/0x19c[ 3.787602] register_framebuffer+0x20c/0x2c4[ 3.787608] __drm_fb_helper_initial_config_and_unlock+0x340/0x478[ 3.787614] drm_fbdev_client_hotplug+0x124/0x1b0[ 3.787620] drm_fbdev_generic_setup+0xbc/0x10c[ 3.787628] dcss_kms_attach+0x240/0x288[ 3.787634] dcss_drv_bind+0x5c/0xa8[ 3.787642] try_to_bring_up_master+0x15c/0x1a4[ 3.787649] component_master_add_with_match+0x98/0x13c[ 3.787655] dcss_drv_platform_probe+0x148/0x15c[ 3.787663] platform_drv_probe+0x8c/0xb4[ 3.787668] really_probe+0x254/0x598[ 3.787675] driver_probe_device+0x60/0xf8[ 3.787681] __device_attach_driver+0x118/0x138[ 3.787687] bus_for_each_drv+0x7c/0xc4[ 3.787693] __device_attach+0x104/0x174[ 3.787699] device_initial_probe+0x10/0x18[ 3.787704] bus_probe_device+0x30/0x98[ 3.787710] deferred_probe_work_func+0x74/0xac[ 3.787719] process_one_work+0x214/0x470[ 3.787725] worker_thread+0x2d4/0x4b8[ 3.787731] kthread+0x138/0x148[ 3.787738] ret_from_fork+0x10/0x18[ 3.787742] ---[ end trace 691f7bd9a472cbf9 ]---