Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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>

authored by

Wenjing Liu and committed by
Alex Deucher
f74291c1 215bed54

+22
+22
drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h
··· 137 137 uint32_t dram_state_cntl; 138 138 }; 139 139 140 + struct hubbub_system_latencies { 141 + uint32_t max_latency_ns; 142 + uint32_t avg_latency_ns; 143 + uint32_t min_latency_ns; 144 + }; 145 + 146 + struct hubbub_urgent_latency_params { 147 + uint32_t refclk_mhz; 148 + uint32_t t_win_ns; 149 + uint32_t bandwidth_mbps; 150 + uint32_t bw_factor_x1000; 151 + }; 152 + 140 153 struct hubbub_funcs { 141 154 void (*update_dchub)( 142 155 struct hubbub *hubbub, ··· 244 231 bool (*program_arbiter)(struct hubbub *hubbub, struct dml2_display_arb_regs *arb_regs, bool safe_to_lower); 245 232 void (*get_det_sizes)(struct hubbub *hubbub, uint32_t *curr_det_sizes, uint32_t *target_det_sizes); 246 233 uint32_t (*compbuf_config_error)(struct hubbub *hubbub); 234 + struct hubbub_perfmon_funcs{ 235 + void (*start_system_latency_measurement)(struct hubbub *hubbub); 236 + void (*get_system_latency_result)(struct hubbub *hubbub, uint32_t refclk_mhz, struct hubbub_system_latencies *latencies); 237 + void (*start_in_order_bandwidth_measurement)(struct hubbub *hubbub); 238 + void (*get_in_order_bandwidth_result)(struct hubbub *hubbub, uint32_t refclk_mhz, uint32_t *bandwidth_mbps); 239 + void (*start_urgent_ramp_latency_measurement)(struct hubbub *hubbub, const struct hubbub_urgent_latency_params *params); 240 + void (*get_urgent_ramp_latency_result)(struct hubbub *hubbub, uint32_t refclk_mhz, uint32_t *latency_ns); 241 + void (*reset)(struct hubbub *hubbub); 242 + } perfmon; 247 243 }; 248 244 249 245 struct hubbub {