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 perfmon measurement interfaces

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

Reviewed-by: Alvin Lee <alvin.lee2@amd.com>
Signed-off-by: Wenjing Liu <wenjing.liu@amd.com>
Signed-off-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Wenjing Liu and committed by
Alex Deucher
d745900b 3b98fd0e

+29 -7
+29 -7
drivers/gpu/drm/amd/display/dc/inc/hw/dchubbub.h
··· 244 244 bool (*program_arbiter)(struct hubbub *hubbub, struct dml2_display_arb_regs *arb_regs, bool safe_to_lower); 245 245 void (*get_det_sizes)(struct hubbub *hubbub, uint32_t *curr_det_sizes, uint32_t *target_det_sizes); 246 246 uint32_t (*compbuf_config_error)(struct hubbub *hubbub); 247 - struct hubbub_perfmon_funcs{ 248 - void (*start_system_latency_measurement)(struct hubbub *hubbub); 249 - void (*get_system_latency_result)(struct hubbub *hubbub, uint32_t refclk_mhz, struct hubbub_system_latencies *latencies); 250 - void (*start_in_order_bandwidth_measurement)(struct hubbub *hubbub); 251 - void (*get_in_order_bandwidth_result)(struct hubbub *hubbub, uint32_t refclk_mhz, uint32_t *bandwidth_mbps); 252 - void (*start_urgent_ramp_latency_measurement)(struct hubbub *hubbub, const struct hubbub_urgent_latency_params *params); 253 - void (*get_urgent_ramp_latency_result)(struct hubbub *hubbub, uint32_t refclk_mhz, uint32_t *latency_ns); 247 + struct hubbub_perfmon_funcs { 254 248 void (*reset)(struct hubbub *hubbub); 249 + void (*start_measuring_max_memory_latency_ns)( 250 + struct hubbub *hubbub); 251 + uint32_t (*get_max_memory_latency_ns)(struct hubbub *hubbub, 252 + uint32_t refclk_mhz, uint32_t *sample_count); 253 + void (*start_measuring_average_memory_latency_ns)( 254 + struct hubbub *hubbub); 255 + uint32_t (*get_average_memory_latency_ns)(struct hubbub *hubbub, 256 + uint32_t refclk_mhz, uint32_t *sample_count); 257 + void (*start_measuring_urgent_ramp_latency_ns)( 258 + struct hubbub *hubbub, 259 + const struct hubbub_urgent_latency_params *params); 260 + uint32_t (*get_urgent_ramp_latency_ns)(struct hubbub *hubbub, 261 + uint32_t refclk_mhz); 262 + void (*start_measuring_unbounded_bandwidth_mbps)( 263 + struct hubbub *hubbub); 264 + uint32_t (*get_unbounded_bandwidth_mbps)(struct hubbub *hubbub, 265 + uint32_t refclk_mhz, uint32_t *duration_ns); 266 + void (*start_measuring_average_bandwidth_mbps)( 267 + struct hubbub *hubbub); 268 + uint32_t (*get_average_bandwidth_mbps)(struct hubbub *hubbub, 269 + uint32_t refclk_mhz, uint32_t min_duration_ns, 270 + uint32_t *duration_ns); 255 271 } perfmon; 272 + 273 + struct hubbub_qos_funcs { 274 + void (*force_display_nominal_profile)(struct hubbub *hubbub); 275 + void (*force_display_urgent_profile)(struct hubbub *hubbub); 276 + void (*reset_display_qos_profile)(struct hubbub *hubbub); 277 + } qos; 256 278 }; 257 279 258 280 struct hubbub {