Message ID | 20241113-topic-sm8x50-gpu-bw-vote-v1-2-3b8d39737a9b@linaro.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | drm/msm: adreno: add support for DDR bandwidth scaling via GMU | expand |
On Wed, Nov 13, 2024 at 04:48:28PM +0100, Neil Armstrong wrote: > The Adreno GMU Management Unit (GNU) can also scale the DDR Bandwidth > along the Frequency and Power Domain level, but by default we leave the > OPP core vote for the interconnect ddr path. > > While scaling via the interconnect path was sufficient, newer GPUs > like the A750 requires specific vote paremeters and bandwidth to > achieve full functionality. > > Add a new Quirk enabling DDR Bandwidth vote via GMU. Please describe, why this is defined as a quirk rather than a proper platform-level property. From my experience with 6xx and 7xx, all the platforms need to send some kind of BW data to the GMU. > > Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> > --- > drivers/gpu/drm/msm/adreno/adreno_gpu.h | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.h b/drivers/gpu/drm/msm/adreno/adreno_gpu.h > index e71f420f8b3a8e6cfc52dd1c4d5a63ef3704a07f..20b6b7f49473d42751cd4fb4fc82849be42cb807 100644 > --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.h > +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.h > @@ -57,6 +57,7 @@ enum adreno_family { > #define ADRENO_QUIRK_HAS_HW_APRIV BIT(3) > #define ADRENO_QUIRK_HAS_CACHED_COHERENT BIT(4) > #define ADRENO_QUIRK_PREEMPTION BIT(5) > +#define ADRENO_QUIRK_GMU_BW_VOTE BIT(6) > > /* Helper for formating the chip_id in the way that userspace tools like > * crashdec expect. > > -- > 2.34.1 >
On 15/11/2024 08:07, Dmitry Baryshkov wrote: > On Wed, Nov 13, 2024 at 04:48:28PM +0100, Neil Armstrong wrote: >> The Adreno GMU Management Unit (GNU) can also scale the DDR Bandwidth >> along the Frequency and Power Domain level, but by default we leave the >> OPP core vote for the interconnect ddr path. >> >> While scaling via the interconnect path was sufficient, newer GPUs >> like the A750 requires specific vote paremeters and bandwidth to >> achieve full functionality. >> >> Add a new Quirk enabling DDR Bandwidth vote via GMU. > > Please describe, why this is defined as a quirk rather than a proper > platform-level property. From my experience with 6xx and 7xx, all the > platforms need to send some kind of BW data to the GMU. Well APRIV, CACHED_COHERENT & PREEMPTION are HW features, why this can't be part of this ? Perhaps the "quirks" bitfield should be features instead ? > >> >> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> >> --- >> drivers/gpu/drm/msm/adreno/adreno_gpu.h | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.h b/drivers/gpu/drm/msm/adreno/adreno_gpu.h >> index e71f420f8b3a8e6cfc52dd1c4d5a63ef3704a07f..20b6b7f49473d42751cd4fb4fc82849be42cb807 100644 >> --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.h >> +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.h >> @@ -57,6 +57,7 @@ enum adreno_family { >> #define ADRENO_QUIRK_HAS_HW_APRIV BIT(3) >> #define ADRENO_QUIRK_HAS_CACHED_COHERENT BIT(4) >> #define ADRENO_QUIRK_PREEMPTION BIT(5) >> +#define ADRENO_QUIRK_GMU_BW_VOTE BIT(6) >> >> /* Helper for formating the chip_id in the way that userspace tools like >> * crashdec expect. >> >> -- >> 2.34.1 >> >
On Fri, 15 Nov 2024 at 11:21, Neil Armstrong <neil.armstrong@linaro.org> wrote: > > On 15/11/2024 08:07, Dmitry Baryshkov wrote: > > On Wed, Nov 13, 2024 at 04:48:28PM +0100, Neil Armstrong wrote: > >> The Adreno GMU Management Unit (GNU) can also scale the DDR Bandwidth > >> along the Frequency and Power Domain level, but by default we leave the > >> OPP core vote for the interconnect ddr path. > >> > >> While scaling via the interconnect path was sufficient, newer GPUs > >> like the A750 requires specific vote paremeters and bandwidth to > >> achieve full functionality. > >> > >> Add a new Quirk enabling DDR Bandwidth vote via GMU. > > > > Please describe, why this is defined as a quirk rather than a proper > > platform-level property. From my experience with 6xx and 7xx, all the > > platforms need to send some kind of BW data to the GMU. > > Well APRIV, CACHED_COHERENT & PREEMPTION are HW features, why this can't be part of this ? > > Perhaps the "quirks" bitfield should be features instead ? Sounds like that.
On Fri, Nov 15, 2024 at 6:18 AM Dmitry Baryshkov <dmitry.baryshkov@linaro.org> wrote: > > On Fri, 15 Nov 2024 at 11:21, Neil Armstrong <neil.armstrong@linaro.org> wrote: > > > > On 15/11/2024 08:07, Dmitry Baryshkov wrote: > > > On Wed, Nov 13, 2024 at 04:48:28PM +0100, Neil Armstrong wrote: > > >> The Adreno GMU Management Unit (GNU) can also scale the DDR Bandwidth > > >> along the Frequency and Power Domain level, but by default we leave the > > >> OPP core vote for the interconnect ddr path. > > >> > > >> While scaling via the interconnect path was sufficient, newer GPUs > > >> like the A750 requires specific vote paremeters and bandwidth to > > >> achieve full functionality. > > >> > > >> Add a new Quirk enabling DDR Bandwidth vote via GMU. > > > > > > Please describe, why this is defined as a quirk rather than a proper > > > platform-level property. From my experience with 6xx and 7xx, all the > > > platforms need to send some kind of BW data to the GMU. > > > > Well APRIV, CACHED_COHERENT & PREEMPTION are HW features, why this can't be part of this ? > > > > Perhaps the "quirks" bitfield should be features instead ? > > Sounds like that. But LMLOADKILL_DISABLE and TWO_PASS_USE_WFI are quirks.. so it is kind of a mix of quirks and features. So meh BR, -R > > -- > With best wishes > Dmitry
On 15/11/2024 16:10, Rob Clark wrote: > On Fri, Nov 15, 2024 at 6:18 AM Dmitry Baryshkov > <dmitry.baryshkov@linaro.org> wrote: >> >> On Fri, 15 Nov 2024 at 11:21, Neil Armstrong <neil.armstrong@linaro.org> wrote: >>> >>> On 15/11/2024 08:07, Dmitry Baryshkov wrote: >>>> On Wed, Nov 13, 2024 at 04:48:28PM +0100, Neil Armstrong wrote: >>>>> The Adreno GMU Management Unit (GNU) can also scale the DDR Bandwidth >>>>> along the Frequency and Power Domain level, but by default we leave the >>>>> OPP core vote for the interconnect ddr path. >>>>> >>>>> While scaling via the interconnect path was sufficient, newer GPUs >>>>> like the A750 requires specific vote paremeters and bandwidth to >>>>> achieve full functionality. >>>>> >>>>> Add a new Quirk enabling DDR Bandwidth vote via GMU. >>>> >>>> Please describe, why this is defined as a quirk rather than a proper >>>> platform-level property. From my experience with 6xx and 7xx, all the >>>> platforms need to send some kind of BW data to the GMU. >>> >>> Well APRIV, CACHED_COHERENT & PREEMPTION are HW features, why this can't be part of this ? >>> >>> Perhaps the "quirks" bitfield should be features instead ? >> >> Sounds like that. > > But LMLOADKILL_DISABLE and TWO_PASS_USE_WFI are quirks.. so it is kind > of a mix of quirks and features. So meh Well I can do a split and move the features into a clean .features bitfield, would it be ok ? Neil > > BR, > -R > >> >> -- >> With best wishes >> Dmitry
diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.h b/drivers/gpu/drm/msm/adreno/adreno_gpu.h index e71f420f8b3a8e6cfc52dd1c4d5a63ef3704a07f..20b6b7f49473d42751cd4fb4fc82849be42cb807 100644 --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.h +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.h @@ -57,6 +57,7 @@ enum adreno_family { #define ADRENO_QUIRK_HAS_HW_APRIV BIT(3) #define ADRENO_QUIRK_HAS_CACHED_COHERENT BIT(4) #define ADRENO_QUIRK_PREEMPTION BIT(5) +#define ADRENO_QUIRK_GMU_BW_VOTE BIT(6) /* Helper for formating the chip_id in the way that userspace tools like * crashdec expect.
The Adreno GMU Management Unit (GNU) can also scale the DDR Bandwidth along the Frequency and Power Domain level, but by default we leave the OPP core vote for the interconnect ddr path. While scaling via the interconnect path was sufficient, newer GPUs like the A750 requires specific vote paremeters and bandwidth to achieve full functionality. Add a new Quirk enabling DDR Bandwidth vote via GMU. Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> --- drivers/gpu/drm/msm/adreno/adreno_gpu.h | 1 + 1 file changed, 1 insertion(+)