Devicetree
 help / color / mirror / Atom feed
* [PATCH v2 0/3] SDM630/660: Add missing MDSS reset
@ 2025-11-16  1:12 Alexey Minnekhanov
  2025-11-16  1:12 ` [PATCH v2 1/3] dt-bindings: clock: mmcc-sdm660: " Alexey Minnekhanov
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Alexey Minnekhanov @ 2025-11-16  1:12 UTC (permalink / raw)
  To: Bjorn Andersson, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Konrad Dybcio
  Cc: linux-arm-msm, linux-clk, devicetree, linux-kernel, stable,
	~postmarketos/upstreaming, Alexey Minnekhanov

Since kernel 6.17 display stack needs to reset the hardware properly to
ensure that we don't run into issues with the hardware configured by the
bootloader. MDSS reset is necessary to have working display when the
bootloader has already initialized it for the boot splash screen.

Signed-off-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
---
Changes in v2:
- Added "Fixes" tag, pointing to commit which is the root cause for
  exposing this "bug", which is only present since 6.17
- Extended commit messages
- Prepared series using correct user.email git setting
- Link to v1: https://lore.kernel.org/r/20251031-sdm660-mdss-reset-v1-0-14cb4e6836f2@postmarketos.org

---
Alexey Minnekhanov (3):
      dt-bindings: clock: mmcc-sdm660: Add missing MDSS reset
      clk: qcom: mmcc-sdm660: Add missing MDSS reset
      arm64: dts: qcom: sdm630: Add missing MDSS reset

 arch/arm64/boot/dts/qcom/sdm630.dtsi         | 1 +
 drivers/clk/qcom/mmcc-sdm660.c               | 1 +
 include/dt-bindings/clock/qcom,mmcc-sdm660.h | 1 +
 3 files changed, 3 insertions(+)
---
base-commit: 1cc41c88ef00de0f3216c5f4b9cfab47de1c49d3
change-id: 20251031-sdm660-mdss-reset-015a46a238b5

Best regards,
-- 
Alexey Minnekhanov <alexeymin@postmarketos.org>


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 1/3] dt-bindings: clock: mmcc-sdm660: Add missing MDSS reset
  2025-11-16  1:12 [PATCH v2 0/3] SDM630/660: Add missing MDSS reset Alexey Minnekhanov
@ 2025-11-16  1:12 ` Alexey Minnekhanov
  2025-11-16 11:25   ` Krzysztof Kozlowski
  2025-11-16  1:12 ` [PATCH v2 2/3] clk: qcom: " Alexey Minnekhanov
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 10+ messages in thread
From: Alexey Minnekhanov @ 2025-11-16  1:12 UTC (permalink / raw)
  To: Bjorn Andersson, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Konrad Dybcio
  Cc: linux-arm-msm, linux-clk, devicetree, linux-kernel, stable,
	~postmarketos/upstreaming, Alexey Minnekhanov

Add definition for display subsystem reset control, so display
driver can reset display controller properly, clearing any
configuration left there by bootloader. Since 6.17 after
PM domains rework it became necessary for display to function.

Fixes: 0e789b491ba0 ("pmdomain: core: Leave powered-on genpds on until sync_state")
Cc: <stable@vger.kernel.org> # 6.17
Signed-off-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
---
 include/dt-bindings/clock/qcom,mmcc-sdm660.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/dt-bindings/clock/qcom,mmcc-sdm660.h b/include/dt-bindings/clock/qcom,mmcc-sdm660.h
index f9dbc21cb5c7..ee2a89dae72d 100644
--- a/include/dt-bindings/clock/qcom,mmcc-sdm660.h
+++ b/include/dt-bindings/clock/qcom,mmcc-sdm660.h
@@ -157,6 +157,7 @@
 #define BIMC_SMMU_GDSC							7
 
 #define CAMSS_MICRO_BCR				 0
+#define MDSS_BCR				1
 
 #endif
 

-- 
2.51.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 2/3] clk: qcom: mmcc-sdm660: Add missing MDSS reset
  2025-11-16  1:12 [PATCH v2 0/3] SDM630/660: Add missing MDSS reset Alexey Minnekhanov
  2025-11-16  1:12 ` [PATCH v2 1/3] dt-bindings: clock: mmcc-sdm660: " Alexey Minnekhanov
@ 2025-11-16  1:12 ` Alexey Minnekhanov
  2025-11-16 11:38   ` Dmitry Baryshkov
  2025-11-18  6:26   ` Taniya Das
  2025-11-16  1:12 ` [PATCH v2 3/3] arm64: dts: qcom: sdm630: " Alexey Minnekhanov
                   ` (2 subsequent siblings)
  4 siblings, 2 replies; 10+ messages in thread
From: Alexey Minnekhanov @ 2025-11-16  1:12 UTC (permalink / raw)
  To: Bjorn Andersson, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Konrad Dybcio
  Cc: linux-arm-msm, linux-clk, devicetree, linux-kernel, stable,
	~postmarketos/upstreaming, Alexey Minnekhanov

Add offset for display subsystem reset in multimedia clock controller
block, which is necessary to reset display when there is some
configuration in display controller left by previous stock (Android)
bootloader to provide continuous splash functionaluty.

Before 6.17 power domains were turned off for long enough to clear
registers, now this is not the case and a proper reset is needed to
have functioning display.

Fixes: 0e789b491ba0 ("pmdomain: core: Leave powered-on genpds on until sync_state")
Cc: <stable@vger.kernel.org> # 6.17
Signed-off-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
---
 drivers/clk/qcom/mmcc-sdm660.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/clk/qcom/mmcc-sdm660.c b/drivers/clk/qcom/mmcc-sdm660.c
index b723c536dfb6..dbd3f561dc6d 100644
--- a/drivers/clk/qcom/mmcc-sdm660.c
+++ b/drivers/clk/qcom/mmcc-sdm660.c
@@ -2781,6 +2781,7 @@ static struct gdsc *mmcc_sdm660_gdscs[] = {
 };
 
 static const struct qcom_reset_map mmcc_660_resets[] = {
+	[MDSS_BCR] = { 0x2300 },
 	[CAMSS_MICRO_BCR] = { 0x3490 },
 };
 

-- 
2.51.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 3/3] arm64: dts: qcom: sdm630: Add missing MDSS reset
  2025-11-16  1:12 [PATCH v2 0/3] SDM630/660: Add missing MDSS reset Alexey Minnekhanov
  2025-11-16  1:12 ` [PATCH v2 1/3] dt-bindings: clock: mmcc-sdm660: " Alexey Minnekhanov
  2025-11-16  1:12 ` [PATCH v2 2/3] clk: qcom: " Alexey Minnekhanov
@ 2025-11-16  1:12 ` Alexey Minnekhanov
  2025-11-16 11:39   ` Dmitry Baryshkov
  2025-11-18 22:12 ` (subset) [PATCH v2 0/3] SDM630/660: " Bjorn Andersson
  2026-01-05 14:07 ` Bjorn Andersson
  4 siblings, 1 reply; 10+ messages in thread
From: Alexey Minnekhanov @ 2025-11-16  1:12 UTC (permalink / raw)
  To: Bjorn Andersson, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Konrad Dybcio
  Cc: linux-arm-msm, linux-clk, devicetree, linux-kernel, stable,
	~postmarketos/upstreaming, Alexey Minnekhanov

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.

It fixes display init issue appeared in Linux v6.17: without reset
device boots into black screen and you need to turn display off/on
to "fix" it. Also sometimes it can boot into solid blue color
with these messages in kernel log:

  hw recovery is not complete for ctl:2
  [drm:dpu_encoder_phys_vid_prepare_for_kickoff:569] [dpu error]enc33
      intf1 ctl 2 reset failure: -22
  [drm:dpu_encoder_frame_done_timeout:2727] [dpu error]enc33 frame
      done timeout

Fixes: 0e789b491ba0 ("pmdomain: core: Leave powered-on genpds on until sync_state")
Cc: <stable@vger.kernel.org> # 6.17
Signed-off-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
---
 arch/arm64/boot/dts/qcom/sdm630.dtsi | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm64/boot/dts/qcom/sdm630.dtsi b/arch/arm64/boot/dts/qcom/sdm630.dtsi
index 8b1a45a4e56e..fedff18a5721 100644
--- a/arch/arm64/boot/dts/qcom/sdm630.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm630.dtsi
@@ -1563,6 +1563,7 @@ mdss: display-subsystem@c900000 {
 			reg-names = "mdss_phys", "vbif_phys";
 
 			power-domains = <&mmcc MDSS_GDSC>;
+			resets = <&mmcc MDSS_BCR>;
 
 			clocks = <&mmcc MDSS_AHB_CLK>,
 				 <&mmcc MDSS_AXI_CLK>,

-- 
2.51.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 1/3] dt-bindings: clock: mmcc-sdm660: Add missing MDSS reset
  2025-11-16  1:12 ` [PATCH v2 1/3] dt-bindings: clock: mmcc-sdm660: " Alexey Minnekhanov
@ 2025-11-16 11:25   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 10+ messages in thread
From: Krzysztof Kozlowski @ 2025-11-16 11:25 UTC (permalink / raw)
  To: Alexey Minnekhanov
  Cc: Bjorn Andersson, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Konrad Dybcio, linux-arm-msm, linux-clk, devicetree,
	linux-kernel, stable, ~postmarketos/upstreaming

On Sun, Nov 16, 2025 at 04:12:33AM +0300, Alexey Minnekhanov wrote:
> Add definition for display subsystem reset control, so display
> driver can reset display controller properly, clearing any
> configuration left there by bootloader. Since 6.17 after
> PM domains rework it became necessary for display to function.
> 
> Fixes: 0e789b491ba0 ("pmdomain: core: Leave powered-on genpds on until sync_state")
> Cc: <stable@vger.kernel.org> # 6.17
> Signed-off-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
> ---
>  include/dt-bindings/clock/qcom,mmcc-sdm660.h | 1 +
>  1 file changed, 1 insertion(+)

Acked-by: Krzysztof Kozlowski <krzk@kernel.org>

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 2/3] clk: qcom: mmcc-sdm660: Add missing MDSS reset
  2025-11-16  1:12 ` [PATCH v2 2/3] clk: qcom: " Alexey Minnekhanov
@ 2025-11-16 11:38   ` Dmitry Baryshkov
  2025-11-18  6:26   ` Taniya Das
  1 sibling, 0 replies; 10+ messages in thread
From: Dmitry Baryshkov @ 2025-11-16 11:38 UTC (permalink / raw)
  To: Alexey Minnekhanov
  Cc: Bjorn Andersson, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Konrad Dybcio, linux-arm-msm, linux-clk, devicetree,
	linux-kernel, stable, ~postmarketos/upstreaming

On Sun, Nov 16, 2025 at 04:12:34AM +0300, Alexey Minnekhanov wrote:
> Add offset for display subsystem reset in multimedia clock controller
> block, which is necessary to reset display when there is some
> configuration in display controller left by previous stock (Android)
> bootloader to provide continuous splash functionaluty.
> 
> Before 6.17 power domains were turned off for long enough to clear
> registers, now this is not the case and a proper reset is needed to
> have functioning display.
> 
> Fixes: 0e789b491ba0 ("pmdomain: core: Leave powered-on genpds on until sync_state")
> Cc: <stable@vger.kernel.org> # 6.17
> Signed-off-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
> ---
>  drivers/clk/qcom/mmcc-sdm660.c | 1 +
>  1 file changed, 1 insertion(+)
> 

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>


-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 3/3] arm64: dts: qcom: sdm630: Add missing MDSS reset
  2025-11-16  1:12 ` [PATCH v2 3/3] arm64: dts: qcom: sdm630: " Alexey Minnekhanov
@ 2025-11-16 11:39   ` Dmitry Baryshkov
  0 siblings, 0 replies; 10+ messages in thread
From: Dmitry Baryshkov @ 2025-11-16 11:39 UTC (permalink / raw)
  To: Alexey Minnekhanov
  Cc: Bjorn Andersson, Stephen Boyd, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Konrad Dybcio, linux-arm-msm, linux-clk, devicetree,
	linux-kernel, stable, ~postmarketos/upstreaming

On Sun, Nov 16, 2025 at 04:12:35AM +0300, Alexey Minnekhanov wrote:
> 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.
> 
> It fixes display init issue appeared in Linux v6.17: without reset
> device boots into black screen and you need to turn display off/on
> to "fix" it. Also sometimes it can boot into solid blue color
> with these messages in kernel log:
> 
>   hw recovery is not complete for ctl:2
>   [drm:dpu_encoder_phys_vid_prepare_for_kickoff:569] [dpu error]enc33
>       intf1 ctl 2 reset failure: -22
>   [drm:dpu_encoder_frame_done_timeout:2727] [dpu error]enc33 frame
>       done timeout
> 
> Fixes: 0e789b491ba0 ("pmdomain: core: Leave powered-on genpds on until sync_state")
> Cc: <stable@vger.kernel.org> # 6.17
> Signed-off-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
> ---
>  arch/arm64/boot/dts/qcom/sdm630.dtsi | 1 +
>  1 file changed, 1 insertion(+)
> 

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>


-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 2/3] clk: qcom: mmcc-sdm660: Add missing MDSS reset
  2025-11-16  1:12 ` [PATCH v2 2/3] clk: qcom: " Alexey Minnekhanov
  2025-11-16 11:38   ` Dmitry Baryshkov
@ 2025-11-18  6:26   ` Taniya Das
  1 sibling, 0 replies; 10+ messages in thread
From: Taniya Das @ 2025-11-18  6:26 UTC (permalink / raw)
  To: Alexey Minnekhanov, Bjorn Andersson, Stephen Boyd, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio
  Cc: linux-arm-msm, linux-clk, devicetree, linux-kernel, stable,
	~postmarketos/upstreaming



On 11/16/2025 6:42 AM, Alexey Minnekhanov wrote:
> Add offset for display subsystem reset in multimedia clock controller
> block, which is necessary to reset display when there is some
> configuration in display controller left by previous stock (Android)
> bootloader to provide continuous splash functionaluty.
> 
> Before 6.17 power domains were turned off for long enough to clear
> registers, now this is not the case and a proper reset is needed to
> have functioning display.
> 
> Fixes: 0e789b491ba0 ("pmdomain: core: Leave powered-on genpds on until sync_state")
> Cc: <stable@vger.kernel.org> # 6.17
> Signed-off-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
> ---
>  drivers/clk/qcom/mmcc-sdm660.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/clk/qcom/mmcc-sdm660.c b/drivers/clk/qcom/mmcc-sdm660.c
> index b723c536dfb6..dbd3f561dc6d 100644
> --- a/drivers/clk/qcom/mmcc-sdm660.c
> +++ b/drivers/clk/qcom/mmcc-sdm660.c
> @@ -2781,6 +2781,7 @@ static struct gdsc *mmcc_sdm660_gdscs[] = {
>  };
>  
>  static const struct qcom_reset_map mmcc_660_resets[] = {
> +	[MDSS_BCR] = { 0x2300 },

Reviewed-by: Taniya Das <taniya.das@oss.qualcomm.com>

>  	[CAMSS_MICRO_BCR] = { 0x3490 },
>  };
>  
> 

-- 
Thanks,
Taniya Das


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: (subset) [PATCH v2 0/3] SDM630/660: Add missing MDSS reset
  2025-11-16  1:12 [PATCH v2 0/3] SDM630/660: Add missing MDSS reset Alexey Minnekhanov
                   ` (2 preceding siblings ...)
  2025-11-16  1:12 ` [PATCH v2 3/3] arm64: dts: qcom: sdm630: " Alexey Minnekhanov
@ 2025-11-18 22:12 ` Bjorn Andersson
  2026-01-05 14:07 ` Bjorn Andersson
  4 siblings, 0 replies; 10+ messages in thread
From: Bjorn Andersson @ 2025-11-18 22:12 UTC (permalink / raw)
  To: Stephen Boyd, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Konrad Dybcio, Alexey Minnekhanov
  Cc: linux-arm-msm, linux-clk, devicetree, linux-kernel, stable,
	~postmarketos/upstreaming


On Sun, 16 Nov 2025 04:12:32 +0300, Alexey Minnekhanov wrote:
> Since kernel 6.17 display stack needs to reset the hardware properly to
> ensure that we don't run into issues with the hardware configured by the
> bootloader. MDSS reset is necessary to have working display when the
> bootloader has already initialized it for the boot splash screen.
> 
> 

Applied, thanks!

[1/3] dt-bindings: clock: mmcc-sdm660: Add missing MDSS reset
      commit: c57210bc15371caa06a5d4040e7d8aaeed4cb661
[2/3] clk: qcom: mmcc-sdm660: Add missing MDSS reset
      commit: 0a0ea5541d30c0fbb3dac975bd1983f299cd6948

Best regards,
-- 
Bjorn Andersson <andersson@kernel.org>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: (subset) [PATCH v2 0/3] SDM630/660: Add missing MDSS reset
  2025-11-16  1:12 [PATCH v2 0/3] SDM630/660: Add missing MDSS reset Alexey Minnekhanov
                   ` (3 preceding siblings ...)
  2025-11-18 22:12 ` (subset) [PATCH v2 0/3] SDM630/660: " Bjorn Andersson
@ 2026-01-05 14:07 ` Bjorn Andersson
  4 siblings, 0 replies; 10+ messages in thread
From: Bjorn Andersson @ 2026-01-05 14:07 UTC (permalink / raw)
  To: Stephen Boyd, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Konrad Dybcio, Alexey Minnekhanov
  Cc: linux-arm-msm, linux-clk, devicetree, linux-kernel, stable,
	~postmarketos/upstreaming


On Sun, 16 Nov 2025 04:12:32 +0300, Alexey Minnekhanov wrote:
> Since kernel 6.17 display stack needs to reset the hardware properly to
> ensure that we don't run into issues with the hardware configured by the
> bootloader. MDSS reset is necessary to have working display when the
> bootloader has already initialized it for the boot splash screen.
> 
> 

Applied, thanks!

[3/3] arm64: dts: qcom: sdm630: Add missing MDSS reset
      commit: 0c1d1591f898d54eaa4c8f2a1535ab21bf4e42e4

Best regards,
-- 
Bjorn Andersson <andersson@kernel.org>

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2026-01-05 14:07 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-16  1:12 [PATCH v2 0/3] SDM630/660: Add missing MDSS reset Alexey Minnekhanov
2025-11-16  1:12 ` [PATCH v2 1/3] dt-bindings: clock: mmcc-sdm660: " Alexey Minnekhanov
2025-11-16 11:25   ` Krzysztof Kozlowski
2025-11-16  1:12 ` [PATCH v2 2/3] clk: qcom: " Alexey Minnekhanov
2025-11-16 11:38   ` Dmitry Baryshkov
2025-11-18  6:26   ` Taniya Das
2025-11-16  1:12 ` [PATCH v2 3/3] arm64: dts: qcom: sdm630: " Alexey Minnekhanov
2025-11-16 11:39   ` Dmitry Baryshkov
2025-11-18 22:12 ` (subset) [PATCH v2 0/3] SDM630/660: " Bjorn Andersson
2026-01-05 14:07 ` Bjorn Andersson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox