Re: [PATCH 4/6] drm/amdgpu: add support for gfx v10 print

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 4/16/2024 7:27 PM, Alex Deucher wrote:
On Tue, Apr 16, 2024 at 8:08 AM Sunil Khatri <sunil.khatri@xxxxxxx> wrote:
Add support to print ip information to be
used to print registers in devcoredump
buffer.

Signed-off-by: Sunil Khatri <sunil.khatri@xxxxxxx>
---
 drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
index 822bee932041..a7c2a3ddd613 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
@@ -9268,6 +9268,21 @@ static void gfx_v10_0_emit_mem_sync(struct amdgpu_ring *ring)
        amdgpu_ring_write(ring, gcr_cntl); /* GCR_CNTL */
 }

+static void gfx_v10_ip_print(void *handle, struct drm_printer *p)
+{
+       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       uint32_t i;
+       uint32_t reg_count = ARRAY_SIZE(gc_reg_list_10_1);
+
+       if (!adev->gfx.ip_dump)
+               return;
+
+       for (i = 0; i < reg_count; i++)
+               drm_printf(p, "0x%04x \t 0x%08x\n",
+                          adev->gfx.ip_dump[i].offset,
Print the name of the register rather than the offset here to make it
output easier to read.  See my comments from patch 2.

Just register name and value is fine or we need the offset too.

Also i am assuming stringify the macro is good enough ?
eg:

#define mmGRBM_STATUS                                                                                  0x0da4
so printing register name exactly like mmGRBM_STATUS is acceptable ? we dont need to remove mm as it makes it complicated.

+                          adev->gfx.ip_dump[i].value);
+}
+
 static void gfx_v10_ip_dump(void *handle)
 {
        struct amdgpu_device *adev = (struct amdgpu_device *)handle;
@@ -9300,7 +9315,7 @@ static const struct amd_ip_funcs gfx_v10_0_ip_funcs = {
        .set_powergating_state = gfx_v10_0_set_powergating_state,
        .get_clockgating_state = gfx_v10_0_get_clockgating_state,
        .dump_ip_state = gfx_v10_ip_dump,
-       .print_ip_state = NULL,
+       .print_ip_state = gfx_v10_ip_print,
 };

 static const struct amdgpu_ring_funcs gfx_v10_0_ring_funcs_gfx = {
--
2.34.1


[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux