* [PATCH 0/4] arm64: dts: qcom: support SDM845 HDK
@ 2026-02-17 21:20 Dmitry Baryshkov
2026-02-17 21:20 ` [PATCH 1/4] clk: qcom: dispcc-sdm845: set GENPD_FLAG_NO_STAY_ON flag for MDSS domain Dmitry Baryshkov
` (3 more replies)
0 siblings, 4 replies; 25+ messages in thread
From: Dmitry Baryshkov @ 2026-02-17 21:20 UTC (permalink / raw)
To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Ulf Hansson,
Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, linux-clk, linux-kernel, devicetree, stable,
David Heidelberg
Lantronix HDK845 aka Qualcomm SDM845-HDK is a hardware development kit
for the Qualcomm SDM845 / SDA845 platform. It uses the modem-less
version of the chip (SDA845) and provides a rich set of the peripherals
and connectors.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
David Heidelberg (1):
arm64: dts: qcom: sdm845: Add missing MDSS reset
Dmitry Baryshkov (3):
clk: qcom: dispcc-sdm845: set GENPD_FLAG_NO_STAY_ON flag for MDSS domain
dt-bindings: arm: qcom: add Qualcomm SDM845 HDK
arm64: dts: qcom: add device tree for SDM845-HDK
Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
arch/arm64/boot/dts/qcom/Makefile | 1 +
arch/arm64/boot/dts/qcom/sdm845-hdk.dts | 820 ++++++++++++++++++++++++
arch/arm64/boot/dts/qcom/sdm845.dtsi | 1 +
drivers/clk/qcom/dispcc-sdm845.c | 1 +
5 files changed, 824 insertions(+)
---
base-commit: 54f467c01375a137f5801a910089138d2202b148
change-id: 20260122-sdm845-hdk-9466530c4267
Best regards,
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 25+ messages in thread
* [PATCH 1/4] clk: qcom: dispcc-sdm845: set GENPD_FLAG_NO_STAY_ON flag for MDSS domain
2026-02-17 21:20 [PATCH 0/4] arm64: dts: qcom: support SDM845 HDK Dmitry Baryshkov
@ 2026-02-17 21:20 ` Dmitry Baryshkov
2026-02-18 8:10 ` Taniya Das
` (2 more replies)
2026-02-17 21:20 ` [PATCH 2/4] dt-bindings: arm: qcom: add Qualcomm SDM845 HDK Dmitry Baryshkov
` (2 subsequent siblings)
3 siblings, 3 replies; 25+ messages in thread
From: Dmitry Baryshkov @ 2026-02-17 21:20 UTC (permalink / raw)
To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Ulf Hansson,
Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, linux-clk, linux-kernel, devicetree, stable
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
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH 2/4] dt-bindings: arm: qcom: add Qualcomm SDM845 HDK
2026-02-17 21:20 [PATCH 0/4] arm64: dts: qcom: support SDM845 HDK Dmitry Baryshkov
2026-02-17 21:20 ` [PATCH 1/4] clk: qcom: dispcc-sdm845: set GENPD_FLAG_NO_STAY_ON flag for MDSS domain Dmitry Baryshkov
@ 2026-02-17 21:20 ` 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-17 21:20 ` [PATCH 4/4] arm64: dts: qcom: add device tree for SDM845-HDK Dmitry Baryshkov
3 siblings, 1 reply; 25+ messages in thread
From: Dmitry Baryshkov @ 2026-02-17 21:20 UTC (permalink / raw)
To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Ulf Hansson,
Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, linux-clk, linux-kernel, devicetree
Document the mobile HDK for the Qualcomm SDM845 platform.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
index d48c625d3fc4..80491aa994ec 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -921,6 +921,7 @@ properties:
- lg,judyp
- oneplus,enchilada
- oneplus,fajita
+ - qcom,sdm845-hdk
- qcom,sdm845-mtp
- shift,axolotl
- samsung,starqltechn
--
2.47.3
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH 3/4] arm64: dts: qcom: sdm845: Add missing MDSS reset
2026-02-17 21:20 [PATCH 0/4] arm64: dts: qcom: support SDM845 HDK Dmitry Baryshkov
2026-02-17 21:20 ` [PATCH 1/4] clk: qcom: dispcc-sdm845: set GENPD_FLAG_NO_STAY_ON flag for MDSS domain Dmitry Baryshkov
2026-02-17 21:20 ` [PATCH 2/4] dt-bindings: arm: qcom: add Qualcomm SDM845 HDK Dmitry Baryshkov
@ 2026-02-17 21:20 ` Dmitry Baryshkov
2026-02-18 10:30 ` Konrad Dybcio
2026-02-17 21:20 ` [PATCH 4/4] arm64: dts: qcom: add device tree for SDM845-HDK Dmitry Baryshkov
3 siblings, 1 reply; 25+ messages in thread
From: Dmitry Baryshkov @ 2026-02-17 21:20 UTC (permalink / raw)
To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Ulf Hansson,
Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, linux-clk, linux-kernel, devicetree,
David Heidelberg
From: David Heidelberg <david@ixit.cz>
If the OS does not support recovering the state left by the
bootloader it needs a way to reset display hardware, so that it can
start from a clean state. Add a reference to the relevant reset.
Signed-off-by: David Heidelberg <david@ixit.cz>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/sdm845.dtsi | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
index bf2f9c04adba..75c192eddc57 100644
--- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
@@ -4550,6 +4550,7 @@ mdss: display-subsystem@ae00000 {
reg-names = "mdss";
power-domains = <&dispcc MDSS_GDSC>;
+ resets = <&dispcc DISP_CC_MDSS_RSCC_BCR>;
clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
<&dispcc DISP_CC_MDSS_MDP_CLK>;
--
2.47.3
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [PATCH 4/4] arm64: dts: qcom: add device tree for SDM845-HDK
2026-02-17 21:20 [PATCH 0/4] arm64: dts: qcom: support SDM845 HDK Dmitry Baryshkov
` (2 preceding siblings ...)
2026-02-17 21:20 ` [PATCH 3/4] arm64: dts: qcom: sdm845: Add missing MDSS reset Dmitry Baryshkov
@ 2026-02-17 21:20 ` Dmitry Baryshkov
2026-02-18 10:42 ` Konrad Dybcio
3 siblings, 1 reply; 25+ messages in thread
From: Dmitry Baryshkov @ 2026-02-17 21:20 UTC (permalink / raw)
To: Bjorn Andersson, Michael Turquette, Stephen Boyd, Ulf Hansson,
Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, linux-clk, linux-kernel, devicetree
Add device tree for the Qualcomm / Lantronix SDM845 HDK. It is the
development platform using the modem-less (SDA845) SoC, optional onboard
DSI panel and a rich set of connectors.
Working:
- HDMI display
- uSD, UFS, USB
- DSPs, WiFi, BT
- Buttons, LEDs
Not working or not tested:
- DisplayPort - TCPM not supported for this PMIC
- WiGig - requires power sequencing driver, doesn't work with the
current in-kernel driver
- Audio
- FingerPrint
- USIM
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
arch/arm64/boot/dts/qcom/sdm845-hdk.dts | 820 ++++++++++++++++++++++++++++++++
2 files changed, 821 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index f80b5d9cf1e8..dc901a0fa8b3 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -272,6 +272,7 @@ sdm845-db845c-navigation-mezzanine-dtbs := sdm845-db845c.dtb sdm845-db845c-navig
dtb-$(CONFIG_ARCH_QCOM) += sdm845-db845c-navigation-mezzanine.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm845-google-crosshatch.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm845-google-blueline.dtb
+dtb-$(CONFIG_ARCH_QCOM) += sdm845-hdk.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm845-lg-judyln.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm845-lg-judyp.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm845-mtp.dtb
diff --git a/arch/arm64/boot/dts/qcom/sdm845-hdk.dts b/arch/arm64/boot/dts/qcom/sdm845-hdk.dts
new file mode 100644
index 000000000000..4dd426912d20
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/sdm845-hdk.dts
@@ -0,0 +1,820 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "sdm845.dtsi"
+#include "pm8005.dtsi"
+#include "pm8998.dtsi"
+#include "pmi8998.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. SDM845 HDK";
+ compatible = "qcom,sdm845-hdk", "qcom,sdm845";
+ chassis-type = "embedded";
+
+ aliases {
+ serial0 = &uart9;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+ autorepeat;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&home_pin_a>, <&vol_up_pin_a>;
+
+ key-home {
+ label = "Home";
+ linux,code = <KEY_HOMEPAGE>;
+ gpios = <&pm8998_gpios 5 GPIO_ACTIVE_LOW>;
+ };
+
+ key-vol-up {
+ label = "Volume Up";
+ linux,code = <KEY_VOLUMEUP>;
+ gpios = <&pm8998_gpios 6 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ hdmi-out {
+ compatible = "hdmi-connector";
+ type = "a";
+
+ port {
+ hdmi_con: endpoint {
+ remote-endpoint = <<9611_out>;
+ };
+ };
+ };
+
+ /*
+ * Apparently RPMh does not provide support for PM8998 S4 and S6
+ * because they are always-on; model them as fixed regulators.
+ */
+ vreg_s4a_1p8: regulator-pm8998-smps4 {
+ compatible = "regulator-fixed";
+ regulator-name = "vreg_s4a_1p8";
+
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+
+ regulator-always-on;
+ regulator-boot-on;
+
+ vin-supply = <&vph_pwr>;
+ };
+
+ vreg_s6a_0p8: regulator-pm8998-smps6 {
+ compatible = "regulator-fixed";
+ regulator-name = "vreg_s6a_0p8";
+
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <800000>;
+
+ regulator-always-on;
+ regulator-boot-on;
+
+ vin-supply = <&vph_pwr>;
+ };
+
+ vreg_sys_bob_3p3: regulator-sys-bob {
+ compatible = "regulator-fixed";
+ regulator-name = "sys_bob";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ regulator-always-on;
+ regulator-boot-on;
+
+ vin-supply = <&vreg_s4a_1p8>;
+ };
+
+ vph_pwr: regulator-vph-pwr {
+ compatible = "regulator-fixed";
+ regulator-name = "vph_pwr";
+ regulator-min-microvolt = <3700000>;
+ regulator-max-microvolt = <3700000>;
+ };
+};
+
+&adsp_pas {
+ firmware-name = "qcom/sdm845/adsp.mbn";
+
+ status = "okay";
+};
+
+&apps_rsc {
+ regulators-0 {
+ compatible = "qcom,pm8998-rpmh-regulators";
+ qcom,pmic-id = "a";
+
+ vdd-s1-supply = <&vph_pwr>;
+ vdd-s2-supply = <&vph_pwr>;
+ vdd-s3-supply = <&vph_pwr>;
+ vdd-s4-supply = <&vph_pwr>;
+ vdd-s5-supply = <&vph_pwr>;
+ vdd-s6-supply = <&vph_pwr>;
+ vdd-s7-supply = <&vph_pwr>;
+ vdd-s8-supply = <&vph_pwr>;
+ vdd-s9-supply = <&vph_pwr>;
+ vdd-s10-supply = <&vph_pwr>;
+ vdd-s11-supply = <&vph_pwr>;
+ vdd-s12-supply = <&vph_pwr>;
+ vdd-s13-supply = <&vph_pwr>;
+ vdd-l1-l27-supply = <&vreg_s7a_1p025>;
+ vdd-l2-l8-l17-supply = <&vreg_s3a_1p35>;
+ vdd-l3-l11-supply = <&vreg_s7a_1p025>;
+ vdd-l4-l5-supply = <&vreg_s7a_1p025>;
+ vdd-l6-supply = <&vph_pwr>;
+ vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p04>;
+ vdd-l9-supply = <&vreg_bob>;
+ vdd-l10-l23-l25-supply = <&vreg_bob>;
+ vdd-l13-l19-l21-supply = <&vreg_bob>;
+ vdd-l16-l28-supply = <&vreg_bob>;
+ vdd-l18-l22-supply = <&vreg_bob>;
+ vdd-l20-l24-supply = <&vreg_bob>;
+ vdd-l26-supply = <&vreg_s3a_1p35>;
+ vin-lvs-1-2-supply = <&vreg_s4a_1p8>;
+
+ vreg_s2a_1p125: smps2 {
+ regulator-min-microvolt = <1100000>;
+ regulator-max-microvolt = <1100000>;
+ };
+
+ vreg_s3a_1p35: smps3 {
+ regulator-min-microvolt = <1352000>;
+ regulator-max-microvolt = <1352000>;
+ };
+
+ vreg_s5a_2p04: smps5 {
+ regulator-min-microvolt = <1904000>;
+ regulator-max-microvolt = <2040000>;
+ };
+
+ vreg_s7a_1p025: smps7 {
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <1028000>;
+ };
+
+ vreg_l1a_0p88: ldo1 {
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <880000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2a_1p2: ldo2 {
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-always-on;
+ };
+
+ vreg_l3a_1p0: ldo3 {
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l5a_0p8: ldo5 {
+ regulator-min-microvolt = <800000>;
+ regulator-max-microvolt = <800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l6a_1p85: ldo6 {
+ regulator-min-microvolt = <1856000>;
+ regulator-max-microvolt = <1856000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l7a_1p8: ldo7 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l8a_1p2: ldo8 {
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1248000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l9a_1p8: ldo9 {
+ regulator-min-microvolt = <1704000>;
+ regulator-max-microvolt = <2928000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l10a_1p8: ldo10 {
+ regulator-min-microvolt = <1704000>;
+ regulator-max-microvolt = <2928000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l11a_1p0: ldo11 {
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1048000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l12a_1p8: ldo12 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l13a_2p95: ldo13 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <2960000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l14a_1p8: ldo14 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l15a_1p8: ldo15 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l16a_2p7: ldo16 {
+ regulator-min-microvolt = <2704000>;
+ regulator-max-microvolt = <2704000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l17a_1p3: ldo17 {
+ regulator-min-microvolt = <1304000>;
+ regulator-max-microvolt = <1304000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l18a_2p7: ldo18 {
+ regulator-min-microvolt = <2704000>;
+ regulator-max-microvolt = <2960000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l19a_3p0: ldo19 {
+ regulator-min-microvolt = <2856000>;
+ regulator-max-microvolt = <3104000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l20a_2p95: ldo20 {
+ regulator-min-microvolt = <2704000>;
+ regulator-max-microvolt = <2960000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l21a_2p95: ldo21 {
+ regulator-min-microvolt = <2704000>;
+ regulator-max-microvolt = <2960000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l22a_2p85: ldo22 {
+ regulator-min-microvolt = <2864000>;
+ regulator-max-microvolt = <3312000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l23a_3p3: ldo23 {
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3312000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l24a_3p075: ldo24 {
+ regulator-min-microvolt = <3088000>;
+ regulator-max-microvolt = <3088000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l25a_3p3: ldo25 {
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3312000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l26a_1p2: ldo26 {
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l28a_3p0: ldo28 {
+ regulator-min-microvolt = <2856000>;
+ regulator-max-microvolt = <3008000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_lvs1a_1p8: lvs1 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ };
+
+ vreg_lvs2a_1p8: lvs2 {
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ };
+ };
+
+ regulators-1 {
+ compatible = "qcom,pmi8998-rpmh-regulators";
+ qcom,pmic-id = "b";
+
+ vdd-bob-supply = <&vph_pwr>;
+
+ vreg_bob: bob {
+ regulator-min-microvolt = <3312000>;
+ regulator-max-microvolt = <3600000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
+ regulator-allow-bypass;
+ };
+ };
+
+ regulators-2 {
+ compatible = "qcom,pm8005-rpmh-regulators";
+ qcom,pmic-id = "c";
+
+ vdd-s1-supply = <&vph_pwr>;
+ vdd-s2-supply = <&vph_pwr>;
+ vdd-s3-supply = <&vph_pwr>;
+ vdd-s4-supply = <&vph_pwr>;
+
+ vreg_s3c_0p6: smps3 {
+ regulator-min-microvolt = <600000>;
+ regulator-max-microvolt = <600000>;
+ };
+ };
+};
+
+&cluster_sleep_0 {
+ /* default, 0x4100c244, kills the board */
+ arm,psci-suspend-param = <0x41008244>;
+};
+
+&cdsp_pas {
+ firmware-name = "qcom/sdm845/cdsp.mbn";
+
+ status = "okay";
+};
+
+&gcc {
+ protected-clocks = <GCC_QSPI_CORE_CLK>,
+ <GCC_QSPI_CORE_CLK_SRC>,
+ <GCC_QSPI_CNOC_PERIPH_AHB_CLK>,
+ <GCC_LPASS_Q6_AXI_CLK>,
+ <GCC_LPASS_SWAY_CLK>;
+};
+
+&gpi_dma0 {
+ status = "okay";
+};
+
+&gpi_dma1 {
+ status = "okay";
+};
+
+&gpu {
+ status = "okay";
+};
+
+&gpu_zap_shader {
+ firmware-name = "qcom/sdm845/a630_zap.mbn";
+};
+
+&i2c3 {
+ clock-frequency = <400000>;
+
+ status = "okay";
+
+ lt9611_codec: hdmi-bridge@3b {
+ compatible = "lontium,lt9611";
+ reg = <0x3b>;
+ #sound-dai-cells = <1>;
+
+ interrupts-extended = <&tlmm 113 IRQ_TYPE_EDGE_FALLING>;
+
+ reset-gpios = <&tlmm 76 GPIO_ACTIVE_HIGH>;
+
+ vdd-supply = <&vreg_s4a_1p8>;
+ vcc-supply = <&vreg_sys_bob_3p3>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <<9611_irq_pin>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ lt9611_a: endpoint {
+ remote-endpoint = <&mdss_dsi0_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ lt9611_b: endpoint {
+ remote-endpoint = <&mdss_dsi1_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ lt9611_out: endpoint {
+ remote-endpoint = <&hdmi_con>;
+ };
+ };
+ };
+ };
+};
+
+&mdss {
+ status = "okay";
+};
+
+&mdss_dsi0 {
+ status = "okay";
+ vdda-supply = <&vreg_l26a_1p2>;
+
+ qcom,dual-dsi-mode;
+ qcom,master-dsi;
+};
+
+&mdss_dsi0_out {
+ remote-endpoint = <<9611_a>;
+ data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi0_phy {
+ status = "okay";
+ vdds-supply = <&vreg_s6a_0p8>;
+};
+
+&mdss_dsi1 {
+ vdda-supply = <&vreg_l26a_1p2>;
+
+ qcom,dual-dsi-mode;
+
+ /* DSI1 is slave, so use DSI0 clocks */
+ assigned-clock-parents = <&mdss_dsi0_phy DSI_BYTE_PLL_CLK>,
+ <&mdss_dsi0_phy DSI_PIXEL_PLL_CLK>;
+
+ status = "okay";
+};
+
+&mdss_dsi1_out {
+ remote-endpoint = <<9611_b>;
+ data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi1_phy {
+ vdds-supply = <&vreg_s6a_0p8>;
+ status = "okay";
+};
+
+&mss_pil {
+ firmware-name = "qcom/sdm845/mba.mbn", "qcom/sdm845/modem.mbn";
+
+ status = "okay";
+};
+
+&pcie0 {
+ perst-gpios = <&tlmm 35 GPIO_ACTIVE_LOW>;
+
+ pinctrl-0 = <&pcie0_default_state>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&pcie0_phy {
+ vdda-phy-supply = <&vreg_l1a_0p88>;
+ vdda-pll-supply = <&vreg_l26a_1p2>;
+
+ status = "okay";
+};
+
+&pcie1 {
+ perst-gpios = <&tlmm 102 GPIO_ACTIVE_LOW>;
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&pcie1_default_state>;
+
+ status = "okay";
+};
+
+&pcie1_phy {
+ status = "okay";
+
+ vdda-phy-supply = <&vreg_l1a_0p88>;
+ vdda-pll-supply = <&vreg_l26a_1p2>;
+};
+
+&pm8998_gpios {
+ home_pin_a: home-active-state {
+ pins = "gpio6";
+ function = "normal";
+ input-enable;
+ bias-pull-up;
+ qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
+ };
+
+ vol_up_pin_a: vol-up-active-state {
+ pins = "gpio6";
+ function = "normal";
+ input-enable;
+ bias-pull-up;
+ qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
+ };
+};
+
+&pm8998_resin {
+ linux,code = <KEY_VOLUMEDOWN>;
+
+ status = "okay";
+};
+
+&pmi8998_lpg {
+ status = "okay";
+
+ qcom,power-source = <1>;
+
+ led@3 {
+ reg = <3>;
+ color = <LED_COLOR_ID_BLUE>;
+ function = LED_FUNCTION_BLUETOOTH;
+ linux,default-trigger = "bluetooth-power";
+ };
+
+ led@4 {
+ reg = <4>;
+ color = <LED_COLOR_ID_GREEN>;
+ function = LED_FUNCTION_HEARTBEAT;
+ linux,default-trigger = "heartbeat";
+ function-enumerator = <2>;
+ };
+
+ led@5 {
+ reg = <5>;
+ color = <LED_COLOR_ID_RED>;
+ function = LED_FUNCTION_INDICATOR;
+ function-enumerator = <1>;
+ };
+};
+
+&pmi8998_wled {
+ status = "disabled";
+};
+
+&qupv3_id_0 {
+ status = "okay";
+};
+
+&qupv3_id_1 {
+ status = "okay";
+};
+
+&sdhc_2 {
+ status = "okay";
+
+ pinctrl-0 = <&sdc2_default_state &sdc2_card_det_n>;
+ pinctrl-names = "default";
+
+ vmmc-supply = <&vreg_l21a_2p95>;
+ vqmmc-supply = <&vreg_l13a_2p95>;
+
+ bus-width = <4>;
+ cd-gpios = <&tlmm 126 GPIO_ACTIVE_LOW>;
+};
+
+&slpi_pas {
+ firmware-name = "qcom/sdm845/Qualcomm/SDM845-HDK/slpi.mbn";
+
+ status = "okay";
+};
+
+&tlmm {
+ gpio-reserved-ranges = <0 4>, /* SPI (eSE - embedded Secure Element) */
+ <81 4>; /* SPI (fingerprint reader) */
+
+ lt9611_irq_pin: lt9611-irq-state {
+ pins = "gpio113";
+ function = "gpio";
+ bias-disable;
+ };
+
+ pcie0_default_state: pcie0-default-state {
+ clkreq-pins {
+ pins = "gpio36";
+ function = "pci_e0";
+ bias-pull-up;
+ };
+
+ perst-n-pins {
+ pins = "gpio35";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ wake-n-pins {
+ pins = "gpio37";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+
+ pcie1_default_state: pcie1-default-state {
+ clkreq-pins {
+ pins = "gpio103";
+ function = "pci_e1";
+ bias-pull-up;
+ };
+
+ perst-n-pins {
+ pins = "gpio102";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-pull-down;
+ };
+
+ wake-n-pins {
+ pins = "gpio104";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+
+ sdc2_default_state: sdc2-default-state {
+ clk-pins {
+ pins = "sdc2_clk";
+ bias-disable;
+
+ /*
+ * It seems that mmc_test reports errors if drive
+ * strength is not 16 on clk, cmd, and data pins.
+ */
+ drive-strength = <16>;
+ };
+
+ cmd-pins {
+ pins = "sdc2_cmd";
+ bias-pull-up;
+ drive-strength = <10>;
+ };
+
+ data-pins {
+ pins = "sdc2_data";
+ bias-pull-up;
+ drive-strength = <10>;
+ };
+ };
+
+ sdc2_card_det_n: sd-card-det-n-state {
+ pins = "gpio126";
+ function = "gpio";
+ bias-pull-up;
+ };
+};
+
+&uart6 {
+ pinctrl-0 = <&qup_uart6_4pin>;
+
+ status = "okay";
+
+ bluetooth {
+ compatible = "qcom,wcn3990-bt";
+
+ vddio-supply = <&vreg_s4a_1p8>;
+ vddxo-supply = <&vreg_l7a_1p8>;
+ vddrf-supply = <&vreg_l17a_1p3>;
+ vddch0-supply = <&vreg_l25a_3p3>;
+ max-speed = <3200000>;
+ };
+};
+
+&uart9 {
+ status = "okay";
+};
+
+&ufs_mem_hc {
+ status = "okay";
+
+ reset-gpios = <&tlmm 150 GPIO_ACTIVE_LOW>;
+
+ vcc-supply = <&vreg_l20a_2p95>;
+ vcc-max-microamp = <800000>;
+};
+
+&ufs_mem_phy {
+ status = "okay";
+
+ vdda-phy-supply = <&vreg_l1a_0p88>;
+ vdda-pll-supply = <&vreg_l26a_1p2>;
+};
+
+&usb_1 {
+ status = "okay";
+};
+
+&usb_1_dwc3 {
+ dr_mode = "peripheral";
+};
+
+&usb_1_hsphy {
+ status = "okay";
+
+ vdd-supply = <&vreg_l1a_0p88>;
+ vdda-pll-supply = <&vreg_l12a_1p8>;
+ vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
+
+ qcom,imp-res-offset-value = <8>;
+ qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_21_6_MA>;
+ qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_5_PERCENT>;
+ qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
+};
+
+&usb_1_qmpphy {
+ vdda-phy-supply = <&vreg_l26a_1p2>;
+ vdda-pll-supply = <&vreg_l1a_0p88>;
+
+ status = "okay";
+};
+
+/* HS only */
+&usb_2 {
+ qcom,select-utmi-as-pipe-clk;
+
+ status = "okay";
+};
+
+&usb_2_dwc3 {
+ maximum-speed = "high-speed";
+ phys = <&usb_2_hsphy>;
+ phy-names = "usb2-phy";
+
+ dr_mode = "host";
+};
+
+&usb_2_hsphy {
+ vdd-supply = <&vreg_l1a_0p88>;
+ vdda-pll-supply = <&vreg_l12a_1p8>;
+ vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
+
+ qcom,imp-res-offset-value = <8>;
+ qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_22_8_MA>;
+
+ status = "okay";
+};
+
+&venus {
+ status = "okay";
+};
+
+&wifi {
+ vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>;
+ vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
+ vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
+ vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
+ vdd-3.3-ch1-supply = <&vreg_l23a_3p3>;
+
+ qcom,snoc-host-cap-8bit-quirk;
+ qcom,calibration-variant = "Qualcomm_sdm845hdk";
+
+ status = "okay";
+};
+
+/* PINCTRL - additions to nodes defined in sdm845.dtsi */
+&qup_uart9_rx {
+ drive-strength = <2>;
+ bias-pull-up;
+};
+
+&qup_uart9_tx {
+ drive-strength = <2>;
+ bias-disable;
+};
--
2.47.3
^ permalink raw reply related [flat|nested] 25+ messages in thread
* Re: [PATCH 2/4] dt-bindings: arm: qcom: add Qualcomm SDM845 HDK
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
0 siblings, 0 replies; 25+ messages in thread
From: Krzysztof Kozlowski @ 2026-02-18 7:51 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Bjorn Andersson, Michael Turquette, Stephen Boyd, Ulf Hansson,
Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-arm-msm, linux-clk, linux-kernel, devicetree
On Tue, Feb 17, 2026 at 11:20:43PM +0200, Dmitry Baryshkov wrote:
> Document the mobile HDK for the Qualcomm SDM845 platform.
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---
> Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
> 1 file changed, 1 insertion(+)
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 1/4] clk: qcom: dispcc-sdm845: set GENPD_FLAG_NO_STAY_ON flag for MDSS domain
2026-02-17 21:20 ` [PATCH 1/4] clk: qcom: dispcc-sdm845: set GENPD_FLAG_NO_STAY_ON flag for MDSS domain Dmitry Baryshkov
@ 2026-02-18 8:10 ` Taniya Das
2026-02-18 8:12 ` Krzysztof Kozlowski
2026-02-18 14:49 ` Bjorn Andersson
2 siblings, 0 replies; 25+ messages in thread
From: Taniya Das @ 2026-02-18 8:10 UTC (permalink / raw)
To: Dmitry Baryshkov, Bjorn Andersson, Michael Turquette,
Stephen Boyd, Ulf Hansson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, linux-clk, linux-kernel, devicetree, stable
On 2/18/2026 2:50 AM, Dmitry Baryshkov wrote:
> 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,
Reviewed-by: Taniya Das <taniya.das@oss.qualcomm.com>
--
Thanks,
Taniya Das
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 1/4] clk: qcom: dispcc-sdm845: set GENPD_FLAG_NO_STAY_ON flag for MDSS domain
2026-02-17 21:20 ` [PATCH 1/4] clk: qcom: dispcc-sdm845: set GENPD_FLAG_NO_STAY_ON flag for MDSS domain Dmitry Baryshkov
2026-02-18 8:10 ` Taniya Das
@ 2026-02-18 8:12 ` Krzysztof Kozlowski
2026-02-18 14:49 ` Bjorn Andersson
2 siblings, 0 replies; 25+ messages in thread
From: Krzysztof Kozlowski @ 2026-02-18 8:12 UTC (permalink / raw)
To: Dmitry Baryshkov, Bjorn Andersson, Michael Turquette,
Stephen Boyd, Ulf Hansson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, linux-clk, linux-kernel, devicetree, stable
On 17/02/2026 22:20, Dmitry Baryshkov wrote:
> 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
Please trim the context/messages - most of above is not needed
> 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
Nothing below makes sense either
> __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.
And that's the same log.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 3/4] arm64: dts: qcom: sdm845: Add missing MDSS reset
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
0 siblings, 1 reply; 25+ messages in thread
From: Konrad Dybcio @ 2026-02-18 10:30 UTC (permalink / raw)
To: Dmitry Baryshkov, Bjorn Andersson, Michael Turquette,
Stephen Boyd, Ulf Hansson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, linux-clk, linux-kernel, devicetree,
David Heidelberg
On 2/17/26 10:20 PM, Dmitry Baryshkov wrote:
> From: David Heidelberg <david@ixit.cz>
>
> If the OS does not support recovering the state left by the
> bootloader it needs a way to reset display hardware, so that it can
> start from a clean state. Add a reference to the relevant reset.
This is not the relevant reset
You want MDSS_CORE_BCR @ 0xaf0_2000
Konrad
>
> Signed-off-by: David Heidelberg <david@ixit.cz>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/sdm845.dtsi | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
> index bf2f9c04adba..75c192eddc57 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
> @@ -4550,6 +4550,7 @@ mdss: display-subsystem@ae00000 {
> reg-names = "mdss";
>
> power-domains = <&dispcc MDSS_GDSC>;
> + resets = <&dispcc DISP_CC_MDSS_RSCC_BCR>;
>
> clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
> <&dispcc DISP_CC_MDSS_MDP_CLK>;
>
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 4/4] arm64: dts: qcom: add device tree for SDM845-HDK
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
0 siblings, 0 replies; 25+ messages in thread
From: Konrad Dybcio @ 2026-02-18 10:42 UTC (permalink / raw)
To: Dmitry Baryshkov, Bjorn Andersson, Michael Turquette,
Stephen Boyd, Ulf Hansson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, linux-clk, linux-kernel, devicetree
On 2/17/26 10:20 PM, Dmitry Baryshkov wrote:
> Add device tree for the Qualcomm / Lantronix SDM845 HDK. It is the
> development platform using the modem-less (SDA845) SoC, optional onboard
> DSI panel and a rich set of connectors.
>
> Working:
> - HDMI display
> - uSD, UFS, USB
> - DSPs, WiFi, BT
> - Buttons, LEDs
>
> Not working or not tested:
> - DisplayPort - TCPM not supported for this PMIC
> - WiGig - requires power sequencing driver, doesn't work with the
> current in-kernel driver
> - Audio
> - FingerPrint
> - USIM
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---
[...]
> + gpio-keys {
> + compatible = "gpio-keys";
> + autorepeat;
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&home_pin_a>, <&vol_up_pin_a>;
property-n
property-names
in this order, file-wide, please
[...]
> +&cluster_sleep_0 {
> + /* default, 0x4100c244, kills the board */
> + arm,psci-suspend-param = <0x41008244>;
> +};
Does crashdump say anything interesting?
[...]
> +&mdss_dsi1_phy {
> + vdds-supply = <&vreg_s6a_0p8>;
> + status = "okay";
Let's uniformly keep a \n above 'status'
[...]
> +&pm8998_gpios {
> + home_pin_a: home-active-state {
> + pins = "gpio6";
gpio5 here
[...]
> +&pmi8998_lpg {
> + status = "okay";
> +
> + qcom,power-source = <1>;
> +
> + led@3 {
> + reg = <3>;
> + color = <LED_COLOR_ID_BLUE>;
> + function = LED_FUNCTION_BLUETOOTH;
> + linux,default-trigger = "bluetooth-power";
> + };
> +
> + led@4 {
> + reg = <4>;
> + color = <LED_COLOR_ID_GREEN>;
> + function = LED_FUNCTION_HEARTBEAT;
> + linux,default-trigger = "heartbeat";
> + function-enumerator = <2>;
function-enumerators only seem necessary when the same color&func
combo is registered multiple times
> + };
> +
> + led@5 {
> + reg = <5>;
> + color = <LED_COLOR_ID_RED>;
> + function = LED_FUNCTION_INDICATOR;
> + function-enumerator = <1>;
panic-indicator?
> + };
> +};
> +
> +&pmi8998_wled {
> + status = "disabled";
> +};
It's already disabled
> +
> +&qupv3_id_0 {
> + status = "okay";
> +};
> +
> +&qupv3_id_1 {
> + status = "okay";
> +};
> +
> +&sdhc_2 {
> + status = "okay";
last, please (there's more occurences below)
> + pcie0_default_state: pcie0-default-state {
> + clkreq-pins {
> + pins = "gpio36";
> + function = "pci_e0";
> + bias-pull-up;
> + };
> +
> + perst-n-pins {
> + pins = "gpio35";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-pull-down;
bias-disable?
Konrad
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 3/4] arm64: dts: qcom: sdm845: Add missing MDSS reset
2026-02-18 10:30 ` Konrad Dybcio
@ 2026-02-18 11:18 ` David Heidelberg
2026-02-18 11:24 ` Konrad Dybcio
2026-02-18 12:19 ` Dmitry Baryshkov
0 siblings, 2 replies; 25+ messages in thread
From: David Heidelberg @ 2026-02-18 11:18 UTC (permalink / raw)
To: Konrad Dybcio, Dmitry Baryshkov, Bjorn Andersson,
Michael Turquette, Stephen Boyd, Ulf Hansson, Konrad Dybcio,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, linux-clk, linux-kernel, devicetree
On 18/02/2026 11:30, Konrad Dybcio wrote:
> On 2/17/26 10:20 PM, Dmitry Baryshkov wrote:
>> From: David Heidelberg <david@ixit.cz>
>>
>> If the OS does not support recovering the state left by the
>> bootloader it needs a way to reset display hardware, so that it can
>> start from a clean state. Add a reference to the relevant reset.
>
> This is not the relevant reset
>
> You want MDSS_CORE_BCR @ 0xaf0_2000
Thanks, I prepared the fixes [1].
I'll try to test it if it's not breaking anything for us and send as v2
of [2].
David
[1] https://codeberg.org/sdm845/linux/commits/branch/b4/mdss-reset
[2]
https://patchwork.kernel.org/project/linux-arm-msm/patch/20260112-mdss-reset-v1-1-af7c572204d3@ixit.cz/
>
> Konrad
>
>>
>> Signed-off-by: David Heidelberg <david@ixit.cz>
>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>> ---
>
>
>> arch/arm64/boot/dts/qcom/sdm845.dtsi | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
>> index bf2f9c04adba..75c192eddc57 100644
>> --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
>> @@ -4550,6 +4550,7 @@ mdss: display-subsystem@ae00000 {
>> reg-names = "mdss";
>>
>> power-domains = <&dispcc MDSS_GDSC>;
>> + resets = <&dispcc DISP_CC_MDSS_RSCC_BCR>;
>>
>> clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
>> <&dispcc DISP_CC_MDSS_MDP_CLK>;
>>
--
David Heidelberg
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 3/4] arm64: dts: qcom: sdm845: Add missing MDSS reset
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 12:19 ` Dmitry Baryshkov
1 sibling, 2 replies; 25+ messages in thread
From: Konrad Dybcio @ 2026-02-18 11:24 UTC (permalink / raw)
To: David Heidelberg, Dmitry Baryshkov, Bjorn Andersson,
Michael Turquette, Stephen Boyd, Ulf Hansson, Konrad Dybcio,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, linux-clk, linux-kernel, devicetree
On 2/18/26 12:18 PM, David Heidelberg wrote:
> On 18/02/2026 11:30, Konrad Dybcio wrote:
>> On 2/17/26 10:20 PM, Dmitry Baryshkov wrote:
>>> From: David Heidelberg <david@ixit.cz>
>>>
>>> If the OS does not support recovering the state left by the
>>> bootloader it needs a way to reset display hardware, so that it can
>>> start from a clean state. Add a reference to the relevant reset.
>>
>> This is not the relevant reset
>>
>> You want MDSS_CORE_BCR @ 0xaf0_2000
>
> Thanks, I prepared the fixes [1].
>
> I'll try to test it if it's not breaking anything for us and send as v2 of [2].
>
> David
>
> [1] https://codeberg.org/sdm845/linux/commits/branch/b4/mdss-reset
> [2] https://patchwork.kernel.org/project/linux-arm-msm/patch/20260112-mdss-reset-v1-1-af7c572204d3@ixit.cz/
Please don't alter the contents of dt-bindings, it really doesn't matter
if on sdm845 it's reset0 or reset1, that's why we define them in the first
place
Konrad
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 3/4] arm64: dts: qcom: sdm845: Add missing MDSS reset
2026-02-18 11:24 ` Konrad Dybcio
@ 2026-02-18 11:25 ` David Heidelberg
2026-02-18 11:58 ` Dmitry Baryshkov
1 sibling, 0 replies; 25+ messages in thread
From: David Heidelberg @ 2026-02-18 11:25 UTC (permalink / raw)
To: Konrad Dybcio, Dmitry Baryshkov, Bjorn Andersson,
Michael Turquette, Stephen Boyd, Ulf Hansson, Konrad Dybcio,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, linux-clk, linux-kernel, devicetree
On 18/02/2026 12:24, Konrad Dybcio wrote:
> On 2/18/26 12:18 PM, David Heidelberg wrote:
>> On 18/02/2026 11:30, Konrad Dybcio wrote:
>>> On 2/17/26 10:20 PM, Dmitry Baryshkov wrote:
>>>> From: David Heidelberg <david@ixit.cz>
>>>>
>>>> If the OS does not support recovering the state left by the
>>>> bootloader it needs a way to reset display hardware, so that it can
>>>> start from a clean state. Add a reference to the relevant reset.
>>>
>>> This is not the relevant reset
>>>
>>> You want MDSS_CORE_BCR @ 0xaf0_2000
>>
>> Thanks, I prepared the fixes [1].
>>
>> I'll try to test it if it's not breaking anything for us and send as v2 of [2].
>>
>> David
>>
>> [1] https://codeberg.org/sdm845/linux/commits/branch/b4/mdss-reset
>> [2] https://patchwork.kernel.org/project/linux-arm-msm/patch/20260112-mdss-reset-v1-1-af7c572204d3@ixit.cz/
>
> Please don't alter the contents of dt-bindings, it really doesn't matter
> if on sdm845 it's reset0 or reset1, that's why we define them in the first
> place
Sure, np
>
> Konrad
--
David Heidelberg
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 3/4] arm64: dts: qcom: sdm845: Add missing MDSS reset
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
1 sibling, 1 reply; 25+ messages in thread
From: Dmitry Baryshkov @ 2026-02-18 11:58 UTC (permalink / raw)
To: Konrad Dybcio
Cc: David Heidelberg, Bjorn Andersson, Michael Turquette,
Stephen Boyd, Ulf Hansson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-msm, linux-clk,
linux-kernel, devicetree
On Wed, Feb 18, 2026 at 12:24:26PM +0100, Konrad Dybcio wrote:
> On 2/18/26 12:18 PM, David Heidelberg wrote:
> > On 18/02/2026 11:30, Konrad Dybcio wrote:
> >> On 2/17/26 10:20 PM, Dmitry Baryshkov wrote:
> >>> From: David Heidelberg <david@ixit.cz>
> >>>
> >>> If the OS does not support recovering the state left by the
> >>> bootloader it needs a way to reset display hardware, so that it can
> >>> start from a clean state. Add a reference to the relevant reset.
> >>
> >> This is not the relevant reset
> >>
> >> You want MDSS_CORE_BCR @ 0xaf0_2000
> >
> > Thanks, I prepared the fixes [1].
> >
> > I'll try to test it if it's not breaking anything for us and send as v2 of [2].
> >
> > David
> >
> > [1] https://codeberg.org/sdm845/linux/commits/branch/b4/mdss-reset
> > [2] https://patchwork.kernel.org/project/linux-arm-msm/patch/20260112-mdss-reset-v1-1-af7c572204d3@ixit.cz/
>
> Please don't alter the contents of dt-bindings, it really doesn't matter
> if on sdm845 it's reset0 or reset1, that's why we define them in the first
> place
I dpn't think that will pass. Current reset is defined as RSCC, we can't
change that to CORE behind the scene. I'd prefer David's approach.
>
> Konrad
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 3/4] arm64: dts: qcom: sdm845: Add missing MDSS reset
2026-02-18 11:18 ` David Heidelberg
2026-02-18 11:24 ` Konrad Dybcio
@ 2026-02-18 12:19 ` Dmitry Baryshkov
2026-02-18 12:21 ` David Heidelberg
1 sibling, 1 reply; 25+ messages in thread
From: Dmitry Baryshkov @ 2026-02-18 12:19 UTC (permalink / raw)
To: David Heidelberg
Cc: Konrad Dybcio, Bjorn Andersson, Michael Turquette, Stephen Boyd,
Ulf Hansson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, linux-arm-msm, linux-clk, linux-kernel, devicetree
On Wed, Feb 18, 2026 at 12:18:39PM +0100, David Heidelberg wrote:
> On 18/02/2026 11:30, Konrad Dybcio wrote:
> > On 2/17/26 10:20 PM, Dmitry Baryshkov wrote:
> > > From: David Heidelberg <david@ixit.cz>
> > >
> > > If the OS does not support recovering the state left by the
> > > bootloader it needs a way to reset display hardware, so that it can
> > > start from a clean state. Add a reference to the relevant reset.
> >
> > This is not the relevant reset
> >
> > You want MDSS_CORE_BCR @ 0xaf0_2000
>
> Thanks, I prepared the fixes [1].
UPD: touching that register resets the device. So, it seems, we will
have to live without the MDSS Core reset of SDM845.
>
> I'll try to test it if it's not breaking anything for us and send as v2 of
> [2].
>
> David
>
> [1] https://codeberg.org/sdm845/linux/commits/branch/b4/mdss-reset
> [2] https://patchwork.kernel.org/project/linux-arm-msm/patch/20260112-mdss-reset-v1-1-af7c572204d3@ixit.cz/
>
> >
> > Konrad
> >
> > >
> > > Signed-off-by: David Heidelberg <david@ixit.cz>
> > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> > > ---
> >
> >
> > > arch/arm64/boot/dts/qcom/sdm845.dtsi | 1 +
> > > 1 file changed, 1 insertion(+)
> > >
> > > diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
> > > index bf2f9c04adba..75c192eddc57 100644
> > > --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
> > > +++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
> > > @@ -4550,6 +4550,7 @@ mdss: display-subsystem@ae00000 {
> > > reg-names = "mdss";
> > > power-domains = <&dispcc MDSS_GDSC>;
> > > + resets = <&dispcc DISP_CC_MDSS_RSCC_BCR>;
> > > clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
> > > <&dispcc DISP_CC_MDSS_MDP_CLK>;
> > >
>
> --
> David Heidelberg
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 3/4] arm64: dts: qcom: sdm845: Add missing MDSS reset
2026-02-18 12:19 ` Dmitry Baryshkov
@ 2026-02-18 12:21 ` David Heidelberg
0 siblings, 0 replies; 25+ messages in thread
From: David Heidelberg @ 2026-02-18 12:21 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Konrad Dybcio, Bjorn Andersson, Michael Turquette, Stephen Boyd,
Ulf Hansson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, linux-arm-msm, linux-clk, linux-kernel, devicetree
On 18/02/2026 13:19, Dmitry Baryshkov wrote:
> On Wed, Feb 18, 2026 at 12:18:39PM +0100, David Heidelberg wrote:
>> On 18/02/2026 11:30, Konrad Dybcio wrote:
>>> On 2/17/26 10:20 PM, Dmitry Baryshkov wrote:
>>>> From: David Heidelberg <david@ixit.cz>
>>>>
>>>> If the OS does not support recovering the state left by the
>>>> bootloader it needs a way to reset display hardware, so that it can
>>>> start from a clean state. Add a reference to the relevant reset.
>>>
>>> This is not the relevant reset
>>>
>>> You want MDSS_CORE_BCR @ 0xaf0_2000
>>
>> Thanks, I prepared the fixes [1].
>
> UPD: touching that register resets the device. So, it seems, we will
> have to live without the MDSS Core reset of SDM845.
For me, so far, one test on Pixel 3 it freezes the device. Haven't found
UART dongle, so not sure where exactly.
David
>
>>
>> I'll try to test it if it's not breaking anything for us and send as v2 of
>> [2].
>>
>> David
>>
>> [1] https://codeberg.org/sdm845/linux/commits/branch/b4/mdss-reset
>> [2] https://patchwork.kernel.org/project/linux-arm-msm/patch/20260112-mdss-reset-v1-1-af7c572204d3@ixit.cz/
>>
>>>
>>> Konrad
>>>
>>>>
>>>> Signed-off-by: David Heidelberg <david@ixit.cz>
>>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>>>> ---
>>>
>>>
>>>> arch/arm64/boot/dts/qcom/sdm845.dtsi | 1 +
>>>> 1 file changed, 1 insertion(+)
>>>>
>>>> diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
>>>> index bf2f9c04adba..75c192eddc57 100644
>>>> --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
>>>> +++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
>>>> @@ -4550,6 +4550,7 @@ mdss: display-subsystem@ae00000 {
>>>> reg-names = "mdss";
>>>> power-domains = <&dispcc MDSS_GDSC>;
>>>> + resets = <&dispcc DISP_CC_MDSS_RSCC_BCR>;
>>>> clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
>>>> <&dispcc DISP_CC_MDSS_MDP_CLK>;
>>>>
>>
>> --
>> David Heidelberg
>>
>
--
David Heidelberg
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 3/4] arm64: dts: qcom: sdm845: Add missing MDSS reset
2026-02-18 11:58 ` Dmitry Baryshkov
@ 2026-02-18 14:28 ` Konrad Dybcio
2026-02-18 15:59 ` Dmitry Baryshkov
0 siblings, 1 reply; 25+ messages in thread
From: Konrad Dybcio @ 2026-02-18 14:28 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: David Heidelberg, Bjorn Andersson, Michael Turquette,
Stephen Boyd, Ulf Hansson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-msm, linux-clk,
linux-kernel, devicetree
On 18-Feb-26 12:58, Dmitry Baryshkov wrote:
> On Wed, Feb 18, 2026 at 12:24:26PM +0100, Konrad Dybcio wrote:
>> On 2/18/26 12:18 PM, David Heidelberg wrote:
>>> On 18/02/2026 11:30, Konrad Dybcio wrote:
>>>> On 2/17/26 10:20 PM, Dmitry Baryshkov wrote:
>>>>> From: David Heidelberg <david@ixit.cz>
>>>>>
>>>>> If the OS does not support recovering the state left by the
>>>>> bootloader it needs a way to reset display hardware, so that it can
>>>>> start from a clean state. Add a reference to the relevant reset.
>>>>
>>>> This is not the relevant reset
>>>>
>>>> You want MDSS_CORE_BCR @ 0xaf0_2000
>>>
>>> Thanks, I prepared the fixes [1].
>>>
>>> I'll try to test it if it's not breaking anything for us and send as v2 of [2].
>>>
>>> David
>>>
>>> [1] https://codeberg.org/sdm845/linux/commits/branch/b4/mdss-reset
>>> [2] https://patchwork.kernel.org/project/linux-arm-msm/patch/20260112-mdss-reset-v1-1-af7c572204d3@ixit.cz/
>>
>> Please don't alter the contents of dt-bindings, it really doesn't matter
>> if on sdm845 it's reset0 or reset1, that's why we define them in the first
>> place
>
> I dpn't think that will pass. Current reset is defined as RSCC, we can't
> change that to CORE behind the scene. I'd prefer David's approach.
Back when I replied, David had a patch that removed the current RSCC
reset definition in dt-bindings (at index 0) and re-used that index
for CORE, putting RSCC at index 1. Perhaps it's better to link to
specific commits when making comments, note to self :P
Konrad
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 1/4] clk: qcom: dispcc-sdm845: set GENPD_FLAG_NO_STAY_ON flag for MDSS domain
2026-02-17 21:20 ` [PATCH 1/4] clk: qcom: dispcc-sdm845: set GENPD_FLAG_NO_STAY_ON flag for MDSS domain Dmitry Baryshkov
2026-02-18 8:10 ` Taniya Das
2026-02-18 8:12 ` Krzysztof Kozlowski
@ 2026-02-18 14:49 ` Bjorn Andersson
2026-02-18 15:58 ` Dmitry Baryshkov
2 siblings, 1 reply; 25+ messages in thread
From: Bjorn Andersson @ 2026-02-18 14:49 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Michael Turquette, Stephen Boyd, Ulf Hansson, Konrad Dybcio,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-arm-msm,
linux-clk, linux-kernel, devicetree, stable
On Tue, Feb 17, 2026 at 11:20:42PM +0200, Dmitry Baryshkov wrote:
> 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.
This describes how the problem manifest itself. Can you please document
why clocks are partially broken and how that relate to the GDSC state,
and why setting GENPD_FLAG_NO_STAY_ON solves this?
Regards,
Bjorn
>
> ------------[ 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
>
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 1/4] clk: qcom: dispcc-sdm845: set GENPD_FLAG_NO_STAY_ON flag for MDSS domain
2026-02-18 14:49 ` Bjorn Andersson
@ 2026-02-18 15:58 ` Dmitry Baryshkov
2026-02-19 18:11 ` Jagadeesh Kona
0 siblings, 1 reply; 25+ messages in thread
From: Dmitry Baryshkov @ 2026-02-18 15:58 UTC (permalink / raw)
To: Bjorn Andersson
Cc: Michael Turquette, Stephen Boyd, Ulf Hansson, Konrad Dybcio,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-arm-msm,
linux-clk, linux-kernel, devicetree, stable
On Wed, Feb 18, 2026 at 08:49:34AM -0600, Bjorn Andersson wrote:
> On Tue, Feb 17, 2026 at 11:20:42PM +0200, Dmitry Baryshkov wrote:
> > 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.
>
> This describes how the problem manifest itself. Can you please document
> why clocks are partially broken and how that relate to the GDSC state,
> and why setting GENPD_FLAG_NO_STAY_ON solves this?
Probably the best answer (for the second part of the question): I don't
know (yet).
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 3/4] arm64: dts: qcom: sdm845: Add missing MDSS reset
2026-02-18 14:28 ` Konrad Dybcio
@ 2026-02-18 15:59 ` Dmitry Baryshkov
2026-04-09 20:38 ` David Heidelberg
0 siblings, 1 reply; 25+ messages in thread
From: Dmitry Baryshkov @ 2026-02-18 15:59 UTC (permalink / raw)
To: Konrad Dybcio
Cc: David Heidelberg, Bjorn Andersson, Michael Turquette,
Stephen Boyd, Ulf Hansson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-msm, linux-clk,
linux-kernel, devicetree
On Wed, Feb 18, 2026 at 03:28:01PM +0100, Konrad Dybcio wrote:
>
>
> On 18-Feb-26 12:58, Dmitry Baryshkov wrote:
> > On Wed, Feb 18, 2026 at 12:24:26PM +0100, Konrad Dybcio wrote:
> >> On 2/18/26 12:18 PM, David Heidelberg wrote:
> >>> On 18/02/2026 11:30, Konrad Dybcio wrote:
> >>>> On 2/17/26 10:20 PM, Dmitry Baryshkov wrote:
> >>>>> From: David Heidelberg <david@ixit.cz>
> >>>>>
> >>>>> If the OS does not support recovering the state left by the
> >>>>> bootloader it needs a way to reset display hardware, so that it can
> >>>>> start from a clean state. Add a reference to the relevant reset.
> >>>>
> >>>> This is not the relevant reset
> >>>>
> >>>> You want MDSS_CORE_BCR @ 0xaf0_2000
> >>>
> >>> Thanks, I prepared the fixes [1].
> >>>
> >>> I'll try to test it if it's not breaking anything for us and send as v2 of [2].
> >>>
> >>> David
> >>>
> >>> [1] https://codeberg.org/sdm845/linux/commits/branch/b4/mdss-reset
> >>> [2] https://patchwork.kernel.org/project/linux-arm-msm/patch/20260112-mdss-reset-v1-1-af7c572204d3@ixit.cz/
> >>
> >> Please don't alter the contents of dt-bindings, it really doesn't matter
> >> if on sdm845 it's reset0 or reset1, that's why we define them in the first
> >> place
> >
> > I dpn't think that will pass. Current reset is defined as RSCC, we can't
> > change that to CORE behind the scene. I'd prefer David's approach.
>
> Back when I replied, David had a patch that removed the current RSCC
> reset definition in dt-bindings (at index 0) and re-used that index
> for CORE, putting RSCC at index 1. Perhaps it's better to link to
> specific commits when making comments, note to self :P
Yes, I saw the commit having two resets. Anyway, as we saw, it doesn't
work.
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 1/4] clk: qcom: dispcc-sdm845: set GENPD_FLAG_NO_STAY_ON flag for MDSS domain
2026-02-18 15:58 ` Dmitry Baryshkov
@ 2026-02-19 18:11 ` Jagadeesh Kona
2026-02-23 1:27 ` Dmitry Baryshkov
0 siblings, 1 reply; 25+ messages in thread
From: Jagadeesh Kona @ 2026-02-19 18:11 UTC (permalink / raw)
To: Dmitry Baryshkov, Bjorn Andersson
Cc: Michael Turquette, Stephen Boyd, Ulf Hansson, Konrad Dybcio,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-arm-msm,
linux-clk, linux-kernel, devicetree, stable
On 2/18/2026 9:28 PM, Dmitry Baryshkov wrote:
> On Wed, Feb 18, 2026 at 08:49:34AM -0600, Bjorn Andersson wrote:
>> On Tue, Feb 17, 2026 at 11:20:42PM +0200, Dmitry Baryshkov wrote:
>>> 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.
>>
>> This describes how the problem manifest itself. Can you please document
>> why clocks are partially broken and how that relate to the GDSC state,
>> and why setting GENPD_FLAG_NO_STAY_ON solves this?
>
> Probably the best answer (for the second part of the question): I don't
> know (yet).
>
RCG update typically gets stuck if the new/old source is OFF while the RCG is ON; but
if the RCG is already OFF, the update proceeds safely even if new/old source is OFF.
A possible theory is that if the GDSC is in OFF state, the branch clocks will be OFF,
due to this RCG also will be in OFF state, preventing the update stuck issue even if
the new/old source is OFF. But, if the GDSC remains on until sync_state, the branches
and RCG likely stays ON, leading to update stuck issue if the new/old source is OFF.
Ideally, if both old and new RCG sources are ON during the update configuration, the
update should succeed regardless of the GDSC status.
Thanks,
Jagadeesh
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 1/4] clk: qcom: dispcc-sdm845: set GENPD_FLAG_NO_STAY_ON flag for MDSS domain
2026-02-19 18:11 ` Jagadeesh Kona
@ 2026-02-23 1:27 ` Dmitry Baryshkov
0 siblings, 0 replies; 25+ messages in thread
From: Dmitry Baryshkov @ 2026-02-23 1:27 UTC (permalink / raw)
To: Jagadeesh Kona
Cc: Bjorn Andersson, Michael Turquette, Stephen Boyd, Ulf Hansson,
Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-arm-msm, linux-clk, linux-kernel, devicetree, stable
On Thu, Feb 19, 2026 at 11:41:06PM +0530, Jagadeesh Kona wrote:
>
>
> On 2/18/2026 9:28 PM, Dmitry Baryshkov wrote:
> > On Wed, Feb 18, 2026 at 08:49:34AM -0600, Bjorn Andersson wrote:
> >> On Tue, Feb 17, 2026 at 11:20:42PM +0200, Dmitry Baryshkov wrote:
> >>> 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.
> >>
> >> This describes how the problem manifest itself. Can you please document
> >> why clocks are partially broken and how that relate to the GDSC state,
> >> and why setting GENPD_FLAG_NO_STAY_ON solves this?
> >
> > Probably the best answer (for the second part of the question): I don't
> > know (yet).
> >
>
> RCG update typically gets stuck if the new/old source is OFF while the RCG is ON; but
> if the RCG is already OFF, the update proceeds safely even if new/old source is OFF.
>
> A possible theory is that if the GDSC is in OFF state, the branch clocks will be OFF,
> due to this RCG also will be in OFF state, preventing the update stuck issue even if
> the new/old source is OFF. But, if the GDSC remains on until sync_state, the branches
> and RCG likely stays ON, leading to update stuck issue if the new/old source is OFF.
>
> Ideally, if both old and new RCG sources are ON during the update configuration, the
> update should succeed regardless of the GDSC status.
Both pclkN_clk_src clocks have CLK_OPS_PARENT_ENABLE set, so the parents
must be on.
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 3/4] arm64: dts: qcom: sdm845: Add missing MDSS reset
2026-02-18 15:59 ` Dmitry Baryshkov
@ 2026-04-09 20:38 ` David Heidelberg
2026-04-09 21:24 ` Dmitry Baryshkov
0 siblings, 1 reply; 25+ messages in thread
From: David Heidelberg @ 2026-04-09 20:38 UTC (permalink / raw)
To: Dmitry Baryshkov, Konrad Dybcio
Cc: Bjorn Andersson, Michael Turquette, Stephen Boyd, Ulf Hansson,
Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-arm-msm, linux-clk, linux-kernel, devicetree
On 18/02/2026 16:59, Dmitry Baryshkov wrote:
> On Wed, Feb 18, 2026 at 03:28:01PM +0100, Konrad Dybcio wrote:
>>
>>
>> On 18-Feb-26 12:58, Dmitry Baryshkov wrote:
>>> On Wed, Feb 18, 2026 at 12:24:26PM +0100, Konrad Dybcio wrote:
>>>> On 2/18/26 12:18 PM, David Heidelberg wrote:
>>>>> On 18/02/2026 11:30, Konrad Dybcio wrote:
>>>>>> On 2/17/26 10:20 PM, Dmitry Baryshkov wrote:
>>>>>>> From: David Heidelberg <david@ixit.cz>
>>>>>>>
>>>>>>> If the OS does not support recovering the state left by the
>>>>>>> bootloader it needs a way to reset display hardware, so that it can
>>>>>>> start from a clean state. Add a reference to the relevant reset.
>>>>>>
>>>>>> This is not the relevant reset
>>>>>>
>>>>>> You want MDSS_CORE_BCR @ 0xaf0_2000
>>>>>
>>>>> Thanks, I prepared the fixes [1].
>>>>>
>>>>> I'll try to test it if it's not breaking anything for us and send as v2 of [2].
>>>>>
>>>>> David
>>>>>
>>>>> [1] https://codeberg.org/sdm845/linux/commits/branch/b4/mdss-reset
>>>>> [2] https://patchwork.kernel.org/project/linux-arm-msm/patch/20260112-mdss-reset-v1-1-af7c572204d3@ixit.cz/
>>>>
>>>> Please don't alter the contents of dt-bindings, it really doesn't matter
>>>> if on sdm845 it's reset0 or reset1, that's why we define them in the first
>>>> place
>>>
>>> I dpn't think that will pass. Current reset is defined as RSCC, we can't
>>> change that to CORE behind the scene. I'd prefer David's approach.
>>
>> Back when I replied, David had a patch that removed the current RSCC
>> reset definition in dt-bindings (at index 0) and re-used that index
>> for CORE, putting RSCC at index 1. Perhaps it's better to link to
>> specific commits when making comments, note to self :P
>
> Yes, I saw the commit having two resets. Anyway, as we saw, it doesn't
> work.
So, finally I spent "so much effort" (read throwing it at LLM) looking at:
arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402, iova=0x9d4bb500,
fsynr=0x170021, cbfrsynra=0xc88, cb=11
arm-smmu 15000000.iommu: FSR = 00000402 [Format=2 TF], SID=0xc88
arm-smmu 15000000.iommu: FSYNR0 = 00170021 [S1CBNDX=23 PNU PLVL=1]
arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402, iova=0x9d4c6900,
fsynr=0x170021, cbfrsynra=0x880, cb=11
arm-smmu 15000000.iommu: FSR = 00000402 [Format=2 TF], SID=0x880
arm-smmu 15000000.iommu: FSYNR0 = 00170021 [S1CBNDX=23 PNU PLVL=1]
arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402, iova=0x9d4c3f00,
fsynr=0x170021, cbfrsynra=0xc88, cb=11
arm-smmu 15000000.iommu: FSR = 00000402 [Format=2 TF], SID=0xc88
arm-smmu 15000000.iommu: FSYNR0 = 00170021 [S1CBNDX=23 PNU PLVL=1]
arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402, iova=0x9d4cff00,
fsynr=0x170021, cbfrsynra=0xc88, cb=11
arm-smmu 15000000.iommu: FSR = 00000402 [Format=2 TF], SID=0xc88
arm-smmu 15000000.iommu: FSYNR0 = 00170021 [S1CBNDX=23 PNU PLVL=1]
arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402, iova=0x9d4cd220,
fsynr=0x170021, cbfrsynra=0x880, cb=11
arm-smmu 15000000.iommu: FSR = 00000402 [Format=2 TF], SID=0x880
arm-smmu 15000000.iommu: FSYNR0 = 00170021 [S1CBNDX=23 PNU PLVL=1]
arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402, iova=0x9d4d9a00,
fsynr=0x170021, cbfrsynra=0x880, cb=11
arm-smmu 15000000.iommu: FSR = 00000402 [Format=2 TF], SID=0x880
arm-smmu 15000000.iommu: FSYNR0 = 00170021 [S1CBNDX=23 PNU PLVL=1]
arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402, iova=0x9d4deb00,
fsynr=0x170021, cbfrsynra=0x880, cb=11
arm-smmu 15000000.iommu: FSR = 00000402 [Format=2 TF], SID=0x880
arm-smmu 15000000.iommu: FSYNR0 = 00170021 [S1CBNDX=23 PNU PLVL=1]
arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402, iova=0x9d4e3400,
fsynr=0x170021, cbfrsynra=0xc88, cb=11
arm-smmu 15000000.iommu: FSR = 00000402 [Format=2 TF], SID=0xc88
arm-smmu 15000000.iommu: FSYNR0 = 00170021 [S1CBNDX=23 PNU PLVL=1]
arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402, iova=0x9d4e9500,
fsynr=0x170021, cbfrsynra=0xc88, cb=11
arm-smmu 15000000.iommu: FSR = 00000402 [Format=2 TF], SID=0xc88
arm-smmu 15000000.iommu: FSYNR0 = 00170021 [S1CBNDX=23 PNU PLVL=1]
arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402, iova=0x9d4eca00,
fsynr=0x170021, cbfrsynra=0x880, cb=11
arm-smmu 15000000.iommu: FSR = 00000402 [Format=2 TF], SID=0x880
arm-smmu 15000000.iommu: FSYNR0 = 00170021 [S1CBNDX=23 PNU PLVL=1]
These (or very similar warnings) are around sdm845 definitely 6.19+ / linux-next
kernels for some time, but pretty harmless.
LLM suggested multiple fixes, but when presenting possibility of implementing
mdss reset it found it as most preferable [1].
Adding MDSS reset would most likely solve it. It's not critical, but not nice to
see many red lines in the dmesg.
Is there something I could experiment with to get closer to have proper MDSS reset?
David
[1] https://paste.sr.ht/~okias/c20e8bb1a67ba09df558d56da84894d71ddc1b54
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 3/4] arm64: dts: qcom: sdm845: Add missing MDSS reset
2026-04-09 20:38 ` David Heidelberg
@ 2026-04-09 21:24 ` Dmitry Baryshkov
2026-04-10 8:55 ` Konrad Dybcio
0 siblings, 1 reply; 25+ messages in thread
From: Dmitry Baryshkov @ 2026-04-09 21:24 UTC (permalink / raw)
To: David Heidelberg
Cc: Konrad Dybcio, Bjorn Andersson, Michael Turquette, Stephen Boyd,
Ulf Hansson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, linux-arm-msm, linux-clk, linux-kernel, devicetree
On Thu, Apr 09, 2026 at 10:38:15PM +0200, David Heidelberg wrote:
> On 18/02/2026 16:59, Dmitry Baryshkov wrote:
> > On Wed, Feb 18, 2026 at 03:28:01PM +0100, Konrad Dybcio wrote:
> > >
> > >
> > > On 18-Feb-26 12:58, Dmitry Baryshkov wrote:
> > > > On Wed, Feb 18, 2026 at 12:24:26PM +0100, Konrad Dybcio wrote:
> > > > > On 2/18/26 12:18 PM, David Heidelberg wrote:
> > > > > > On 18/02/2026 11:30, Konrad Dybcio wrote:
> > > > > > > On 2/17/26 10:20 PM, Dmitry Baryshkov wrote:
> > > > > > > > From: David Heidelberg <david@ixit.cz>
> > > > > > > >
> > > > > > > > If the OS does not support recovering the state left by the
> > > > > > > > bootloader it needs a way to reset display hardware, so that it can
> > > > > > > > start from a clean state. Add a reference to the relevant reset.
> > > > > > >
> > > > > > > This is not the relevant reset
> > > > > > >
> > > > > > > You want MDSS_CORE_BCR @ 0xaf0_2000
> > > > > >
> > > > > > Thanks, I prepared the fixes [1].
> > > > > >
> > > > > > I'll try to test it if it's not breaking anything for us and send as v2 of [2].
> > > > > >
> > > > > > David
> > > > > >
> > > > > > [1] https://codeberg.org/sdm845/linux/commits/branch/b4/mdss-reset
> > > > > > [2] https://patchwork.kernel.org/project/linux-arm-msm/patch/20260112-mdss-reset-v1-1-af7c572204d3@ixit.cz/
> > > > >
> > > > > Please don't alter the contents of dt-bindings, it really doesn't matter
> > > > > if on sdm845 it's reset0 or reset1, that's why we define them in the first
> > > > > place
> > > >
> > > > I dpn't think that will pass. Current reset is defined as RSCC, we can't
> > > > change that to CORE behind the scene. I'd prefer David's approach.
> > >
> > > Back when I replied, David had a patch that removed the current RSCC
> > > reset definition in dt-bindings (at index 0) and re-used that index
> > > for CORE, putting RSCC at index 1. Perhaps it's better to link to
> > > specific commits when making comments, note to self :P
> >
> > Yes, I saw the commit having two resets. Anyway, as we saw, it doesn't
> > work.
>
> So, finally I spent "so much effort" (read throwing it at LLM) looking at:
>
> arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402,
> iova=0x9d4bb500, fsynr=0x170021, cbfrsynra=0xc88, cb=11
> arm-smmu 15000000.iommu: FSR = 00000402 [Format=2 TF], SID=0xc88
> arm-smmu 15000000.iommu: FSYNR0 = 00170021 [S1CBNDX=23 PNU PLVL=1]
[...]
>
> These (or very similar warnings) are around sdm845 definitely 6.19+ /
> linux-next kernels for some time, but pretty harmless.
>
> LLM suggested multiple fixes, but when presenting possibility of
> implementing mdss reset it found it as most preferable [1].
>
> Adding MDSS reset would most likely solve it. It's not critical, but not
> nice to see many red lines in the dmesg.
>
> Is there something I could experiment with to get closer to have proper MDSS reset?
I don't have a sensible solution at this point. We tried using the MDSS
reset on several SDM845 devices, but they just reset. So... I don't have
any possible solution.
>
> David
>
> [1] https://paste.sr.ht/~okias/c20e8bb1a67ba09df558d56da84894d71ddc1b54
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 25+ messages in thread
* Re: [PATCH 3/4] arm64: dts: qcom: sdm845: Add missing MDSS reset
2026-04-09 21:24 ` Dmitry Baryshkov
@ 2026-04-10 8:55 ` Konrad Dybcio
0 siblings, 0 replies; 25+ messages in thread
From: Konrad Dybcio @ 2026-04-10 8:55 UTC (permalink / raw)
To: Dmitry Baryshkov, David Heidelberg
Cc: Bjorn Andersson, Michael Turquette, Stephen Boyd, Ulf Hansson,
Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-arm-msm, linux-clk, linux-kernel, devicetree
On 4/9/26 11:24 PM, Dmitry Baryshkov wrote:
> On Thu, Apr 09, 2026 at 10:38:15PM +0200, David Heidelberg wrote:
>> On 18/02/2026 16:59, Dmitry Baryshkov wrote:
>>> On Wed, Feb 18, 2026 at 03:28:01PM +0100, Konrad Dybcio wrote:
>>>>
>>>>
>>>> On 18-Feb-26 12:58, Dmitry Baryshkov wrote:
>>>>> On Wed, Feb 18, 2026 at 12:24:26PM +0100, Konrad Dybcio wrote:
>>>>>> On 2/18/26 12:18 PM, David Heidelberg wrote:
>>>>>>> On 18/02/2026 11:30, Konrad Dybcio wrote:
>>>>>>>> On 2/17/26 10:20 PM, Dmitry Baryshkov wrote:
>>>>>>>>> From: David Heidelberg <david@ixit.cz>
>>>>>>>>>
>>>>>>>>> If the OS does not support recovering the state left by the
>>>>>>>>> bootloader it needs a way to reset display hardware, so that it can
>>>>>>>>> start from a clean state. Add a reference to the relevant reset.
>>>>>>>>
>>>>>>>> This is not the relevant reset
>>>>>>>>
>>>>>>>> You want MDSS_CORE_BCR @ 0xaf0_2000
>>>>>>>
>>>>>>> Thanks, I prepared the fixes [1].
>>>>>>>
>>>>>>> I'll try to test it if it's not breaking anything for us and send as v2 of [2].
>>>>>>>
>>>>>>> David
>>>>>>>
>>>>>>> [1] https://codeberg.org/sdm845/linux/commits/branch/b4/mdss-reset
>>>>>>> [2] https://patchwork.kernel.org/project/linux-arm-msm/patch/20260112-mdss-reset-v1-1-af7c572204d3@ixit.cz/
>>>>>>
>>>>>> Please don't alter the contents of dt-bindings, it really doesn't matter
>>>>>> if on sdm845 it's reset0 or reset1, that's why we define them in the first
>>>>>> place
>>>>>
>>>>> I dpn't think that will pass. Current reset is defined as RSCC, we can't
>>>>> change that to CORE behind the scene. I'd prefer David's approach.
>>>>
>>>> Back when I replied, David had a patch that removed the current RSCC
>>>> reset definition in dt-bindings (at index 0) and re-used that index
>>>> for CORE, putting RSCC at index 1. Perhaps it's better to link to
>>>> specific commits when making comments, note to self :P
>>>
>>> Yes, I saw the commit having two resets. Anyway, as we saw, it doesn't
>>> work.
>>
>> So, finally I spent "so much effort" (read throwing it at LLM) looking at:
>>
>> arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402,
>> iova=0x9d4bb500, fsynr=0x170021, cbfrsynra=0xc88, cb=11
>> arm-smmu 15000000.iommu: FSR = 00000402 [Format=2 TF], SID=0xc88
>> arm-smmu 15000000.iommu: FSYNR0 = 00170021 [S1CBNDX=23 PNU PLVL=1]
>
> [...]
>
>>
>> These (or very similar warnings) are around sdm845 definitely 6.19+ /
>> linux-next kernels for some time, but pretty harmless.
>>
>> LLM suggested multiple fixes, but when presenting possibility of
>> implementing mdss reset it found it as most preferable [1].
>>
>> Adding MDSS reset would most likely solve it. It's not critical, but not
>> nice to see many red lines in the dmesg.
>>
>> Is there something I could experiment with to get closer to have proper MDSS reset?
>
> I don't have a sensible solution at this point. We tried using the MDSS
> reset on several SDM845 devices, but they just reset. So... I don't have
> any possible solution.
The older context talks about altering the existing dt-bindings values
and now we're at hardware (mis)behaving? What is the issue here?
Konrad
^ permalink raw reply [flat|nested] 25+ messages in thread
end of thread, other threads:[~2026-04-10 8:56 UTC | newest]
Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-17 21:20 [PATCH 0/4] arm64: dts: qcom: support SDM845 HDK Dmitry Baryshkov
2026-02-17 21:20 ` [PATCH 1/4] clk: qcom: dispcc-sdm845: set GENPD_FLAG_NO_STAY_ON flag for MDSS domain Dmitry Baryshkov
2026-02-18 8:10 ` 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-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-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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox