AMD General

Reviewed-by: Harish Kasiviswanathan <[email protected]>
________________________________
From: Joshi, Mukul <[email protected]>
Sent: Tuesday, September 15, 2026 2:48 PM
To: [email protected] <[email protected]>
Cc: Kasiviswanathan, Harish <[email protected]>; Joshi, Mukul 
<[email protected]>
Subject: [PATCH] drm/amdkfd: set CP_HQD_PQ_CONTROL.SCOPE for PM4 queues too on 
GFX 12.1

The previous change set CP_HQD_PQ_CONTROL.SCOPE=3 (SYSTEM) only for AQL
queues, but PM4 queues can also use non-coherently cached ring buffers
and hit the same stale-packet problem.

Move the SCOPE=3 assignment into the common path so it applies to both
AQL and PM4 queues.

Signed-off-by: Mukul Joshi <[email protected]>
---
 drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v12_1.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v12_1.c 
b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v12_1.c
index 29c20398c60b..61e9282f3fb6 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v12_1.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v12_1.c
@@ -274,6 +274,7 @@ static void update_mqd(struct mqd_manager *mm, void *mqd,
         m->cp_hqd_pq_control |=
                         ffs(q->queue_size / sizeof(unsigned int)) - 1 - 1;
         m->cp_hqd_pq_control |= CP_HQD_PQ_CONTROL__UNORD_DISPATCH_MASK;
+       m->cp_hqd_pq_control |= 3 << CP_HQD_PQ_CONTROL__SCOPE__SHIFT;
         pr_debug("cp_hqd_pq_control 0x%x\n", m->cp_hqd_pq_control);

         m->cp_hqd_pq_base_lo = lower_32_bits((uint64_t)q->queue_address >> 8);
@@ -335,7 +336,6 @@ static void update_mqd(struct mqd_manager *mm, void *mqd,
                 /* GC 10 removed WPP_CLAMP from PQ Control */
                 m->cp_hqd_pq_control |= CP_HQD_PQ_CONTROL__NO_UPDATE_RPTR_MASK 
|
                                 2 << CP_HQD_PQ_CONTROL__SLOT_BASED_WPTR__SHIFT 
|
-                               3 << CP_HQD_PQ_CONTROL__SCOPE__SHIFT |
                                 1 << CP_HQD_PQ_CONTROL__QUEUE_FULL_EN__SHIFT;
                 m->cp_hqd_pq_doorbell_control |=
                         1 << 
CP_HQD_PQ_DOORBELL_CONTROL__DOORBELL_BIF_DROP__SHIFT;
--
2.55.0

Reply via email to