[PATCH] drm/amdgpu: reduce ip discovery data reading size

Zhang, Hawking Hawking.Zhang at amd.com
Wed Jun 24 14:40:16 UTC 2020

[AMD Public Use]

To make the description accurate, Let's say only read the first 4KB, starting from total_vram - 64KB, for ip discovery data. 

As discussed, no matter the TMR block is 64KB or 1MB, the ip discovery data block always located in the same offset and with the same size (4KB)


-----Original Message-----
From: amd-gfx <amd-gfx-bounces at lists.freedesktop.org> On Behalf Of Zhang, Hawking
Sent: Wednesday, June 24, 2020 22:38
To: Sheng, Wenhui <Wenhui.Sheng at amd.com>; amd-gfx at lists.freedesktop.org
Cc: Zhang, Andy <Andy.Zhang at amd.com>; Liu, Shaoyun <Shaoyun.Liu at amd.com>
Subject: RE: [PATCH] drm/amdgpu: reduce ip discovery data reading size

[AMD Public Use]

Reviewed-by: Hawking Zhang <Hawking.Zhang at amd.com>

-----Original Message-----
From: Sheng, Wenhui <Wenhui.Sheng at amd.com> 
Sent: Wednesday, June 24, 2020 22:35
To: amd-gfx at lists.freedesktop.org
Cc: Zhang, Hawking <Hawking.Zhang at amd.com>; Sheng, Wenhui <Wenhui.Sheng at amd.com>
Subject: [PATCH] drm/amdgpu: reduce ip discovery data reading size

From: Wenhui Sheng <Wenhui.Sheng at amd.com>

Only read first 4K data instead of whole TMR block, so we can reduce the time in full access mode.

Signed-off-by: Wenhui Sheng <Wenhui.Sheng at amd.com>	
 drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 2 +-  drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.h | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
index b5d6274952a5..82c048766745 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
@@ -133,7 +133,7 @@ static int hw_id_map[MAX_HWIP] = {  static int amdgpu_discovery_read_binary(struct amdgpu_device *adev, uint8_t *binary)  {
 	uint64_t vram_size = (uint64_t)RREG32(mmRCC_CONFIG_MEMSIZE) << 20;
-	uint64_t pos = vram_size - adev->discovery_tmr_size;
+	uint64_t pos = vram_size - DISCOVERY_TMR_OFFSET;
 	amdgpu_device_vram_access(adev, pos, (uint32_t *)binary,
 				  adev->discovery_tmr_size, false); diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.h
index d50d597c45ed..8f6183801cb3 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.h
@@ -24,7 +24,8 @@
-#define DISCOVERY_TMR_SIZE  (64 << 10)
+#define DISCOVERY_TMR_SIZE      (4 << 10)
+#define DISCOVERY_TMR_OFFSET    (64 << 10)
 void amdgpu_discovery_fini(struct amdgpu_device *adev);  int amdgpu_discovery_reg_base_init(struct amdgpu_device *adev);
amd-gfx mailing list
amd-gfx at lists.freedesktop.org

More information about the amd-gfx mailing list