drivers/gpu/drm/msm/adreno/adreno_gpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Commit dc220915ddb2 ("drm/msm: Fix GMEM_BASE for gen8") changed the
GMEM_BASE check from adreno_is_a650_family() & adreno_is_a740_family()
to family >= ADRENO_6XX_GEN4.
This inadvertently excluded A650 (ADRENO_6XX_GEN3), causing it to report
an incorrect GMEM_BASE which results in severe rendering corruption.
Update check to also include ADRENO_6XX_GEN3 to fix A650.
Fixes: dc220915ddb2 ("drm/msm: Fix GMEM_BASE for gen8")
Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
---
drivers/gpu/drm/msm/adreno/adreno_gpu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
index d5fe6f6f0dec..0ac3fba5c277 100644
--- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
@@ -376,7 +376,7 @@ int adreno_get_param(struct msm_gpu *gpu, struct msm_context *ctx,
*value = adreno_gpu->info->gmem;
return 0;
case MSM_PARAM_GMEM_BASE:
- if (adreno_gpu->info->family >= ADRENO_6XX_GEN4)
+ if (adreno_gpu->info->family >= ADRENO_6XX_GEN3)
*value = 0;
else
*value = 0x100000;
---
base-commit: 1f318b96cc84d7c2ab792fcc0bfd42a7ca890681
change-id: 20260314-fix-gmem-base-a650-cfd9bfcea425
Best regards,
--
Alexander Koskovich <akoskovich@pm.me>
On 3/14/2026 9:44 AM, Alexander Koskovich wrote:
> Commit dc220915ddb2 ("drm/msm: Fix GMEM_BASE for gen8") changed the
> GMEM_BASE check from adreno_is_a650_family() & adreno_is_a740_family()
> to family >= ADRENO_6XX_GEN4.
>
> This inadvertently excluded A650 (ADRENO_6XX_GEN3), causing it to report
> an incorrect GMEM_BASE which results in severe rendering corruption.
>
> Update check to also include ADRENO_6XX_GEN3 to fix A650.
>
> Fixes: dc220915ddb2 ("drm/msm: Fix GMEM_BASE for gen8")
> Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
Reviewed-by: Akhil P Oommen <akhilpo@oss.qualcomm.com>
-Akhil
> ---
> drivers/gpu/drm/msm/adreno/adreno_gpu.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
> index d5fe6f6f0dec..0ac3fba5c277 100644
> --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c
> +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
> @@ -376,7 +376,7 @@ int adreno_get_param(struct msm_gpu *gpu, struct msm_context *ctx,
> *value = adreno_gpu->info->gmem;
> return 0;
> case MSM_PARAM_GMEM_BASE:
> - if (adreno_gpu->info->family >= ADRENO_6XX_GEN4)
> + if (adreno_gpu->info->family >= ADRENO_6XX_GEN3)
> *value = 0;
> else
> *value = 0x100000;
>
> ---
> base-commit: 1f318b96cc84d7c2ab792fcc0bfd42a7ca890681
> change-id: 20260314-fix-gmem-base-a650-cfd9bfcea425
>
> Best regards,
On 3/14/26 5:14 AM, Alexander Koskovich wrote:
> Commit dc220915ddb2 ("drm/msm: Fix GMEM_BASE for gen8") changed the
> GMEM_BASE check from adreno_is_a650_family() & adreno_is_a740_family()
> to family >= ADRENO_6XX_GEN4.
>
> This inadvertently excluded A650 (ADRENO_6XX_GEN3), causing it to report
> an incorrect GMEM_BASE which results in severe rendering corruption.
>
> Update check to also include ADRENO_6XX_GEN3 to fix A650.
>
> Fixes: dc220915ddb2 ("drm/msm: Fix GMEM_BASE for gen8")
Hm, that commit also changed the value for A730 - Akhil/Rob, should
that be changed back?
Konrad
> Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
> ---
> drivers/gpu/drm/msm/adreno/adreno_gpu.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
> index d5fe6f6f0dec..0ac3fba5c277 100644
> --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c
> +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
> @@ -376,7 +376,7 @@ int adreno_get_param(struct msm_gpu *gpu, struct msm_context *ctx,
> *value = adreno_gpu->info->gmem;
> return 0;
> case MSM_PARAM_GMEM_BASE:
> - if (adreno_gpu->info->family >= ADRENO_6XX_GEN4)
> + if (adreno_gpu->info->family >= ADRENO_6XX_GEN3)
> *value = 0;
> else
> *value = 0x100000;
>
> ---
> base-commit: 1f318b96cc84d7c2ab792fcc0bfd42a7ca890681
> change-id: 20260314-fix-gmem-base-a650-cfd9bfcea425
>
> Best regards,
On Mon, Mar 16, 2026 at 2:22 AM Konrad Dybcio
<konrad.dybcio@oss.qualcomm.com> wrote:
>
> On 3/14/26 5:14 AM, Alexander Koskovich wrote:
> > Commit dc220915ddb2 ("drm/msm: Fix GMEM_BASE for gen8") changed the
> > GMEM_BASE check from adreno_is_a650_family() & adreno_is_a740_family()
> > to family >= ADRENO_6XX_GEN4.
> >
> > This inadvertently excluded A650 (ADRENO_6XX_GEN3), causing it to report
> > an incorrect GMEM_BASE which results in severe rendering corruption.
> >
> > Update check to also include ADRENO_6XX_GEN3 to fix A650.
> >
> > Fixes: dc220915ddb2 ("drm/msm: Fix GMEM_BASE for gen8")
>
> Hm, that commit also changed the value for A730 - Akhil/Rob, should
> that be changed back?
No, it was incorrect before my patch. The only problem was the change
happened in a6xx_gen3, not a6xx_gen4. So this patch is correct.
BR,
-R
> Konrad
>
> > Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
> > ---
> > drivers/gpu/drm/msm/adreno/adreno_gpu.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
> > index d5fe6f6f0dec..0ac3fba5c277 100644
> > --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c
> > +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
> > @@ -376,7 +376,7 @@ int adreno_get_param(struct msm_gpu *gpu, struct msm_context *ctx,
> > *value = adreno_gpu->info->gmem;
> > return 0;
> > case MSM_PARAM_GMEM_BASE:
> > - if (adreno_gpu->info->family >= ADRENO_6XX_GEN4)
> > + if (adreno_gpu->info->family >= ADRENO_6XX_GEN3)
> > *value = 0;
> > else
> > *value = 0x100000;
> >
> > ---
> > base-commit: 1f318b96cc84d7c2ab792fcc0bfd42a7ca890681
> > change-id: 20260314-fix-gmem-base-a650-cfd9bfcea425
> >
> > Best regards,
On 3/16/2026 8:01 PM, Rob Clark wrote:
> On Mon, Mar 16, 2026 at 2:22 AM Konrad Dybcio
> <konrad.dybcio@oss.qualcomm.com> wrote:
>>
>> On 3/14/26 5:14 AM, Alexander Koskovich wrote:
>>> Commit dc220915ddb2 ("drm/msm: Fix GMEM_BASE for gen8") changed the
>>> GMEM_BASE check from adreno_is_a650_family() & adreno_is_a740_family()
>>> to family >= ADRENO_6XX_GEN4.
>>>
>>> This inadvertently excluded A650 (ADRENO_6XX_GEN3), causing it to report
>>> an incorrect GMEM_BASE which results in severe rendering corruption.
>>>
>>> Update check to also include ADRENO_6XX_GEN3 to fix A650.
>>>
>>> Fixes: dc220915ddb2 ("drm/msm: Fix GMEM_BASE for gen8")
>>
>> Hm, that commit also changed the value for A730 - Akhil/Rob, should
>> that be changed back?
>
> No, it was incorrect before my patch. The only problem was the change
> happened in a6xx_gen3, not a6xx_gen4. So this patch is correct.
<< a little unrelated to this patch >>
Rob, on A740 and A8x GPU, KMD is mapping GMEM at 16MB and 64MB offsets
respectively. So returning 0 here to userspace for those GPUs doesn't
seem right for those GPUs.
I believe userspace is interested in the aperture base address
configured in UCHE_GMEM_RANGE/UCHE_CCHE_GC_GMEM_RANGE registers so that
it can compute the IOVA to read GMEM via UCHE.
-Akhil.
>
> BR,
> -R
>
>> Konrad
>>
>>> Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
>>> ---
>>> drivers/gpu/drm/msm/adreno/adreno_gpu.c | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
>>> index d5fe6f6f0dec..0ac3fba5c277 100644
>>> --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c
>>> +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
>>> @@ -376,7 +376,7 @@ int adreno_get_param(struct msm_gpu *gpu, struct msm_context *ctx,
>>> *value = adreno_gpu->info->gmem;
>>> return 0;
>>> case MSM_PARAM_GMEM_BASE:
>>> - if (adreno_gpu->info->family >= ADRENO_6XX_GEN4)
>>> + if (adreno_gpu->info->family >= ADRENO_6XX_GEN3)
>>> *value = 0;
>>> else
>>> *value = 0x100000;
>>>
>>> ---
>>> base-commit: 1f318b96cc84d7c2ab792fcc0bfd42a7ca890681
>>> change-id: 20260314-fix-gmem-base-a650-cfd9bfcea425
>>>
>>> Best regards,
On 3/16/26 3:31 PM, Rob Clark wrote:
> On Mon, Mar 16, 2026 at 2:22 AM Konrad Dybcio
> <konrad.dybcio@oss.qualcomm.com> wrote:
>>
>> On 3/14/26 5:14 AM, Alexander Koskovich wrote:
>>> Commit dc220915ddb2 ("drm/msm: Fix GMEM_BASE for gen8") changed the
>>> GMEM_BASE check from adreno_is_a650_family() & adreno_is_a740_family()
>>> to family >= ADRENO_6XX_GEN4.
>>>
>>> This inadvertently excluded A650 (ADRENO_6XX_GEN3), causing it to report
>>> an incorrect GMEM_BASE which results in severe rendering corruption.
>>>
>>> Update check to also include ADRENO_6XX_GEN3 to fix A650.
>>>
>>> Fixes: dc220915ddb2 ("drm/msm: Fix GMEM_BASE for gen8")
>>
>> Hm, that commit also changed the value for A730 - Akhil/Rob, should
>> that be changed back?
>
> No, it was incorrect before my patch. The only problem was the change
> happened in a6xx_gen3, not a6xx_gen4. So this patch is correct.
OK, thanks
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Konrad
On Mon, Mar 16, 2026 at 10:22:44AM +0100, Konrad Dybcio wrote:
> On 3/14/26 5:14 AM, Alexander Koskovich wrote:
> > Commit dc220915ddb2 ("drm/msm: Fix GMEM_BASE for gen8") changed the
> > GMEM_BASE check from adreno_is_a650_family() & adreno_is_a740_family()
> > to family >= ADRENO_6XX_GEN4.
> >
> > This inadvertently excluded A650 (ADRENO_6XX_GEN3), causing it to report
> > an incorrect GMEM_BASE which results in severe rendering corruption.
> >
> > Update check to also include ADRENO_6XX_GEN3 to fix A650.
> >
> > Fixes: dc220915ddb2 ("drm/msm: Fix GMEM_BASE for gen8")
>
> Hm, that commit also changed the value for A730 - Akhil/Rob, should
> that be changed back?
I'd say, I'm also surprised about something being broken for A650. Which
path / stack uses this value?
>
> Konrad
>
> > Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
> > ---
> > drivers/gpu/drm/msm/adreno/adreno_gpu.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
> > index d5fe6f6f0dec..0ac3fba5c277 100644
> > --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c
> > +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
> > @@ -376,7 +376,7 @@ int adreno_get_param(struct msm_gpu *gpu, struct msm_context *ctx,
> > *value = adreno_gpu->info->gmem;
> > return 0;
> > case MSM_PARAM_GMEM_BASE:
> > - if (adreno_gpu->info->family >= ADRENO_6XX_GEN4)
> > + if (adreno_gpu->info->family >= ADRENO_6XX_GEN3)
> > *value = 0;
> > else
> > *value = 0x100000;
> >
> > ---
> > base-commit: 1f318b96cc84d7c2ab792fcc0bfd42a7ca890681
> > change-id: 20260314-fix-gmem-base-a650-cfd9bfcea425
> >
> > Best regards,
--
With best wishes
Dmitry
On 3/16/26 3:28 PM, Dmitry Baryshkov wrote:
> On Mon, Mar 16, 2026 at 10:22:44AM +0100, Konrad Dybcio wrote:
>> On 3/14/26 5:14 AM, Alexander Koskovich wrote:
>>> Commit dc220915ddb2 ("drm/msm: Fix GMEM_BASE for gen8") changed the
>>> GMEM_BASE check from adreno_is_a650_family() & adreno_is_a740_family()
>>> to family >= ADRENO_6XX_GEN4.
>>>
>>> This inadvertently excluded A650 (ADRENO_6XX_GEN3), causing it to report
>>> an incorrect GMEM_BASE which results in severe rendering corruption.
>>>
>>> Update check to also include ADRENO_6XX_GEN3 to fix A650.
>>>
>>> Fixes: dc220915ddb2 ("drm/msm: Fix GMEM_BASE for gen8")
>>
>> Hm, that commit also changed the value for A730 - Akhil/Rob, should
>> that be changed back?
>
> I'd say, I'm also surprised about something being broken for A650. Which
> path / stack uses this value?
mesa
Konrad
On Mon, Mar 16, 2026 at 7:28 AM Dmitry Baryshkov
<dmitry.baryshkov@oss.qualcomm.com> wrote:
>
> On Mon, Mar 16, 2026 at 10:22:44AM +0100, Konrad Dybcio wrote:
> > On 3/14/26 5:14 AM, Alexander Koskovich wrote:
> > > Commit dc220915ddb2 ("drm/msm: Fix GMEM_BASE for gen8") changed the
> > > GMEM_BASE check from adreno_is_a650_family() & adreno_is_a740_family()
> > > to family >= ADRENO_6XX_GEN4.
> > >
> > > This inadvertently excluded A650 (ADRENO_6XX_GEN3), causing it to report
> > > an incorrect GMEM_BASE which results in severe rendering corruption.
> > >
> > > Update check to also include ADRENO_6XX_GEN3 to fix A650.
> > >
> > > Fixes: dc220915ddb2 ("drm/msm: Fix GMEM_BASE for gen8")
> >
> > Hm, that commit also changed the value for A730 - Akhil/Rob, should
> > that be changed back?
>
> I'd say, I'm also surprised about something being broken for A650. Which
> path / stack uses this value?
Anything that samples from GMEM (gl or vk).. which could include
blend_equation_advanced, custom resolve, etc.
It's maybe not common enough to immediately notice something wrong, it
depends on your DE.
BR,
-R
> >
> > Konrad
> >
> > > Signed-off-by: Alexander Koskovich <akoskovich@pm.me>
> > > ---
> > > drivers/gpu/drm/msm/adreno/adreno_gpu.c | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
> > > index d5fe6f6f0dec..0ac3fba5c277 100644
> > > --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c
> > > +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
> > > @@ -376,7 +376,7 @@ int adreno_get_param(struct msm_gpu *gpu, struct msm_context *ctx,
> > > *value = adreno_gpu->info->gmem;
> > > return 0;
> > > case MSM_PARAM_GMEM_BASE:
> > > - if (adreno_gpu->info->family >= ADRENO_6XX_GEN4)
> > > + if (adreno_gpu->info->family >= ADRENO_6XX_GEN3)
> > > *value = 0;
> > > else
> > > *value = 0x100000;
> > >
> > > ---
> > > base-commit: 1f318b96cc84d7c2ab792fcc0bfd42a7ca890681
> > > change-id: 20260314-fix-gmem-base-a650-cfd9bfcea425
> > >
> > > Best regards,
>
> --
> With best wishes
> Dmitry
On Mon, Mar 16, 2026 at 07:34:42AM -0700, Rob Clark wrote:
> On Mon, Mar 16, 2026 at 7:28 AM Dmitry Baryshkov
> <dmitry.baryshkov@oss.qualcomm.com> wrote:
> >
> > On Mon, Mar 16, 2026 at 10:22:44AM +0100, Konrad Dybcio wrote:
> > > On 3/14/26 5:14 AM, Alexander Koskovich wrote:
> > > > Commit dc220915ddb2 ("drm/msm: Fix GMEM_BASE for gen8") changed the
> > > > GMEM_BASE check from adreno_is_a650_family() & adreno_is_a740_family()
> > > > to family >= ADRENO_6XX_GEN4.
> > > >
> > > > This inadvertently excluded A650 (ADRENO_6XX_GEN3), causing it to report
> > > > an incorrect GMEM_BASE which results in severe rendering corruption.
> > > >
> > > > Update check to also include ADRENO_6XX_GEN3 to fix A650.
> > > >
> > > > Fixes: dc220915ddb2 ("drm/msm: Fix GMEM_BASE for gen8")
> > >
> > > Hm, that commit also changed the value for A730 - Akhil/Rob, should
> > > that be changed back?
> >
> > I'd say, I'm also surprised about something being broken for A650. Which
> > path / stack uses this value?
>
> Anything that samples from GMEM (gl or vk).. which could include
> blend_equation_advanced, custom resolve, etc.
>
> It's maybe not common enough to immediately notice something wrong, it
> depends on your DE.
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
© 2016 - 2026 Red Hat, Inc.