From: Konrad Dybcio <konrad.dybcio@linaro.org> To: Akhil P Oommen <quic_akhilpo@quicinc.com> Cc: devicetree@vger.kernel.org, Bjorn Andersson <quic_bjorande@quicinc.com>, mani@kernel.org, linux-arm-msm@vger.kernel.org, Bjorn Andersson <andersson@kernel.org>, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, johan@kernel.org, Steev Klimaszewski <steev@kali.org>, Dmitry Baryshkov <dmitry.baryshkov@linaro.org>, freedreno@lists.freedesktop.org, Sean Paul <sean@poorly.run> Subject: Re: [PATCH v3 1/3] drm/msm/adreno: Add Adreno A690 support Date: Fri, 2 Jun 2023 11:10:12 +0200 [thread overview] Message-ID: <2879254a-cd62-9f97-2c64-aa5151b19d82@linaro.org> (raw) In-Reply-To: <z6usdzbvqxt6q7siff6qucyywafb6k4yh6qdpignqatowjb4c6@z3az35e3abs3> On 1.06.2023 20:30, Akhil P Oommen wrote: > On Wed, May 31, 2023 at 10:30:09PM +0200, Konrad Dybcio wrote: >> >> >> >> On 31.05.2023 05:09, Bjorn Andersson wrote: >>> From: Bjorn Andersson <bjorn.andersson@linaro.org> >>> >>> Introduce support for the Adreno A690, found in Qualcomm SC8280XP. >>> >>> Tested-by: Steev Klimaszewski <steev@kali.org> >>> Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org> >>> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> >>> Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com> >>> --- >> Couple of additional nits that you may or may not incorporate: >> >> [...] >> >>> + {REG_A6XX_RBBM_CLOCK_HYST_SP0, 0x0000F3CF}, >> It would be cool if we could stop adding uppercase hex outside preprocessor >> defines.. >> >> >> [...] >>> + A6XX_PROTECT_RDONLY(0x0fc00, 0x01fff), >>> + A6XX_PROTECT_NORDWR(0x11c00, 0x00000), /*note: infiite range */ >> typo >> >> >> >> -- Questions to Rob that don't really concern this patch -- >> >>> +static void a690_build_bw_table(struct a6xx_hfi_msg_bw_table *msg) >> Rob, I'll be looking into reworking these into dynamic tables.. would you >> be okay with two more additions (A730, A740) on top of this before I do that? >> The number of these funcs has risen quite a bit and we're abusing the fact >> that so far there's a 1-1 mapping of SoC-Adreno (at the current state of >> mainline, not in general).. > > +1. But please leave a618 and 7c3 as it is. OK I'll note that Konrad > > -Akhil > >> >>> +{ >>> + /* >>> + * Send a single "off" entry just to get things running >>> + * TODO: bus scaling >>> + */ >> Also something I'll be looking into in the near future.. >> >>> @@ -531,6 +562,8 @@ static int a6xx_hfi_send_bw_table(struct a6xx_gmu *gmu) >>> adreno_7c3_build_bw_table(&msg); >>> else if (adreno_is_a660(adreno_gpu)) >>> a660_build_bw_table(&msg); >>> + else if (adreno_is_a690(adreno_gpu)) >>> + a690_build_bw_table(&msg); >>> else >>> a6xx_build_bw_table(&msg); >> I think changing the is_adreno_... to switch statements with a gpu_model >> var would make it easier to read.. Should I also rework that? >> >> Konrad >> >>> >>> diff --git a/drivers/gpu/drm/msm/adreno/adreno_device.c b/drivers/gpu/drm/msm/adreno/adreno_device.c >>> index 8cff86e9d35c..e5a865024e94 100644 >>> --- a/drivers/gpu/drm/msm/adreno/adreno_device.c >>> +++ b/drivers/gpu/drm/msm/adreno/adreno_device.c >>> @@ -355,6 +355,20 @@ static const struct adreno_info gpulist[] = { >>> .init = a6xx_gpu_init, >>> .zapfw = "a640_zap.mdt", >>> .hwcg = a640_hwcg, >>> + }, { >>> + .rev = ADRENO_REV(6, 9, 0, ANY_ID), >>> + .revn = 690, >>> + .name = "A690", >>> + .fw = { >>> + [ADRENO_FW_SQE] = "a660_sqe.fw", >>> + [ADRENO_FW_GMU] = "a690_gmu.bin", >>> + }, >>> + .gmem = SZ_4M, >>> + .inactive_period = DRM_MSM_INACTIVE_PERIOD, >>> + .init = a6xx_gpu_init, >>> + .zapfw = "a690_zap.mdt", >>> + .hwcg = a690_hwcg, >>> + .address_space_size = SZ_16G, >>> }, >>> }; >>> >>> diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.h b/drivers/gpu/drm/msm/adreno/adreno_gpu.h >>> index f62612a5c70f..ac9c429ca07b 100644 >>> --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.h >>> +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.h >>> @@ -55,7 +55,7 @@ struct adreno_reglist { >>> u32 value; >>> }; >>> >>> -extern const struct adreno_reglist a615_hwcg[], a630_hwcg[], a640_hwcg[], a650_hwcg[], a660_hwcg[]; >>> +extern const struct adreno_reglist a615_hwcg[], a630_hwcg[], a640_hwcg[], a650_hwcg[], a660_hwcg[], a690_hwcg[]; >>> >>> struct adreno_info { >>> struct adreno_rev rev; >>> @@ -272,6 +272,11 @@ static inline int adreno_is_a660(struct adreno_gpu *gpu) >>> return gpu->revn == 660; >>> } >>> >>> +static inline int adreno_is_a690(struct adreno_gpu *gpu) >>> +{ >>> + return gpu->revn == 690; >>> +}; >>> + >>> /* check for a615, a616, a618, a619 or any derivatives */ >>> static inline int adreno_is_a615_family(struct adreno_gpu *gpu) >>> { >>> @@ -280,13 +285,13 @@ static inline int adreno_is_a615_family(struct adreno_gpu *gpu) >>> >>> static inline int adreno_is_a660_family(struct adreno_gpu *gpu) >>> { >>> - return adreno_is_a660(gpu) || adreno_is_7c3(gpu); >>> + return adreno_is_a660(gpu) || adreno_is_a690(gpu) || adreno_is_7c3(gpu); >>> } >>> >>> /* check for a650, a660, or any derivatives */ >>> static inline int adreno_is_a650_family(struct adreno_gpu *gpu) >>> { >>> - return gpu->revn == 650 || gpu->revn == 620 || adreno_is_a660_family(gpu); >>> + return gpu->revn == 650 || gpu->revn == 620 || adreno_is_a660_family(gpu); >>> } >>> >>> u64 adreno_private_address_space_size(struct msm_gpu *gpu);
WARNING: multiple messages have this Message-ID (diff)
From: Konrad Dybcio <konrad.dybcio@linaro.org> To: Akhil P Oommen <quic_akhilpo@quicinc.com> Cc: Bjorn Andersson <quic_bjorande@quicinc.com>, Rob Clark <robdclark@gmail.com>, Dmitry Baryshkov <dmitry.baryshkov@linaro.org>, Sean Paul <sean@poorly.run>, Bjorn Andersson <andersson@kernel.org>, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, johan@kernel.org, mani@kernel.org, Steev Klimaszewski <steev@kali.org> Subject: Re: [PATCH v3 1/3] drm/msm/adreno: Add Adreno A690 support Date: Fri, 2 Jun 2023 11:10:12 +0200 [thread overview] Message-ID: <2879254a-cd62-9f97-2c64-aa5151b19d82@linaro.org> (raw) In-Reply-To: <z6usdzbvqxt6q7siff6qucyywafb6k4yh6qdpignqatowjb4c6@z3az35e3abs3> On 1.06.2023 20:30, Akhil P Oommen wrote: > On Wed, May 31, 2023 at 10:30:09PM +0200, Konrad Dybcio wrote: >> >> >> >> On 31.05.2023 05:09, Bjorn Andersson wrote: >>> From: Bjorn Andersson <bjorn.andersson@linaro.org> >>> >>> Introduce support for the Adreno A690, found in Qualcomm SC8280XP. >>> >>> Tested-by: Steev Klimaszewski <steev@kali.org> >>> Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org> >>> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> >>> Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com> >>> --- >> Couple of additional nits that you may or may not incorporate: >> >> [...] >> >>> + {REG_A6XX_RBBM_CLOCK_HYST_SP0, 0x0000F3CF}, >> It would be cool if we could stop adding uppercase hex outside preprocessor >> defines.. >> >> >> [...] >>> + A6XX_PROTECT_RDONLY(0x0fc00, 0x01fff), >>> + A6XX_PROTECT_NORDWR(0x11c00, 0x00000), /*note: infiite range */ >> typo >> >> >> >> -- Questions to Rob that don't really concern this patch -- >> >>> +static void a690_build_bw_table(struct a6xx_hfi_msg_bw_table *msg) >> Rob, I'll be looking into reworking these into dynamic tables.. would you >> be okay with two more additions (A730, A740) on top of this before I do that? >> The number of these funcs has risen quite a bit and we're abusing the fact >> that so far there's a 1-1 mapping of SoC-Adreno (at the current state of >> mainline, not in general).. > > +1. But please leave a618 and 7c3 as it is. OK I'll note that Konrad > > -Akhil > >> >>> +{ >>> + /* >>> + * Send a single "off" entry just to get things running >>> + * TODO: bus scaling >>> + */ >> Also something I'll be looking into in the near future.. >> >>> @@ -531,6 +562,8 @@ static int a6xx_hfi_send_bw_table(struct a6xx_gmu *gmu) >>> adreno_7c3_build_bw_table(&msg); >>> else if (adreno_is_a660(adreno_gpu)) >>> a660_build_bw_table(&msg); >>> + else if (adreno_is_a690(adreno_gpu)) >>> + a690_build_bw_table(&msg); >>> else >>> a6xx_build_bw_table(&msg); >> I think changing the is_adreno_... to switch statements with a gpu_model >> var would make it easier to read.. Should I also rework that? >> >> Konrad >> >>> >>> diff --git a/drivers/gpu/drm/msm/adreno/adreno_device.c b/drivers/gpu/drm/msm/adreno/adreno_device.c >>> index 8cff86e9d35c..e5a865024e94 100644 >>> --- a/drivers/gpu/drm/msm/adreno/adreno_device.c >>> +++ b/drivers/gpu/drm/msm/adreno/adreno_device.c >>> @@ -355,6 +355,20 @@ static const struct adreno_info gpulist[] = { >>> .init = a6xx_gpu_init, >>> .zapfw = "a640_zap.mdt", >>> .hwcg = a640_hwcg, >>> + }, { >>> + .rev = ADRENO_REV(6, 9, 0, ANY_ID), >>> + .revn = 690, >>> + .name = "A690", >>> + .fw = { >>> + [ADRENO_FW_SQE] = "a660_sqe.fw", >>> + [ADRENO_FW_GMU] = "a690_gmu.bin", >>> + }, >>> + .gmem = SZ_4M, >>> + .inactive_period = DRM_MSM_INACTIVE_PERIOD, >>> + .init = a6xx_gpu_init, >>> + .zapfw = "a690_zap.mdt", >>> + .hwcg = a690_hwcg, >>> + .address_space_size = SZ_16G, >>> }, >>> }; >>> >>> diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.h b/drivers/gpu/drm/msm/adreno/adreno_gpu.h >>> index f62612a5c70f..ac9c429ca07b 100644 >>> --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.h >>> +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.h >>> @@ -55,7 +55,7 @@ struct adreno_reglist { >>> u32 value; >>> }; >>> >>> -extern const struct adreno_reglist a615_hwcg[], a630_hwcg[], a640_hwcg[], a650_hwcg[], a660_hwcg[]; >>> +extern const struct adreno_reglist a615_hwcg[], a630_hwcg[], a640_hwcg[], a650_hwcg[], a660_hwcg[], a690_hwcg[]; >>> >>> struct adreno_info { >>> struct adreno_rev rev; >>> @@ -272,6 +272,11 @@ static inline int adreno_is_a660(struct adreno_gpu *gpu) >>> return gpu->revn == 660; >>> } >>> >>> +static inline int adreno_is_a690(struct adreno_gpu *gpu) >>> +{ >>> + return gpu->revn == 690; >>> +}; >>> + >>> /* check for a615, a616, a618, a619 or any derivatives */ >>> static inline int adreno_is_a615_family(struct adreno_gpu *gpu) >>> { >>> @@ -280,13 +285,13 @@ static inline int adreno_is_a615_family(struct adreno_gpu *gpu) >>> >>> static inline int adreno_is_a660_family(struct adreno_gpu *gpu) >>> { >>> - return adreno_is_a660(gpu) || adreno_is_7c3(gpu); >>> + return adreno_is_a660(gpu) || adreno_is_a690(gpu) || adreno_is_7c3(gpu); >>> } >>> >>> /* check for a650, a660, or any derivatives */ >>> static inline int adreno_is_a650_family(struct adreno_gpu *gpu) >>> { >>> - return gpu->revn == 650 || gpu->revn == 620 || adreno_is_a660_family(gpu); >>> + return gpu->revn == 650 || gpu->revn == 620 || adreno_is_a660_family(gpu); >>> } >>> >>> u64 adreno_private_address_space_size(struct msm_gpu *gpu);
next prev parent reply other threads:[~2023-06-02 9:10 UTC|newest] Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-05-31 3:09 [PATCH v3 0/3] drm/msm/adreno: GPU support on SC8280XP Bjorn Andersson 2023-05-31 3:09 ` Bjorn Andersson 2023-05-31 3:09 ` [PATCH v3 1/3] drm/msm/adreno: Add Adreno A690 support Bjorn Andersson 2023-05-31 3:09 ` Bjorn Andersson [not found] ` <57ffc7d9-c767-df36-d91f-8949993b1cdf@linaro.org> 2023-06-01 18:30 ` Akhil P Oommen 2023-06-01 18:30 ` Akhil P Oommen 2023-06-02 9:10 ` Konrad Dybcio [this message] 2023-06-02 9:10 ` Konrad Dybcio 2023-06-05 13:45 ` Rob Clark 2023-06-05 13:45 ` Rob Clark 2023-05-31 3:09 ` [PATCH v3 2/3] arm64: dts: qcom: sc8280xp: Add GPU related nodes Bjorn Andersson 2023-05-31 3:09 ` Bjorn Andersson 2023-05-31 7:28 ` Johan Hovold 2023-05-31 7:28 ` Johan Hovold 2023-05-31 17:11 ` Bjorn Andersson 2023-05-31 17:11 ` Bjorn Andersson 2023-05-31 3:09 ` [PATCH v3 3/3] arm64: dts: qcom: sc8280xp: Enable " Bjorn Andersson 2023-05-31 3:09 ` Bjorn Andersson 2023-05-31 7:31 ` [PATCH v3 0/3] drm/msm/adreno: GPU support on SC8280XP Johan Hovold 2023-05-31 7:31 ` Johan Hovold
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=2879254a-cd62-9f97-2c64-aa5151b19d82@linaro.org \ --to=konrad.dybcio@linaro.org \ --cc=andersson@kernel.org \ --cc=devicetree@vger.kernel.org \ --cc=dmitry.baryshkov@linaro.org \ --cc=dri-devel@lists.freedesktop.org \ --cc=freedreno@lists.freedesktop.org \ --cc=johan@kernel.org \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mani@kernel.org \ --cc=quic_akhilpo@quicinc.com \ --cc=quic_bjorande@quicinc.com \ --cc=sean@poorly.run \ --cc=steev@kali.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.