From: Wenjing Liu <[email protected]>

[how]
The commit update interfaces for dchubbub perfmon meansurement to better
reflect our requirements.

Reviewed-by: Alvin Lee <[email protected]>
Signed-off-by: Wenjing Liu <[email protected]>
Signed-off-by: Aurabindo Pillai <[email protected]>
---
 .../gpu/drm/amd/display/dc/inc/hw/dchubbub.h  | 36 +++++++++++++++----
 1 file changed, 29 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h 
b/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h
index 843a18287c83..2ce47c403840 100644
--- a/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h
+++ b/drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h
@@ -244,15 +244,37 @@ struct hubbub_funcs {
        bool (*program_arbiter)(struct hubbub *hubbub, struct 
dml2_display_arb_regs *arb_regs, bool safe_to_lower);
        void (*get_det_sizes)(struct hubbub *hubbub, uint32_t *curr_det_sizes, 
uint32_t *target_det_sizes);
        uint32_t (*compbuf_config_error)(struct hubbub *hubbub);
-       struct hubbub_perfmon_funcs{
-               void (*start_system_latency_measurement)(struct hubbub *hubbub);
-               void (*get_system_latency_result)(struct hubbub *hubbub, 
uint32_t refclk_mhz, struct hubbub_system_latencies *latencies);
-               void (*start_in_order_bandwidth_measurement)(struct hubbub 
*hubbub);
-               void (*get_in_order_bandwidth_result)(struct hubbub *hubbub, 
uint32_t refclk_mhz, uint32_t *bandwidth_mbps);
-               void (*start_urgent_ramp_latency_measurement)(struct hubbub 
*hubbub, const struct hubbub_urgent_latency_params *params);
-               void (*get_urgent_ramp_latency_result)(struct hubbub *hubbub, 
uint32_t refclk_mhz, uint32_t *latency_ns);
+       struct hubbub_perfmon_funcs {
                void (*reset)(struct hubbub *hubbub);
+               void (*start_measuring_max_memory_latency_ns)(
+                               struct hubbub *hubbub);
+               uint32_t (*get_max_memory_latency_ns)(struct hubbub *hubbub,
+                               uint32_t refclk_mhz, uint32_t *sample_count);
+               void (*start_measuring_average_memory_latency_ns)(
+                               struct hubbub *hubbub);
+               uint32_t (*get_average_memory_latency_ns)(struct hubbub *hubbub,
+                               uint32_t refclk_mhz, uint32_t *sample_count);
+               void (*start_measuring_urgent_ramp_latency_ns)(
+                               struct hubbub *hubbub,
+                               const struct hubbub_urgent_latency_params 
*params);
+               uint32_t (*get_urgent_ramp_latency_ns)(struct hubbub *hubbub,
+                               uint32_t refclk_mhz);
+               void (*start_measuring_unbounded_bandwidth_mbps)(
+                               struct hubbub *hubbub);
+               uint32_t (*get_unbounded_bandwidth_mbps)(struct hubbub *hubbub,
+                               uint32_t refclk_mhz, uint32_t *duration_ns);
+               void (*start_measuring_average_bandwidth_mbps)(
+                               struct hubbub *hubbub);
+               uint32_t (*get_average_bandwidth_mbps)(struct hubbub *hubbub,
+                               uint32_t refclk_mhz, uint32_t min_duration_ns,
+                               uint32_t *duration_ns);
        } perfmon;
+
+       struct hubbub_qos_funcs {
+               void (*force_display_nominal_profile)(struct hubbub *hubbub);
+               void (*force_display_urgent_profile)(struct hubbub *hubbub);
+               void (*reset_display_qos_profile)(struct hubbub *hubbub);
+       } qos;
 };
 
 struct hubbub {
-- 
2.51.0

Reply via email to