From patchwork Tue Mar 5 12:04:54 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Hogander, Jouni" X-Patchwork-Id: 13582277 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 F39F3C54E41 for ; Tue, 5 Mar 2024 12:05:18 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 4E1C410FCF3; Tue, 5 Mar 2024 12:05:18 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="LelJPdTk"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.13]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5C89710FCF3 for ; Tue, 5 Mar 2024 12:05:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1709640317; x=1741176317; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=RdYW/DEqW8fb79gzkjbK1bc+WTqQ+Rjx6FDNe7jwyis=; b=LelJPdTk/TdKTbeTM1DHe/yqRfr7ZmbZpiPmlnG0fBu14/a/3vkLaM+w 4XClpex3t6wKRK9zc6tmzqHRCpTgzuMff34uQiwjDoDgCMyd0YU7g+H2X F98WYi86oLpomvOaDARBVLb2oI4bRD0yrCwMPWPk7qnM8O3HibUazzJDC CndOKQKkoEsdUQbJrEIL4i7vTV/ED6e5n6ECiYa3+gBEw0cW5DPUYsQ3k IRwbm+XwkQ7pkNaRx3u61WHNBq04nocEeLUBJfDYNQzoTt7HD5W+pKTew 8IYxpPVOtg3UUTUnZ7QjYZpbRpZsG+mjElDnSTFhQ4tb3XJW+2LwLsaGF g==; X-IronPort-AV: E=McAfee;i="6600,9927,11003"; a="7132091" X-IronPort-AV: E=Sophos;i="6.06,205,1705392000"; d="scan'208";a="7132091" Received: from orviesa009.jf.intel.com ([10.64.159.149]) by fmvoesa107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Mar 2024 04:05:17 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.06,205,1705392000"; d="scan'208";a="9417775" Received: from snasibli-mobl2.ccr.corp.intel.com (HELO jhogande-mobl1.intel.com) ([10.252.33.194]) by orviesa009-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Mar 2024 04:05:15 -0800 From: =?utf-8?q?Jouni_H=C3=B6gander?= To: intel-gfx@lists.freedesktop.org Cc: =?utf-8?b?VmlsbGUgU3lyasOkbMOk?= , Jani Nikula , =?utf-8?q?Jouni_H=C3=B6gander?= Subject: [PATCH v3 1/5] drm/i915/display: Make intel_dp_aux_fw_sync_len available for PSR code Date: Tue, 5 Mar 2024 14:04:54 +0200 Message-Id: <20240305120458.1275218-2-jouni.hogander@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240305120458.1275218-1-jouni.hogander@intel.com> References: <20240305120458.1275218-1-jouni.hogander@intel.com> MIME-Version: 1.0 Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo 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" ALPM AUX-Wake fast wake sync pulse count is needed by PSR to calculate IO wake and fast wake lines. Convert intel_dp_aux_fw_sync_len as non-static to make it available for PSR code. v2: use int instead of u8 Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_dp_aux.c | 2 +- drivers/gpu/drm/i915/display/intel_dp_aux.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux.c b/drivers/gpu/drm/i915/display/intel_dp_aux.c index 4f4a0e3b3114..7e69be100d90 100644 --- a/drivers/gpu/drm/i915/display/intel_dp_aux.c +++ b/drivers/gpu/drm/i915/display/intel_dp_aux.c @@ -143,7 +143,7 @@ static int intel_dp_aux_sync_len(void) return precharge + preamble; } -static int intel_dp_aux_fw_sync_len(void) +int intel_dp_aux_fw_sync_len(void) { int precharge = 10; /* 10-16 */ int preamble = 8; diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux.h b/drivers/gpu/drm/i915/display/intel_dp_aux.h index 8447f3e601fe..76d1f2ed7c2f 100644 --- a/drivers/gpu/drm/i915/display/intel_dp_aux.h +++ b/drivers/gpu/drm/i915/display/intel_dp_aux.h @@ -20,5 +20,6 @@ enum aux_ch intel_dp_aux_ch(struct intel_encoder *encoder); void intel_dp_aux_irq_handler(struct drm_i915_private *i915); u32 intel_dp_aux_pack(const u8 *src, int src_bytes); +int intel_dp_aux_fw_sync_len(void); #endif /* __INTEL_DP_AUX_H__ */ From patchwork Tue Mar 5 12:04:55 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Hogander, Jouni" X-Patchwork-Id: 13582278 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 21230C54798 for ; Tue, 5 Mar 2024 12:05:21 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 9551010FAAF; Tue, 5 Mar 2024 12:05:20 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="HcVbaqzV"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.13]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5002610FAAF for ; Tue, 5 Mar 2024 12:05:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1709640319; x=1741176319; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=ec0U4HZP37aHqBn/hwmb2y7ZwtcH1zc4heatRFZJ8WY=; b=HcVbaqzVzROBHMKxG3L1bffrP7aOIscnifQQdN4+MDFfZgEE6YPAqZ76 d99H5jehPshzhdqla7sKb8/po3Bc5iwYb3Dis3mMzDf+6MdImpacMAwjL siVYag95T7RdiQhJArw2ri4ovzYUJXrWJ4Nzq7dhoiXT0tJ+J7Q//kqPh EM9+ieDMRt9X80P9oKZCvBrU57e77crIen13SKaHhbzADj9fOQtXt/Isq xA09eBI7mXBhUZJqn5ot0zSv34p3e5OF5lUy91Ttodye5b5b9Mvdxy2Q1 uU9+Cmb3onOeb6R86kR0RJewGnEHuMcnlsB4ZCVpmCevTuvhNENnYEMx5 g==; X-IronPort-AV: E=McAfee;i="6600,9927,11003"; a="7132095" X-IronPort-AV: E=Sophos;i="6.06,205,1705392000"; d="scan'208";a="7132095" Received: from orviesa009.jf.intel.com ([10.64.159.149]) by fmvoesa107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Mar 2024 04:05:19 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.06,205,1705392000"; d="scan'208";a="9417783" Received: from snasibli-mobl2.ccr.corp.intel.com (HELO jhogande-mobl1.intel.com) ([10.252.33.194]) by orviesa009-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Mar 2024 04:05:17 -0800 From: =?utf-8?q?Jouni_H=C3=B6gander?= To: intel-gfx@lists.freedesktop.org Cc: =?utf-8?b?VmlsbGUgU3lyasOkbMOk?= , Jani Nikula , =?utf-8?q?Jouni_H=C3=B6gander?= Subject: [PATCH v3 2/5] drm/i915/psr: Improve fast and IO wake lines calculation Date: Tue, 5 Mar 2024 14:04:55 +0200 Message-Id: <20240305120458.1275218-3-jouni.hogander@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240305120458.1275218-1-jouni.hogander@intel.com> References: <20240305120458.1275218-1-jouni.hogander@intel.com> MIME-Version: 1.0 Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo 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" Current fast and IO wake lines calculation is assuming fast wake sync length is 18 pulses. Let's improve this by checking actual length. Add getter for IO buffer wake time and return 10 us there which was assumed with static 42 us IO wake time. Upcoming patches will extent this for different display versions. Bspec: 65450 v2: - rename io_wake_time in if block to io_buffer_wake_time - rename get_io_wake_time to get_io_buffer_wake_time Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c index 6927785fd6ff..905208e1c771 100644 --- a/drivers/gpu/drm/i915/display/intel_psr.c +++ b/drivers/gpu/drm/i915/display/intel_psr.c @@ -1150,6 +1150,11 @@ static bool _lnl_compute_alpm_params(struct intel_dp *intel_dp, return true; } +static int get_io_buffer_wake_time(void) +{ + return 10; +} + static bool _compute_alpm_params(struct intel_dp *intel_dp, struct intel_crtc_state *crtc_state) { @@ -1158,12 +1163,16 @@ static bool _compute_alpm_params(struct intel_dp *intel_dp, u8 max_wake_lines; if (DISPLAY_VER(i915) >= 12) { - io_wake_time = 42; - /* - * According to Bspec it's 42us, but based on testing - * it is not enough -> use 45 us. - */ - fast_wake_time = 45; + int io_buffer_wake_time = get_io_buffer_wake_time(); + int tfw_exit_latency = 20; /* eDP spec */ + int phy_wake = 4; /* eDP spec */ + int preamble = 8; /* eDP spec */ + int precharge = intel_dp_aux_fw_sync_len() - preamble; + + io_wake_time = max(precharge, io_buffer_wake_time) + preamble + + phy_wake + tfw_exit_latency; + fast_wake_time = precharge + preamble + phy_wake + + tfw_exit_latency; /* TODO: Check how we can use ALPM_CTL fast wake extended field */ max_wake_lines = 12; From patchwork Tue Mar 5 12:04:56 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Hogander, Jouni" X-Patchwork-Id: 13582279 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 02D51C54E49 for ; Tue, 5 Mar 2024 12:05:23 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 585A9112A6F; Tue, 5 Mar 2024 12:05:22 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="OmQHJ6NK"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.13]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5027E112A6C for ; Tue, 5 Mar 2024 12:05:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1709640321; x=1741176321; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=SfWyJUT7Q80JDVmHIxWS/rzWHQfjNVVDcFgdmpxfAow=; b=OmQHJ6NKoV/AKHO977odzAeYQ52oW60tw1TfDMbQNuNCJzoBS66EaYgn RVA+FL8eNoq8GQdLusv2m27L9CAE0N1AagAh1P8OlB3drszX2K3ljlWbE u2pfZOSmxvM5MKOUZttqFCvKAbahLHTQmd6h3EqBRlpWMZEfrf6b/cm5q UM8CFlxVWpD8ZhCsFrerbUvpPTg0fnuc2ol1w4EBkoBPdr/Eaehm1AyIF kXLHt1q5Y5DvmOnvbyYBCBJQ4JsSqnNrNfoPk1/DxqOB3C5oa/oX6AMK9 /OePLBh9PpVkDgGeod1hovl8rD1+wwePeRT/gub12CQ1YDOiN9SthjVpm A==; X-IronPort-AV: E=McAfee;i="6600,9927,11003"; a="7132101" X-IronPort-AV: E=Sophos;i="6.06,205,1705392000"; d="scan'208";a="7132101" Received: from orviesa009.jf.intel.com ([10.64.159.149]) by fmvoesa107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Mar 2024 04:05:21 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.06,205,1705392000"; d="scan'208";a="9417791" Received: from snasibli-mobl2.ccr.corp.intel.com (HELO jhogande-mobl1.intel.com) ([10.252.33.194]) by orviesa009-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Mar 2024 04:05:19 -0800 From: =?utf-8?q?Jouni_H=C3=B6gander?= To: intel-gfx@lists.freedesktop.org Cc: =?utf-8?b?VmlsbGUgU3lyasOkbMOk?= , Jani Nikula , =?utf-8?q?Jouni_H=C3=B6gander?= Subject: [PATCH v3 3/5] drm/i915/psr: Calculate IO wake and fast wake lines for DISPLAY_VER < 12 Date: Tue, 5 Mar 2024 14:04:56 +0200 Message-Id: <20240305120458.1275218-4-jouni.hogander@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240305120458.1275218-1-jouni.hogander@intel.com> References: <20240305120458.1275218-1-jouni.hogander@intel.com> MIME-Version: 1.0 Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo 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" Bspec mentions 50 us for IO wake time and 32 us for fast wake time. 32 us is most probably wrong as it doesn't meet the specification as fast wake time is calculated in Bspec like this: 10..16 us (precharge) + 8 us (preamble) + 4 us (phy_wake) + 20 us (tfw_exit_latency) Instead of using these constants calculate IO wake and fast wake for DISPLAY_VER < 12 as well. Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 31 ++++++++++++++++++------ 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c index 905208e1c771..afcfa541942c 100644 --- a/drivers/gpu/drm/i915/display/intel_psr.c +++ b/drivers/gpu/drm/i915/display/intel_psr.c @@ -1150,9 +1150,25 @@ static bool _lnl_compute_alpm_params(struct intel_dp *intel_dp, return true; } -static int get_io_buffer_wake_time(void) +/* + * From Bspec: + * + * For DISPLAY_VER >= 12 + * 10 us + * + * For DISPLAY_VER < 12 + * This is not directly mentioned in Bspec. There are 50 us io wake time and 32 + * us fast wake time. Clearly preharge pulses are not (improperly) included in + * 32 us fast wake time. 50 us - 32 us = 18 us. + */ +static int get_io_buffer_wake_time(const struct intel_crtc_state *crtc_state) { - return 10; + struct drm_i915_private *i915 = to_i915(crtc_state->uapi.crtc->dev); + + if (DISPLAY_VER(i915) < 12) + return 18; + else + return 10; } static bool _compute_alpm_params(struct intel_dp *intel_dp, @@ -1162,8 +1178,8 @@ static bool _compute_alpm_params(struct intel_dp *intel_dp, int io_wake_lines, io_wake_time, fast_wake_lines, fast_wake_time; u8 max_wake_lines; - if (DISPLAY_VER(i915) >= 12) { - int io_buffer_wake_time = get_io_buffer_wake_time(); + if (DISPLAY_VER(i915) >= 9) { + int io_buffer_wake_time = get_io_buffer_wake_time(crtc_state); int tfw_exit_latency = 20; /* eDP spec */ int phy_wake = 4; /* eDP spec */ int preamble = 8; /* eDP spec */ @@ -1173,14 +1189,13 @@ static bool _compute_alpm_params(struct intel_dp *intel_dp, phy_wake + tfw_exit_latency; fast_wake_time = precharge + preamble + phy_wake + tfw_exit_latency; + } + if (DISPLAY_VER(i915) >= 12) /* TODO: Check how we can use ALPM_CTL fast wake extended field */ max_wake_lines = 12; - } else { - io_wake_time = 50; - fast_wake_time = 32; + else max_wake_lines = 8; - } io_wake_lines = intel_usecs_to_scanlines( &crtc_state->hw.adjusted_mode, io_wake_time); From patchwork Tue Mar 5 12:04:57 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Hogander, Jouni" X-Patchwork-Id: 13582280 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 A3E30C54798 for ; Tue, 5 Mar 2024 12:05:25 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 1CA04112A70; Tue, 5 Mar 2024 12:05:25 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="RSqv+Td2"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.13]) by gabe.freedesktop.org (Postfix) with ESMTPS id 48AAE112A70 for ; Tue, 5 Mar 2024 12:05:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1709640323; x=1741176323; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=arnTwAK12VZi4d+C/K5Ddw1rynFjbq7XJ3Lq85OZKHE=; b=RSqv+Td2jx82ami1k0P6Se+FAPoL6MI9rrERsDw8tx8YcD2K7kMKd8DX NMTQy2FaCS6emsI1CHmfpvMDnovHNqB7ZI9ECDglkvWlv6MoiVlor/6CS 7imeo78gvdIerqfFBTvCDizk4kUcwwWgV2swYrGi51dydPHyhzajoTzFb WAivjE3NsjyBk74LCbkRbApIwDFSJBt5o1nb9oFwohCCzzk+6yfHrZ1an vj6WMJ9DPXv0NqlbHqa0C/EoNRWfpnEi/PcgG/Fnuas7fbZZN/geZctdb hGgznGcOrEiBS4egT8FA46qH7sVTYcF8kUYuNNd+Qmitbug0VDSV05cbp A==; X-IronPort-AV: E=McAfee;i="6600,9927,11003"; a="7132102" X-IronPort-AV: E=Sophos;i="6.06,205,1705392000"; d="scan'208";a="7132102" Received: from orviesa009.jf.intel.com ([10.64.159.149]) by fmvoesa107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Mar 2024 04:05:23 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.06,205,1705392000"; d="scan'208";a="9417801" Received: from snasibli-mobl2.ccr.corp.intel.com (HELO jhogande-mobl1.intel.com) ([10.252.33.194]) by orviesa009-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Mar 2024 04:05:21 -0800 From: =?utf-8?q?Jouni_H=C3=B6gander?= To: intel-gfx@lists.freedesktop.org Cc: =?utf-8?b?VmlsbGUgU3lyasOkbMOk?= , Jani Nikula , =?utf-8?q?Jouni_H=C3=B6gander?= Subject: [PATCH v3 4/5] drm/i915/psr: Add IO buffer wake times for LunarLake and beyond Date: Tue, 5 Mar 2024 14:04:57 +0200 Message-Id: <20240305120458.1275218-5-jouni.hogander@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240305120458.1275218-1-jouni.hogander@intel.com> References: <20240305120458.1275218-1-jouni.hogander@intel.com> MIME-Version: 1.0 Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo 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" IO buffer wake time used for IO wake calculation is dependent on port clock on LunarLake and beyond. Take this into account in get_io_buffer_wake_time. Bspec: 65450 Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_psr.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c index afcfa541942c..e113a11406e5 100644 --- a/drivers/gpu/drm/i915/display/intel_psr.c +++ b/drivers/gpu/drm/i915/display/intel_psr.c @@ -1160,6 +1160,9 @@ static bool _lnl_compute_alpm_params(struct intel_dp *intel_dp, * This is not directly mentioned in Bspec. There are 50 us io wake time and 32 * us fast wake time. Clearly preharge pulses are not (improperly) included in * 32 us fast wake time. 50 us - 32 us = 18 us. + * + * For DISPLAY_VER >= 20 + * RBR 15us, HBR1 11us, higher rates 10us */ static int get_io_buffer_wake_time(const struct intel_crtc_state *crtc_state) { @@ -1167,8 +1170,12 @@ static int get_io_buffer_wake_time(const struct intel_crtc_state *crtc_state) if (DISPLAY_VER(i915) < 12) return 18; - else + else if (DISPLAY_VER(i915) < 20 || crtc_state->port_clock > 270000) return 10; + else if (crtc_state->port_clock > 162000) + return 11; + else + return 15; } static bool _compute_alpm_params(struct intel_dp *intel_dp, From patchwork Tue Mar 5 12:04:58 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Hogander, Jouni" X-Patchwork-Id: 13582281 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 D5D78C54E41 for ; Tue, 5 Mar 2024 12:05:26 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 390A2112A71; Tue, 5 Mar 2024 12:05:26 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="mVnTCfWZ"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.13]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5534A112A71 for ; Tue, 5 Mar 2024 12:05:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1709640325; x=1741176325; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=r+7p0ADbEZ9NN5zHCBuEgDY40v739QalCbReUyg16lM=; b=mVnTCfWZrU3fZ5TonL7YWrn3OOa7K7xH8NBDPmPbfIIGqTHDiUC1yOXe xoKkYxAo6tFHFmMXFhlzEJjLTGZocFQQi00bkPmyW6OzM1i8o61h6Hr9L uD2nYJAuZ/KJeIFBwUAUKGor+W0F5U3QkD/ptEX7nzzIY4GUg+dQjovOt hnzAoof3M6gJs9SJrd/SMM4TKRV0wp7AoiRq5TGj1V1AffPm795ZHLu9V slZoVCGX8R70HUXeaHwtiMCPvFzCc0YrnKxReYvo/3H1efuWmct3wqbvc SKEd2UxzPjRRYqqav87LlvjBRyMBZwdMrxGw3Serj3fc91ECQLRqtRAD6 g==; X-IronPort-AV: E=McAfee;i="6600,9927,11003"; a="7132106" X-IronPort-AV: E=Sophos;i="6.06,205,1705392000"; d="scan'208";a="7132106" Received: from orviesa009.jf.intel.com ([10.64.159.149]) by fmvoesa107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Mar 2024 04:05:25 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.06,205,1705392000"; d="scan'208";a="9417810" Received: from snasibli-mobl2.ccr.corp.intel.com (HELO jhogande-mobl1.intel.com) ([10.252.33.194]) by orviesa009-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Mar 2024 04:05:23 -0800 From: =?utf-8?q?Jouni_H=C3=B6gander?= To: intel-gfx@lists.freedesktop.org Cc: =?utf-8?b?VmlsbGUgU3lyasOkbMOk?= , Jani Nikula , =?utf-8?q?Jouni_H=C3=B6gander?= Subject: [PATCH v3 5/5] drm/i915/display: Increase number of fast wake precharge pulses Date: Tue, 5 Mar 2024 14:04:58 +0200 Message-Id: <20240305120458.1275218-6-jouni.hogander@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240305120458.1275218-1-jouni.hogander@intel.com> References: <20240305120458.1275218-1-jouni.hogander@intel.com> MIME-Version: 1.0 Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo 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" Increasing number of fast wake sync pulses seem to fix problems with certain PSR panels. This should be ok for other panels as well as the eDP specification allows 10...16 precharge pulses and we are still within that range. Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/9739 Signed-off-by: Jouni Högander --- drivers/gpu/drm/i915/display/intel_dp_aux.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/display/intel_dp_aux.c b/drivers/gpu/drm/i915/display/intel_dp_aux.c index 7e69be100d90..5dff1bc85d61 100644 --- a/drivers/gpu/drm/i915/display/intel_dp_aux.c +++ b/drivers/gpu/drm/i915/display/intel_dp_aux.c @@ -145,7 +145,7 @@ static int intel_dp_aux_sync_len(void) int intel_dp_aux_fw_sync_len(void) { - int precharge = 10; /* 10-16 */ + int precharge = 12; /* 10-16 */ int preamble = 8; return precharge + preamble;