Yeah, the bit basically tells the IH which PASID lookup table to use for
VMID->PASID translation.
I briefly remember that I've just copied&pasted the fields from the
IH_COOKIE definition.
Reviewed-by: Christian König <christian.koenig@xxxxxxx>
Am 28.04.23 um 04:54 schrieb Liu, Aaron:
[AMD Official Use Only - General]
Good catch!
The PASID_SRC bit is only used in IH_COOKIE which is sent as register write to the IH by IH_client.
But in the interrupt packet from IH to driver, the corresponding bit is always reserved. PASID_SRC is not to be used for driver.
Reviewed-by: Aaron Liu <aaron.liu@xxxxxxx>
-----Original Message-----
From: amd-gfx <amd-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of
Xiaomeng Hou
Sent: Thursday, April 27, 2023 3:17 PM
To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx
Cc: Deucher, Alexander <Alexander.Deucher@xxxxxxx>; Ji, Ruili
<Ruili.Ji@xxxxxxx>; Hou, Xiaomeng (Matthew) <Xiaomeng.Hou@xxxxxxx>;
Koenig, Christian <Christian.Koenig@xxxxxxx>
Subject: [PATCH] drm/amdgpu: remove pasid_src field from IV entry
PASID_SRC is not actually present in the Interrupt Packet, the field is taken as
reserved bits now. So remove it from IV entry to avoid misuse.
Signed-off-by: Xiaomeng Hou <Xiaomeng.Hou@xxxxxxx>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c | 1 -
drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h | 1 -
2 files changed, 2 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c
index d58353c89e59..fceb3b384955 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ih.c
@@ -271,7 +271,6 @@ void amdgpu_ih_decode_iv_helper(struct
amdgpu_device *adev,
entry->timestamp_src = dw[2] >> 31;
entry->pasid = dw[3] & 0xffff;
entry->node_id = (dw[3] >> 16) & 0xff;
- entry->pasid_src = dw[3] >> 31;
entry->src_data[0] = dw[4];
entry->src_data[1] = dw[5];
entry->src_data[2] = dw[6];
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h
b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h
index 7a8e686bdd41..1c747ac4129a 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h
@@ -54,7 +54,6 @@ struct amdgpu_iv_entry {
unsigned timestamp_src;
unsigned pasid;
unsigned node_id;
- unsigned pasid_src;
unsigned src_data[AMDGPU_IRQ_SRC_DATA_MAX_SIZE_DW];
const uint32_t *iv_entry;
};
--
2.25.1