Test verifies that frequency gets boosted to gt_boost_freq_mhz even though gt_max_freq_mhz is lower than gt_boost_freq_mhz.
Cc: Arkadiusz Hiler <arkadiusz.hi...@intel.com> Cc: Michal Winiarski <michal.winiar...@intel.com> Signed-off-by: Radoslaw Szwichtenberg <radoslaw.szwichtenb...@intel.com> --- tests/pm_rps.c | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/tests/pm_rps.c b/tests/pm_rps.c index 7aa66a8..3cbbeeb 100644 --- a/tests/pm_rps.c +++ b/tests/pm_rps.c @@ -50,6 +50,7 @@ enum { RP0, RP1, RPn, + BOOST, NUMFREQ }; @@ -60,7 +61,14 @@ struct junk { const char *mode; FILE *filp; } stuff[] = { - { "cur", "r", NULL }, { "min", "rb+", NULL }, { "max", "rb+", NULL }, { "RP0", "r", NULL }, { "RP1", "r", NULL }, { "RPn", "r", NULL }, { NULL, NULL, NULL } + { "cur", "r", NULL }, + { "min", "rb+", NULL }, + { "max", "rb+", NULL }, + { "RP0", "r", NULL }, + { "RP1", "r", NULL }, + { "RPn", "r", NULL }, + {"boost", "rb+", NULL }, + { NULL, NULL, NULL } }; static int readval(FILE *filp) @@ -614,6 +622,27 @@ static void waitboost(bool reset) close(fd); } +static void waitboost_softlimit(void) +{ + int boost_freqs[NUMFREQ]; + int fmid = (origfreqs[RPn] + origfreqs[RP0]) / 2; + int fd = drm_open_driver(DRIVER_INTEL); + fmid = get_hw_rounded_freq(fmid); + + igt_debug("Set min and max to midpoint\n"); + writeval(stuff[MIN].filp, fmid); + writeval(stuff[MAX].filp, fmid); + + /* When we wait upon the GPU, we want to temporarily boost it + * to maximum. + */ + boost_freq(fd, boost_freqs); + + igt_assert_eq(boost_freqs[CUR], boost_freqs[BOOST]); + + close(fd); +} + static void pm_rps_exit_handler(int sig) { if (origfreqs[MIN] > readval(stuff[MAX].filp)) { @@ -679,4 +708,6 @@ igt_main igt_subtest("reset") waitboost(true); + igt_subtest("waitboost-softlimit") + waitboost_softlimit(); } -- 2.9.3 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx