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 293C7C5321E for ; Sun, 25 Aug 2024 19:54:36 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id CB76A10E11C; Sun, 25 Aug 2024 19:54:35 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="QCEGPANV"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.11]) by gabe.freedesktop.org (Postfix) with ESMTPS id C990B10E11B for ; Sun, 25 Aug 2024 19:54:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1724615672; x=1756151672; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=hFfBYgj6zRB0cFQGY2Y6hpvsPKlI6uXBFJxWl2Ifc1A=; b=QCEGPANVEPtl1xwLJ1ACP+cFOJkZj8OIFpp7b1CleDJe3MUxb/yEL8nS qNkT3uv7nQH4L+rpqjhDAX0Cni6cIyAQuLNUQopD4ff5Ury1G/dq1QA1h R5EGz1Wr4+UFioknk+Ty2KadjN+C1JSrE7nUkSp0NL/YiHGkOfEY3zN0P 3biKpW1oJWKovxRt+INd1KKBqFVYkh95Y/KjjVq9PwxRBDOTkQsXF6c0t 90vi5c0CBWjfre3/ZV37ZzB2S6I8I5mMWiYAU7DvrXqqL6WoLsBTqaGFp gonWEK9arjQf3yZefX/rfMF8XTTmIq9yL9JZsjLRGPeqDCjYMj3FbMf5A Q==; X-CSE-ConnectionGUID: /56dDyHYRMyIoEI4y5Yd4A== X-CSE-MsgGUID: ZWHbDS9MQ8KTRKcjVzEBQg== X-IronPort-AV: E=McAfee;i="6700,10204,11175"; a="33591505" X-IronPort-AV: E=Sophos;i="6.10,175,1719903600"; d="scan'208";a="33591505" Received: from orviesa009.jf.intel.com ([10.64.159.149]) by orvoesa103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Aug 2024 12:54:32 -0700 X-CSE-ConnectionGUID: jfcU3Mq3Sc6CvYfhWfgmdA== X-CSE-MsgGUID: es2CSBAMQ7+oT3gt0yJn0w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.10,175,1719903600"; d="scan'208";a="62283706" Received: from kunal-x299-aorus-gaming-3-pro.iind.intel.com ([10.190.239.13]) by orviesa009-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Aug 2024 12:54:31 -0700 From: Kunal Joshi To: igt-dev@lists.freedesktop.org Cc: Kunal Joshi Subject: [PATCH i-g-t 11/14] lib/igt_kms: add function to reset link params Date: Mon, 26 Aug 2024 01:36:09 +0530 Message-Id: <20240825200612.4036178-12-kunal1.joshi@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240825200612.4036178-1-kunal1.joshi@intel.com> References: <20240825200612.4036178-1-kunal1.joshi@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" Writing auto to i915_dp_force_(link_rate/lane_count) and retraing afterwards sets max link param's supported by sink.Reset link rate and lane count to auto, also installs exit handler to set link rate and lane count to auto on exit --- lib/igt_kms.c | 36 ++++++++++++++++++++++++++++++++++++ lib/igt_kms.h | 1 + 2 files changed, 37 insertions(+) diff --git a/lib/igt_kms.c b/lib/igt_kms.c index e0533f6ae..b7511ccfc 100644 --- a/lib/igt_kms.c +++ b/lib/igt_kms.c @@ -7000,3 +7000,39 @@ int igt_get_dp_pending_retrain(int drm_fd, igt_output_t *output) sscanf(buf, "%d", &ret); return ret; } + +/** + * igt_reset_link_params: + * @drm_fd: A drm file descriptor + * @output: Target output + * + * Reset link rate and lane count to auto, also installs exit handler + * to set link rate and lane count to auto on exit + */ +void igt_reset_link_params(int drm_fd, igt_output_t *output) +{ + bool valid; + drmModeConnector *temp; + + igt_require_f(output->name, "Invalid output"); + valid = true; + valid = valid && connector_attr_set_debugfs(drm_fd, output->config.connector, + "i915_dp_force_link_rate", + "auto", "auto"); + valid = valid && connector_attr_set_debugfs(drm_fd, output->config.connector, + "i915_dp_force_lane_count", + "auto", "auto"); + valid = valid && connector_attr_set_debugfs(drm_fd, output->config.connector, + "i915_dp_force_link_retrain", + "1", "1"); + igt_assert_f(valid, "Unable to set attr or install exit handler\n"); + dump_connector_attrs(); + igt_install_exit_handler(reset_connectors_at_exit); + + /* + * To allow callers to always use GetConnectorCurrent we need to force a + * redetection here. + */ + temp = drmModeGetConnector(drm_fd, output->config.connector->connector_id); + drmModeFreeConnector(temp); +} diff --git a/lib/igt_kms.h b/lib/igt_kms.h index 3d7842b36..847609379 100644 --- a/lib/igt_kms.h +++ b/lib/igt_kms.h @@ -1259,5 +1259,6 @@ bool igt_get_dp_link_retrain_disabled(int drm_fd, igt_output_t *output); bool igt_has_force_link_training_failure_debugfs(int drmfd, igt_output_t *output); int igt_get_dp_pending_lt_failures(int drm_fd, igt_output_t *output); int igt_get_dp_pending_retrain(int drm_fd, igt_output_t *output); +void igt_reset_link_params(int drm_fd, igt_output_t *output); #endif /* __IGT_KMS_H__ */ -- 2.34.1