Message ID | 20230223-topic-gmuwrapper-v3-0-5be55a336819@linaro.org |
---|---|
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp275209wrd; Thu, 23 Feb 2023 04:07:43 -0800 (PST) X-Google-Smtp-Source: AK7set8Dq+pYTvgEpHOa4khdgSrKxkv43IIyN0/idtkngFvDLVo6FC/GqeezboJGNckphbvAzi1M X-Received: by 2002:a62:e713:0:b0:5a9:cebd:7b79 with SMTP id s19-20020a62e713000000b005a9cebd7b79mr12167539pfh.0.1677154063333; Thu, 23 Feb 2023 04:07:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1677154063; cv=none; d=google.com; s=arc-20160816; b=ANzbnw7CnY0Dp6nFKDtdSGtyHaBha2fPL2uiJwkYaVOQpdQu/8xPv8Iz6mUj/gwJHL wRZfivCs0YPb+4tvfzCQHQS+pfcW41pguOAhJh1Cu3OLIU1zyqLZIHvn0HlHND3qtodE dgQonMSRgmzNH5zK071dhbKidONDeKS4E7nFdjTTfKzE4sPZXXELVphAy/Nx06yJhD/Y zhGrM6JEZQcS5GxaKdAVYpu4/xq7JR3U7j2lfVXsCHS/EuzDaCKSydoa/qnm5Kl7NOuj 2HxE6gayyOqpz/GZVsnXFcmN2r+73fmYEQAwCsL5VVNZYuAazqMmbYSIvm8zN8IZZfG1 8ReQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:content-transfer-encoding:mime-version :message-id:date:subject:from:dkim-signature; bh=QkKPkt6K8I16jd1Wjb3aZsG77PYKiXbGXPYI41OEs9k=; b=jHGimkfkk+/R3/U+ihPxZNp/Zgf95sPayrhiM2sZjvxqVp1uvtZoA5ZEBQ4OSFHmax YMhD6Q+xYLBfg0TGpRfWPszCJOa0MB5EQz5u+5Et9dJ3Q/3NpqmmU+JUJM2uX3TNPsrK Pq/Ce3jLwq5QVR1P0PrzJJPFELOsLs7I1FCEQN/QbNvwBykcQlUrMmnon18/CaD4HXdf 4ymD2hdRZgZvH+XB5npOMaGOleJNKWPyUymUlHK+cA4DeSaDPzZoi4GQ7aUmi8exVgFa FWBq++0XUx0rkm5B5nvGKyBlK4O2+RsDWzyaJCmBxU3A3MZsWE8yN/831lRmXQNu+59S KAOQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=tAtajSSP; 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 i20-20020a631314000000b004ff6fe0803asi308469pgl.255.2023.02.23.04.07.31; Thu, 23 Feb 2023 04:07:43 -0800 (PST) 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=tAtajSSP; 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 S233477AbjBWMGu (ORCPT <rfc822;cambridge8321@gmail.com> + 99 others); Thu, 23 Feb 2023 07:06:50 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32916 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229448AbjBWMGs (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Thu, 23 Feb 2023 07:06:48 -0500 Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com [IPv6:2a00:1450:4864:20::236]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5898854541 for <linux-kernel@vger.kernel.org>; Thu, 23 Feb 2023 04:06:46 -0800 (PST) Received: by mail-lj1-x236.google.com with SMTP id y14so3479256ljq.4 for <linux-kernel@vger.kernel.org>; Thu, 23 Feb 2023 04:06:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:from:to:cc:subject:date:message-id:reply-to; bh=QkKPkt6K8I16jd1Wjb3aZsG77PYKiXbGXPYI41OEs9k=; b=tAtajSSPzl1mwYWBXR+0tmHgiFeEgpsbv3vhqLZrkDZ160IQbHlKrTLzcDtbPe2GnK bUSt4QBfE5L/8YPcXVNvMh/DiCh/LpGR2suG9IBm7TfayIG5sEgH1qQYYvnf97vxbrR3 PVLptLfbUV+5d8nq0gc60wfgvdbMCh+j7G5yATau85zvJllvgKTcvQUXrtbVhU01NDio r4nsGE0G72ZyI4X/WK0RmT9wEIb7WvYe3iFDFOqqFYcXeAiD1AemcBlHptTEQ+CUP748 AqNO+emEW9ik5UvDYrwwZu2ZVWw/AdNQ8G247lRrSKlKvac/fIVbC0WYzXG6D90WHrND RcPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=QkKPkt6K8I16jd1Wjb3aZsG77PYKiXbGXPYI41OEs9k=; b=zh/gxP2UXyOvasPkxCkx2Hm/k4umFFfSQwCqjazVwKYoCSqWDiLcwNdjSEMK9kXqoj jneZbdiny1A/8iWrOdjKaaS7LbM/b74kwXF3rdU2/eFslA7ArqJexIOtHP8e2aFu0g7Z 6wgrJPwtsa3Jap8rfKSNas2a5Lqh73r/13iPM+hJvvnvM7J5cPby57GpC7/TJ7PoIUkZ Ob+lpjC7v7b3//QdUFLs/Ts9hzOMQynEe58z+gGWQEIEmTNyHdkSYCPmrlCeXASyNXTC pi6xkxqHIP0sbh3lsGQ7MONOxoUeLrNSx51skSgnvDX4iXqeU0zTXjCVt1SfYT6vAfEn Xx4A== X-Gm-Message-State: AO0yUKXbYM2LNwUw6/DVZAdNuAso0WJD1XgMZo52tnpc+FMVkYYplp+S HiQxNLMu+iJyuf+kYbb/4ucpng== X-Received: by 2002:a2e:7216:0:b0:295:8a9b:d8d6 with SMTP id n22-20020a2e7216000000b002958a9bd8d6mr3366493ljc.4.1677154004555; Thu, 23 Feb 2023 04:06:44 -0800 (PST) Received: from [192.168.1.101] (abxi151.neoplus.adsl.tpnet.pl. [83.9.2.151]) by smtp.gmail.com with ESMTPSA id h23-20020a2ea497000000b0029599744c02sm414838lji.75.2023.02.23.04.06.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Feb 2023 04:06:44 -0800 (PST) From: Konrad Dybcio <konrad.dybcio@linaro.org> Subject: [PATCH v3 00/15] GMU-less A6xx support (A610, A619_holi) Date: Thu, 23 Feb 2023 13:06:34 +0100 Message-Id: <20230223-topic-gmuwrapper-v3-0-5be55a336819@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-B4-Tracking: v=1; b=H4sIAMpW92MC/x2N0QqDMAwAf0XyvIC0Drf9ythDWxMNuFpS3QTx3 xf2eAfHHVBJhSo8mgOUPlJlyQb+0kCaQh4JZTAG1zrfOudxXYokHN/bV0MppBg7Zr7y0Pe3O1g WQyWMGnKaLMzbPJssSiz7//N8necPqATO1ncAAAA= 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> 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>, Konrad Dybcio <konrad.dybcio@linaro.org> X-Mailer: b4 0.12.1 X-Developer-Signature: v=1; a=ed25519-sha256; t=1677154003; l=6803; i=konrad.dybcio@linaro.org; s=20230215; h=from:subject:message-id; bh=SrO+tT9dL/Vn3p2tiDM013OqjkJMjRrAWfBDI0HEZLo=; b=0TZ4tmSBt1jWJ+b2r+8ZhfTgB1jlxMKBIVSE8fbdBosET7znKqmGYTuujxpBrWgzTTuSvyGRzH40 /hGS6u/IBLM7pjKrUGaAIEcazqjEroPQR7IGJtDLm/Pk0F6CQ5Tb 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 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?1758623498719276997?= X-GMAIL-MSGID: =?utf-8?q?1758623498719276997?= |
Series |
GMU-less A6xx support (A610, A619_holi)
|
|
Message
Konrad Dybcio
Feb. 23, 2023, 12:06 p.m. UTC
v2 -> v3:
New dependencies:
- https://lore.kernel.org/linux-arm-msm/20230223-topic-opp-v3-0-5f22163cd1df@linaro.org/T/#t
- https://lore.kernel.org/linux-arm-msm/20230120172233.1905761-1-konrad.dybcio@linaro.org/
Sidenote: A speedbin rework is in progress, the of_machine_is_compatible
calls in A619_holi are ugly (but well, necessary..) but they'll be
replaced with socid matching in this or the next kernel cycle.
Due to the new way of identifying GMU wrapper GPUs, configuring 6350
to use wrapper would cause the wrong fuse values to be checked, but that
will be solved by the conversion + the ultimate goal is to use the GMU
whenever possible with the wrapper left for GMU-less Adrenos and early
bringup debugging of GMU-equipped ones.
- Ship dt-bindings in this series as we're referencing the compatible now
- "De-staticize" -> "remove static keyword" [3/15]
- Track down all the values in [4/15]
- Add many comments and explanations in [4/15]
- Fix possible return-before-mutex-unlock [5/15]
- Explain the GMU wrapper a bit more in the commit msg [5/15]
- Separate out pm_resume/suspend for GMU-wrapper GPUs to make things
cleaner [5/15]
- Don't check if `info` exists, it has to at this point [5/15]
- Assign gpu->info early and clean up following if statements in
a6xx_gpu_init [5/15]
- Determine whether we use GMU wrapper based on the GMU compatible
instead of a quirk [5/15]
- Use a struct field to annotate whether we're using gmu wrapper so
that it can be assigned at runtime (turns out a619 holi-ness cannot
be determined by patchid + that will make it easier to test out GMU
GPUs without actually turning on the GMU if anybody wants to do so)
[5/15]
- Unconditionally hook up gx to the gmu wrapper (otherwise our gpu
will not get power) [5/15]
- Don't check for gx domain presence in gmu_wrapper paths, it's
guaranteed [5/15]
- Use opp set rate in the gmuwrapper suspend path [5/15]
- Call opp functions on the GPU device and not on the DRM device of
mdp4/5/DPU1 half the time (WHOOOOPS!) [5/15]
- Disable the memory clock in a6xx_pm_suspend instead of enabling it
(moderate oops) [5/15]
- Call the forgotten clk_bulk_disable_unprepare in a6xx_pm_suspend [5/15]
- Set rate to FMIN (a6xx really doesn't like rate=0 + that's what
msm-5.x does anyway) before disabling core clock [5/15]
- pm_runtime_get_sync -> pm_runtime_resume_and_get [5/15]
- Don't annotate no cached BO support with a quirk, as A619_holi is
merged into the A619 entry in the big const struct - this means
that all GPUs operating in gmu wrapper configuration will be
implicitly treated as if they didn't have this feature [7/15]
- Drop OPP rate & icc related patches, they're a part of a separate
series now; rebase on it
- Clean up extra parentheses [8/15]
- Identify A619_holi by checking the compatible of its GMU instead
of patchlevel [8/15]
- Drop "Fix up A6XX protected registers" - unnecessary, Rob will add
a comment explaining why
- Fix existing UBWC values for A680, new patch [10/15]
- Use adreno_is_aXYZ macros in speedbin matching [13/15] - new patch
v2: https://lore.kernel.org/linux-arm-msm/20230214173145.2482651-1-konrad.dybcio@linaro.org/
v1 -> v2:
- Fix A630 values in [2/14]
- Fix [6/14] for GMU-equipped GPUs
Link to v1: https://lore.kernel.org/linux-arm-msm/20230126151618.225127-1-konrad.dybcio@linaro.org/
This series concludes my couple-weeks-long suffering of figuring out
the ins and outs of the "non-standard" A6xx GPUs which feature no GMU.
The GMU functionality is essentially emulated by parting out a
"GMU wrapper" region, which is essentially just a register space
within the GPU. It's modeled to be as similar to the actual GMU
as possible while staying as unnecessary as we can make it - there's
no IRQs, communicating with a microcontroller, no RPMh communication
etc. etc. I tried to reuse as much code as possible without making
a mess where every even line is used for GMU and every odd line is
used for GMU wrapper..
This series contains:
- plumbing for non-GMU operation, if-ing out GMU calls based on
GMU presence
- GMU wrapper support
- A610 support (w/ speedbin)
- A619 support (w/ speedbin)
- couple of minor fixes and improvements
- VDDCX/VDDGX scaling fix for non-GMU GPUs (concerns more than just
A6xx)
- Enablement of opp interconnect properties
A619_holi works perfectly fine using the already-present A619 support
in mesa. A610 needs more work on that front, but can already replay
command traces captures on downstream.
NOTE: the "drm/msm/a6xx: Add support for A619_holi" patch contains
two occurences of 0x18 used in place of a register #define, as it's
supposed to be RBBM_GPR0_CNTL, but that will only be present after
mesa-side changes are merged and headers are synced from there.
Speedbin patches depend on:
https://lore.kernel.org/linux-arm-msm/20230120172233.1905761-1-konrad.dybcio@linaro.org/
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
---
Konrad Dybcio (15):
dt-bindings: display/msm: gpu: Document GMU wrapper-equipped A6xx
dt-bindings: display/msm/gmu: Add GMU wrapper
drm/msm/a6xx: Remove static keyword from sptprac en/disable functions
drm/msm/a6xx: Extend and explain UBWC config
drm/msm/a6xx: Introduce GMU wrapper support
drm/msm/a6xx: Remove both GBIF and RBBM GBIF halt on hw init
drm/msm/adreno: Disable has_cached_coherent in GMU wrapper configurations
drm/msm/a6xx: Add support for A619_holi
drm/msm/a6xx: Add A610 support
drm/msm/a6xx: Fix A680 highest bank bit value
drm/msm/a6xx: Fix some A619 tunables
drm/msm/a6xx: Use "else if" in GPU speedbin rev matching
drm/msm/a6xx: Use adreno_is_aXYZ macros in speedbin matching
drm/msm/a6xx: Add A619_holi speedbin support
drm/msm/a6xx: Add A610 speedbin support
.../devicetree/bindings/display/msm/gmu.yaml | 49 +-
.../devicetree/bindings/display/msm/gpu.yaml | 63 ++-
drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 57 ++-
drivers/gpu/drm/msm/adreno/a6xx_gmu.h | 2 +
drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 513 ++++++++++++++++++---
drivers/gpu/drm/msm/adreno/a6xx_gpu.h | 1 +
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 14 +-
drivers/gpu/drm/msm/adreno/adreno_device.c | 17 +-
drivers/gpu/drm/msm/adreno/adreno_gpu.h | 33 +-
9 files changed, 655 insertions(+), 94 deletions(-)
---
base-commit: f122501715b5bb8ea340e077401257795b6638a1
change-id: 20230223-topic-gmuwrapper-b4fff5fd7789
Best regards,