From patchwork Tue Feb 7 16:03:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vinod Govindapillai X-Patchwork-Id: 13131826 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 5471BC636CC for ; Tue, 7 Feb 2023 16:04:33 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 056ED10E540; Tue, 7 Feb 2023 16:04:29 +0000 (UTC) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 01A7510E53D for ; Tue, 7 Feb 2023 16:04:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1675785867; x=1707321867; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=V5ALJwCSJQaLusStOShOStISXNEYFQBUQTRD/J3qU6k=; b=Fdf8OHYrhO1vZOcUZzAWPvDVyecmCp0f8AQ0ScI/lKTePx1a/3etqZ9k jrfUAFwGuSLx52Zt35HWNBTeomTzkYKHgdLm6lojl7xNt6LQLcrL19tuL 5oZBb9frXyiU39ghKjVqI70Ub0tMWb56AoNcm8Vgk3bzCwP+JSzlcnBU5 FQO6ZfOLD2tNYqYWV1dDuYWnckP/2wY2D178uxlRZVrG24g68FLxUEhul dSQx20+o0I2IgXlKDHIaK0/YnSa5tYsr8ZstTFL5SrLpRx81q2UU2PvXE uO/VpgMkX37DFFFmkTNsqOGAXIH62P8uC3UoUfPYywguNH6FvrDzMvjBZ w==; X-IronPort-AV: E=McAfee;i="6500,9779,10614"; a="356915843" X-IronPort-AV: E=Sophos;i="5.97,278,1669104000"; d="scan'208";a="356915843" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Feb 2023 08:03:28 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10614"; a="840821371" X-IronPort-AV: E=Sophos;i="5.97,278,1669104000"; d="scan'208";a="840821371" Received: from kfurnanz-mobl.ger.corp.intel.com (HELO vgovind2-mobl3.intel.com) ([10.252.48.81]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Feb 2023 08:03:27 -0800 From: Vinod Govindapillai To: intel-gfx@lists.freedesktop.org Date: Tue, 7 Feb 2023 18:03:10 +0200 Message-Id: <20230207160311.930772-3-vinod.govindapillai@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230207160311.930772-1-vinod.govindapillai@intel.com> References: <20230207160311.930772-1-vinod.govindapillai@intel.com> MIME-Version: 1.0 Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo Subject: [Intel-gfx] [PATCH v3 2/3] drm/i915/display: debugfs entry to control ignore long hpd flag X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Knob to control ignoring the long hpds. Set this to true will start ignoring the long HPDs generated by the displays. Useful for use cases like CI systems where we dont expect to disconnect the panels. v2: Address patch styling comments (Jani Nikula) Signed-off-by: Vinod Govindapillai --- drivers/gpu/drm/i915/display/intel_hotplug.c | 25 ++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/drivers/gpu/drm/i915/display/intel_hotplug.c b/drivers/gpu/drm/i915/display/intel_hotplug.c index f0a2aa648bb8..41372a10288c 100644 --- a/drivers/gpu/drm/i915/display/intel_hotplug.c +++ b/drivers/gpu/drm/i915/display/intel_hotplug.c @@ -939,6 +939,29 @@ static const struct file_operations i915_hpd_short_storm_ctl_fops = { .write = i915_hpd_short_storm_ctl_write, }; +static int i915_ignore_long_hpd_set(void *data, u64 val) +{ + struct drm_i915_private *i915 = data; + + drm_dbg_kms(&i915->drm, "Ignoring long HPDs: %s\n", str_yes_no(val)); + + i915->display.hotplug.ignore_long_hpd = val; + + return 0; +} + +static int i915_ignore_long_hpd_get(void *data, u64 *val) +{ + struct drm_i915_private *i915 = data; + + *val = i915->display.hotplug.ignore_long_hpd; + + return 0; +} + +DEFINE_SIMPLE_ATTRIBUTE(i915_ignore_long_hpd_fops, i915_ignore_long_hpd_get, + i915_ignore_long_hpd_set, "%llu\n"); + void intel_hpd_debugfs_register(struct drm_i915_private *i915) { struct drm_minor *minor = i915->drm.primary; @@ -947,4 +970,6 @@ void intel_hpd_debugfs_register(struct drm_i915_private *i915) i915, &i915_hpd_storm_ctl_fops); debugfs_create_file("i915_hpd_short_storm_ctl", 0644, minor->debugfs_root, i915, &i915_hpd_short_storm_ctl_fops); + debugfs_create_file("i915_ignore_long_hpd", 0644, minor->debugfs_root, + i915, &i915_ignore_long_hpd_fops); }