From: Maximilian Luz <[email protected]>

Commit 60a4e18e0e8a ("drm/msm/adreno: Do CX GBIF config before GMU
start") moved the GBIF_QSB_SIDE{0..3} configuration from hw_init() to
the per-GPU catalog entries. Previously, it was applied to all GPUs of
the A610, A640, and A650 families as well as A7xx. However, the A640
family entries (A640 and A680) were not updated with the new gbif_cx
list, so the configuration is no longer applied on these GPUs.

On the Surface Pro X (SC8180X, A680), this results in GMU HFI timeouts
(e.g. for HFI_H2F_MSG_GX_BW_PERF_VOTE) and GPU lockups shortly after
starting a desktop session.

Add the missing gbif_cx entries to restore the previous behavior.

Fixes: 60a4e18e0e8a ("drm/msm/adreno: Do CX GBIF config before GMU start")
Signed-off-by: Maximilian Luz <[email protected]>
Signed-off-by: Val Packett <[email protected]>
---
 drivers/gpu/drm/msm/adreno/a6xx_catalog.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/msm/adreno/a6xx_catalog.c 
b/drivers/gpu/drm/msm/adreno/a6xx_catalog.c
index 4ef2bd6e7ad2..6c154792cb07 100644
--- a/drivers/gpu/drm/msm/adreno/a6xx_catalog.c
+++ b/drivers/gpu/drm/msm/adreno/a6xx_catalog.c
@@ -1041,6 +1041,7 @@ static const struct adreno_info a6xx_gpus[] = {
                .a6xx = &(const struct a6xx_info) {
                        .hwcg = a640_hwcg,
                        .protect = &a630_protect,
+                       .gbif_cx = a640_gbif,
                        .gmu_cgc_mode = 0x00020202,
                        .prim_fifo_threshold = 0x00180000,
                },
@@ -1164,6 +1165,7 @@ static const struct adreno_info a6xx_gpus[] = {
                .a6xx = &(const struct a6xx_info) {
                        .hwcg = a640_hwcg,
                        .protect = &a630_protect,
+                       .gbif_cx = a640_gbif,
                        .gmu_cgc_mode = 0x00020202,
                        .prim_fifo_threshold = 0x00200200,
                },
-- 
2.56.0

Reply via email to