Re: [PATCH] drm/msm/a3xx: fix VBIF halt mask for A306/A306A

From: MINETTE Alexandre

Date: Fri Oct 16 2026 - 05:13:16 EST


Tested on the Samsung Galaxy S4, codename jflte with GPU Adreno A320.

No regressions seen for the A320 on my side, thanks for fixing A306.

Tested-by: Alexandre MINETTE <contact@xxxxxxxxxxx>
--
MINETTE Alexandre
contact@xxxxxxxxxxx

On 9/26/26 8:17 AM, Sam Day via B4 Relay wrote:
> From: Sam Day <me@xxxxxxxxxxx>
>
> A306 and A306A implement only three VBIF XIN halt request bits.
> Consequently, waiting for the full 6-bit A3xx mask times out and
> prevents runtime suspend.
>
> This issue was reproduced on a DragonBoard 410c: the request reads back
> as 0x7 and the acknowledgment as 0x00070007 - the poll eventually
> returns -ETIMEDOUT, and a3xx_pm_suspend fails with -EBUSY.
>
> The downstream kgsl driver corroborates this (see link). Since the
> single-character difference between A3XX_VBIF_XIN_HALT_CTRL0_MASK and
> A30X_VBIF_XIN_HALT_CTRL0_MASK could be confusing to read, the narrowed
> GENMASK is instead defined inline in a3xx_vbif_halt().
>
> Fixes: be0e82b8e0c9 ("drm/msm/a3xx: Drain VBIF before GPU suspend")
> Link:
> https://android.googlesource.com/kernel/msm/+/c90c7feeca2f5839ad6824f816c0bd207602a2f4/drivers/gpu/msm/adreno_a3xx.c#637
> Assisted-by: LLM
> Signed-off-by: Sam Day <me@xxxxxxxxxxx>
> ---