mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-10 11:40:19 -04:00
drm/amd/display: Update dchubbub.h for hubbub perfmon support
[why] dchubbub supports performance monitoring for hubbub. The interfaces define the performance monitoring events and their attributes. Reviewed-by: Alvin Lee <alvin.lee2@amd.com> Signed-off-by: Wenjing Liu <wenjing.liu@amd.com> Signed-off-by: Wayne Lin <wayne.lin@amd.com> Tested-by: Dan Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
215bed5489
commit
f74291c1de
@@ -137,6 +137,19 @@ struct dcn_hubbub_state {
|
||||
uint32_t dram_state_cntl;
|
||||
};
|
||||
|
||||
struct hubbub_system_latencies {
|
||||
uint32_t max_latency_ns;
|
||||
uint32_t avg_latency_ns;
|
||||
uint32_t min_latency_ns;
|
||||
};
|
||||
|
||||
struct hubbub_urgent_latency_params {
|
||||
uint32_t refclk_mhz;
|
||||
uint32_t t_win_ns;
|
||||
uint32_t bandwidth_mbps;
|
||||
uint32_t bw_factor_x1000;
|
||||
};
|
||||
|
||||
struct hubbub_funcs {
|
||||
void (*update_dchub)(
|
||||
struct hubbub *hubbub,
|
||||
@@ -231,6 +244,15 @@ 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);
|
||||
void (*reset)(struct hubbub *hubbub);
|
||||
} perfmon;
|
||||
};
|
||||
|
||||
struct hubbub {
|
||||
|
||||
Reference in New Issue
Block a user