From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id E288510E078 for ; Thu, 2 Nov 2023 06:15:20 +0000 (UTC) From: Kunal Joshi To: igt-dev@lists.freedesktop.org Date: Thu, 2 Nov 2023 11:53:03 +0530 Message-Id: <20231102062304.1204625-2-kunal1.joshi@intel.com> In-Reply-To: <20231102062304.1204625-1-kunal1.joshi@intel.com> References: <20231102062304.1204625-1-kunal1.joshi@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [igt-dev] [PATCH i-g-t 1/2] lib/igt_debugfs: added helper to enable/disable dark screen detection List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kunal Joshi , Nemesa Garg , Arun R Murthy Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" List-ID: added helper function for dark screen detection Cc: Nemesa Garg Cc: Arun R Murthy Cc: Bhanuprakash Modem Signed-off-by: Kunal Joshi --- lib/igt_debugfs.c | 41 +++++++++++++++++++++++++++++++++++++++++ lib/igt_debugfs.h | 3 +++ 2 files changed, 44 insertions(+) diff --git a/lib/igt_debugfs.c b/lib/igt_debugfs.c index a7b54bae5..e2a4b17ea 100644 --- a/lib/igt_debugfs.c +++ b/lib/igt_debugfs.c @@ -743,3 +743,44 @@ void __igt_debugfs_dump(int device, const char *filename, int level) igt_log(IGT_LOG_DOMAIN, level, "%s:\n%s\n", filename, contents); free(contents); } + +bool igt_is_dark_screen_supported(int drm_fd, enum pipe pipe) +{ + char buf[256]; + int dir; + + dir = igt_debugfs_pipe_dir(drm_fd, pipe, O_DIRECTORY); + igt_require_fd(dir); + igt_debugfs_simple_read(dir, "i915_darkscreen_status", buf, sizeof(buf)); + close(dir); + if (*buf == '\0') + return false; + + return strcasestr(buf, "0") || strcasestr(buf, "1"); +} + +ssize_t igt_enable_dark_screen_detection(int drm_fd, enum pipe pipe) +{ + char buf[2]; + int dir; + int enable_dark_screen_detection; + + enable_dark_screen_detection = 1; + snprintf(buf, sizeof(buf), "%d", enable_dark_screen_detection); + dir = igt_debugfs_pipe_dir(drm_fd, pipe, O_DIRECTORY); + igt_require_fd(dir); + return igt_sysfs_write(dir, "i915_darkscreen_status", buf, sizeof(buf) - 1); +} + +ssize_t igt_disable_dark_screen_detection(int drm_fd, enum pipe pipe) +{ + char buf[2]; + int dir; + int disable_dark_screen_detection; + + disable_dark_screen_detection = 0; + snprintf(buf, sizeof(buf), "%d", disable_dark_screen_detection); + dir = igt_debugfs_pipe_dir(drm_fd, pipe, O_DIRECTORY); + igt_require_fd(dir); + return igt_sysfs_write(dir, "i915_darkscreen_status", buf, sizeof(buf) - 1); +} diff --git a/lib/igt_debugfs.h b/lib/igt_debugfs.h index 3e6194ade..bd539f54d 100644 --- a/lib/igt_debugfs.h +++ b/lib/igt_debugfs.h @@ -77,6 +77,9 @@ void igt_hpd_storm_reset(int fd); bool igt_hpd_storm_detected(int fd); void igt_require_hpd_storm_ctl(int fd); bool igt_ignore_long_hpd(int fd, bool enable); +bool igt_is_dark_screen_supported(int drm_fd, enum pipe pipe); +ssize_t igt_enable_dark_screen_detection(int drm_fd, enum pipe pipe); +ssize_t igt_disable_dark_screen_detection(int drm_fd, enum pipe pipe); /* * Drop caches -- 2.25.1