mirror of
https://github.com/torvalds/linux.git
synced 2024-09-20 06:53:04 +00:00
drm/amdgpu: increase mes log buffer size for gfx12
MES firmware requires larger log buffer for gfx12. Allocate proper buffer respectively for gfx11 and gfx12. Signed-off-by: Michael Chen <michael.chen@amd.com> Acked-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
58a8ee96f8
commit
739d0f3e1f
|
@ -103,7 +103,7 @@ static int amdgpu_mes_event_log_init(struct amdgpu_device *adev)
|
|||
if (!amdgpu_mes_log_enable)
|
||||
return 0;
|
||||
|
||||
r = amdgpu_bo_create_kernel(adev, AMDGPU_MES_LOG_BUFFER_SIZE, PAGE_SIZE,
|
||||
r = amdgpu_bo_create_kernel(adev, adev->mes.event_log_size, PAGE_SIZE,
|
||||
AMDGPU_GEM_DOMAIN_GTT,
|
||||
&adev->mes.event_log_gpu_obj,
|
||||
&adev->mes.event_log_gpu_addr,
|
||||
|
@ -113,7 +113,7 @@ static int amdgpu_mes_event_log_init(struct amdgpu_device *adev)
|
|||
return r;
|
||||
}
|
||||
|
||||
memset(adev->mes.event_log_cpu_addr, 0, PAGE_SIZE);
|
||||
memset(adev->mes.event_log_cpu_addr, 0, adev->mes.event_log_size);
|
||||
|
||||
return 0;
|
||||
|
||||
|
@ -1573,7 +1573,7 @@ static int amdgpu_debugfs_mes_event_log_show(struct seq_file *m, void *unused)
|
|||
uint32_t *mem = (uint32_t *)(adev->mes.event_log_cpu_addr);
|
||||
|
||||
seq_hex_dump(m, "", DUMP_PREFIX_OFFSET, 32, 4,
|
||||
mem, AMDGPU_MES_LOG_BUFFER_SIZE, false);
|
||||
mem, adev->mes.event_log_size, false);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -52,7 +52,6 @@ enum amdgpu_mes_priority_level {
|
|||
|
||||
#define AMDGPU_MES_PROC_CTX_SIZE 0x1000 /* one page area */
|
||||
#define AMDGPU_MES_GANG_CTX_SIZE 0x1000 /* one page area */
|
||||
#define AMDGPU_MES_LOG_BUFFER_SIZE 0x4000 /* Maximu log buffer size for MES */
|
||||
|
||||
struct amdgpu_mes_funcs;
|
||||
|
||||
|
@ -135,8 +134,9 @@ struct amdgpu_mes {
|
|||
unsigned long *doorbell_bitmap;
|
||||
|
||||
/* MES event log buffer */
|
||||
struct amdgpu_bo *event_log_gpu_obj;
|
||||
uint64_t event_log_gpu_addr;
|
||||
uint32_t event_log_size;
|
||||
struct amdgpu_bo *event_log_gpu_obj;
|
||||
uint64_t event_log_gpu_addr;
|
||||
void *event_log_cpu_addr;
|
||||
|
||||
/* ip specific functions */
|
||||
|
|
|
@ -1163,6 +1163,8 @@ static int mes_v11_0_sw_init(void *handle)
|
|||
adev->mes.kiq_hw_init = &mes_v11_0_kiq_hw_init;
|
||||
adev->mes.kiq_hw_fini = &mes_v11_0_kiq_hw_fini;
|
||||
|
||||
adev->mes.event_log_size = AMDGPU_MES_LOG_BUFFER_SIZE;
|
||||
|
||||
r = amdgpu_mes_init(adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
|
|
@ -551,8 +551,10 @@ static int mes_v12_0_set_hw_resources(struct amdgpu_mes *mes)
|
|||
mes_set_hw_res_pkt.oversubscription_timer = 50;
|
||||
mes_set_hw_res_pkt.unmapped_doorbell_handling = 1;
|
||||
|
||||
mes_set_hw_res_pkt.enable_mes_event_int_logging = 0;
|
||||
mes_set_hw_res_pkt.event_intr_history_gpu_mc_ptr = mes->event_log_gpu_addr;
|
||||
if (amdgpu_mes_log_enable) {
|
||||
mes_set_hw_res_pkt.enable_mes_event_int_logging = 1;
|
||||
mes_set_hw_res_pkt.event_intr_history_gpu_mc_ptr = mes->event_log_gpu_addr;
|
||||
}
|
||||
|
||||
return mes_v12_0_submit_pkt_and_poll_completion(mes,
|
||||
&mes_set_hw_res_pkt, sizeof(mes_set_hw_res_pkt),
|
||||
|
@ -1237,6 +1239,8 @@ static int mes_v12_0_sw_init(void *handle)
|
|||
adev->mes.kiq_hw_init = &mes_v12_0_kiq_hw_init;
|
||||
adev->mes.kiq_hw_fini = &mes_v12_0_kiq_hw_fini;
|
||||
|
||||
adev->mes.event_log_size = AMDGPU_MES_LOG_BUFFER_SIZE;
|
||||
|
||||
r = amdgpu_mes_init(adev);
|
||||
if (r)
|
||||
return r;
|
||||
|
|
|
@ -28,6 +28,9 @@
|
|||
|
||||
#define MES_API_VERSION 1
|
||||
|
||||
/* Maximum log buffer size for MES. Needs to be updated if MES expands MES_EVT_INTR_HIST_LOG */
|
||||
#define AMDGPU_MES_LOG_BUFFER_SIZE 0x4000
|
||||
|
||||
/* Driver submits one API(cmd) as a single Frame and this command size is same
|
||||
* for all API to ease the debugging and parsing of ring buffer.
|
||||
*/
|
||||
|
|
|
@ -28,6 +28,9 @@
|
|||
|
||||
#define MES_API_VERSION 0x14
|
||||
|
||||
/* Maximum log buffer size for MES. Needs to be updated if MES expands MES_EVT_INTR_HIST_LOG_12 */
|
||||
#define AMDGPU_MES_LOG_BUFFER_SIZE 0xC000
|
||||
|
||||
/* Driver submits one API(cmd) as a single Frame and this command size is same for all API
|
||||
* to ease the debugging and parsing of ring buffer.
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue
Block a user