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,