#pragma pack(pop)
 
+//==============================================================================
+//< DMUB Trace Buffer>================================================================
+//==============================================================================
+typedef uint32_t dmub_trace_code_t;
+
+struct dmcub_trace_buf_entry {
+       dmub_trace_code_t trace_code;
+       uint32_t tick_count;
+       uint32_t param0;
+       uint32_t param1;
+};
+
 //==============================================================================
 //< DMUB_STATUS>================================================================
 //==============================================================================
 
 #include "dmub_dcn301.h"
 #include "dmub_dcn302.h"
 #include "os_types.h"
-#include "dmub_trace_buffer.h"
 /*
  * Note: the DMUB service is standalone. No additional headers should be
  * added below or above this line unless they reside within the DMUB
                cw5.region.top = cw5.region.base + tracebuff_fb->size;
 
                outbox0.base = DMUB_REGION5_BASE + TRACE_BUFFER_ENTRY_OFFSET;
-               outbox0.top = outbox0.base + sizeof(struct dmcub_trace_buf_entry) * PERF_TRACE_MAX_ENTRY;
+               outbox0.top = outbox0.base + tracebuff_fb->size - TRACE_BUFFER_ENTRY_OFFSET;
 
 
                cw6.offset.quad_part = fw_state_fb->gpu_addr;
        dmub_memset(&outbox0_rb_params, 0, sizeof(outbox0_rb_params));
        outbox0_rb_params.ctx = dmub;
        outbox0_rb_params.base_address = (void *)((uint64_t)(tracebuff_fb->cpu_addr) + TRACE_BUFFER_ENTRY_OFFSET);
-       outbox0_rb_params.capacity = sizeof(struct dmcub_trace_buf_entry) * PERF_TRACE_MAX_ENTRY;
+       outbox0_rb_params.capacity = tracebuff_fb->size - TRACE_BUFFER_ENTRY_OFFSET;
        dmub_rb_init(&dmub->outbox0_rb, &outbox0_rb_params);
 
        if (dmub->hw_funcs.reset_release)