summaryrefslogtreecommitdiff
path: root/tests/kms_fbcon_fbt.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/kms_fbcon_fbt.c')
-rw-r--r--tests/kms_fbcon_fbt.c33
1 files changed, 22 insertions, 11 deletions
diff --git a/tests/kms_fbcon_fbt.c b/tests/kms_fbcon_fbt.c
index 8d90e6ae..138eda9b 100644
--- a/tests/kms_fbcon_fbt.c
+++ b/tests/kms_fbcon_fbt.c
@@ -25,6 +25,7 @@
*/
#include "igt.h"
+#include "igt_psr.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
@@ -209,29 +210,39 @@ static bool psr_wait_until_enabled(int fd)
return r;
}
+static void disable_features(int fd)
+{
+ igt_set_module_param_int("enable_fbc", 0);
+ psr_disable(fd);
+}
+
+static inline void fbc_modparam_enable(int fd)
+{
+ igt_set_module_param_int("enable_fbc", 1);
+}
+
+static inline void psr_debugfs_enable(int fd)
+{
+ psr_enable(fd);
+}
+
struct feature {
bool (*supported_on_chipset)(int fd);
bool (*wait_until_enabled)(int fd);
bool (*connector_possible_fn)(drmModeConnectorPtr connector);
- const char *param_name;
+ void (*enable)(int fd);
} fbc = {
.supported_on_chipset = fbc_supported_on_chipset,
.wait_until_enabled = fbc_wait_until_enabled,
.connector_possible_fn = connector_can_fbc,
- .param_name = "enable_fbc",
+ .enable = fbc_modparam_enable,
}, psr = {
.supported_on_chipset = psr_supported_on_chipset,
.wait_until_enabled = psr_wait_until_enabled,
.connector_possible_fn = connector_can_psr,
- .param_name = "enable_psr",
+ .enable = psr_debugfs_enable,
};
-static void disable_features(void)
-{
- igt_set_module_param_int(fbc.param_name, 0);
- igt_set_module_param_int(psr.param_name, 0);
-}
-
static void subtest(struct feature *feature, bool suspend)
{
struct drm_info drm;
@@ -241,8 +252,8 @@ static void subtest(struct feature *feature, bool suspend)
igt_require(feature->supported_on_chipset(drm.debugfs_fd));
- disable_features();
- igt_set_module_param_int(feature->param_name, 1);
+ disable_features(drm.debugfs_fd);
+ feature->enable(drm.debugfs_fd);
kmstest_unset_all_crtcs(drm.fd, drm.res);
wait_user("Modes unset.");