Message ID | 20230223-topic-gmuwrapper-v8-1-69c68206609e@linaro.org |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp1529329vqr; Mon, 29 May 2023 06:53:40 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6FDQVpNAZTYQrcm7lKo0sU3H6gF7g/qJxm5r5ceE3EL4rWmatG3M05HAkYTEgNoVv4i9Sl X-Received: by 2002:a17:90b:20d:b0:24e:201e:dcbd with SMTP id fy13-20020a17090b020d00b0024e201edcbdmr8384333pjb.21.1685368420189; Mon, 29 May 2023 06:53:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685368420; cv=none; d=google.com; s=arc-20160816; b=XLvcKFxr1J+9v4zTTGZBzDdBKCe8sX1nwk0bkYWMHlCzZEYpk5a2bEQZEzolijyR3H h/d+OFYAztV36FOj0G2PgJy8q4zA3rg6B6O0riabvH5UJWZ9uPUj6FD2af9EBzjCKUvc Xj1kI1qPd1FZiqJsfZjavDqn/s2ISli53jiv/ETfrETUDpTUbkm93qUC3sVdBEiI+l24 PK9wD5oPmGZ0gg0yxDsXjQsAponXLPf5FnNRZbLZjWD5e/Z4V4Y0eA554J/fC6awX9x9 AW7sBnTL4kegJEYYwidc7MJ4e/nMAVdwwAJGsdQi0aNuQIhynzLr1hCgOxiwDuWnrpF9 htUg== 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 :dkim-signature; bh=0cuLBlArSvHUOuH6GEvI+l8s8FmhxL3706TAOMTxRVY=; b=JxoPGCio8YJTNCx+cqbpKhMoabxLJ61xZXp7Z8tCWoJWaUS8EPWmNmkoCg+tVpvy08 9xAnEpvKFSGRtPRAMHyZgck+1uqdfLrPlyOwDS6otExNgQfvZZZCGqCMmbTTAVV87iWU 16/AETB2Bw5KMEssLgbYAhwVAij38woD6yeEJ4m39J0UcBOnbcsJzacyJ8s/PnSoToaq Obk2XRn6MGiJF+P4s/v8SYGp1m+PAn548IoqNZHxUSIGENlR33wQfvm/AFIJ7psqm8gh rybLDVO96MhSlG30JyxTUt8/V/8PH1IZlvk7R3xv5c0naYIbnbUq9t7czzFx+K2J5/mB tQpA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=XxzGjWQk; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 15-20020a63030f000000b0051b3c11392bsi9703051pgd.783.2023.05.29.06.53.26; Mon, 29 May 2023 06:53:40 -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; dkim=pass header.i=@linaro.org header.s=google header.b=XxzGjWQk; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229939AbjE2Nwc (ORCPT <rfc822;callmefire3@gmail.com> + 99 others); Mon, 29 May 2023 09:52:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35678 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229913AbjE2Nwa (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Mon, 29 May 2023 09:52:30 -0400 Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com [IPv6:2a00:1450:4864:20::12b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 69198AB for <linux-kernel@vger.kernel.org>; Mon, 29 May 2023 06:52:28 -0700 (PDT) Received: by mail-lf1-x12b.google.com with SMTP id 2adb3069b0e04-4f3b4ed6fdeso3438407e87.3 for <linux-kernel@vger.kernel.org>; Mon, 29 May 2023 06:52:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1685368346; x=1687960346; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=0cuLBlArSvHUOuH6GEvI+l8s8FmhxL3706TAOMTxRVY=; b=XxzGjWQkuX8LH1JQ7CLt/0mi5Dm/25JxSyFPsjCuYSfUVBVhjRGwGqv91xjoy68Dyx lQm/v31HyrGZI+4mNlbjrfyKWeKwnDHvMVAfwwZ3iaHhZtSDRYNTzl9fcupcp3lMvm7T Bfz68Iq/fF7OA5qoyiAO6aCQ9EyIj3WA6YmyZqINJvt45HyDp1VXFe8klqk/1Vk0xeTT zOGGXvyxs6PPMOmd7/8ZYMkX8BxHNFdldENu1RaKkDI706eS3M+AJ6rmLCzk4qAPrJ4b 1V8Kd0vkfkV0Ni2NrMDul1J/ZJwckXbHjX7rJyy1u+clEEq87I73Q8GDww8Nevtck83B i93g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685368346; x=1687960346; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0cuLBlArSvHUOuH6GEvI+l8s8FmhxL3706TAOMTxRVY=; b=FMf60nbvkS4diDolhCbKBXtmJKMl9V3wHaroG5yNyN258nKf3jP5oP/Onj3qHUHem/ TUeWbdj/h1fiO0iu0IYhAbXA9z7AwiSMSy0COQstfWYpKdhXpwo7+8CVkXmsRLBx0DvG w+gA0ic2q1NUszPElhtx5GlicbN0Y/dvfMzupcJBvYtNHpwePw7HIkViFS5Q+NxgF6iF 7OJzWqYjeT6wH+2nLjCdfT8R0LbDthbUgQqniq81qK4mc30hQU9k/AhvSby3dUwB4RlP Fhbk0eoOdRVXnIRX1GGY1RrJSN75oxUQu0eDz8RoFCFfuWpgiCks2eBkB3sQ8sEoOlFI LBuQ== X-Gm-Message-State: AC+VfDyDiFNcOQDaLJzjh6bqdYG1Ql7l/hF5hFm12JeTfO6WbuqqJUAU u7Ct+845i/iyAOB/ivsO1bH3cQ== X-Received: by 2002:ac2:4a76:0:b0:4f4:dfd4:33e4 with SMTP id q22-20020ac24a76000000b004f4dfd433e4mr3271117lfp.51.1685368346747; Mon, 29 May 2023 06:52:26 -0700 (PDT) Received: from [192.168.1.101] (abyj77.neoplus.adsl.tpnet.pl. [83.9.29.77]) by smtp.gmail.com with ESMTPSA id c16-20020ac25310000000b004f2532cfbc1sm4700lfh.81.2023.05.29.06.52.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 May 2023 06:52:26 -0700 (PDT) From: Konrad Dybcio <konrad.dybcio@linaro.org> Date: Mon, 29 May 2023 15:52:20 +0200 Subject: [PATCH v8 01/18] dt-bindings: display/msm: gpu: Document GMU wrapper-equipped A6xx MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20230223-topic-gmuwrapper-v8-1-69c68206609e@linaro.org> References: <20230223-topic-gmuwrapper-v8-0-69c68206609e@linaro.org> In-Reply-To: <20230223-topic-gmuwrapper-v8-0-69c68206609e@linaro.org> To: 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>, Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Bjorn Andersson <andersson@kernel.org>, Konrad Dybcio <konrad.dybcio@somainline.org>, Akhil P Oommen <quic_akhilpo@quicinc.com>, Conor Dooley <conor+dt@kernel.org> Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Rob Clark <robdclark@chromium.org>, Marijn Suijten <marijn.suijten@somainline.org>, Konrad Dybcio <konrad.dybcio@linaro.org> X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1685368343; l=3273; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=b6+fi5fCGzlZMR9R+EmbwaeFE4doeq5ZoHaz6yo6/U0=; b=m5YOP8qYT6dteRhaCWAzqoub/NNS3RW0KZBOeIYF3MKua6KdI4RiWWLpW7I6Fy6ZMfxp+15X6 +rinzEhHTBwB/9fp6GCRvBGXTrTZMh02HHtjB9HCnCO5j/+wfoW3B3f X-Developer-Key: i=konrad.dybcio@linaro.org; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham 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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1767236876398720095?= X-GMAIL-MSGID: =?utf-8?q?1767236876398720095?= |
Series |
GMU-less A6xx support (A610, A619_holi)
|
|
Commit Message
Konrad Dybcio
May 29, 2023, 1:52 p.m. UTC
The "GMU Wrapper" is Qualcomm's name for "let's treat the GPU blocks
we'd normally assign to the GMU as if they were a part of the GMU, even
though they are not". It's a (good) software representation of the GMU_CX
and GMU_GX register spaces within the GPUSS that helps us programatically
treat these de-facto GMU-less parts in a way that's very similar to their
GMU-equipped cousins, massively saving up on code duplication.
The "wrapper" register space was specifically designed to mimic the layout
of a real GMU, though it rather obviously does not have the M3 core et al.
GMU wrapper-equipped A6xx GPUs require clocks and clock-names to be
specified under the GPU node, just like their older cousins. Account
for that.
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
---
.../devicetree/bindings/display/msm/gpu.yaml | 61 ++++++++++++++++++----
1 file changed, 52 insertions(+), 9 deletions(-)
Comments
On Mon, 29 May 2023 15:52:20 +0200, Konrad Dybcio wrote: > The "GMU Wrapper" is Qualcomm's name for "let's treat the GPU blocks > we'd normally assign to the GMU as if they were a part of the GMU, even > though they are not". It's a (good) software representation of the GMU_CX > and GMU_GX register spaces within the GPUSS that helps us programatically > treat these de-facto GMU-less parts in a way that's very similar to their > GMU-equipped cousins, massively saving up on code duplication. > > The "wrapper" register space was specifically designed to mimic the layout > of a real GMU, though it rather obviously does not have the M3 core et al. > > GMU wrapper-equipped A6xx GPUs require clocks and clock-names to be > specified under the GPU node, just like their older cousins. Account > for that. > > Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> > --- > .../devicetree/bindings/display/msm/gpu.yaml | 61 ++++++++++++++++++---- > 1 file changed, 52 insertions(+), 9 deletions(-) > Running 'make dtbs_check' with the schema in this patch gives the following warnings. Consider if they are expected or the schema is incorrect. These may not be new warnings. Note that it is not yet a requirement to have 0 warnings for dtbs_check. This will change in the future. Full log is available here: https://patchwork.ozlabs.org/patch/1787121 gpu@2c00000: compatible: 'oneOf' conditional failed, one must be fixed: arch/arm64/boot/dts/qcom/sm8150-hdk.dtb arch/arm64/boot/dts/qcom/sm8150-mtp.dtb
On 30.05.2023 14:26, Krzysztof Kozlowski wrote: > On Mon, 29 May 2023 15:52:20 +0200, Konrad Dybcio wrote: >> The "GMU Wrapper" is Qualcomm's name for "let's treat the GPU blocks >> we'd normally assign to the GMU as if they were a part of the GMU, even >> though they are not". It's a (good) software representation of the GMU_CX >> and GMU_GX register spaces within the GPUSS that helps us programatically >> treat these de-facto GMU-less parts in a way that's very similar to their >> GMU-equipped cousins, massively saving up on code duplication. >> >> The "wrapper" register space was specifically designed to mimic the layout >> of a real GMU, though it rather obviously does not have the M3 core et al. >> >> GMU wrapper-equipped A6xx GPUs require clocks and clock-names to be >> specified under the GPU node, just like their older cousins. Account >> for that. >> >> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> >> --- >> .../devicetree/bindings/display/msm/gpu.yaml | 61 ++++++++++++++++++---- >> 1 file changed, 52 insertions(+), 9 deletions(-) >> > > Running 'make dtbs_check' with the schema in this patch gives the > following warnings. Consider if they are expected or the schema is > incorrect. These may not be new warnings. I think it'd be beneficial if the bot diffed the output of checks pre- and post- patch. Konrad > > Note that it is not yet a requirement to have 0 warnings for dtbs_check. > This will change in the future. > > Full log is available here: https://patchwork.ozlabs.org/patch/1787121 > > > gpu@2c00000: compatible: 'oneOf' conditional failed, one must be fixed: > arch/arm64/boot/dts/qcom/sm8150-hdk.dtb > arch/arm64/boot/dts/qcom/sm8150-mtp.dtb
On Tue, May 30, 2023 at 03:35:09PM +0200, Konrad Dybcio wrote: > > > On 30.05.2023 14:26, Krzysztof Kozlowski wrote: > > On Mon, 29 May 2023 15:52:20 +0200, Konrad Dybcio wrote: > >> The "GMU Wrapper" is Qualcomm's name for "let's treat the GPU blocks > >> we'd normally assign to the GMU as if they were a part of the GMU, even > >> though they are not". It's a (good) software representation of the GMU_CX > >> and GMU_GX register spaces within the GPUSS that helps us programatically > >> treat these de-facto GMU-less parts in a way that's very similar to their > >> GMU-equipped cousins, massively saving up on code duplication. > >> > >> The "wrapper" register space was specifically designed to mimic the layout > >> of a real GMU, though it rather obviously does not have the M3 core et al. > >> > >> GMU wrapper-equipped A6xx GPUs require clocks and clock-names to be > >> specified under the GPU node, just like their older cousins. Account > >> for that. > >> > >> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> > >> --- > >> .../devicetree/bindings/display/msm/gpu.yaml | 61 ++++++++++++++++++---- > >> 1 file changed, 52 insertions(+), 9 deletions(-) > >> > > > > Running 'make dtbs_check' with the schema in this patch gives the > > following warnings. Consider if they are expected or the schema is > > incorrect. These may not be new warnings. > I think it'd be beneficial if the bot diffed the output of checks pre- > and post- patch. Fix all the warnings and it will. ;) Care to donate h/w to run the build twice every time? Really what I care about on these is when I keep getting changes to a schema and the list of warnings remains long and not getting fixed. This case was less than useful with just the oneOf warning. Rob
On Mon, 29 May 2023 15:52:20 +0200, Konrad Dybcio wrote: > The "GMU Wrapper" is Qualcomm's name for "let's treat the GPU blocks > we'd normally assign to the GMU as if they were a part of the GMU, even > though they are not". It's a (good) software representation of the GMU_CX > and GMU_GX register spaces within the GPUSS that helps us programatically > treat these de-facto GMU-less parts in a way that's very similar to their > GMU-equipped cousins, massively saving up on code duplication. > > The "wrapper" register space was specifically designed to mimic the layout > of a real GMU, though it rather obviously does not have the M3 core et al. > > GMU wrapper-equipped A6xx GPUs require clocks and clock-names to be > specified under the GPU node, just like their older cousins. Account > for that. > > Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> > --- > .../devicetree/bindings/display/msm/gpu.yaml | 61 ++++++++++++++++++---- > 1 file changed, 52 insertions(+), 9 deletions(-) > Acked-by: Rob Herring <robh@kernel.org>
On 8.06.2023 22:58, Rob Herring wrote: > On Tue, May 30, 2023 at 03:35:09PM +0200, Konrad Dybcio wrote: >> >> >> On 30.05.2023 14:26, Krzysztof Kozlowski wrote: >>> On Mon, 29 May 2023 15:52:20 +0200, Konrad Dybcio wrote: >>>> The "GMU Wrapper" is Qualcomm's name for "let's treat the GPU blocks >>>> we'd normally assign to the GMU as if they were a part of the GMU, even >>>> though they are not". It's a (good) software representation of the GMU_CX >>>> and GMU_GX register spaces within the GPUSS that helps us programatically >>>> treat these de-facto GMU-less parts in a way that's very similar to their >>>> GMU-equipped cousins, massively saving up on code duplication. >>>> >>>> The "wrapper" register space was specifically designed to mimic the layout >>>> of a real GMU, though it rather obviously does not have the M3 core et al. >>>> >>>> GMU wrapper-equipped A6xx GPUs require clocks and clock-names to be >>>> specified under the GPU node, just like their older cousins. Account >>>> for that. >>>> >>>> Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> >>>> --- >>>> .../devicetree/bindings/display/msm/gpu.yaml | 61 ++++++++++++++++++---- >>>> 1 file changed, 52 insertions(+), 9 deletions(-) >>>> >>> >>> Running 'make dtbs_check' with the schema in this patch gives the >>> following warnings. Consider if they are expected or the schema is >>> incorrect. These may not be new warnings. >> I think it'd be beneficial if the bot diffed the output of checks pre- >> and post- patch. > > Fix all the warnings and it will. ;) Nice one :P Care to donate h/w to run the build > twice every time? Personally that might be a bit difficult, but I'm pretty sure KernelCI farms don't run at full throttle 24/7, perpaps some of their capacity could be borrowed? > > Really what I care about on these is when I keep getting changes to a > schema and the list of warnings remains long and not getting fixed. > > This case was less than useful with just the oneOf warning. Ack Konrad > > Rob
diff --git a/Documentation/devicetree/bindings/display/msm/gpu.yaml b/Documentation/devicetree/bindings/display/msm/gpu.yaml index 5dabe7b6794b..58ca8912a8c3 100644 --- a/Documentation/devicetree/bindings/display/msm/gpu.yaml +++ b/Documentation/devicetree/bindings/display/msm/gpu.yaml @@ -36,10 +36,7 @@ properties: reg-names: minItems: 1 - items: - - const: kgsl_3d0_reg_memory - - const: cx_mem - - const: cx_dbgc + maxItems: 3 interrupts: maxItems: 1 @@ -157,16 +154,62 @@ allOf: required: - clocks - clock-names + - if: properties: compatible: contains: - pattern: '^qcom,adreno-6[0-9][0-9]\.[0-9]$' - - then: # Since Adreno 6xx series clocks should be defined in GMU + enum: + - qcom,adreno-610.0 + - qcom,adreno-619.1 + then: properties: - clocks: false - clock-names: false + clocks: + minItems: 6 + maxItems: 6 + + clock-names: + items: + - const: core + description: GPU Core clock + - const: iface + description: GPU Interface clock + - const: mem_iface + description: GPU Memory Interface clock + - const: alt_mem_iface + description: GPU Alternative Memory Interface clock + - const: gmu + description: CX GMU clock + - const: xo + description: GPUCC clocksource clock + + reg-names: + minItems: 1 + items: + - const: kgsl_3d0_reg_memory + - const: cx_dbgc + + required: + - clocks + - clock-names + else: + if: + properties: + compatible: + contains: + pattern: '^qcom,adreno-6[0-9][0-9]\.[0-9]$' + + then: # Starting with A6xx, the clocks are usually defined in the GMU node + properties: + clocks: false + clock-names: false + + reg-names: + minItems: 1 + items: + - const: kgsl_3d0_reg_memory + - const: cx_mem + - const: cx_dbgc examples: - |