arm64: dts: qcom: msm8996pro-xiaomi-scorpio: Remove DSI PHY clocks from MMCC

Message ID 20221107114016.356112-1-y.oudjana@protonmail.com
State New
Headers
Series arm64: dts: qcom: msm8996pro-xiaomi-scorpio: Remove DSI PHY clocks from MMCC |

Commit Message

Yassine Oudjana Nov. 7, 2022, 11:40 a.m. UTC
  From: Yassine Oudjana <y.oudjana@protonmail.com>

Having DSI PHY clocks listed in the MMCC node while MDSS is disabled makes
it defer probe indefinitely, resulting in simplefb and other blocks that
depend on its clocks to defer probe as well. Remove DSI PHY clocks from
MMCC to let it probe with MDSS disabled.

Fixes: 48aa636285ad ("arm64: dts: qcom: msm8996: add clocks to the MMCC device node")
Signed-off-by: Yassine Oudjana <y.oudjana@protonmail.com>
---
 .../boot/dts/qcom/msm8996pro-xiaomi-scorpio.dts     | 13 +++++++++++++
 1 file changed, 13 insertions(+)
  

Comments

Bjorn Andersson Nov. 8, 2022, 4:41 a.m. UTC | #1
On Mon, Nov 07, 2022 at 02:40:17PM +0300, Yassine Oudjana wrote:
> From: Yassine Oudjana <y.oudjana@protonmail.com>
> 
> Having DSI PHY clocks listed in the MMCC node while MDSS is disabled makes
> it defer probe indefinitely, resulting in simplefb and other blocks that
> depend on its clocks to defer probe as well. Remove DSI PHY clocks from
> MMCC to let it probe with MDSS disabled.
> 

Isn't this a generic problem that we will have all over the place, where
we describe incoming clocks from all PHYs and then only enable the ones
actually available on each platform?

Am I missing something special with this case? I think the kernel need
to handle this.

Regards,
Bjorn

> Fixes: 48aa636285ad ("arm64: dts: qcom: msm8996: add clocks to the MMCC device node")
> Signed-off-by: Yassine Oudjana <y.oudjana@protonmail.com>
> ---
>  .../boot/dts/qcom/msm8996pro-xiaomi-scorpio.dts     | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/msm8996pro-xiaomi-scorpio.dts b/arch/arm64/boot/dts/qcom/msm8996pro-xiaomi-scorpio.dts
> index 7bf6ad1a214b..c68c2dadd7b4 100644
> --- a/arch/arm64/boot/dts/qcom/msm8996pro-xiaomi-scorpio.dts
> +++ b/arch/arm64/boot/dts/qcom/msm8996pro-xiaomi-scorpio.dts
> @@ -113,6 +113,19 @@ &mdss {
>  	status = "disabled";
>  };
>  
> +&mmcc {
> +	/*
> +	 * Remove non-essential DSI PHY clocks to allow MMCC to probe
> +	 * with MDSS disabled.
> +	 */
> +	clocks = <&xo_board>,
> +		 <&gcc GCC_MMSS_NOC_CFG_AHB_CLK>,
> +		 <&gcc GPLL0>;
> +	clock-names = "xo",
> +		      "gcc_mmss_noc_cfg_ahb_clk",
> +		      "gpll0";
> +};
> +
>  &mss_pil {
>  	firmware-name = "qcom/msm8996/scorpio/mba.mbn",
>  			"qcom/msm8996/scorpio/modem.mbn";
> -- 
> 2.38.1
>
  

Patch

diff --git a/arch/arm64/boot/dts/qcom/msm8996pro-xiaomi-scorpio.dts b/arch/arm64/boot/dts/qcom/msm8996pro-xiaomi-scorpio.dts
index 7bf6ad1a214b..c68c2dadd7b4 100644
--- a/arch/arm64/boot/dts/qcom/msm8996pro-xiaomi-scorpio.dts
+++ b/arch/arm64/boot/dts/qcom/msm8996pro-xiaomi-scorpio.dts
@@ -113,6 +113,19 @@  &mdss {
 	status = "disabled";
 };
 
+&mmcc {
+	/*
+	 * Remove non-essential DSI PHY clocks to allow MMCC to probe
+	 * with MDSS disabled.
+	 */
+	clocks = <&xo_board>,
+		 <&gcc GCC_MMSS_NOC_CFG_AHB_CLK>,
+		 <&gcc GPLL0>;
+	clock-names = "xo",
+		      "gcc_mmss_noc_cfg_ahb_clk",
+		      "gpll0";
+};
+
 &mss_pil {
 	firmware-name = "qcom/msm8996/scorpio/mba.mbn",
 			"qcom/msm8996/scorpio/modem.mbn";