drm/i915/selftests: Add helper function measure_power
move the power measurement and the triangle filter to a different function. No functional changes. Signed-off-by: Riana Tauro <riana.tauro@intel.com> Reviewed-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20220923110043.789178-3-riana.tauro@intel.com
This commit is contained in:
parent
c09ae4edd1
commit
ac4e856024
@ -1107,21 +1107,27 @@ static u64 __measure_power(int duration_ms)
|
||||
return div64_u64(1000 * 1000 * dE, dt);
|
||||
}
|
||||
|
||||
static u64 measure_power_at(struct intel_rps *rps, int *freq)
|
||||
static u64 measure_power(struct intel_rps *rps, int *freq)
|
||||
{
|
||||
u64 x[5];
|
||||
int i;
|
||||
|
||||
*freq = rps_set_check(rps, *freq);
|
||||
for (i = 0; i < 5; i++)
|
||||
x[i] = __measure_power(5);
|
||||
*freq = (*freq + read_cagf(rps)) / 2;
|
||||
|
||||
*freq = (*freq + intel_rps_read_actual_frequency(rps)) / 2;
|
||||
|
||||
/* A simple triangle filter for better result stability */
|
||||
sort(x, 5, sizeof(*x), cmp_u64, NULL);
|
||||
return div_u64(x[1] + 2 * x[2] + x[3], 4);
|
||||
}
|
||||
|
||||
static u64 measure_power_at(struct intel_rps *rps, int *freq)
|
||||
{
|
||||
*freq = rps_set_check(rps, *freq);
|
||||
return measure_power(rps, freq);
|
||||
}
|
||||
|
||||
int live_rps_power(void *arg)
|
||||
{
|
||||
struct intel_gt *gt = arg;
|
||||
|
Loading…
x
Reference in New Issue
Block a user