SM8[12]50 DSC CMD-mode display regression since next-20231009
It seems that something got merged between next-20231006
and next-20231009
that regress the panel on my Xperia 1 (griffin). Most of the boots it comes up with something that looks very close to the colorful DSC corruption we've come accustomed to (this is statically displayed, no change in pattern over time):
The only hint in dmesg
is a stuck clock:
[ 2.052924] platform ae94000.dsi: Fixed dependency cycle(s) with /soc@0/display-subsystem@ae00000/dsi@ae94000/panel@0/port/endpoint
[ 2.053267] platform ae94000.dsi: Fixed dependency cycle(s) with /soc@0/display-subsystem@ae00000/display-controller@ae01000/ports/port@0/endpoint
[ 2.055393] msm_dsi_phy ae94400.phy: supply vdds not found, using dummy regulator
[ 2.059384] msm_dsi ae94000.dsi: supply refgen not found, using dummy regulator
[ 2.060229] mipi-dsi ae94000.dsi.0: Fixed dependency cycle(s) with /soc@0/display-subsystem@ae00000/dsi@ae94000/ports/port@1/endpoint
[ 2.061374] msm_dpu ae01000.display-controller: bound ae94000.dsi (ops dsi_ops)
[ 2.062114] Console: switching to colour dummy device 80x25
[ 2.065374] [drm:dpu_kms_hw_init:1075] dpu hardware revision:0x50000001
[ 2.068872] [drm] Initialized msm 1.10.0 20130625 for ae01000.display-controller on minor 0
[ 2.068965] msm_dpu ae01000.display-controller: no GPU device was found
[ 2.086639] ------------[ cut here ]------------
[ 2.086742] disp_cc_mdss_pclk0_clk_src: rcg didn't update its configuration.
[ 2.086755] WARNING: CPU: 6 PID: 63 at drivers/clk/qcom/clk-rcg2.c:133 update_config+0xd0/0xe0
[ 2.086893] Modules linked in:
[ 2.086941] CPU: 6 PID: 63 Comm: kworker/u16:1 Tainted: G U 6.6.0-next-20231031-SoMainline-15971-g44859c2cd3c7 #93
[ 2.087028] Hardware name: Sony Xperia 1 (DT)
[ 2.087113] Workqueue: events_unbound deferred_probe_work_func
[ 2.087166] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 2.087251] pc : update_config+0xd0/0xe0
[ 2.087297] lr : update_config+0xd0/0xe0
[ 2.087379] sp : ffff800080392920
[ 2.087426] x29: ffff800080392920 x28: ffffa6d0f8ed87d0 x27: 0000000000000000
[ 2.087513] x26: ffff36c2059da080 x25: 0000000000000000 x24: 0000000008df1800
[ 2.087563] x23: ffffa6d0f8c51b08 x22: 0000000008df17f7 x21: ffffa6d0f8377730
[ 2.087651] x20: ffffa6d0f8c51af0 x19: 0000000000000000 x18: ffff80008035d278
[ 2.087740] x17: 000000040044ffff x16: 005000f2b5503510 x15: 0000000000000050
[ 2.087791] x14: fffffffffffe7920 x13: ffffa6d0f8af5d98 x12: 000000000000052e
[ 2.087878] x11: 00000000000001ba x10: ffffa6d0f8b50708 x9 : ffffa6d0f8af5d98
[ 2.087929] x8 : 00000000ffffefff x7 : ffffa6d0f8b4dd98 x6 : 00000000000001ba
[ 2.088016] x5 : 0000000000000000 x4 : 40000000fffff1ba x3 : 0000000000000000
[ 2.088105] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff36c2008f9c00
[ 2.088157] Call trace:
[ 2.088242] update_config+0xd0/0xe0
[ 2.088290] clk_rcg2_configure+0xb4/0xbc
[ 2.088337] clk_pixel_set_rate+0x134/0x17c
[ 2.088423] clk_change_rate+0x178/0x29c
[ 2.088473] clk_change_rate+0x10c/0x29c
[ 2.088521] clk_change_rate+0x10c/0x29c
[ 2.088605] clk_change_rate+0x10c/0x29c
[ 2.088654] clk_change_rate+0x10c/0x29c
[ 2.088701] clk_change_rate+0x10c/0x29c
[ 2.088786] clk_change_rate+0x10c/0x29c
[ 2.088835] clk_core_set_rate_nolock+0x1e0/0x2a0
[ 2.088877] clk_set_rate+0x3c/0x154
[ 2.088944] _opp_config_clk_single+0x34/0xb4
[ 2.088985] _set_opp+0x2d0/0x658
[ 2.089024] dev_pm_opp_set_rate+0x184/0x26c
[ 2.089097] dsi_link_clk_set_rate_6g+0x48/0x11c
[ 2.089146] msm_dsi_host_power_on+0xc4/0x9f8
[ 2.089228] dsi_mgr_bridge_pre_enable+0x198/0x3bc
[ 2.089278] drm_atomic_bridge_call_pre_enable+0x70/0x8c
[ 2.089325] drm_atomic_bridge_chain_pre_enable+0xe0/0x15c
[ 2.089409] drm_atomic_helper_commit_modeset_enables+0x168/0x26c
[ 2.089460] msm_atomic_commit_tail+0x1a4/0x510
[ 2.089546] commit_tail+0xa8/0x19c
[ 2.089593] drm_atomic_helper_commit+0x188/0x1a0
[ 2.089679] drm_atomic_commit+0xac/0xe8
[ 2.089728] drm_client_modeset_commit_atomic+0x1fc/0x268
[ 2.089776] drm_client_modeset_commit_locked+0x60/0x178
[ 2.089859] drm_client_modeset_commit+0x30/0x5c
[ 2.089907] __drm_fb_helper_restore_fbdev_mode_unlocked+0xac/0xf0
[ 2.089995] drm_fb_helper_set_par+0x34/0x54
[ 2.090045] fbcon_init+0x214/0x550
[ 2.090093] visual_init+0xb8/0x10c
[ 2.090180] do_bind_con_driver.isra.0+0x190/0x390
[ 2.090230] do_take_over_console+0x1a8/0x1fc
[ 2.090314] do_fbcon_takeover+0x70/0xf0
[ 2.090364] do_fb_registered+0x138/0x150
[ 2.090412] fbcon_fb_registered+0x44/0x108
[ 2.090498] register_framebuffer+0x138/0x1f0
[ 2.090547] __drm_fb_helper_initial_config_and_unlock+0x2ec/0x4a0
[ 2.090635] drm_fb_helper_initial_config+0x4c/0x60
[ 2.090687] msm_fbdev_client_hotplug+0x8c/0xd8
[ 2.090736] drm_client_register+0x5c/0xa4
[ 2.090820] msm_fbdev_setup+0x98/0x150
[ 2.090869] msm_drm_bind+0x388/0x3e4
[ 2.090917] try_to_bring_up_aggregate_device+0x21c/0x2e4
[ 2.091003] __component_add+0xa8/0x194
[ 2.091051] component_add+0x18/0x28
[ 2.091136] dsi_dev_attach+0x24/0x34
[ 2.091187] dsi_host_attach+0xa0/0x154
[ 2.091236] mipi_dsi_attach+0x2c/0x44
[ 2.091323] samsung_souxp00_probe+0x170/0x254
[ 2.091372] mipi_dsi_drv_probe+0x24/0x34
[ 2.091422] really_probe+0x190/0x3cc
[ 2.091507] __driver_probe_device+0x80/0x174
[ 2.091554] driver_probe_device+0x40/0x118
[ 2.091601] __device_attach_driver+0xc8/0x16c
[ 2.091686] bus_for_each_drv+0x84/0xe4
[ 2.091733] __device_attach+0xa0/0x1b4
[ 2.091780] device_initial_probe+0x18/0x28
[ 2.091862] bus_probe_device+0xb4/0xb8
[ 2.091909] device_add+0x5d8/0x7c8
[ 2.091955] mipi_dsi_device_register_full+0xdc/0x1a8
[ 2.092040] mipi_dsi_host_register+0xa8/0x1a4
[ 2.092089] msm_dsi_host_register+0x44/0x64
[ 2.092175] msm_dsi_manager_register+0x13c/0x23c
[ 2.092225] dsi_dev_probe+0x17c/0x214
[ 2.092272] platform_probe+0x6c/0xcc
[ 2.092356] really_probe+0x190/0x3cc
[ 2.092402] __driver_probe_device+0x80/0x174
[ 2.092448] driver_probe_device+0x40/0x118
[ 2.092530] __device_attach_driver+0xc8/0x16c
[ 2.092577] bus_for_each_drv+0x84/0xe4
[ 2.092622] __device_attach+0xa0/0x1b4
[ 2.092705] device_initial_probe+0x18/0x28
[ 2.092753] bus_probe_device+0xb4/0xb8
[ 2.092838] deferred_probe_work_func+0xa4/0xf8
[ 2.092885] process_one_work+0x13c/0x294
[ 2.092936] worker_thread+0x2a8/0x4c4
[ 2.093020] kthread+0xe4/0xe8
[ 2.093067] ret_from_fork+0x10/0x20
[ 2.093117] ---[ end trace 0000000000000000 ]---
[ 2.129689] panel-samsung-souxp ae94000.dsi.0: samsung_souxp00_prepare
[ 2.164259] arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402, iova=0x9c000000, fsynr=0x7b0021, cbfrsynra=0x800, cb=5
[ 2.164414] arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402, iova=0x9c096c00, fsynr=0x7b0021, cbfrsynra=0xc20, cb=5
[ 2.164541] arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402, iova=0x9c0d7300, fsynr=0x7b0021, cbfrsynra=0x800, cb=5
[ 2.164668] arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402, iova=0x9c106000, fsynr=0x7b0021, cbfrsynra=0x800, cb=5
[ 2.164794] arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402, iova=0x9c13b900, fsynr=0x7b0021, cbfrsynra=0x800, cb=5
[ 2.164920] arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402, iova=0x9c17b000, fsynr=0x7b0021, cbfrsynra=0x800, cb=5
[ 2.165045] arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402, iova=0x9c1b0800, fsynr=0x7b0021, cbfrsynra=0x800, cb=5
[ 2.165171] arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402, iova=0x9c1df600, fsynr=0x7b0021, cbfrsynra=0xc20, cb=5
[ 2.165294] arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402, iova=0x9c214c00, fsynr=0x7b0021, cbfrsynra=0xc20, cb=5
[ 2.165420] arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402, iova=0x9c24b400, fsynr=0x7b0021, cbfrsynra=0xc20, cb=5
[ 2.170921] dsi_err_worker: status=c
[ 2.259610] mmc0: new ultra high speed SDR104 SDXC card at address e624
[ 2.262022] mmcblk0: mmc0:e624 SR64G 59.5 GiB
[ 2.339635] panel-samsung-souxp ae94000.dsi.0: samsung_souxp00_enable
[ 2.428572] [dpu error]enc31 intf1 disable autorefresh failed
[ 2.429110] Console: switching to colour frame buffer device 205x240
[ 2.519575] [drm:dpu_encoder_frame_done_timeout:2342] [dpu error]enc31 frame done timeout
[ 2.530018] [drm:_dpu_encoder_phys_cmd_wait_for_idle] *ERROR* id:31 pp:0 kickoff timeout 2 cnt 1 koff_cnt 1
[ 2.530133] [drm:dpu_encoder_phys_cmd_prepare_for_kickoff] *ERROR* failed wait_for_idle: id:31 ret:-110 pp:0
[ 2.540717] msm_dpu ae01000.display-controller: [drm] fb0: msmdrmfb frame buffer device
...
[ 2.609480] Run /init as init process
[ 2.609705] with arguments:
[ 2.609716] /init
[ 2.609725] with environment:
[ 2.609734] HOME=/
[ 2.609741] TERM=linux
[ 2.629126] [drm:dpu_encoder_frame_done_timeout:2342] [dpu error]enc31 frame done timeout
[ 2.629393] [drm:dpu_encoder_phys_cmd_prepare_for_kickoff] *ERROR* failed wait_for_idle: id:31 ret:-110 pp:0
[ 2.729145] [drm:dpu_encoder_frame_done_timeout:2342] [dpu error]enc31 frame done timeout
[ 2.729288] [drm:dpu_encoder_phys_cmd_prepare_for_kickoff] *ERROR* failed wait_for_idle: id:31 ret:-110 pp:0
[ 2.828868] [drm:dpu_encoder_frame_done_timeout:2342] [dpu error]enc31 frame done timeout
[ 2.828987] [drm:dpu_encoder_phys_cmd_prepare_for_kickoff] *ERROR* failed wait_for_idle: id:31 ret:-110 pp:0
[ 2.928865] [drm:dpu_encoder_frame_done_timeout:2342] [dpu error]enc31 frame done timeout
[ 2.938876] [drm:dpu_encoder_phys_cmd_prepare_for_kickoff] *ERROR* failed wait_for_idle: id:31 ret:-110 pp:0
[ 3.048863] [drm:dpu_encoder_frame_done_timeout:2342] [dpu error]enc31 frame done timeout
[ 3.048952] [drm:dpu_encoder_phys_cmd_prepare_for_kickoff] *ERROR* failed wait_for_idle: id:31 ret:-110 pp:0
[ 3.149798] [drm:dpu_encoder_frame_done_timeout:2342] [dpu error]enc31 frame done timeout
[ 3.149941] [drm:dpu_encoder_phys_cmd_prepare_for_kickoff] *ERROR* failed wait_for_idle: id:31 ret:-110 pp:0
[ 3.249237] [drm:dpu_encoder_phys_cmd_prepare_for_kickoff] *ERROR* failed wait_for_idle: id:31 ret:-110 pp:0
Attached is the devcoredump:
And debugcc
in case this is really a stuck clock:
griffin-next-broken-drm-debugcc
The panel driver and DTS for this device based on an upstream tree are available at https://github.com/somainline/linux/commits/marijn/panel-exclusives.
That the Xperia XZ3 (akatsuki, sdm845, with a 1440x3880@60 DSC panel on DPU 4.0) is unaffected. Its panel driver and corresponding DTS change is also available on the marijn/panel-exclusives
branch linked above.
I have tried bisecting v6.6-rc5
to next-20231009
to no avail; various things such as USB and simplefb are breaking during the process, hampering proper bisection.
Note that I'm reporting this in hopes of still being on time to back out or revert the patch that causes this regression, before hitting a wider audience.
TODO
I'll find some time to rebase panel drivers for SM8250 and beyond to test newer devices which utilize DSC to rule out a common vs SoC-specific issue.
Affected devices
Device | Panel driver | DSC | next-20231006 |
next-20231009 |
---|---|---|---|---|
Xperia XZ3 (sdm845-sony-xperia-tama-akatsuki) | sony-akatsuki-lgd |
|
||
Xperia 1 (sm8150-sony-xperia-kumano-griffin) | samsung-souxp00 |
️ |
️ |
️ |
Xperia 1 II (sm8250-sony-xperia-edo-pdx203) | samsung-souxp00 |
️ |
️ |
️ |
Xperia 5 II (sm8250-sony-xperia-edo-pdx206) | samsung-sofef03 |
️ |
||
Xperia 5 III (sm8350-sony-xperia-sagami-pdx214) | samsung-sofef03 |
|
️ |
|
Xperia 5 (sm8150-sony-xperia-kumano-bahamut) | samsung-sofef01 |
️ |
️ |
️ |
Xperia 10 II (sm6125-sony-xperia-seine-pdx201) | samsung-sofef01 |
️ |
️ |
️ |
So far this only seems to be an issue on DPU 5.0 - 6.0 with DSC panels.