[PATCH v2 1/4] Add support for API for drivers to set power saving policy
Mario Limonciello
mario.limonciello at amd.com
Wed May 22 22:08:46 UTC 2024
---
lib/igt_kms.c | 26 ++++++++++++++++++++++++++
lib/igt_kms.h | 6 ++++++
2 files changed, 32 insertions(+)
diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index af63d13b1..4ce5e4a95 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -6581,3 +6581,29 @@ int get_num_scalers(int drm_fd, enum pipe pipe)
return num_scalers;
}
+
+static int toggle_power_saving_policy_prop(int drm_fd, igt_output_t *output, uint64_t policy)
+{
+ uint32_t type = DRM_MODE_OBJECT_CONNECTOR;
+ bool prop_exists;
+ uint32_t prop_id;
+
+ prop_exists = kmstest_get_property(
+ drm_fd, output->id, type, "power saving policy",
+ &prop_id, NULL, NULL);
+
+ if (!prop_exists)
+ return -ENODEV;
+
+ return drmModeObjectSetProperty(drm_fd, output->id, type, prop_id, policy);
+}
+
+int clear_power_saving_policy(int drm_fd, igt_output_t *output)
+{
+ return toggle_power_saving_policy_prop(drm_fd, output, 0);
+}
+
+int set_panel_power_saving_policy(int drm_fd, igt_output_t *output, uint64_t policy)
+{
+ return toggle_power_saving_policy_prop(drm_fd, output, policy);
+}
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index 01604dac9..129b88576 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -1223,4 +1223,10 @@ bool igt_check_output_is_dp_mst(igt_output_t *output);
int igt_get_dp_mst_connector_id(igt_output_t *output);
int get_num_scalers(int drm_fd, enum pipe pipe);
+#define DRM_MODE_REQUIRE_COLOR_ACCURACY BIT(0) /* Compositor requires color accuracy */
+#define DRM_MODE_REQUIRE_LOW_LATENCY BIT(1) /* Compositor requires low latency */
+
+int clear_power_saving_policy(int drm_fd, igt_output_t *output);
+int set_panel_power_saving_policy(int drm_fd, igt_output_t *output, uint64_t policy);
+
#endif /* __IGT_KMS_H__ */
--
2.43.0
More information about the amd-gfx
mailing list