Message ID | 20230718-sm6125-dpu-v3-6-6c5a56e99820@somainline.org |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:c923:0:b0:3e4:2afc:c1 with SMTP id j3csp2018993vqt; Tue, 18 Jul 2023 14:27:16 -0700 (PDT) X-Google-Smtp-Source: APBJJlF8IsMI8jpM3rvWc7f0/ufhgFR1UgjQusDNPfJPNiYFmH8w3WuIeW1FsRI7z2l8dHvt1/WO X-Received: by 2002:a05:6402:1347:b0:51e:5786:dcd0 with SMTP id y7-20020a056402134700b0051e5786dcd0mr914970edw.20.1689715636405; Tue, 18 Jul 2023 14:27:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689715636; cv=none; d=google.com; s=arc-20160816; b=VsH4BRJIGW4DHuAcc3I3UZ+pjHwkCzr9HjE+cKXZpNyZ6Sa9BjGw6bKrO+f0PQEIgi oIhatx1z/RBtVbFINnDj/k9ra1X6z3xDwF4tRWjVXXTE+AUfsSW8kn4DxkxL+LPM0mrP pFa4YaSpSFcEXTDc1G/puvVmAvHgO2SgvPXzVXuvdfG1p9GvNau8+axPmnb3n6XlUaIT xWG2AsymcIHrRPIW4F3KrOR3aEWR1cHbPKEM6kdAuffBEx3YcmK65UnWFkbTS5IjvFt9 eS1/aRjjXWgLg2+ILNtKf3Hftq+XTmpHcNtCriVYFadLwgAUHAvMbhp1IfnDWpX0mKUe 7g9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from; bh=qJEaTDIMw1yriuh/uTrrxQW4dplkjXnokounlgnxkaY=; fh=XCLPd95NpP6a7nxU7Z41HcJNASq6E03t5OkjbIehthU=; b=dKwaJ5Vepg2mq+qYdidatjnlkjhqUGfojxK+Bj+u0kafdPx9FvrRKGu5sFNlPX4zPu kSUIpuyQFDwpAWMrUOuiwdkitO+OAcLTZieJclyLBmyQR3lo0gm8YYdwaJQDA/2LS7rt oWmsczWUEQts/7ko4pS2zMvpWNoawG/7H9tlT27BNkTDN7R6YghuMD4VPsykAsmaa5Sv C3jc+IXAgi2PxKnQFb82cM3a90SLn5B5uxYCEUI9L/0Ifr0sRgeRx/ZrSu7H9KlHq0ss jClsDHwE57hpO1Lyt/IxMjKiyeO9AgHK4IrJfe27wvnDnZqCCxynFlVmuYF8ew7Udx1g liYw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w13-20020a50fa8d000000b0051da5fd4a05si1790538edr.607.2023.07.18.14.26.52; Tue, 18 Jul 2023 14:27:16 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231404AbjGRVZC (ORCPT <rfc822;assdfgzxcv4@gmail.com> + 99 others); Tue, 18 Jul 2023 17:25:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42784 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231338AbjGRVYz (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Tue, 18 Jul 2023 17:24:55 -0400 Received: from m-r2.th.seeweb.it (m-r2.th.seeweb.it [5.144.164.171]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5FC641BC3 for <linux-kernel@vger.kernel.org>; Tue, 18 Jul 2023 14:24:49 -0700 (PDT) Received: from Marijn-Arch-PC.localdomain (94-211-6-86.cable.dynamic.v4.ziggo.nl [94.211.6.86]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by m-r2.th.seeweb.it (Postfix) with ESMTPSA id 4FC423F6FE; Tue, 18 Jul 2023 23:24:46 +0200 (CEST) From: Marijn Suijten <marijn.suijten@somainline.org> Date: Tue, 18 Jul 2023 23:24:42 +0200 Subject: [PATCH v3 06/15] dt-bindings: display/msm: sc7180-dpu: Describe SM6125 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20230718-sm6125-dpu-v3-6-6c5a56e99820@somainline.org> References: <20230718-sm6125-dpu-v3-0-6c5a56e99820@somainline.org> In-Reply-To: <20230718-sm6125-dpu-v3-0-6c5a56e99820@somainline.org> To: Andy Gross <agross@kernel.org>, Bjorn Andersson <andersson@kernel.org>, Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Conor Dooley <conor+dt@kernel.org>, Michael Turquette <mturquette@baylibre.com>, Stephen Boyd <sboyd@kernel.org>, Rob Clark <robdclark@gmail.com>, Abhinav Kumar <quic_abhinavk@quicinc.com>, Dmitry Baryshkov <dmitry.baryshkov@linaro.org>, Sean Paul <sean@poorly.run>, David Airlie <airlied@gmail.com>, Daniel Vetter <daniel@ffwll.ch>, Krishna Manikandan <quic_mkrishn@quicinc.com>, Marijn Suijten <marijn.suijten@somainline.org>, Loic Poulain <loic.poulain@linaro.org>, Konrad Dybcio <konrad.dybcio@somainline.org> Cc: ~postmarketos/upstreaming@lists.sr.ht, AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>, Konrad Dybcio <konrad.dybcio@linaro.org>, Martin Botka <martin.botka@somainline.org>, Jami Kettunen <jami.kettunen@somainline.org>, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Krzysztof Kozlowski <krzk@kernel.org>, linux-clk@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, Lux Aliaga <they@mint.lgbt>, Rob Herring <robh@kernel.org> X-Mailer: b4 0.12.3 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771795263330518174 X-GMAIL-MSGID: 1771795263330518174 |
Series |
drm/msm: Add SM6125 MDSS/DPU hardware and enable Sony Xperia 10 II panel
|
|
Commit Message
Marijn Suijten
July 18, 2023, 9:24 p.m. UTC
SM6125 is identical to SM6375 except that while downstream also defines a throttle clock, its presence results in timeouts whereas SM6375 requires it to not observe any timeouts. This is represented by reducing the clock array length to 6 so that it cannot be passed. Note that any SoC other than SM6375 (currently SC7180 and SM6350) are unconstrained and could either pass or leave out this "throttle" clock. Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org> --- .../devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
Comments
On 19/07/2023 00:24, Marijn Suijten wrote: > SM6125 is identical to SM6375 except that while downstream also defines > a throttle clock, its presence results in timeouts whereas SM6375 > requires it to not observe any timeouts. This is represented by > reducing the clock array length to 6 so that it cannot be passed. Note > that any SoC other than SM6375 (currently SC7180 and SM6350) are > unconstrained and could either pass or leave out this "throttle" clock. Could you please describe, what kind of timeouts do you observe? Is this the DSI underruns issue? If so, it might be fixed by the MDSS interconnect fix ([1]). [1] https://patchwork.freedesktop.org/series/116576/ > > Reviewed-by: Rob Herring <robh@kernel.org> > Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org> > --- > .../devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml b/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml > index 630b11480496..37f66940c5e3 100644 > --- a/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml > +++ b/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml > @@ -15,6 +15,7 @@ properties: > compatible: > enum: > - qcom,sc7180-dpu > + - qcom,sm6125-dpu > - qcom,sm6350-dpu > - qcom,sm6375-dpu > > @@ -73,6 +74,19 @@ allOf: > clock-names: > minItems: 7 > > + - if: > + properties: > + compatible: > + const: qcom,sm6125-dpu > + > + then: > + properties: > + clocks: > + maxItems: 6 > + > + clock-names: > + maxItems: 6 > + > examples: > - | > #include <dt-bindings/clock/qcom,dispcc-sc7180.h> >
On 2023-07-19 01:06:03, Dmitry Baryshkov wrote: > On 19/07/2023 00:24, Marijn Suijten wrote: > > SM6125 is identical to SM6375 except that while downstream also defines > > a throttle clock, its presence results in timeouts whereas SM6375 > > requires it to not observe any timeouts. This is represented by > > reducing the clock array length to 6 so that it cannot be passed. Note > > that any SoC other than SM6375 (currently SC7180 and SM6350) are > > unconstrained and could either pass or leave out this "throttle" clock. > > Could you please describe, what kind of timeouts do you observe? Is this > the DSI underruns issue? Ping-pong timeouts and low(er) framerate. However, they were previosuly not happening on a random boot out of tens... and now I can no longer reproduce the timeout on 4 consecutive boots after adding the throttle clock. Could it perhaps be the power domains and opps that we added in v2 and v3? We previously discussed in DMs that the rate was bouncing between 25MHz and 403MHz without the clock specified, and with it it it got set at 385 or 403MHz. Now, a month or so later, repeatedly running this command shows 25MHz when the panel is not being refreshed, and between 337 and 403MHz on modetest -r -v: sony-pdx201 ~ $ sudo ./debugcc -p sm6125 gcc_disp_throttle_core_clk gcc_disp_throttle_core_clk: 337.848277MHz (337848277Hz) Either all these boots are flukes, or it is really fixed and this patch should be revised... > If so, it might be fixed by the MDSS > interconnect fix ([1]). > > [1] https://patchwork.freedesktop.org/series/116576/ Might have an effect but I don't have any interconnects defined in this SoC DT yet. - Marijn > > Reviewed-by: Rob Herring <robh@kernel.org> > > Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org> > > --- > > .../devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml | 14 ++++++++++++++ > > 1 file changed, 14 insertions(+) > > > > diff --git a/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml b/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml > > index 630b11480496..37f66940c5e3 100644 > > --- a/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml > > +++ b/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml > > @@ -15,6 +15,7 @@ properties: > > compatible: > > enum: > > - qcom,sc7180-dpu > > + - qcom,sm6125-dpu > > - qcom,sm6350-dpu > > - qcom,sm6375-dpu > > > > @@ -73,6 +74,19 @@ allOf: > > clock-names: > > minItems: 7 > > > > + - if: > > + properties: > > + compatible: > > + const: qcom,sm6125-dpu > > + > > + then: > > + properties: > > + clocks: > > + maxItems: 6 > > + > > + clock-names: > > + maxItems: 6 > > + > > examples: > > - | > > #include <dt-bindings/clock/qcom,dispcc-sc7180.h> > > > > -- > With best wishes > Dmitry >
On Thu, 20 Jul 2023 at 01:09, Marijn Suijten <marijn.suijten@somainline.org> wrote: > > On 2023-07-19 01:06:03, Dmitry Baryshkov wrote: > > On 19/07/2023 00:24, Marijn Suijten wrote: > > > SM6125 is identical to SM6375 except that while downstream also defines > > > a throttle clock, its presence results in timeouts whereas SM6375 > > > requires it to not observe any timeouts. This is represented by > > > reducing the clock array length to 6 so that it cannot be passed. Note > > > that any SoC other than SM6375 (currently SC7180 and SM6350) are > > > unconstrained and could either pass or leave out this "throttle" clock. > > > > Could you please describe, what kind of timeouts do you observe? Is this > > the DSI underruns issue? > > Ping-pong timeouts and low(er) framerate. However, they were previosuly > not happening on a random boot out of tens... and now I can no longer > reproduce the timeout on 4 consecutive boots after adding the throttle > clock. Could it perhaps be the power domains and opps that we added in > v2 and v3? Quite unlikely, but who knows. My main question is whether we should continue skipping the throttle clocks or if it should be enabled now. > > We previously discussed in DMs that the rate was bouncing between 25MHz > and 403MHz without the clock specified, and with it it it got set at 385 > or 403MHz. Now, a month or so later, repeatedly running this command > shows 25MHz when the panel is not being refreshed, and between 337 and > 403MHz on modetest -r -v: > > sony-pdx201 ~ $ sudo ./debugcc -p sm6125 gcc_disp_throttle_core_clk > gcc_disp_throttle_core_clk: 337.848277MHz (337848277Hz) > > Either all these boots are flukes, or it is really fixed and this patch > should be revised... > > > If so, it might be fixed by the MDSS > > interconnect fix ([1]). > > > > [1] https://patchwork.freedesktop.org/series/116576/ > > Might have an effect but I don't have any interconnects defined in this > SoC DT yet. > > - Marijn > > > > Reviewed-by: Rob Herring <robh@kernel.org> > > > Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org> > > > --- > > > .../devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml | 14 ++++++++++++++ > > > 1 file changed, 14 insertions(+) > > > > > > diff --git a/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml b/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml > > > index 630b11480496..37f66940c5e3 100644 > > > --- a/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml > > > +++ b/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml > > > @@ -15,6 +15,7 @@ properties: > > > compatible: > > > enum: > > > - qcom,sc7180-dpu > > > + - qcom,sm6125-dpu > > > - qcom,sm6350-dpu > > > - qcom,sm6375-dpu > > > > > > @@ -73,6 +74,19 @@ allOf: > > > clock-names: > > > minItems: 7 > > > > > > + - if: > > > + properties: > > > + compatible: > > > + const: qcom,sm6125-dpu > > > + > > > + then: > > > + properties: > > > + clocks: > > > + maxItems: 6 > > > + > > > + clock-names: > > > + maxItems: 6 > > > + > > > examples: > > > - | > > > #include <dt-bindings/clock/qcom,dispcc-sc7180.h> > > > > > > > -- > > With best wishes > > Dmitry > >
On 2023-07-20 01:24:27, Dmitry Baryshkov wrote: > On Thu, 20 Jul 2023 at 01:09, Marijn Suijten > <marijn.suijten@somainline.org> wrote: > > > > On 2023-07-19 01:06:03, Dmitry Baryshkov wrote: > > > On 19/07/2023 00:24, Marijn Suijten wrote: > > > > SM6125 is identical to SM6375 except that while downstream also defines > > > > a throttle clock, its presence results in timeouts whereas SM6375 > > > > requires it to not observe any timeouts. This is represented by > > > > reducing the clock array length to 6 so that it cannot be passed. Note > > > > that any SoC other than SM6375 (currently SC7180 and SM6350) are > > > > unconstrained and could either pass or leave out this "throttle" clock. > > > > > > Could you please describe, what kind of timeouts do you observe? Is this > > > the DSI underruns issue? > > > > Ping-pong timeouts and low(er) framerate. However, they were previosuly > > not happening on a random boot out of tens... and now I can no longer > > reproduce the timeout on 4 consecutive boots after adding the throttle > > clock. Could it perhaps be the power domains and opps that we added in > > v2 and v3? > > Quite unlikely, but who knows. My main question is whether we should > continue skipping the throttle clocks or if it should be enabled now. And that "main question" could ... drum roll please ... only be answered by knowing if this got "accidentally" fixed by providing the right PMs or some other change entirely while I changed base branch and defconfig. Or if this is just a fluke that persisted multiple boots but will fall apart in some time and/or when someone else runs this on their device? - Marijn <snip>
On 2023-07-20 21:10:52, Marijn Suijten wrote: > On 2023-07-20 01:24:27, Dmitry Baryshkov wrote: > > On Thu, 20 Jul 2023 at 01:09, Marijn Suijten > > <marijn.suijten@somainline.org> wrote: > > > > > > On 2023-07-19 01:06:03, Dmitry Baryshkov wrote: > > > > On 19/07/2023 00:24, Marijn Suijten wrote: > > > > > SM6125 is identical to SM6375 except that while downstream also defines > > > > > a throttle clock, its presence results in timeouts whereas SM6375 > > > > > requires it to not observe any timeouts. This is represented by > > > > > reducing the clock array length to 6 so that it cannot be passed. Note > > > > > that any SoC other than SM6375 (currently SC7180 and SM6350) are > > > > > unconstrained and could either pass or leave out this "throttle" clock. > > > > > > > > Could you please describe, what kind of timeouts do you observe? Is this > > > > the DSI underruns issue? > > > > > > Ping-pong timeouts and low(er) framerate. However, they were previosuly > > > not happening on a random boot out of tens... and now I can no longer > > > reproduce the timeout on 4 consecutive boots after adding the throttle > > > clock. Could it perhaps be the power domains and opps that we added in > > > v2 and v3? > > > > Quite unlikely, but who knows. My main question is whether we should > > continue skipping the throttle clocks or if it should be enabled now. > > And that "main question" could ... drum roll please ... only be answered > by knowing if this got "accidentally" fixed by providing the right PMs > or some other change entirely while I changed base branch and defconfig. > Or if this is just a fluke that persisted multiple boots but will fall > apart in some time and/or when someone else runs this on their device? I'm going to write this off as PEBKAC from my past self. I went back to an older branch where I recall adding this clock, added it to DT again, and observed no timeouts or inexplicable behaviour on multiple boots. Since downstream passes it as well, I'll revise this series for v4 to require it in dt-bindings, and include it in DT. - Marijn
diff --git a/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml b/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml index 630b11480496..37f66940c5e3 100644 --- a/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml +++ b/Documentation/devicetree/bindings/display/msm/qcom,sc7180-dpu.yaml @@ -15,6 +15,7 @@ properties: compatible: enum: - qcom,sc7180-dpu + - qcom,sm6125-dpu - qcom,sm6350-dpu - qcom,sm6375-dpu @@ -73,6 +74,19 @@ allOf: clock-names: minItems: 7 + - if: + properties: + compatible: + const: qcom,sm6125-dpu + + then: + properties: + clocks: + maxItems: 6 + + clock-names: + maxItems: 6 + examples: - | #include <dt-bindings/clock/qcom,dispcc-sc7180.h>