summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorStephan Gerhold <stephan.gerhold@linaro.org>2025-09-15 15:28:30 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-10-19 16:33:44 +0200
commit34d90c37bb680d7612c1f6281a6b6a0b382b6037 (patch)
tree7a442c683bbf3e3dade63fb10856e7fe4e8d8dda /arch
parent947751c11e0849cfdd35b55172276ebb1b7379c0 (diff)
downloadlinux-34d90c37bb680d7612c1f6281a6b6a0b382b6037.tar.gz
linux-34d90c37bb680d7612c1f6281a6b6a0b382b6037.tar.bz2
linux-34d90c37bb680d7612c1f6281a6b6a0b382b6037.zip
arm64: dts: qcom: msm8916: Add missing MDSS reset
commit 99b78773c2ae55dcc01025f94eae8ce9700ae985 upstream. On most MSM8916 devices (aside from the DragonBoard 410c), the bootloader already initializes the display to show the boot splash screen. In this situation, MDSS is already configured and left running when starting Linux. To avoid side effects from the bootloader configuration, the MDSS reset can be specified in the device tree to start again with a clean hardware state. The reset for MDSS is currently missing in msm8916.dtsi, which causes errors when the MDSS driver tries to re-initialize the registers: dsi_err_worker: status=6 dsi_err_worker: status=6 dsi_err_worker: status=6 ... It turns out that we have always indirectly worked around this by building the MDSS driver as a module. Before v6.17, the power domain was temporarily turned off until the module was loaded, long enough to clear the register contents. In v6.17, power domains are not turned off during boot until sync_state() happens, so this is no longer working. Even before v6.17 this resulted in broken behavior, but notably only when the MDSS driver was built-in instead of a module. Cc: stable@vger.kernel.org Fixes: 305410ffd1b2 ("arm64: dts: msm8916: Add display support") Signed-off-by: Stephan Gerhold <stephan.gerhold@linaro.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Link: https://lore.kernel.org/r/20250915-msm8916-resets-v1-1-a5c705df0c45@linaro.org Signed-off-by: Bjorn Andersson <andersson@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm64/boot/dts/qcom/msm8916.dtsi2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi
index 800bfe83dbf8..b0f1c1b2e6f3 100644
--- a/arch/arm64/boot/dts/qcom/msm8916.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi
@@ -1540,6 +1540,8 @@
interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
+ resets = <&gcc GCC_MDSS_BCR>;
+
interrupt-controller;
#interrupt-cells = <1>;