SM6115/SM6125 MDSS core reset
Subsystems (5)
cover SM6115/SM6125 MDSS core reset
Hi,
this series is like [1] but for these two SoCs.
Yeah: same person, different SoCs, same cause, different symptoms :) On the SC7180 WoA device with DP out, it was causing faults+artifacts due to EFI framebuffer scanout not stopping when Linux takes over. This time, the reset was necessary for MIPI DSI display to work *at all* on the sm6115-motorola-guamp (Moto G9 Play) phone (DTS coming very soon!)
With the state left by the bootloader, the display would stay gray. DCS setup commands would go through fine, some dsi_err_worker: status=4 errors would be logged after setup a few times (not continuously) but the display would not start working. With the reset, it works fine!
Since the SM6125 is closely related, I've done the same for it as well. The QCM2290 already does have the reset.
[1]: https://lore.kernel.org/all/20260120-topic-7180_dispcc_bcr-v1-0-0b1b442156c3@oss.qualcomm.com/
Thanks,
~val
Val Packett (6):
dt-bindings: clock: qcom,sm6115-dispcc: Define MDSS resets
dt-bindings: clock: qcom,dispcc-sm6125: Define MDSS resets
clk: qcom: dispcc-sm6115: Add missing MDSS resets
clk: qcom: dispcc-sm6125: Add missing MDSS resets
arm64: dts: qcom: sm6115: Add missing MDSS core reset
arm64: dts: qcom: sm6125: Add missing MDSS core reset
arch/arm64/boot/dts/qcom/sm6115.dtsi | 2 ++ arch/arm64/boot/dts/qcom/sm6125.dtsi | 3 +++ drivers/clk/qcom/dispcc-sm6115.c | 7 +++++++ drivers/clk/qcom/dispcc-sm6125.c | 7 +++++++ include/dt-bindings/clock/qcom,dispcc-sm6125.h | 6 +++++- include/dt-bindings/clock/qcom,sm6115-dispcc.h | 7 +++++-- 6 files changed, 29 insertions(+), 3 deletions(-)
Signature · 1 line
2.52.0
PATCH 1/6 dt-bindings: clock: qcom,sm6115-dispcc: Define MDSS resets
Add the missing defines for MDSS resets.
While here, align comment style with other SoCs.
--- include/dt-bindings/clock/qcom,sm6115-dispcc.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
include/dt-bindings/clock/qcom,sm6115-dispcc.h +5 -2
@@ -6,7 +6,7 @@#ifndef _DT_BINDINGS_CLK_QCOM_DISP_CC_SM6115_H#define _DT_BINDINGS_CLK_QCOM_DISP_CC_SM6115_H -/* DISP_CC clocks */ +/* Clocks */ #define DISP_CC_PLL0 0#define DISP_CC_PLL0_OUT_MAIN 1#define DISP_CC_MDSS_AHB_CLK 2
@@ -30,7 +30,10 @@#define DISP_CC_SLEEP_CLK 20#define DISP_CC_SLEEP_CLK_SRC 21 -/* DISP_CC GDSCR */ +/* Resets */ +#define DISP_CC_MDSS_CORE_BCR 0 + +/* GDSCs */ #define MDSS_GDSC 0#endif
Signature · 1 line
2.52.0
Re: [PATCH 1/6] dt-bindings: clock: qcom,sm6115-dispcc: Define MDSS resets
Quoted 4 lines · Val Packett
Add the missing defines for MDSS resets.
While here, align comment style with other SoCs.Fixes 38557c6fc077 ("dt-bindings: clock: add QCOM SM6115 display clock bindings")
Not a fix or explain the impact of the bug.
Quoted 4 lines
Signed-off-by Val Packett <[email protected]>--- include/dt-bindings/clock/qcom,sm6115-dispcc.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
Best regards,
Krzysztof
PATCH 2/6 dt-bindings: clock: qcom,dispcc-sm6125: Define MDSS resets
In reply to Val PackettAdd the missing defines for MDSS resets.
While here, align comment style with other SoCs.
--- include/dt-bindings/clock/qcom,dispcc-sm6125.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
include/dt-bindings/clock/qcom,dispcc-sm6125.h +5 -1
@@ -6,6 +6,7 @@#ifndef _DT_BINDINGS_CLK_QCOM_DISP_CC_SM6125_H#define _DT_BINDINGS_CLK_QCOM_DISP_CC_SM6125_H +/* Clocks */ #define DISP_CC_PLL0 0#define DISP_CC_MDSS_AHB_CLK 1#define DISP_CC_MDSS_AHB_CLK_SRC 2
@@ -35,7 +36,10 @@#define DISP_CC_MDSS_VSYNC_CLK_SRC 26#define DISP_CC_XO_CLK 27 -/* DISP_CC GDSCR */ +/* Resets */ +#define DISP_CC_MDSS_CORE_BCR 0 + +/* GDSCs */ #define MDSS_GDSC 0#endif
Signature · 1 line
2.52.0
PATCH 3/6 clk: qcom: dispcc-sm6115: Add missing MDSS resets
In reply to Val PackettThe MDSS resets were left undescribed, fix that.
--- drivers/clk/qcom/dispcc-sm6115.c | 7 +++++++ 1 file changed, 7 insertions(+)
drivers/clk/qcom/dispcc-sm6115.c +7 -0
@@ -22,6 +22,7 @@#include "clk-regmap-divider.h" #include "common.h" #include "gdsc.h" +#include "reset.h" enum {DT_BI_TCXO ,
@@ -511,6 +512,10 @@ static struct clk_branch disp_cc_sleep_clk = { }, }; +static const struct qcom_reset_map disp_cc_sm6115_resets[] = { + [DISP_CC_MDSS_CORE_BCR ] = {0x2000 }, +}; +static struct gdsc mdss_gdsc = { .gdscr =0x3000 , .pd = {
@@ -561,6 +566,8 @@ static const struct qcom_cc_desc disp_cc_sm6115_desc = { .config = &disp_cc_sm6115_regmap_config, .clks = disp_cc_sm6115_clocks, .num_clks = ARRAY_SIZE(disp_cc_sm6115_clocks), + .resets = disp_cc_sm6115_resets, + .num_resets = ARRAY_SIZE(disp_cc_sm6115_resets), .gdscs = disp_cc_sm6115_gdscs, .num_gdscs = ARRAY_SIZE(disp_cc_sm6115_gdscs), };
Signature · 1 line
2.52.0
Re: [PATCH 3/6] clk: qcom: dispcc-sm6115: Add missing MDSS resets
Quoted 8 lines · Val Packett
The MDSS resets were left undescribed, fix that.
Fixes 9b518788631c ("clk: qcom: Add display clock controller driver for SM6115")Signed-off-by Val Packett <[email protected]>--- drivers/clk/qcom/dispcc-sm6115.c | 7 +++++++ 1 file changed, 7 insertions(+)
Signature · 2 lines
With best wishes Dmitry
Re: [PATCH 3/6] clk: qcom: dispcc-sm6115: Add missing MDSS resets
In reply to Val PackettQuoted 5 lines · Val Packett
The MDSS resets were left undescribed, fix that.
Fixes 9b518788631c ("clk: qcom: Add display clock controller driver for SM6115")Signed-off-by Val Packett <[email protected]>---
Konrad
PATCH 4/6 clk: qcom: dispcc-sm6125: Add missing MDSS resets
In reply to Val PackettThe MDSS resets were left undescribed, fix that.
--- drivers/clk/qcom/dispcc-sm6125.c | 7 +++++++ 1 file changed, 7 insertions(+)
drivers/clk/qcom/dispcc-sm6125.c +7 -0
@@ -17,6 +17,7 @@#include "clk-regmap.h" #include "common.h" #include "gdsc.h" +#include "reset.h" enum {P_BI_TCXO ,
@@ -607,6 +608,10 @@ static struct clk_branch disp_cc_xo_clk = { }, }; +static const struct qcom_reset_map disp_cc_sm6125_resets[] = { + [DISP_CC_MDSS_CORE_BCR ] = {0x2000 }, +}; +static struct gdsc mdss_gdsc = { .gdscr =0x3000 , .pd = {
@@ -663,6 +668,8 @@ static const struct qcom_cc_desc disp_cc_sm6125_desc = { .config = &disp_cc_sm6125_regmap_config, .clks = disp_cc_sm6125_clocks, .num_clks = ARRAY_SIZE(disp_cc_sm6125_clocks), + .resets = disp_cc_sm6125_resets, + .num_resets = ARRAY_SIZE(disp_cc_sm6125_resets), .gdscs = disp_cc_sm6125_gdscs, .num_gdscs = ARRAY_SIZE(disp_cc_sm6125_gdscs), };
Signature · 1 line
2.52.0
Re: [PATCH 4/6] clk: qcom: dispcc-sm6125: Add missing MDSS resets
Quoted 8 lines · Val Packett
The MDSS resets were left undescribed, fix that.
Fixes 6e87c8f07407 ("clk: qcom: Add display clock controller driver for SM6125")Signed-off-by Val Packett <[email protected]>--- drivers/clk/qcom/dispcc-sm6125.c | 7 +++++++ 1 file changed, 7 insertions(+)
Signature · 2 lines
With best wishes Dmitry
Re: [PATCH 4/6] clk: qcom: dispcc-sm6125: Add missing MDSS resets
In reply to Val PackettQuoted 1 line · Val Packett
The MDSS resets were left undescribed, fix that.
Fix what? It is perfectly fine to have things "undescribed". Explain what is the problem of these being missing.
Quoted 6 lines
Fixes 6e87c8f07407 ("clk: qcom: Add display clock controller driver for SM6125")Signed-off-by Val Packett <[email protected]>--- drivers/clk/qcom/dispcc-sm6125.c | 7 +++++++ 1 file changed, 7 insertions(+)
Best regards,
Krzysztof
Re: [PATCH 4/6] clk: qcom: dispcc-sm6125: Add missing MDSS resets
In reply to Val PackettQuoted 5 lines · Val Packett
The MDSS resets were left undescribed, fix that.
Fixes 6e87c8f07407 ("clk: qcom: Add display clock controller driver for SM6125")Signed-off-by Val Packett <[email protected]>---
Konrad
PATCH 5/6 arm64: dts: qcom: sm6115: Add missing MDSS core reset
In reply to Val PackettTo make sure the display subsystem starts in a predictable state, we need to reset it. Otherwise, unpredictable issues can happen, e.g. on the motorola-guamp smartphone DSI would not transmit anything.
Wire up the reset to fix.
--- arch/arm64/boot/dts/qcom/sm6115.dtsi | 2 ++ 1 file changed, 2 insertions(+)
arch/arm64/boot/dts/qcom/sm6115.dtsi +2 -0
@@ -1864,6 +1864,8 @@ mdss: display-subsystem@5e00000 { <&gcc GCC_DISP_HF_AXI_CLK>, <&dispcc DISP_CC_MDSS_MDP_CLK>; + resets = <&dispcc DISP_CC_MDSS_CORE_BCR>; + interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>; interrupt-controller; #interrupt-cells = <1>;
Signature · 1 line
2.52.0
Re: [PATCH 5/6] arm64: dts: qcom: sm6115: Add missing MDSS core reset
Quoted 4 lines · Val Packett
To make sure the display subsystem starts in a predictable state, we need to reset it. Otherwise, unpredictable issues can happen, e.g. on the motorola-guamp smartphone DSI would not transmit anything.
Quoted 8 lines
Wire up the reset to fix.
Fixes 705e50427d81 ("arm64: dts: qcom: sm6115: Add mdss/dpu node")Signed-off-by Val Packett <[email protected]>--- arch/arm64/boot/dts/qcom/sm6115.dtsi | 2 ++ 1 file changed, 2 insertions(+)
Signature · 2 lines
With best wishes Dmitry
Re: [PATCH 5/6] arm64: dts: qcom: sm6115: Add missing MDSS core reset
In reply to Val PackettQuoted 9 lines · Val Packett
To make sure the display subsystem starts in a predictable state, we need to reset it. Otherwise, unpredictable issues can happen, e.g. on the motorola-guamp smartphone DSI would not transmit anything.
Wire up the reset to fix.
Fixes 705e50427d81 ("arm64: dts: qcom: sm6115: Add mdss/dpu node")Signed-off-by Val Packett <[email protected]>---
Konrad
PATCH 6/6 arm64: dts: qcom: sm6125: Add missing MDSS core reset
In reply to Val PackettTo make sure the display subsystem starts in a predictable state, we need to reset it. On closely related SoC (sm6115) this has caused DSI displays to not work.
Wire up the reset to fix.
--- arch/arm64/boot/dts/qcom/sm6125.dtsi | 3 +++ 1 file changed, 3 insertions(+)
arch/arm64/boot/dts/qcom/sm6125.dtsi +3 -0
@@ -1238,6 +1238,8 @@ mdss: display-subsystem@5e00000 { "ahb", "core"; + resets = <&dispcc DISP_CC_MDSS_CORE_BCR>; + power-domains = <&dispcc MDSS_GDSC>; iommus = <&apps_smmu 0x400 0x0>;
@@ -1437,6 +1439,7 @@ dispcc: clock-controller@5f00000 { power-domains = <&rpmpd RPMPD_VDDCX>; #clock-cells = <1>; + #reset-cells = <1>; #power-domain-cells = <1>; };
Signature · 1 line
2.52.0
Re: [PATCH 6/6] arm64: dts: qcom: sm6125: Add missing MDSS core reset
Quoted 4 lines · Val Packett
To make sure the display subsystem starts in a predictable state, we need to reset it. On closely related SoC (sm6115) this has caused DSI displays to not work.
Quoted 8 lines
Wire up the reset to fix.
Fixes 0865d23a0226 ("arm64: dts: qcom: sm6125: Add display hardware nodes")Signed-off-by Val Packett <[email protected]>--- arch/arm64/boot/dts/qcom/sm6125.dtsi | 3 +++ 1 file changed, 3 insertions(+)
Signature · 2 lines
With best wishes Dmitry
Re: [PATCH 6/6] arm64: dts: qcom: sm6125: Add missing MDSS core reset
In reply to Val PackettQuoted 9 lines · Val Packett
To make sure the display subsystem starts in a predictable state, we need to reset it. On closely related SoC (sm6115) this has caused DSI displays to not work.
Wire up the reset to fix.
Fixes 0865d23a0226 ("arm64: dts: qcom: sm6125: Add display hardware nodes")Signed-off-by Val Packett <[email protected]>---
Konrad
Re: [PATCH 6/6] arm64: dts: qcom: sm6125: Add missing MDSS core reset
In reply to Val PackettQuoted 11 lines · Val Packett
To make sure the display subsystem starts in a predictable state, we need to reset it. On closely related SoC (sm6115) this has caused DSI displays to not work.
Wire up the reset to fix.
Fixes 0865d23a0226 ("arm64: dts: qcom: sm6125: Add display hardware nodes")Signed-off-by Val Packett <[email protected]>--- arch/arm64/boot/dts/qcom/sm6125.dtsi | 3 +++ 1 file changed, 3 insertions(+)
This makes a panel driver I'm testing work more reliably, right after boot instead of some random time later.
Regards, Yedaya