From patchwork Fri Mar 14 15:01:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Ville Syrjala X-Patchwork-Id: 14017035 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 B73E5C282EC for ; Fri, 14 Mar 2025 15:01:41 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 59DE910EA08; Fri, 14 Mar 2025 15:01:41 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="MvXz0CIR"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.8]) by gabe.freedesktop.org (Postfix) with ESMTPS id 67AE810EA0A for ; Fri, 14 Mar 2025 15:01:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1741964500; x=1773500500; h=from:to:subject:date:message-id:mime-version: content-transfer-encoding; bh=+avra1l6FMYaIyTUD9JRwLUHuvx6hmFvpR80C6BMmcc=; b=MvXz0CIRs6ERrCEKMpfxa6+Lfl4QIGVw0Td/xcw7YE8GSeiSPU8SGA7J byYYUDkiwN+3UhXI2yJos1NzriYJ7FQqoUGjMwu1b3qExl8mu24DPSpCc 16SHoMgvPYTgB1Q1h1G0ndpVt+axialZpaIrkmeEnrJLKdg7AjkdPAu2T Pu5AcyQC6v5Gb9W1nsKy5Ni827hShu7HQ6Gj1bwBf76X7hrJS9moTnCL3 0QuRGHCpUtKdLrpZm5i95mM9qPmIOz85TS71b1kLZuS95Ymf8X3xw79Jd Os3MMZxC+3mOFnShVBx9bEWnGHtTnXLs0TRli0jMU0dvWqTtpyVOXu0JS Q==; X-CSE-ConnectionGUID: aOW0lzxiSlmp24c++h4SVg== X-CSE-MsgGUID: OESZ43piTbaJ84gV12TARg== X-IronPort-AV: E=McAfee;i="6700,10204,11373"; a="60657571" X-IronPort-AV: E=Sophos;i="6.14,246,1736841600"; d="scan'208";a="60657571" Received: from orviesa005.jf.intel.com ([10.64.159.145]) by fmvoesa102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Mar 2025 08:01:40 -0700 X-CSE-ConnectionGUID: uyTPo/sMSqOiu5hcoKRMfA== X-CSE-MsgGUID: fmFeYKtiQkG1T7OVCPBSzw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.14,246,1736841600"; d="scan'208";a="126515059" Received: from stinkpipe.fi.intel.com (HELO stinkbox) ([10.237.72.74]) by orviesa005.jf.intel.com with SMTP; 14 Mar 2025 08:01:37 -0700 Received: by stinkbox (sSMTP sendmail emulation); Fri, 14 Mar 2025 17:01:36 +0200 From: Ville Syrjala To: intel-gfx@lists.freedesktop.org Subject: [PATCH 1/3] drm/i915/dsi: Fix off by one in BXT_MIPI_TRANS_VTOTAL Date: Fri, 14 Mar 2025 17:01:34 +0200 Message-ID: <20250314150136.22564-1-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.45.3 MIME-Version: 1.0 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" From: Ville Syrjälä BXT_MIPI_TRANS_VTOTAL must be programmed with vtotal-1 instead of vtotal. Make it so. Signed-off-by: Ville Syrjälä --- drivers/gpu/drm/i915/display/vlv_dsi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c index af717df83197..661de51dfd22 100644 --- a/drivers/gpu/drm/i915/display/vlv_dsi.c +++ b/drivers/gpu/drm/i915/display/vlv_dsi.c @@ -1060,7 +1060,7 @@ static void bxt_dsi_get_pipe_config(struct intel_encoder *encoder, BXT_MIPI_TRANS_VACTIVE(port)); adjusted_mode->crtc_vtotal = intel_de_read(display, - BXT_MIPI_TRANS_VTOTAL(port)); + BXT_MIPI_TRANS_VTOTAL(port)) + 1; hactive = adjusted_mode->crtc_hdisplay; hfp = intel_de_read(display, MIPI_HFP_COUNT(display, port)); @@ -1265,7 +1265,7 @@ static void set_dsi_timings(struct intel_encoder *encoder, intel_de_write(display, BXT_MIPI_TRANS_VACTIVE(port), adjusted_mode->crtc_vdisplay); intel_de_write(display, BXT_MIPI_TRANS_VTOTAL(port), - adjusted_mode->crtc_vtotal); + adjusted_mode->crtc_vtotal - 1); } intel_de_write(display, MIPI_HACTIVE_AREA_COUNT(display, port), From patchwork Fri Mar 14 15:01:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Ville Syrjala X-Patchwork-Id: 14017036 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 AB639C35FF1 for ; Fri, 14 Mar 2025 15:01:44 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 4C37010EA07; Fri, 14 Mar 2025 15:01:44 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="gZr3mf9q"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.8]) by gabe.freedesktop.org (Postfix) with ESMTPS id CE45810EA0A for ; Fri, 14 Mar 2025 15:01:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1741964503; x=1773500503; h=from:to:subject:date:message-id:in-reply-to:references: mime-version:content-transfer-encoding; bh=E6Ly1CIhqhPLFAu2i4QjuMPI1M3XBiF5pl4s/FlUKxU=; b=gZr3mf9q3L+JsjtO3GOP63UVWCkeE0wADpQy3a1T1oEhKNWFQN+bQhBT rfLTeqcg6GpzJ8l+DmDWMj4hj0aL//Oz4X1+e+gyAUWW5EZviLM3m4rQ0 xsTJ3cLJY2mTTD7OkMQ86fHygEqQVx8nO4lceUwIkIvlHSDRBKaxbPJt8 VFHXCWA4rbNVJnX0JW2oLYUJKHiKymbA4trXwe+g8DVZYF3k/f2DEzQ9p TTYvGaWe304fo5OKPiIUt1TJH+aRnnZTTp2NYcGPGEkdM5EEo/UkBp/Sy vTFbOBwUbwGY2ro0EVeqXQU7Fr0qeoi7q2M0Xr1YndXMqLkfOLM9xiS09 A==; X-CSE-ConnectionGUID: YHaF2iOYSCqvaQeNwuYs2A== X-CSE-MsgGUID: OEKDfmsaR/eANp/sO8nNVw== X-IronPort-AV: E=McAfee;i="6700,10204,11373"; a="60657578" X-IronPort-AV: E=Sophos;i="6.14,246,1736841600"; d="scan'208";a="60657578" Received: from orviesa005.jf.intel.com ([10.64.159.145]) by fmvoesa102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Mar 2025 08:01:43 -0700 X-CSE-ConnectionGUID: MGM3K4mfTLicaKZyGBNOnA== X-CSE-MsgGUID: ogyfx7SLSE6XBWxwcDg0pw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.14,246,1736841600"; d="scan'208";a="126515065" Received: from stinkpipe.fi.intel.com (HELO stinkbox) ([10.237.72.74]) by orviesa005.jf.intel.com with SMTP; 14 Mar 2025 08:01:40 -0700 Received: by stinkbox (sSMTP sendmail emulation); Fri, 14 Mar 2025 17:01:39 +0200 From: Ville Syrjala To: intel-gfx@lists.freedesktop.org Subject: [PATCH 2/3] drm/i915/dsi: Don't set/read the DSI C clock divider on GLK Date: Fri, 14 Mar 2025 17:01:35 +0200 Message-ID: <20250314150136.22564-2-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.45.3 In-Reply-To: <20250314150136.22564-1-ville.syrjala@linux.intel.com> References: <20250314150136.22564-1-ville.syrjala@linux.intel.com> MIME-Version: 1.0 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" From: Ville Syrjälä GLK doesn't use the DSI C clock at all, no need to program the divider for it. Bspec even says: "Do not program this field". However looks like some firmware versions program this and some do not. In order to avoid bogus fastset mismatches we should also filter it out during readout. Signed-off-by: Ville Syrjälä --- drivers/gpu/drm/i915/display/vlv_dsi_pll.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/display/vlv_dsi_pll.c b/drivers/gpu/drm/i915/display/vlv_dsi_pll.c index 2ed47e7d1051..0c88924bc2cd 100644 --- a/drivers/gpu/drm/i915/display/vlv_dsi_pll.c +++ b/drivers/gpu/drm/i915/display/vlv_dsi_pll.c @@ -356,6 +356,8 @@ u32 bxt_dsi_get_pclk(struct intel_encoder *encoder, u32 pclk; config->dsi_pll.ctrl = intel_de_read(dev_priv, BXT_DSI_PLL_CTL); + if (IS_GEMINILAKE(dev_priv)) + config->dsi_pll.ctrl &= ~BXT_DSIC_16X_BY2; pclk = bxt_dsi_pclk(encoder, config); @@ -514,7 +516,9 @@ int bxt_dsi_pll_compute(struct intel_encoder *encoder, * Spec says both have to be programmed, even if one is not getting * used. Configure MIPI_CLOCK_CTL dividers in modeset */ - config->dsi_pll.ctrl = dsi_ratio | BXT_DSIA_16X_BY2 | BXT_DSIC_16X_BY2; + config->dsi_pll.ctrl = dsi_ratio | BXT_DSIA_16X_BY2; + if (!IS_GEMINILAKE(dev_priv)) + config->dsi_pll.ctrl |= BXT_DSIC_16X_BY2; /* As per recommendation from hardware team, * Prog PVD ratio =1 if dsi ratio <= 50 From patchwork Fri Mar 14 15:01:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Ville Syrjala X-Patchwork-Id: 14017037 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 ABF53C282EC for ; Fri, 14 Mar 2025 15:01:47 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 4636A10EA0A; Fri, 14 Mar 2025 15:01:47 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="OoBX+Gcp"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.8]) by gabe.freedesktop.org (Postfix) with ESMTPS id E08EC10EA0A for ; Fri, 14 Mar 2025 15:01:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1741964506; x=1773500506; h=from:to:subject:date:message-id:in-reply-to:references: mime-version:content-transfer-encoding; bh=+Z9eo8a2CrKBizPyOfU/ahRNnBjfzJR3pnEA4n+DtoQ=; b=OoBX+GcpkNbnnzsQP6m/QzSLuSaHgIDNKSzl0H2t/A8mVOrVWdNK4g61 F1G3PUvy0X0unZx7ZA6pvxl9VesBSJzoAihCbm1NzLnVAUBl0uzlgb4fI 17vzPS8tI4gCDPCStAqv16m0348HAOZDQ3KK8PqFwUPq4Y18ejA7wfsZL AKeMZktZKZC1oHdFxUfKxmlIxiWENbughL5Ig9bYpL8x5CrIx/72FaeGL p/6yfYjuL4zytXBCRf2WsAUTWMMZKkU+/eAdS7ocQijBGiTjvsNJNF1Gh TThFuP3e5N6FQrj2/nYaH6nHiNJpsVQiAAJfw9iQ5PcbsLmCjLwhzdsZS w==; X-CSE-ConnectionGUID: xagSIkaIRduurmffLYvYiA== X-CSE-MsgGUID: 1ThMRFpzQWWaWmlV3s4Xag== X-IronPort-AV: E=McAfee;i="6700,10204,11373"; a="60657584" X-IronPort-AV: E=Sophos;i="6.14,246,1736841600"; d="scan'208";a="60657584" Received: from orviesa005.jf.intel.com ([10.64.159.145]) by fmvoesa102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Mar 2025 08:01:46 -0700 X-CSE-ConnectionGUID: HJ4eCtcFSA+4TuptwQkCmg== X-CSE-MsgGUID: 2jH7mm85QI+gJ9sWFWUk5w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.14,246,1736841600"; d="scan'208";a="126515082" Received: from stinkpipe.fi.intel.com (HELO stinkbox) ([10.237.72.74]) by orviesa005.jf.intel.com with SMTP; 14 Mar 2025 08:01:43 -0700 Received: by stinkbox (sSMTP sendmail emulation); Fri, 14 Mar 2025 17:01:42 +0200 From: Ville Syrjala To: intel-gfx@lists.freedesktop.org Subject: [PATCH 3/3] drm/i915/dsi: Assert that vfp+vsync+vbp == vtotal on BXT/GLK Date: Fri, 14 Mar 2025 17:01:36 +0200 Message-ID: <20250314150136.22564-3-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.45.3 In-Reply-To: <20250314150136.22564-1-ville.syrjala@linux.intel.com> References: <20250314150136.22564-1-ville.syrjala@linux.intel.com> MIME-Version: 1.0 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" From: Ville Syrjälä Windows code seems to do some dodgy looking +/-1 adjustments to some of the vertical timings. Not sure if that's correct or not, but let's at least cross check some of the values we got from the hardware to double check whether the GOP did the same or not. Signed-off-by: Ville Syrjälä --- drivers/gpu/drm/i915/display/vlv_dsi.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/display/vlv_dsi.c b/drivers/gpu/drm/i915/display/vlv_dsi.c index 661de51dfd22..cdab04727c7d 100644 --- a/drivers/gpu/drm/i915/display/vlv_dsi.c +++ b/drivers/gpu/drm/i915/display/vlv_dsi.c @@ -1024,7 +1024,7 @@ static void bxt_dsi_get_pipe_config(struct intel_encoder *encoder, unsigned int lane_count = intel_dsi->lane_count; unsigned int bpp, fmt; enum port port; - u16 hactive, hfp, hsync, hbp, vfp, vsync; + u16 hactive, hfp, hsync, hbp, vfp, vsync, vbp; u16 hfp_sw, hsync_sw, hbp_sw; u16 crtc_htotal_sw, crtc_hsync_start_sw, crtc_hsync_end_sw, crtc_hblank_start_sw, crtc_hblank_end_sw; @@ -1088,6 +1088,7 @@ static void bxt_dsi_get_pipe_config(struct intel_encoder *encoder, /* vertical values are in terms of lines */ vfp = intel_de_read(display, MIPI_VFP_COUNT(display, port)); + vbp = intel_de_read(display, MIPI_VBP_COUNT(display, port)); vsync = intel_de_read(display, MIPI_VSYNC_PADDING_COUNT(display, port)); adjusted_mode->crtc_htotal = hactive + hfp + hsync + hbp; @@ -1096,6 +1097,8 @@ static void bxt_dsi_get_pipe_config(struct intel_encoder *encoder, adjusted_mode->crtc_hblank_start = adjusted_mode->crtc_hdisplay; adjusted_mode->crtc_hblank_end = adjusted_mode->crtc_htotal; + drm_WARN_ON(display->drm, adjusted_mode->crtc_vdisplay + + vfp + vsync + vbp != adjusted_mode->crtc_vtotal); adjusted_mode->crtc_vsync_start = vfp + adjusted_mode->crtc_vdisplay; adjusted_mode->crtc_vsync_end = vsync + adjusted_mode->crtc_vsync_start; adjusted_mode->crtc_vblank_start = adjusted_mode->crtc_vdisplay;