From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id AE838D49205 for ; Mon, 18 Nov 2024 10:10:46 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 63E3310E486; Mon, 18 Nov 2024 10:10:46 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="mmsTEkhE"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.21]) by gabe.freedesktop.org (Postfix) with ESMTPS id 51E4510E486 for ; Mon, 18 Nov 2024 10:10:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1731924645; x=1763460645; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=8Me7PwMyXDSEb8Felh8fb2sIbHAIE+5bv5pAlQuR+LY=; b=mmsTEkhEhWPW6XqZLxRehMfYCc221OCWC05gtRV+U1I/iaCZA2oxJODQ qSCHx0KDFP1hJL8JwuCA5iBfgxR3cRsuyuCaSMpT1AhsiKth5EqvoIVQD IqSpMCS11/3IdlNddZoExAbj5Gw6MUGvGdy7kV5aoWqlEsXjRKhyr43Ou jqTkVsiKz+HR/jCvYjsVwN/J2IMdujV987zwwpNMiPmNYNY0Ibzdj/AfW f6oPVrVLv8CT2h1OwLMeNuFDIJIMNynzPSVd7LinaYumvBJgLji1ajxLb /Fu3ayecg7TXxSO0yR9tT1yAlvUgoB7+hZSzDhJKmUydt+4xyh1/P6cBR g==; X-CSE-ConnectionGUID: MBdFV6ZzTGuxMWbw6Vzf9w== X-CSE-MsgGUID: l+2AteaCQzuzS2M28smvrQ== X-IronPort-AV: E=McAfee;i="6700,10204,11259"; a="31809915" X-IronPort-AV: E=Sophos;i="6.12,163,1728975600"; d="scan'208";a="31809915" Received: from orviesa004.jf.intel.com ([10.64.159.144]) by orvoesa113.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Nov 2024 02:10:45 -0800 X-CSE-ConnectionGUID: RpX6t/zlTs+chq03gk2bBg== X-CSE-MsgGUID: qsdHwqk/TRKM9gAzBNh3HA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.12,163,1728975600"; d="scan'208";a="94272156" Received: from bhanu-nuclab.iind.intel.com ([10.145.169.172]) by orviesa004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Nov 2024 02:10:43 -0800 From: Bhanuprakash Modem To: igt-dev@lists.freedesktop.org, swati2.sharma@intel.com Cc: Bhanuprakash Modem Subject: [i-g-t V3 3/4] lib/dsc: Reset DSC bpc to default on exit Date: Mon, 18 Nov 2024 15:29:47 +0530 Message-ID: <20241118095948.2017893-4-bhanuprakash.modem@intel.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20241118095948.2017893-1-bhanuprakash.modem@intel.com> References: <20241118095948.2017893-1-bhanuprakash.modem@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: igt-dev@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development mailing list for IGT GPU Tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" Add support to force the DSC bpc to default on exit. V2: - Minor cleanups Signed-off-by: Bhanuprakash Modem --- lib/igt_dsc.c | 16 ++++++++++++++++ lib/igt_dsc.h | 1 + tests/intel/kms_dsc_helper.c | 11 ++++++++++- 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/lib/igt_dsc.c b/lib/igt_dsc.c index 229cd3298..409807b92 100644 --- a/lib/igt_dsc.c +++ b/lib/igt_dsc.c @@ -141,6 +141,22 @@ int igt_force_dsc_enable_bpc(int drmfd, char *connector_name, int bpc) return write_dsc_debugfs(drmfd, connector_name, "i915_dsc_bpc", buf); } +/** + * igt_get_dsc_bpc_debugfs_fd: + * @drmfd: A drm file descriptor + * @connector_name: Name of the libdrm connector we're going to use + * + * Returns: fd of the DSC BPC debugfs for the given connector, else returns -1. + */ +int igt_get_dsc_bpc_debugfs_fd(int drmfd, char *connector_name) +{ + char file_name[128] = {0}; + + sprintf(file_name, "%s/i915_dsc_bpc", connector_name); + + return openat(igt_debugfs_dir(drmfd), file_name, O_WRONLY); +} + /** * igt_get_dsc_debugfs_fd: * @drmfd: A drm file descriptor diff --git a/lib/igt_dsc.h b/lib/igt_dsc.h index 7ab0917ec..1f3ea6920 100644 --- a/lib/igt_dsc.h +++ b/lib/igt_dsc.h @@ -18,6 +18,7 @@ bool igt_is_force_dsc_enabled(int drmfd, char *connector_name); int igt_force_dsc_enable(int drmfd, char *connector_name); int igt_force_dsc_enable_bpc(int drmfd, char *connector_name, int bpc); int igt_get_dsc_debugfs_fd(int drmfd, char *connector_name); +int igt_get_dsc_bpc_debugfs_fd(int drmfd, char *connector_name); bool igt_is_dsc_output_format_supported_by_sink(int drmfd, char *connector_name, enum dsc_output_format output_format); int igt_force_dsc_output_format(int drmfd, char *connector_name, diff --git a/tests/intel/kms_dsc_helper.c b/tests/intel/kms_dsc_helper.c index 0de09b8e9..52e0469c7 100644 --- a/tests/intel/kms_dsc_helper.c +++ b/tests/intel/kms_dsc_helper.c @@ -8,6 +8,7 @@ static bool force_dsc_en_orig; static bool force_dsc_fractional_bpp_en_orig; static int force_dsc_restore_fd = -1; +static int force_dsc_bpc_restore_fd = -1; static int force_dsc_fractional_bpp_restore_fd = -1; void force_dsc_enable(int drmfd, igt_output_t *output) @@ -36,6 +37,9 @@ void save_force_dsc_en(int drmfd, igt_output_t *output) force_dsc_restore_fd = igt_get_dsc_debugfs_fd(drmfd, output->name); igt_assert_lte(0, force_dsc_restore_fd); + force_dsc_bpc_restore_fd = + igt_get_dsc_bpc_debugfs_fd(drmfd, output->name); + igt_assert_lte(0, force_dsc_bpc_restore_fd); } void restore_force_dsc_en(void) @@ -45,9 +49,14 @@ void restore_force_dsc_en(void) igt_debug("Restoring DSC enable\n"); igt_assert(write(force_dsc_restore_fd, force_dsc_en_orig ? "1" : "0", 1) == 1); - close(force_dsc_restore_fd); + + igt_debug("Restoring DSC BPC enable\n"); + igt_assert(write(force_dsc_bpc_restore_fd, "0", 1) == 1); + close(force_dsc_bpc_restore_fd); + force_dsc_restore_fd = -1; + force_dsc_bpc_restore_fd = -1; } void kms_dsc_exit_handler(int sig) -- 2.43.0