From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
To: Bjorn Andersson <andersson@kernel.org>,
Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@kernel.org>,
Ulf Hansson <ulf.hansson@linaro.org>,
Konrad Dybcio <konradybcio@kernel.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>
Cc: linux-arm-msm@vger.kernel.org, linux-clk@vger.kernel.org,
linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
stable@vger.kernel.org
Subject: [PATCH 1/4] clk: qcom: dispcc-sdm845: set GENPD_FLAG_NO_STAY_ON flag for MDSS domain
Date: Tue, 17 Feb 2026 23:20:42 +0200 [thread overview]
Message-ID: <20260217-sdm845-hdk-v1-1-866f1965fef7@oss.qualcomm.com> (raw)
In-Reply-To: <20260217-sdm845-hdk-v1-0-866f1965fef7@oss.qualcomm.com>
Since the commit 13a4b7fb6260 ("pmdomain: core: Leave powered-on genpds
on until late_initcall_sync") setting of the display clocks is partially
broken. For example, when on SDM845-HDK the bootloader leaves display
enabled, later the kernel can't set up DSI clocks, ending up with the
broken display, blinking blue.
------------[ cut here ]------------
disp_cc_mdss_pclk0_clk_src: rcg didn't update its configuration.
WARNING: CPU: 7 PID: 81 at drivers/clk/qcom/clk-rcg2.c:136 update_config+0xd4/0xf0
Modules linked in:
CPU: 7 UID: 0 PID: 81 Comm: kworker/u32:3 Not tainted 6.16.0-rc2-00040-ga3f36de2f3ba #4236 PREEMPT
Hardware name: Qualcomm Technologies, Inc. SDM845 HDK (DT)
Workqueue: events_unbound deferred_probe_work_func
pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : update_config+0xd4/0xf0
lr : update_config+0xd4/0xf0
sp : ffff800080992a30
x29: ffff800080992a40 x28: 0000000000000001 x27: ffff00008db49080
x26: ffff00008db49220 x25: 0000000000000000 x24: 0000000008d9ee20
x23: ffffd6f1bf1f6cd8 x22: 0000000008d9ee20 x21: ffffd6f1becadfa8
x20: ffffd6f1bf1f6cc0 x19: 0000000000000000 x18: fffffffffffef3f0
x17: 0000000000000004 x16: 0000000000000024 x15: 0000000000000005
x14: fffffffffffcf3ef x13: 2e6e6f6974617275 x12: 6769666e6f632073
x11: 7469206574616470 x10: 752074276e646964 x9 : 72756769666e6f63
x8 : ffff800080992790 x7 : ffff8000809928c0 x6 : ffff800080992850
x5 : ffff8000809927d0 x4 : ffff800080994000 x3 : 0000000000000000
x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff0000808d1b00
Call trace:
update_config+0xd4/0xf0 (P)
clk_rcg2_configure+0xb8/0xc0
clk_pixel_set_rate+0x138/0x180
clk_change_rate+0x124/0x620
clk_change_rate+0x1b4/0x620
clk_change_rate+0x1b4/0x620
clk_change_rate+0x1b4/0x620
clk_change_rate+0x1b4/0x620
clk_change_rate+0x1b4/0x620
clk_change_rate+0x1b4/0x620
clk_core_set_rate_nolock+0x230/0x2b0
clk_set_rate+0x38/0x90
_opp_config_clk_single+0x30/0x98
_set_opp+0x11c/0x530
dev_pm_opp_set_rate+0x18c/0x280
dsi_link_clk_set_rate_6g+0x44/0x100
msm_dsi_host_power_on+0xc4/0x988
dsi_mgr_bridge_pre_enable+0x194/0x3e0
drm_atomic_bridge_call_pre_enable+0x40/0x58
drm_atomic_bridge_chain_pre_enable+0x50/0x130
drm_atomic_helper_commit_modeset_enables+0x15c/0x26c
msm_atomic_commit_tail+0x214/0xb18
commit_tail+0xa0/0x1a0
drm_atomic_helper_commit+0x1a8/0x1d0
drm_atomic_commit+0x8c/0xcc
drm_client_modeset_commit_atomic+0x258/0x2d0
drm_client_modeset_commit_locked+0x60/0x1b8
drm_client_modeset_commit+0x2c/0x58
__drm_fb_helper_restore_fbdev_mode_unlocked+0xbc/0xe8
drm_fb_helper_set_par+0x30/0x58
fbcon_init+0x3cc/0x530
visual_init+0x8c/0xe0
do_bind_con_driver.isra.0+0x18c/0x320
do_take_over_console+0x13c/0x1d4
do_fbcon_takeover+0x6c/0xe0
fbcon_fb_registered+0x1dc/0x1e0
do_register_framebuffer+0x1bc/0x278
register_framebuffer+0x30/0x5c
__drm_fb_helper_initial_config_and_unlock+0x2dc/0x5a8
drm_fb_helper_initial_config+0x48/0x58
drm_fbdev_client_hotplug+0x7c/0xe0
drm_client_register+0x5c/0xa0
drm_fbdev_client_setup+0xa4/0x1c0
drm_client_setup+0x58/0xa0
msm_drm_bind+0x3b4/0x460
try_to_bring_up_aggregate_device+0x16c/0x1e0
__component_add+0xa8/0x170
component_add+0x14/0x20
dsi_dev_attach+0x20/0x38
dsi_host_attach+0x58/0x98
devm_mipi_dsi_attach+0x34/0x90
lt9611_attach_dsi+0x98/0x120
lt9611_probe+0x3f8/0x4a0
i2c_device_probe+0x154/0x340
really_probe+0xbc/0x2c0
__driver_probe_device+0x78/0x120
driver_probe_device+0x3c/0x160
__device_attach_driver+0xb8/0x140
bus_for_each_drv+0x88/0xe8
__device_attach+0xa0/0x198
device_initial_probe+0x14/0x20
bus_probe_device+0xb4/0xc0
deferred_probe_work_func+0x90/0xcc
process_one_work+0x214/0x64c
worker_thread+0x1c0/0x364
kthread+0x14c/0x220
ret_from_fork+0x10/0x20
irq event stamp: 110949
hardirqs last enabled at (110949): [<ffffd6f1be502d78>] _raw_spin_unlock_irqrestore+0x6c/0x74
hardirqs last disabled at (110948): [<ffffd6f1be502268>] _raw_spin_lock_irqsave+0x84/0x88
softirqs last enabled at (109450): [<ffffd6f1be1b9ff0>] release_sock+0x90/0xa4
softirqs last disabled at (109448): [<ffffd6f1be1b9f88>] release_sock+0x28/0xa4
---[ end trace 0000000000000000 ]---
------------[ cut here ]------------
disp_cc_mdss_pclk1_clk_src: rcg didn't update its configuration.
WARNING: CPU: 7 PID: 81 at drivers/clk/qcom/clk-rcg2.c:136 update_config+0xd4/0xf0
Modules linked in:
CPU: 7 UID: 0 PID: 81 Comm: kworker/u32:3 Tainted: G W 6.16.0-rc2-00040-ga3f36de2f3ba #4236 PREEMPT
Tainted: [W]=WARN
Hardware name: Qualcomm Technologies, Inc. SDM845 HDK (DT)
Workqueue: events_unbound deferred_probe_work_func
pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : update_config+0xd4/0xf0
lr : update_config+0xd4/0xf0
sp : ffff800080992a30
x29: ffff800080992a40 x28: 0000000000000001 x27: ffff00008db49080
x26: ffff00008db49220 x25: 0000000000000000 x24: 0000000008d9ee20
x23: ffffd6f1bf1f6c48 x22: 0000000008d9ee20 x21: ffffd6f1becb1b50
x20: ffffd6f1bf1f6c30 x19: 0000000000000000 x18: ffffffffffff0790
x17: 0000000000000004 x16: 0000000000000024 x15: 0000000000000005
x14: fffffffffffd078f x13: 2e6e6f6974617275 x12: 6769666e6f632073
x11: 7469206574616470 x10: 752074276e646964 x9 : 72756769666e6f63
x8 : ffff800080992790 x7 : ffff8000809928c0 x6 : ffff800080992850
x5 : ffff8000809927d0 x4 : ffff800080994000 x3 : 0000000000000000
x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff0000808d1b00
Call trace:
update_config+0xd4/0xf0 (P)
clk_rcg2_configure+0xb8/0xc0
clk_pixel_set_rate+0x138/0x180
clk_change_rate+0x124/0x620
clk_change_rate+0x1b4/0x620
clk_change_rate+0x1b4/0x620
clk_change_rate+0x1b4/0x620
clk_change_rate+0x1b4/0x620
clk_change_rate+0x1b4/0x620
clk_change_rate+0x1b4/0x620
clk_core_set_rate_nolock+0x230/0x2b0
clk_set_rate+0x38/0x90
_opp_config_clk_single+0x30/0x98
_set_opp+0x11c/0x530
dev_pm_opp_set_rate+0x18c/0x280
dsi_link_clk_set_rate_6g+0x44/0x100
msm_dsi_host_power_on+0xc4/0x988
dsi_mgr_bridge_pre_enable+0x194/0x3e0
drm_atomic_bridge_call_pre_enable+0x40/0x58
drm_atomic_bridge_chain_pre_enable+0x50/0x130
drm_atomic_helper_commit_modeset_enables+0x15c/0x26c
msm_atomic_commit_tail+0x214/0xb18
commit_tail+0xa0/0x1a0
drm_atomic_helper_commit+0x1a8/0x1d0
drm_atomic_commit+0x8c/0xcc
drm_client_modeset_commit_atomic+0x258/0x2d0
drm_client_modeset_commit_locked+0x60/0x1b8
drm_client_modeset_commit+0x2c/0x58
__drm_fb_helper_restore_fbdev_mode_unlocked+0xbc/0xe8
drm_fb_helper_set_par+0x30/0x58
fbcon_init+0x3cc/0x530
visual_init+0x8c/0xe0
do_bind_con_driver.isra.0+0x18c/0x320
do_take_over_console+0x13c/0x1d4
do_fbcon_takeover+0x6c/0xe0
fbcon_fb_registered+0x1dc/0x1e0
do_register_framebuffer+0x1bc/0x278
register_framebuffer+0x30/0x5c
__drm_fb_helper_initial_config_and_unlock+0x2dc/0x5a8
drm_fb_helper_initial_config+0x48/0x58
drm_fbdev_client_hotplug+0x7c/0xe0
drm_client_register+0x5c/0xa0
drm_fbdev_client_setup+0xa4/0x1c0
drm_client_setup+0x58/0xa0
msm_drm_bind+0x3b4/0x460
try_to_bring_up_aggregate_device+0x16c/0x1e0
__component_add+0xa8/0x170
component_add+0x14/0x20
dsi_dev_attach+0x20/0x38
dsi_host_attach+0x58/0x98
devm_mipi_dsi_attach+0x34/0x90
lt9611_attach_dsi+0x98/0x120
lt9611_probe+0x3f8/0x4a0
i2c_device_probe+0x154/0x340
really_probe+0xbc/0x2c0
__driver_probe_device+0x78/0x120
driver_probe_device+0x3c/0x160
__device_attach_driver+0xb8/0x140
bus_for_each_drv+0x88/0xe8
__device_attach+0xa0/0x198
device_initial_probe+0x14/0x20
bus_probe_device+0xb4/0xc0
deferred_probe_work_func+0x90/0xcc
process_one_work+0x214/0x64c
worker_thread+0x1c0/0x364
kthread+0x14c/0x220
ret_from_fork+0x10/0x20
irq event stamp: 110949
hardirqs last enabled at (110949): [<ffffd6f1be502d78>] _raw_spin_unlock_irqrestore+0x6c/0x74
hardirqs last disabled at (110948): [<ffffd6f1be502268>] _raw_spin_lock_irqsave+0x84/0x88
softirqs last enabled at (109450): [<ffffd6f1be1b9ff0>] release_sock+0x90/0xa4
softirqs last disabled at (109448): [<ffffd6f1be1b9f88>] release_sock+0x28/0xa4
---[ end trace 0000000000000000 ]---
lt9611 3-003b: video check: hactive_a=0, hactive_b=0, vactive=0, v_total=0, h_total_sysclk=0
[drm:dpu_encoder_phys_vid_wait_for_commit_done:540] [dpu error]vblank timeout: 2
[drm:dpu_kms_wait_for_commit_done:524] [dpu error]wait for commit done returned -110
fb0: sys_imageblit: framebuffer is not in virtual address space.
[drm:dpu_encoder_phys_vid_wait_for_commit_done:540] [dpu error]vblank timeout: 2
[drm:dpu_kms_wait_for_commit_done:524] [dpu error]wait for commit done returned -110
[drm:dpu_encoder_phys_vid_wait_for_commit_done:540] [dpu error]vblank timeout: 2
[drm:dpu_kms_wait_for_commit_done:524] [dpu error]wait for commit done returned -110
Console: switching to colour frame buffer device 480x135
[drm:dpu_encoder_phys_vid_wait_for_commit_done:540] [dpu error]vblank timeout: 2
[drm:dpu_kms_wait_for_commit_done:524] [dpu error]wait for commit done returned -110
[drm:dpu_encoder_phys_vid_wait_for_commit_done:540] [dpu error]vblank timeout: 2
[drm:dpu_kms_wait_for_commit_done:524] [dpu error]wait for commit done returned -110
Fixes: 13a4b7fb6260 ("pmdomain: core: Leave powered-on genpds on until late_initcall_sync")
Cc: stable@vger.kernel.org
Cc: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
drivers/clk/qcom/dispcc-sdm845.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/clk/qcom/dispcc-sdm845.c b/drivers/clk/qcom/dispcc-sdm845.c
index 78e43f6d7502..468b30497746 100644
--- a/drivers/clk/qcom/dispcc-sdm845.c
+++ b/drivers/clk/qcom/dispcc-sdm845.c
@@ -763,6 +763,7 @@ static struct gdsc mdss_gdsc = {
.en_rest_wait_val = 0x5,
.pd = {
.name = "mdss_gdsc",
+ .flags = GENPD_FLAG_NO_STAY_ON,
},
.pwrsts = PWRSTS_OFF_ON,
.flags = HW_CTRL | POLL_CFG_GDSCR,
--
2.47.3
next prev parent reply other threads:[~2026-02-17 21:21 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-17 21:20 [PATCH 0/4] arm64: dts: qcom: support SDM845 HDK Dmitry Baryshkov
2026-02-17 21:20 ` Dmitry Baryshkov [this message]
2026-02-18 8:10 ` [PATCH 1/4] clk: qcom: dispcc-sdm845: set GENPD_FLAG_NO_STAY_ON flag for MDSS domain Taniya Das
2026-02-18 8:12 ` Krzysztof Kozlowski
2026-02-18 14:49 ` Bjorn Andersson
2026-02-18 15:58 ` Dmitry Baryshkov
2026-02-19 18:11 ` Jagadeesh Kona
2026-02-23 1:27 ` Dmitry Baryshkov
2026-04-29 15:22 ` David Heidelberg
2026-04-30 5:51 ` Jagadeesh Kona
2026-02-17 21:20 ` [PATCH 2/4] dt-bindings: arm: qcom: add Qualcomm SDM845 HDK Dmitry Baryshkov
2026-02-18 7:51 ` Krzysztof Kozlowski
2026-02-17 21:20 ` [PATCH 3/4] arm64: dts: qcom: sdm845: Add missing MDSS reset Dmitry Baryshkov
2026-02-18 10:30 ` Konrad Dybcio
2026-02-18 11:18 ` David Heidelberg
2026-02-18 11:24 ` Konrad Dybcio
2026-02-18 11:25 ` David Heidelberg
2026-02-18 11:58 ` Dmitry Baryshkov
2026-02-18 14:28 ` Konrad Dybcio
2026-02-18 15:59 ` Dmitry Baryshkov
2026-04-09 20:38 ` David Heidelberg
2026-04-09 21:24 ` Dmitry Baryshkov
2026-04-10 8:55 ` Konrad Dybcio
2026-04-12 0:41 ` Dmitry Baryshkov
2026-04-13 10:28 ` Konrad Dybcio
2026-04-13 10:50 ` David Heidelberg
2026-04-13 11:38 ` Konrad Dybcio
2026-02-18 12:19 ` Dmitry Baryshkov
2026-02-18 12:21 ` David Heidelberg
2026-02-17 21:20 ` [PATCH 4/4] arm64: dts: qcom: add device tree for SDM845-HDK Dmitry Baryshkov
2026-02-18 10:42 ` Konrad Dybcio
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260217-sdm845-hdk-v1-1-866f1965fef7@oss.qualcomm.com \
--to=dmitry.baryshkov@oss.qualcomm.com \
--cc=andersson@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mturquette@baylibre.com \
--cc=robh@kernel.org \
--cc=sboyd@kernel.org \
--cc=stable@vger.kernel.org \
--cc=ulf.hansson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox