From nobody Mon Oct 6 08:28:02 2025 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D0630286D4C for ; Wed, 23 Jul 2025 10:05:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753265141; cv=none; b=gpWJIzjkzh82o+CMVk3O1d/a2rTrBRP9+iKULO8S3vW6C5RMF0jxoF7imKfgN02hbUVZ2CEND9lODEUih8SRnEIqdfoXUC38VAaPsebVKtSy1DxnbssgNgnpx5faoBE/CLOFXyZRZKeUUGsGifBXbyGW4ji37i8jrdsdTO7wAxs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753265141; c=relaxed/simple; bh=j87NeKlc9anpUXCbEig4homQtezEMDttOfQxDN4FPIA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=rO0QALfkpn1K/jwgTXadxweg6p2NGdiCncxjdK4NqWTgepEFH0/YQS/QU5+dQfX4ApYj14P2vsV6rQzt/E6IxZQW/+SvWDWsgmv/Q9aecfI8vBBNogtKncQI6xSNGoWMxUcO+SR3gB5v4/2+kWCLFOfoNqAk/Hhkr6HC0OFoTzE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=KaihtoYF; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="KaihtoYF" Received: from [127.0.1.1] (91-158-153-178.elisa-laajakaista.fi [91.158.153.178]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 6D036F06; Wed, 23 Jul 2025 12:04:58 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1753265099; bh=j87NeKlc9anpUXCbEig4homQtezEMDttOfQxDN4FPIA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=KaihtoYFNTD1kuuRosBUc6R31TXd0ojQKLc23zUJzBBFE3rMqDTc4vS4h3B1z96Fu URszaM91zy4ahEf3hhckXKAzhqosAFyYcPQVUcBddylJzzLrmhKH5IGgqrbDxbpNEl FEijYHr/+lsNFvxPkn0C2IpLVGXo7fIP5PcJ12oQ= From: Tomi Valkeinen Date: Wed, 23 Jul 2025 13:05:07 +0300 Subject: [PATCH v5 01/15] drm/bridge: cdns-dsi: Fix the _atomic_check() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250723-cdns-dsi-impro-v5-1-e61cc06074c2@ideasonboard.com> References: <20250723-cdns-dsi-impro-v5-0-e61cc06074c2@ideasonboard.com> In-Reply-To: <20250723-cdns-dsi-impro-v5-0-e61cc06074c2@ideasonboard.com> To: Jyri Sarha , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Vinod Koul , Kishon Vijay Abraham I , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Jayesh Choudhary , Dmitry Baryshkov Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org, Francesco Dolcini , Aradhya Bhatia , Devarsh Thakkar , Parth Pancholi , Tomi Valkeinen X-Mailer: b4 0.15-dev-c25d1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1760; i=tomi.valkeinen@ideasonboard.com; h=from:subject:message-id; bh=+iBIKU6n3zpwp3bvYiJEm9dNQvFt67iy0FOXdcvLF+o=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBogLPpMF38GOVq5ARd08pP2pPYl/yZs2MBNHs30 3/cs9dFEwyJAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCaICz6QAKCRD6PaqMvJYe 9aD2D/9jHisLIjf1YghAMVIHwfNJJ2tixN1LL+yqR9U8Zdyjo0e3oiuvEUqKyQGWC9TJVVVhlSg 2kQI7vQuqXy9njrFtMc6SD2Hq6fiiVFUW7pRxri5Nr135JAdtZul6BzqpHZQ247A4aaD+4WfG9v /Gq/oqFsc5ShTbpt/wG/MGYFt/Fy/Dwn/poBPxGBHUdT/VvPpdxj4GBB3Sj/ogeSWt9TlYHfhh+ rRSDDddjwcu2zxOsUb58hPMnWnOMTVwHuwjsR3u8ub0/WEWKNEGjo19sROeIZAyGBs6GgxvQ0S1 zM0D89/+HGabWBjKHp2rAopCpLEBLZDn+s3urx6xTOKrFNiwvnqkZSa5NxYLleh+nk2se4A4CVi Sa8MrIqlJFxc2dNSIzfMqRJzdUAYMUkFGLNMCtPKq8w8Wgm4FUOtUMbiW9IBbUQW8j6Tw5Q39XO S2lytxA4kfcfj1dlYxi1MPqkpFMso72F7J7opL0cOwA0ax351J3JO1hoNnxjFO0kzZuOgUN2l9h 8Fn0mU5fWy0PoR1Ix+CYXd6nvqqAhqKF9cEILAbwVZrtqVlw0POzsXN5pqLjqS/I+ck3IuHCOkt YYXgFtjLPBmqQUepH8/6znWgHRPYBspwnxgyd4XXiSYMEmqqATRyNUvuQu9y3rSzQVvShrhJ0rM u2FqDSGFtd7KIXw== X-Developer-Key: i=tomi.valkeinen@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 From: Aradhya Bhatia Use the "adjusted_mode" for the dsi configuration check, as that is the more appropriate display_mode for validation, and later bridge enable. Also, fix the mode_valid_check parameter from false to true, as the dsi configuration check is taking place during the check-phase, and the crtc_* mode values are not expected to be populated yet. Fixes: a53d987756ea ("drm/bridge: cdns-dsi: Move DSI mode check to _atomic_= check()") Signed-off-by: Aradhya Bhatia Reviewed-by: Tomi Valkeinen Tested-by: Jayesh Choudhary Reviewed-by: Devarsh Thakkar Signed-off-by: Tomi Valkeinen --- drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c b/drivers/gpu/d= rm/bridge/cadence/cdns-dsi-core.c index a57ca8c3bdae..695b6246b280 100644 --- a/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c +++ b/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c @@ -997,10 +997,10 @@ static int cdns_dsi_bridge_atomic_check(struct drm_br= idge *bridge, struct cdns_dsi_input *input =3D bridge_to_cdns_dsi_input(bridge); struct cdns_dsi *dsi =3D input_to_dsi(input); struct cdns_dsi_bridge_state *dsi_state =3D to_cdns_dsi_bridge_state(brid= ge_state); - const struct drm_display_mode *mode =3D &crtc_state->mode; + const struct drm_display_mode *adjusted_mode =3D &crtc_state->adjusted_mo= de; struct cdns_dsi_cfg *dsi_cfg =3D &dsi_state->dsi_cfg; =20 - return cdns_dsi_check_conf(dsi, mode, dsi_cfg, false); + return cdns_dsi_check_conf(dsi, adjusted_mode, dsi_cfg, true); } =20 static struct drm_bridge_state * --=20 2.43.0 From nobody Mon Oct 6 08:28:02 2025 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0938228C029 for ; Wed, 23 Jul 2025 10:05:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753265143; cv=none; b=HOTQGG8t4TGc7zto5+W4IhZOuEzL0MrKWH6MVMlwldfIxlU/vu94KSH/WQGqS2N6hzeVkBIU3EsfkSRYDcL61lstyPNU304ezPQgYpJh5OtHIFjIZVi7beRX2WLGDQDJ2IOBe2iAvFXcudWjxmG+nC0mFsx7Vy5WETo9xrInlOo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753265143; c=relaxed/simple; bh=ORJ+r9QXRlTePgAiA6Oc9ykTVuz6BMPrXnHDUBW7+tA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Ggj4OrRCqYFEuUuzyL0ad9Fa7G9vGdJWydR4KEApPt/i9uuSBjRciHpgjEWA9RW2Q3pnOqSpkmEgLmhM/p1S65qgsyT4iRBaKzNsLPrXLe4PDYye1ygjcGwI9UlLYKOc1Jw+oMgc9yKoQmo0yFEK67rujair7UTcqF3NrT0r0JA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=ZwBw95Rm; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="ZwBw95Rm" Received: from [127.0.1.1] (91-158-153-178.elisa-laajakaista.fi [91.158.153.178]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id B2C6BF0B; Wed, 23 Jul 2025 12:04:59 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1753265100; bh=ORJ+r9QXRlTePgAiA6Oc9ykTVuz6BMPrXnHDUBW7+tA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=ZwBw95RmpEJaC4q9D0iCiR3XOHlc5Eke5Y1lPizelg4h3jhxfsDa09QGaScgRs+Xu g7UuCo0KAl06l6wl+kwJiZsyjs73D6RW76WWYrV21AbobbaLNgcK3BHnP2V0gfHG/T 47UiPbsU9pffBjoyQW/TvOZUFHp+BqHCobmmt1cw= From: Tomi Valkeinen Date: Wed, 23 Jul 2025 13:05:08 +0300 Subject: [PATCH v5 02/15] drm/tidss: Fix missing includes and struct decls Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250723-cdns-dsi-impro-v5-2-e61cc06074c2@ideasonboard.com> References: <20250723-cdns-dsi-impro-v5-0-e61cc06074c2@ideasonboard.com> In-Reply-To: <20250723-cdns-dsi-impro-v5-0-e61cc06074c2@ideasonboard.com> To: Jyri Sarha , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Vinod Koul , Kishon Vijay Abraham I , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Jayesh Choudhary , Dmitry Baryshkov Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org, Francesco Dolcini , Aradhya Bhatia , Devarsh Thakkar , Parth Pancholi , Tomi Valkeinen X-Mailer: b4 0.15-dev-c25d1 X-Developer-Signature: v=1; a=openpgp-sha256; l=2357; i=tomi.valkeinen@ideasonboard.com; h=from:subject:message-id; bh=ORJ+r9QXRlTePgAiA6Oc9ykTVuz6BMPrXnHDUBW7+tA=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBogLPp6kU/4JIExEPKogdspBc6ktmg57XLDNNpo iOOklnleBuJAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCaICz6QAKCRD6PaqMvJYe 9aDUD/4s3YKIhT5PfWB6Fy4SGIOCjBhxa2MDayzUI4BoaHAjSEuJ4O1G2T73C3FWVLOlKjdtxL+ tnDLofKetsbnw/HDU1YdPtm8gbPhScEJP4uHL6MKTPSD1CJEd/aq4HKlzh3KTkLNsrXZkCVt0il QSBhpn6VLauVh85jUiDKyOR4ARqIOSUU/Nf1VPn5YBKWHsvOh8pjwx5LXiD3YoRXoXpC8JtvZ1r VnCSHpTlqzo3NKsj4BSaqk7bEn7QZL/2EjSZrbzSMf+zroAUUwV1Xoeqbv8rAF8myyEnE+/pwIE ORs6q4Bgz0H9el1oWUPTZUD4AdCN1zL7BUPQvcLuXii5hzDlFeTXxviZJWDBgJjSL8qaUplp6Dt VcvAwJD7cQLyBie737+yqBP4yXlVSsCw1emL99WrEGRD3fDEUJ5ugxlPbe40o6QuJmVxJUe7K2o /a8K27ftRdTheuGdQz6Kv8KwrNNO4Zkq7ki7j9EVTsdel83XbyWAG2GDBW1NQe1T7ovT7gl1q02 7HHjhgng/B8NsKTUbvZVdgtFyLS12lkJwWXw7WA7VsZATkQPsODU4nkWzW0N6OBbbJvSK0H2vtA sldzNcTS5M+mfmrJuo7q2bczzxdIR1ZPXktZEC0+ODbqomNYHqmpZnA1sE7VqR6MFqZr2n6+iZj 2AX71AJqsUl87uw== X-Developer-Key: i=tomi.valkeinen@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 Fix missing includes and struct declarations. Even if these don't cause any compile issues at the moment, it's good to have them correct. Reviewed-by: Aradhya Bhatia Tested-by: Parth Pancholi Tested-by: Jayesh Choudhary Reviewed-by: Devarsh Thakkar Signed-off-by: Tomi Valkeinen --- drivers/gpu/drm/tidss/tidss_dispc.h | 3 +++ drivers/gpu/drm/tidss/tidss_drv.h | 2 ++ drivers/gpu/drm/tidss/tidss_plane.h | 2 ++ drivers/gpu/drm/tidss/tidss_scale_coefs.h | 2 ++ 4 files changed, 9 insertions(+) diff --git a/drivers/gpu/drm/tidss/tidss_dispc.h b/drivers/gpu/drm/tidss/ti= dss_dispc.h index b8614f62186c..60c1b400eb89 100644 --- a/drivers/gpu/drm/tidss/tidss_dispc.h +++ b/drivers/gpu/drm/tidss/tidss_dispc.h @@ -7,11 +7,14 @@ #ifndef __TIDSS_DISPC_H__ #define __TIDSS_DISPC_H__ =20 +#include + #include "tidss_drv.h" =20 struct dispc_device; =20 struct drm_crtc_state; +struct drm_plane_state; =20 enum tidss_gamma_type { TIDSS_GAMMA_8BIT, TIDSS_GAMMA_10BIT }; =20 diff --git a/drivers/gpu/drm/tidss/tidss_drv.h b/drivers/gpu/drm/tidss/tids= s_drv.h index d14d5d28f0a3..84454a4855d1 100644 --- a/drivers/gpu/drm/tidss/tidss_drv.h +++ b/drivers/gpu/drm/tidss/tidss_drv.h @@ -9,6 +9,8 @@ =20 #include =20 +#include + #define TIDSS_MAX_PORTS 4 #define TIDSS_MAX_PLANES 4 #define TIDSS_MAX_OLDI_TXES 2 diff --git a/drivers/gpu/drm/tidss/tidss_plane.h b/drivers/gpu/drm/tidss/ti= dss_plane.h index aecaf2728406..92c560c3a621 100644 --- a/drivers/gpu/drm/tidss/tidss_plane.h +++ b/drivers/gpu/drm/tidss/tidss_plane.h @@ -7,6 +7,8 @@ #ifndef __TIDSS_PLANE_H__ #define __TIDSS_PLANE_H__ =20 +#include + #define to_tidss_plane(p) container_of((p), struct tidss_plane, plane) =20 struct tidss_device; diff --git a/drivers/gpu/drm/tidss/tidss_scale_coefs.h b/drivers/gpu/drm/ti= dss/tidss_scale_coefs.h index 9c560d0fdac0..9824d02d9d1f 100644 --- a/drivers/gpu/drm/tidss/tidss_scale_coefs.h +++ b/drivers/gpu/drm/tidss/tidss_scale_coefs.h @@ -9,6 +9,8 @@ =20 #include =20 +struct device; + struct tidss_scale_coefs { s16 c2[16]; s16 c1[16]; --=20 2.43.0 From nobody Mon Oct 6 08:28:02 2025 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D761F28C2B9 for ; Wed, 23 Jul 2025 10:05:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753265144; cv=none; b=QgwGS+dNjhMTASxyB3GT93D0RQSfvFlttphCZBiUIpsb0EWGtBI72io05EcjW9UoOCZlkJVP5QISXAB/nsfq93z5G6pci6yGSno209V9ZmAFjz2CQJ6OtCvaSKIU+92P/HuBT4bISlTPoNEKj0pXivOc65C6HLqwnLuI4EwO2rk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753265144; c=relaxed/simple; bh=pz8KMcVokg1V/yZunn70svTAycPp1MDVpEfNBHPXfM0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=HW39bgWsAkcMIhXnFezG2mXCDSF8HOt4yiQJnscfOcZ2m3a+1VsDtwwhbAwS/7/uOpK3jsoMk2mnPEZTevuAFtWWq2lYrncTV5/E7qUUR8j+tKq5Ncx9Cykis3hgcdd6wKimq1KhoJSWfB2Z39IgcsaMmXabfXmZsqMJGjggw6o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=JWM0eh3N; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="JWM0eh3N" Received: from [127.0.1.1] (91-158-153-178.elisa-laajakaista.fi [91.158.153.178]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 0251FFDB; Wed, 23 Jul 2025 12:05:00 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1753265102; bh=pz8KMcVokg1V/yZunn70svTAycPp1MDVpEfNBHPXfM0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=JWM0eh3Nuh6JnA+wFpzCf47akbIroygQVzkodZYpv5tObbJ7/iFndFPovXN6biu0b deLnSqVOmoEfV2fjP0K6C7YbP0B9bRaCRWkaMk9JiIV5bIEqfXo0GkQrdBCRDLrthn DRPTqzGWEo0pisGC3gBDdBSh+IbTzKT5HfYsnCNA= From: Tomi Valkeinen Date: Wed, 23 Jul 2025 13:05:09 +0300 Subject: [PATCH v5 03/15] drm/tidss: Use the crtc_* timings when programming the HW Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250723-cdns-dsi-impro-v5-3-e61cc06074c2@ideasonboard.com> References: <20250723-cdns-dsi-impro-v5-0-e61cc06074c2@ideasonboard.com> In-Reply-To: <20250723-cdns-dsi-impro-v5-0-e61cc06074c2@ideasonboard.com> To: Jyri Sarha , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Vinod Koul , Kishon Vijay Abraham I , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Jayesh Choudhary , Dmitry Baryshkov Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org, Francesco Dolcini , Aradhya Bhatia , Devarsh Thakkar , Parth Pancholi , Tomi Valkeinen X-Mailer: b4 0.15-dev-c25d1 X-Developer-Signature: v=1; a=openpgp-sha256; l=2657; i=tomi.valkeinen@ideasonboard.com; h=from:subject:message-id; bh=pz8KMcVokg1V/yZunn70svTAycPp1MDVpEfNBHPXfM0=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBogLPqBoO3LIHdqMhItrSVBIh76mCEib7Abm794 Q7bl8D/2i2JAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCaICz6gAKCRD6PaqMvJYe 9eTgEACK3SB0N7uNV6zPqbTfZNpJ4srFLkSMq/S8qN9V7bj3lacUueHUcKKH1sU/8DJdKqTaS2l AOmQ4W9QN4q45F3Dnzy1PC6Umjmln3hI228EZpEKa8NPT4FOyQ1n1+FnEIGBFxpU1VruQvVKhRX YV8ue1oBdk6XYYkYb2i/meNC3bSNyX8j2XIq/mYRvpyBUUGcrhVIF7YcjyLEle2djVQ+oPsdsTg 5GG4cIci2CyH21JBuBaa12p+zn+1jw9RAlORWRdVHBc2fy5VehpA/GMBYvRfW32x8R05iGqrYoX 5GIKXOKeHeARSE30Cfs+kgCuyM/+LS2P3cGAMERIKMqxEGHbbzu/9mDzVvSw+TUxElLmDeSd6gV LRMDP9e8+kj3i0lWs7/bHA2fqRQZBz3iuWQL2967eV4P+qBDBSi9zirjiqViBkL+uBD1YLe77mb BJEM4+irKg7OI4reuoXQs2NWM4WneHdzfJJCSeWnniekLqUGLbuFEBDVJmTG2/YH2IBIXK/frzs ZitCnnPFZ1Yeaz5U0RMu6BfA4hKNnjibe85Wn8G4Mo52OQM96If/0bVKHORcYLvlF+Db2iLMXXD l/tfLxCZo3EdMZ1w+mdmX4qGG4sQYMS2oCNFESttz7e9alz5dasjkJhfbe9ElzCsTAWuIr6g8vo xKY71SsMQVoqtJw== X-Developer-Key: i=tomi.valkeinen@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 Use the crtc_* fields from drm_display_mode, instead of the "logical" fields. This shouldn't change anything in practice, but afaiu the crtc_* fields are the correct ones to use here. Reviewed-by: Aradhya Bhatia Tested-by: Parth Pancholi Tested-by: Jayesh Choudhary Reviewed-by: Devarsh Thakkar Signed-off-by: Tomi Valkeinen --- drivers/gpu/drm/tidss/tidss_crtc.c | 2 +- drivers/gpu/drm/tidss/tidss_dispc.c | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/tidss/tidss_crtc.c b/drivers/gpu/drm/tidss/tid= ss_crtc.c index a2f40a5c7703..17efd77ce7f2 100644 --- a/drivers/gpu/drm/tidss/tidss_crtc.c +++ b/drivers/gpu/drm/tidss/tidss_crtc.c @@ -225,7 +225,7 @@ static void tidss_crtc_atomic_enable(struct drm_crtc *c= rtc, tidss_runtime_get(tidss); =20 r =3D dispc_vp_set_clk_rate(tidss->dispc, tcrtc->hw_videoport, - mode->clock * 1000); + mode->crtc_clock * 1000); if (r !=3D 0) return; =20 diff --git a/drivers/gpu/drm/tidss/tidss_dispc.c b/drivers/gpu/drm/tidss/ti= dss_dispc.c index c0277fa36425..3f6cff2ab1b2 100644 --- a/drivers/gpu/drm/tidss/tidss_dispc.c +++ b/drivers/gpu/drm/tidss/tidss_dispc.c @@ -1215,13 +1215,13 @@ void dispc_vp_enable(struct dispc_device *dispc, u3= 2 hw_videoport, =20 dispc_set_num_datalines(dispc, hw_videoport, fmt->data_width); =20 - hfp =3D mode->hsync_start - mode->hdisplay; - hsw =3D mode->hsync_end - mode->hsync_start; - hbp =3D mode->htotal - mode->hsync_end; + hfp =3D mode->crtc_hsync_start - mode->crtc_hdisplay; + hsw =3D mode->crtc_hsync_end - mode->crtc_hsync_start; + hbp =3D mode->crtc_htotal - mode->crtc_hsync_end; =20 - vfp =3D mode->vsync_start - mode->vdisplay; - vsw =3D mode->vsync_end - mode->vsync_start; - vbp =3D mode->vtotal - mode->vsync_end; + vfp =3D mode->crtc_vsync_start - mode->crtc_vdisplay; + vsw =3D mode->crtc_vsync_end - mode->crtc_vsync_start; + vbp =3D mode->crtc_vtotal - mode->crtc_vsync_end; =20 dispc_vp_write(dispc, hw_videoport, DISPC_VP_TIMING_H, FLD_VAL(hsw - 1, 7, 0) | @@ -1263,8 +1263,8 @@ void dispc_vp_enable(struct dispc_device *dispc, u32 = hw_videoport, FLD_VAL(ivs, 12, 12)); =20 dispc_vp_write(dispc, hw_videoport, DISPC_VP_SIZE_SCREEN, - FLD_VAL(mode->hdisplay - 1, 11, 0) | - FLD_VAL(mode->vdisplay - 1, 27, 16)); + FLD_VAL(mode->crtc_hdisplay - 1, 11, 0) | + FLD_VAL(mode->crtc_vdisplay - 1, 27, 16)); =20 VP_REG_FLD_MOD(dispc, hw_videoport, DISPC_VP_CONTROL, 1, 0, 0); } --=20 2.43.0 From nobody Mon Oct 6 08:28:02 2025 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4D77028D844 for ; Wed, 23 Jul 2025 10:05:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753265146; cv=none; b=lcDEVzPDi6AloO/NcFBwfoXxPui9qioumPSTdB/Pp+ITFf2nzWbEV/ksBinkywf186EDF4v+7ROVGlGMbHdfcGCrqHXAP8gBUGLHMYscB/agAKXjcMVyW+rzjcTzxslyGAoFzrxJCoCLSShckENs+guIEJp9/86k99BLR2y8FW4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753265146; c=relaxed/simple; bh=9P0ZS+LOE91FSs5KuTmn6c1+z0gltGmsa74PXoQ3bjk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=TKI7hg7frB/HG8z2+Sqy9m7Npn2fjITcwTFmaBLlDYLv63PVOclV1SWJelwd8tsFRwxKNbxDf1i3Z6IqtmeJFd/Cb5i21H+jbHVsmTJyyvaocX/mpl4uQVJXoc6FNZUXK5LZ16W/PBhw+I0tJeXSym8yogeRLafwnygLiXIRSaY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=OTQZQRe+; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="OTQZQRe+" Received: from [127.0.1.1] (91-158-153-178.elisa-laajakaista.fi [91.158.153.178]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 4733D105D; Wed, 23 Jul 2025 12:05:02 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1753265103; bh=9P0ZS+LOE91FSs5KuTmn6c1+z0gltGmsa74PXoQ3bjk=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=OTQZQRe+Xe+jKkNDpMRy5sxjKXIQUHoNoaI2hJLCzfHO/1lNHytQ2jQqt/LCiHrko Jo06mc2PyCukPcM1NnxGND//qfmozq+Eda6Xvdtj75/1gFa6/3k5VnU8aBg0OGHUID N+SYcWAe4VIEF/X0Ej5IxvIYjglTWLwANlIRkOUA= From: Tomi Valkeinen Date: Wed, 23 Jul 2025 13:05:10 +0300 Subject: [PATCH v5 04/15] drm/bridge: cdns-dsi: Remove extra line at the end of the file Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250723-cdns-dsi-impro-v5-4-e61cc06074c2@ideasonboard.com> References: <20250723-cdns-dsi-impro-v5-0-e61cc06074c2@ideasonboard.com> In-Reply-To: <20250723-cdns-dsi-impro-v5-0-e61cc06074c2@ideasonboard.com> To: Jyri Sarha , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Vinod Koul , Kishon Vijay Abraham I , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Jayesh Choudhary , Dmitry Baryshkov Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org, Francesco Dolcini , Aradhya Bhatia , Devarsh Thakkar , Parth Pancholi , Tomi Valkeinen X-Mailer: b4 0.15-dev-c25d1 X-Developer-Signature: v=1; a=openpgp-sha256; l=884; i=tomi.valkeinen@ideasonboard.com; h=from:subject:message-id; bh=9P0ZS+LOE91FSs5KuTmn6c1+z0gltGmsa74PXoQ3bjk=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBogLPqIKG6ZTR7VyLLHdtlX7FYBGXGqO//0OqRU YmIjx1q5OyJAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCaICz6gAKCRD6PaqMvJYe 9V1nD/430OXS6nFDACJLmouxzWxEu6HLEJDi80lXm2GNRdJ3R9XfGF8M300rc7mcXYViMspfHiG YvLpYOvxgI30bZnMgHbIUvCChv7/H7ZZ55OEAcY6aWEUwZBt2dVND/d4QRLFxnEVg/ejh2RqvbP 2nybPvZ5F8cUx8Sg599WzRP4HxCcHUKC68EceID2J022c5yT7n/MplOdmBq135QJypDe+chUqLI 3bw8i2Iywk3oIf5PeYx3S5bYAUTEINS3KuiilkUTnZssuvRyew8Bv7TCV3vJ32OncS1QJTnw91B J+SaGbruWiUDU3SnKm05JY07Poyt64ibY4IIlpth0Z7sIrDuzRxFuBgCSVVROZKFsx7Dtm7tHGo KfSh2yIimdqqVL+fw1u3yvpLocx31IWzWm08qPNn2YYmSEE4BNMFt5jgkMtftIh/TPXJ5Bi+N64 OLgKF4Z1bxnR1+0rurDlEqCnJl40YNAVwatpqZTMwZtdedkhXbY6IaMTI4BNXdwth/dbtCpF/It AVGOGei0OsG3SWHiomcm5ufcckeCroNsycVWkegiwQtSvk7oRJGJn0piJl24BVpHgD0Qo8rvHsk a2bx/aQeydTcHBT2/Ysvbp1WKI9+U2QcYizKtOqM8BHNynHZoFUbJZtxTR/yGVroYC73SZZ7diE /rn4w7kd8eaUMhg== X-Developer-Key: i=tomi.valkeinen@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 Remove extra line at the end of the file. Reviewed-by: Aradhya Bhatia Tested-by: Parth Pancholi Tested-by: Jayesh Choudhary Reviewed-by: Devarsh Thakkar Signed-off-by: Tomi Valkeinen --- drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c b/drivers/gpu/d= rm/bridge/cadence/cdns-dsi-core.c index 695b6246b280..0c7ad05b6e53 100644 --- a/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c +++ b/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c @@ -1442,4 +1442,3 @@ MODULE_AUTHOR("Boris Brezillon "); MODULE_DESCRIPTION("Cadence DSI driver"); MODULE_LICENSE("GPL"); MODULE_ALIAS("platform:cdns-dsi"); - --=20 2.43.0 From nobody Mon Oct 6 08:28:02 2025 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EEB4828D8DA for ; Wed, 23 Jul 2025 10:05:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753265147; cv=none; b=MPn+hbFOGwZIlAo1mKwdVxFOuCh3+6qa+vpqcA7Smur5XB3f417IuRrn2Diij185XrzclyDXak87zWHgK0MA3BQ6iLqmy8D8Kk4VaLfEP4rzkfJLMrfARXtO1R78V6B+GHOkpcecN47my9lpiE1Eb2CnaJOvAX5YvnDvrz/DlVQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753265147; c=relaxed/simple; bh=fIos1sJRvSwScwZuDc+xyilJlDcV87vU4OaAE7gJEVM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GfLjBDL7Bdu62CsTsM27XMEf61f5PeSF+/31EGtX2sJrWFqN4sI49JyUnVDkNMJiqnALRiUSxYMMwgspBW0yt41fQuQpncKamW7deV+IV7Kp8V11FM4gCEAPYiqXuGBI9WfRWl7zWq9R5NeBAlA1cndIQTPnaRLx7uEw+4E9zQM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=IyPWKTUl; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="IyPWKTUl" Received: from [127.0.1.1] (91-158-153-178.elisa-laajakaista.fi [91.158.153.178]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id B4981111F; Wed, 23 Jul 2025 12:05:03 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1753265104; bh=fIos1sJRvSwScwZuDc+xyilJlDcV87vU4OaAE7gJEVM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=IyPWKTUl9iEWsioY9DdHKB2Jiah/x6L+QrowG77h+mDWqcuKnn0dKC1sZXSLfAsKU hENjQ43DXfWexzJpP8GVHLc9xdLGdZY1OHgv3zF7KWS9BTRnJ12JoD9TA23fZfDdVe rbtFgG9/5OXfgn5TPCnj/pU3vLvXgINWCfDFm8oA= From: Tomi Valkeinen Date: Wed, 23 Jul 2025 13:05:11 +0300 Subject: [PATCH v5 05/15] drm/bridge: cdns-dsi: Drop crtc_* code Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250723-cdns-dsi-impro-v5-5-e61cc06074c2@ideasonboard.com> References: <20250723-cdns-dsi-impro-v5-0-e61cc06074c2@ideasonboard.com> In-Reply-To: <20250723-cdns-dsi-impro-v5-0-e61cc06074c2@ideasonboard.com> To: Jyri Sarha , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Vinod Koul , Kishon Vijay Abraham I , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Jayesh Choudhary , Dmitry Baryshkov Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org, Francesco Dolcini , Aradhya Bhatia , Devarsh Thakkar , Parth Pancholi , Tomi Valkeinen X-Mailer: b4 0.15-dev-c25d1 X-Developer-Signature: v=1; a=openpgp-sha256; l=6510; i=tomi.valkeinen@ideasonboard.com; h=from:subject:message-id; bh=fIos1sJRvSwScwZuDc+xyilJlDcV87vU4OaAE7gJEVM=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBogLPqVZYAbbf4uhzLQqYSbcWlgdfraKC9Fdv+8 ERYsxC8OmSJAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCaICz6gAKCRD6PaqMvJYe 9R5uD/94AOCk/0SE4i7Q3YlDd60chTaSZNfvo0NxYWgaTP8NlmDB5IB+frblDC6xnH8K7NDJ3qD aCYMGtq3gYIgTy0pPzMpXOKesWpmORkYPf7TmzttYP+0pBeBznaCtSu8qXJ8zJoUK1WoqZ1BcO1 m5PjZhkEbZrvyEFYsD7Vg0P9sPSHM8fSOcJtddpnPMeadxkX/tiX/2F/81d/50CYGNDCcHDZFRt stWSpx292JBC9ePjf8mTlw9GsmP81ZNZDEFb3pwNow229YmcrlO+uUku30kXOFF255bG8s89Iqe K+NQqN/Uiw2X7UNXWREkmC3yxYVvs+70L2JeJFOTtH1QTs7/Vxyr1WjOIRNlMGinr/hPztsDr16 hnnTWjbB39bSCfrk9ivyNjSFKrTLpgp44+K/8pcX0AMDN8usRFDgSXlOCFqpqaJncoeo2967Gxu S5Ugg/uroAFSTCFwQ48UQmkdx+/7fAzstlGdPo4uiT4PrMopLekoggcnl6qazmlsPkeVcuu35za jCxUy88jpa+Ueuqv003Z4PgKWUjt1jqmiJiZkrfIc0NDK+4nb2C/iLOI7qv/T8K963BXxZNOkIW rUX9R+RafJEbPujd4+lo22TPlV55JntiELpitX8qrCL/UXS7M1w22viLvAffxdVBe8QD43GQr6f zxoLXNX6wTRcntA== X-Developer-Key: i=tomi.valkeinen@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 With recent change the cdns_dsi_check_conf() is always called with mode_valid_check =3D true. We can thus remove all the code related to the "false" paths. Tested-by: Parth Pancholi Tested-by: Jayesh Choudhary Reviewed-by: Devarsh Thakkar Signed-off-by: Tomi Valkeinen --- drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c | 60 ++++++++--------------= ---- 1 file changed, 17 insertions(+), 43 deletions(-) diff --git a/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c b/drivers/gpu/d= rm/bridge/cadence/cdns-dsi-core.c index 0c7ad05b6e53..eae9469ef431 100644 --- a/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c +++ b/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c @@ -452,15 +452,6 @@ bridge_to_cdns_dsi_input(struct drm_bridge *bridge) return container_of(bridge, struct cdns_dsi_input, bridge); } =20 -static unsigned int mode_to_dpi_hfp(const struct drm_display_mode *mode, - bool mode_valid_check) -{ - if (mode_valid_check) - return mode->hsync_start - mode->hdisplay; - - return mode->crtc_hsync_start - mode->crtc_hdisplay; -} - static unsigned int dpi_to_dsi_timing(unsigned int dpi_timing, unsigned int dpi_bpp, unsigned int dsi_pkt_overhead) @@ -477,8 +468,7 @@ static unsigned int dpi_to_dsi_timing(unsigned int dpi_= timing, =20 static int cdns_dsi_mode2cfg(struct cdns_dsi *dsi, const struct drm_display_mode *mode, - struct cdns_dsi_cfg *dsi_cfg, - bool mode_valid_check) + struct cdns_dsi_cfg *dsi_cfg) { struct cdns_dsi_output *output =3D &dsi->output; unsigned int tmp; @@ -492,30 +482,20 @@ static int cdns_dsi_mode2cfg(struct cdns_dsi *dsi, =20 bpp =3D mipi_dsi_pixel_format_to_bpp(output->dev->format); =20 - if (mode_valid_check) - tmp =3D mode->htotal - - (sync_pulse ? mode->hsync_end : mode->hsync_start); - else - tmp =3D mode->crtc_htotal - - (sync_pulse ? - mode->crtc_hsync_end : mode->crtc_hsync_start); + tmp =3D mode->htotal - + (sync_pulse ? mode->hsync_end : mode->hsync_start); =20 dsi_cfg->hbp =3D dpi_to_dsi_timing(tmp, bpp, DSI_HBP_FRAME_OVERHEAD); =20 if (sync_pulse) { - if (mode_valid_check) - tmp =3D mode->hsync_end - mode->hsync_start; - else - tmp =3D mode->crtc_hsync_end - mode->crtc_hsync_start; + tmp =3D mode->hsync_end - mode->hsync_start; =20 dsi_cfg->hsa =3D dpi_to_dsi_timing(tmp, bpp, DSI_HSA_FRAME_OVERHEAD); } =20 - dsi_cfg->hact =3D dpi_to_dsi_timing(mode_valid_check ? - mode->hdisplay : mode->crtc_hdisplay, - bpp, 0); - dsi_cfg->hfp =3D dpi_to_dsi_timing(mode_to_dpi_hfp(mode, mode_valid_check= ), + dsi_cfg->hact =3D dpi_to_dsi_timing(mode->hdisplay, bpp, 0); + dsi_cfg->hfp =3D dpi_to_dsi_timing(mode->hsync_start - mode->hdisplay, bpp, DSI_HFP_FRAME_OVERHEAD); =20 return 0; @@ -524,14 +504,12 @@ static int cdns_dsi_mode2cfg(struct cdns_dsi *dsi, static int cdns_dsi_adjust_phy_config(struct cdns_dsi *dsi, struct cdns_dsi_cfg *dsi_cfg, struct phy_configure_opts_mipi_dphy *phy_cfg, - const struct drm_display_mode *mode, - bool mode_valid_check) + const struct drm_display_mode *mode) { struct cdns_dsi_output *output =3D &dsi->output; unsigned long long dlane_bps; unsigned long adj_dsi_htotal; unsigned long dsi_htotal; - unsigned long dpi_htotal; unsigned long dpi_hz; unsigned int dsi_hfp_ext; unsigned int lanes =3D output->dev->lanes; @@ -552,12 +530,11 @@ static int cdns_dsi_adjust_phy_config(struct cdns_dsi= *dsi, if (dsi_htotal % lanes) adj_dsi_htotal +=3D lanes - (dsi_htotal % lanes); =20 - dpi_hz =3D (mode_valid_check ? mode->clock : mode->crtc_clock) * 1000; + dpi_hz =3D mode->clock * 1000; dlane_bps =3D (unsigned long long)dpi_hz * adj_dsi_htotal; =20 /* data rate in bytes/sec is not an integer, refuse the mode. */ - dpi_htotal =3D mode_valid_check ? mode->htotal : mode->crtc_htotal; - if (do_div(dlane_bps, lanes * dpi_htotal)) + if (do_div(dlane_bps, lanes * mode->htotal)) return -EINVAL; =20 /* data rate was in bytes/sec, convert to bits/sec. */ @@ -572,27 +549,25 @@ static int cdns_dsi_adjust_phy_config(struct cdns_dsi= *dsi, =20 static int cdns_dsi_check_conf(struct cdns_dsi *dsi, const struct drm_display_mode *mode, - struct cdns_dsi_cfg *dsi_cfg, - bool mode_valid_check) + struct cdns_dsi_cfg *dsi_cfg) { struct cdns_dsi_output *output =3D &dsi->output; struct phy_configure_opts_mipi_dphy *phy_cfg =3D &output->phy_opts.mipi_d= phy; unsigned long dsi_hss_hsa_hse_hbp; unsigned int nlanes =3D output->dev->lanes; - int mode_clock =3D (mode_valid_check ? mode->clock : mode->crtc_clock); int ret; =20 - ret =3D cdns_dsi_mode2cfg(dsi, mode, dsi_cfg, mode_valid_check); + ret =3D cdns_dsi_mode2cfg(dsi, mode, dsi_cfg); if (ret) return ret; =20 - ret =3D phy_mipi_dphy_get_default_config(mode_clock * 1000, + ret =3D phy_mipi_dphy_get_default_config(mode->clock * 1000, mipi_dsi_pixel_format_to_bpp(output->dev->format), nlanes, phy_cfg); if (ret) return ret; =20 - ret =3D cdns_dsi_adjust_phy_config(dsi, dsi_cfg, phy_cfg, mode, mode_vali= d_check); + ret =3D cdns_dsi_adjust_phy_config(dsi, dsi_cfg, phy_cfg, mode); if (ret) return ret; =20 @@ -610,9 +585,8 @@ static int cdns_dsi_check_conf(struct cdns_dsi *dsi, * interface. */ if ((u64)phy_cfg->hs_clk_rate * - mode_to_dpi_hfp(mode, mode_valid_check) * nlanes < - (u64)dsi_hss_hsa_hse_hbp * - (mode_valid_check ? mode->clock : mode->crtc_clock) * 1000) + (mode->hsync_start - mode->hdisplay) * nlanes < + (u64)dsi_hss_hsa_hse_hbp * mode->clock * 1000) return -EINVAL; =20 return 0; @@ -663,7 +637,7 @@ cdns_dsi_bridge_mode_valid(struct drm_bridge *bridge, if ((mode->hdisplay * bpp) % 32) return MODE_H_ILLEGAL; =20 - ret =3D cdns_dsi_check_conf(dsi, mode, &dsi_cfg, true); + ret =3D cdns_dsi_check_conf(dsi, mode, &dsi_cfg); if (ret) return MODE_BAD; =20 @@ -1000,7 +974,7 @@ static int cdns_dsi_bridge_atomic_check(struct drm_bri= dge *bridge, const struct drm_display_mode *adjusted_mode =3D &crtc_state->adjusted_mo= de; struct cdns_dsi_cfg *dsi_cfg =3D &dsi_state->dsi_cfg; =20 - return cdns_dsi_check_conf(dsi, adjusted_mode, dsi_cfg, true); + return cdns_dsi_check_conf(dsi, adjusted_mode, dsi_cfg); } =20 static struct drm_bridge_state * --=20 2.43.0 From nobody Mon Oct 6 08:28:02 2025 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2FC1D28C2B9 for ; Wed, 23 Jul 2025 10:05:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753265149; cv=none; b=K9raLN8LKsjfwxYLVTrIa8ETS7jYMFnJ6N5IORo+Zej6KQ38v+e37ZmVRUyhA6gjqDt8j/pkmDj7weh0VFn4f+HH2RkslStkTUQnx94AU13ipRg99wYL+53fbRZkHoGXkREiPFINbth/0lRY1VPZb0uooMgoZC8nBK/Ch7NThLE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753265149; c=relaxed/simple; bh=+PxAbR0AgAh+6ttH91klZ+Aji+1hZOcFtaS/g/i1Q0s=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QG4QxVoK09ODCEHtZngAdTSH+Y1hC7I3PgxUC8Cgxw5KxTJK4fwuH+3lGr+KGRrsifekF7SMMPadxHNhd8JXNUWnL3VkRh4JGqAJm4Cs9H1BYBF5PDgjUPBGSjR9f+S0cJpcTM4GbVvXAhWuOK3gvOggHyZT93Pe7UWxHeqUvc8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=RX1xMwKK; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="RX1xMwKK" Received: from [127.0.1.1] (91-158-153-178.elisa-laajakaista.fi [91.158.153.178]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 0B9DC1129; Wed, 23 Jul 2025 12:05:05 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1753265106; bh=+PxAbR0AgAh+6ttH91klZ+Aji+1hZOcFtaS/g/i1Q0s=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=RX1xMwKKPpK5WRz44L6QlrkdK2tshCe6rta1BfyesxjjiAK0rd9qw1n2zx9AchHFD LHhbk6hlcYg7cvduzEblm0OUQbdlCr0AihRY2/Ht95rNkjLRONyW8AU0hkuLE8KWj8 0D5Wk6GAGxQ4QZQ2cDeGVfnEfdAIRN8jIMLqsmPo= From: Tomi Valkeinen Date: Wed, 23 Jul 2025 13:05:12 +0300 Subject: [PATCH v5 06/15] drm/bridge: cdns-dsi: Remove broken fifo emptying check Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250723-cdns-dsi-impro-v5-6-e61cc06074c2@ideasonboard.com> References: <20250723-cdns-dsi-impro-v5-0-e61cc06074c2@ideasonboard.com> In-Reply-To: <20250723-cdns-dsi-impro-v5-0-e61cc06074c2@ideasonboard.com> To: Jyri Sarha , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Vinod Koul , Kishon Vijay Abraham I , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Jayesh Choudhary , Dmitry Baryshkov Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org, Francesco Dolcini , Aradhya Bhatia , Devarsh Thakkar , Parth Pancholi , Tomi Valkeinen X-Mailer: b4 0.15-dev-c25d1 X-Developer-Signature: v=1; a=openpgp-sha256; l=2010; i=tomi.valkeinen@ideasonboard.com; h=from:subject:message-id; bh=+PxAbR0AgAh+6ttH91klZ+Aji+1hZOcFtaS/g/i1Q0s=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBogLPrTWKpTI7qlDcFlmzpTrNDGKKo18w9aaIO6 KxFKD5lOS2JAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCaICz6wAKCRD6PaqMvJYe 9RRAEACdS40ggRn6TNhjMQt8B5FDvfYJ1X91p5qVBMm853Zy5ZJ1LS1L1M5deJpBeBU2XjGHmvg LGNeNqz/gVeVlGh9Ab8GClyFgcziAl3nWfBRdGXG70Um/OWZjdn8bJRFodJJIGxkjmmWWwwKbtL tTFlVefMDKvHDwCvgVAHG1Rxdtp8bn1L1irWH2x9SmQbmHbLnLkEyL638VGcT+1Aj2jjboVDqE9 ETLyfK5Pe6gRACRz0y7HWsCPIsMDSRxRCZmkDgiBjmCXktMVxul1Dad+V5CmPKZZ4tP4HowXBRV DbZmE1/OrGc4TagxxfrSEPoGh2EFdOMZTaut7xebklIf77rDmJoVSd6l14vLPimsrCy/4QuntH+ iurDqd5h4jAYLJxaW45Bfj2OZvgXGz3vZkbTRxKA+5j0nPnTLGL6XkTnWD/JraXau+K2hcTpkie qoohrmuXfF81+pPSnekpHeL5AmwGIntKlZaqdiphdTFwC26MAxG+NJm94vNOjEbNhJ4rwXUDZqU p2DOiocvo2yADK8cHXVYm0g5zIX5PdnkK3lSbcgr2Lvz5JgQ3xsZZxmlclCg5RRaWpxTVQA/Pwm LF5pYJ7NUvy/ZhLLKhqp/d5M9fXRonuX84oBWrZ77TD6b5rGa9Icr57aKutAqZwsFbwTvZQ47D7 eA5Izv94iKfXodw== X-Developer-Key: i=tomi.valkeinen@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 The driver checks if "DPI(HFP) > DSI(HSS+HSA+HSE+HBP)", and rejects the mode if not. However, testing shows that this doesn't hold at all. I can set the hfp to very small values, with no errors. The feedback from the HW team also was that the check is not right, although it's not clear if there's a way to validate the FIFO emptying. The check rejects quite a lot of modes, apparently for no good reason, so drop the check. Tested-by: Parth Pancholi Tested-by: Jayesh Choudhary Reviewed-by: Devarsh Thakkar Signed-off-by: Tomi Valkeinen --- drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c b/drivers/gpu/d= rm/bridge/cadence/cdns-dsi-core.c index eae9469ef431..000c5a2367fe 100644 --- a/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c +++ b/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c @@ -553,7 +553,6 @@ static int cdns_dsi_check_conf(struct cdns_dsi *dsi, { struct cdns_dsi_output *output =3D &dsi->output; struct phy_configure_opts_mipi_dphy *phy_cfg =3D &output->phy_opts.mipi_d= phy; - unsigned long dsi_hss_hsa_hse_hbp; unsigned int nlanes =3D output->dev->lanes; int ret; =20 @@ -575,20 +574,6 @@ static int cdns_dsi_check_conf(struct cdns_dsi *dsi, if (ret) return ret; =20 - dsi_hss_hsa_hse_hbp =3D dsi_cfg->hbp + DSI_HBP_FRAME_OVERHEAD; - if (output->dev->mode_flags & MIPI_DSI_MODE_VIDEO_SYNC_PULSE) - dsi_hss_hsa_hse_hbp +=3D dsi_cfg->hsa + DSI_HSA_FRAME_OVERHEAD; - - /* - * Make sure DPI(HFP) > DSI(HSS+HSA+HSE+HBP) to guarantee that the FIFO - * is empty before we start a receiving a new line on the DPI - * interface. - */ - if ((u64)phy_cfg->hs_clk_rate * - (mode->hsync_start - mode->hdisplay) * nlanes < - (u64)dsi_hss_hsa_hse_hbp * mode->clock * 1000) - return -EINVAL; - return 0; } =20 --=20 2.43.0 From nobody Mon Oct 6 08:28:02 2025 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 33FF328EC1C for ; Wed, 23 Jul 2025 10:05:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753265150; cv=none; b=p8EAS77JxNArlwvy1DyTVCyolEzRltr1nF32AfMLA54QbGjDihAs7bNzIa28Y5uz6r/kDm1A5QCOafDz/Y4nUx7lXc0bRQutA0qQi9ZCGzbPLT4VhkWneGfl7La6XlaYbSyjpoWVGKAbr3pCAVTThdrRqZ39ea3NyEl7fjWLVSw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753265150; c=relaxed/simple; bh=GKcU1UDIh+qNv6o0wu+RLbDsP2jO/MtpcsqLrcqVXJU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ZpIF2DPdGFHgdDZoElSltK0AY9s5enFNbU2LIpSx0O7VmZYGqpzMwJOfwG32lGjVqT6cXDxk1/6/BYaboYWcHbHnQUFlnT9ZXnYn5IDvuRl9vrb12Looy/dqA4dP/VLDJlbMqBdNXunxNn8keeKo/L2vL/ueg3SxPmqdCiy10gw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=Xtq+tOdu; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="Xtq+tOdu" Received: from [127.0.1.1] (91-158-153-178.elisa-laajakaista.fi [91.158.153.178]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 59BA811EB; Wed, 23 Jul 2025 12:05:06 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1753265107; bh=GKcU1UDIh+qNv6o0wu+RLbDsP2jO/MtpcsqLrcqVXJU=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=Xtq+tOduJR8iGODWJ2SARLbVYE5At9AIhgY7+mn6vEX8J9eJKIQP9HEfDKkgsSnYF FsqENAEn8OQpBRYn/s6/28wvcU49K4l2FTg0J7ZwaYDTmKV/9b1kSPXPo51q7CjZQX vNB24CWA2rA9ywDxCnDlQS3SwM5QxBiJTXds44zs= From: Tomi Valkeinen Date: Wed, 23 Jul 2025 13:05:13 +0300 Subject: [PATCH v5 07/15] drm/bridge: cdns-dsi: Drop checks that shouldn't be in .mode_valid() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250723-cdns-dsi-impro-v5-7-e61cc06074c2@ideasonboard.com> References: <20250723-cdns-dsi-impro-v5-0-e61cc06074c2@ideasonboard.com> In-Reply-To: <20250723-cdns-dsi-impro-v5-0-e61cc06074c2@ideasonboard.com> To: Jyri Sarha , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Vinod Koul , Kishon Vijay Abraham I , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Jayesh Choudhary , Dmitry Baryshkov Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org, Francesco Dolcini , Aradhya Bhatia , Devarsh Thakkar , Parth Pancholi , Tomi Valkeinen X-Mailer: b4 0.15-dev-c25d1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1734; i=tomi.valkeinen@ideasonboard.com; h=from:subject:message-id; bh=GKcU1UDIh+qNv6o0wu+RLbDsP2jO/MtpcsqLrcqVXJU=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBogLPrXDOKTajwpiWsvJg/fjW9aMV6vKjSC5ngs N8WHfpn9tmJAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCaICz6wAKCRD6PaqMvJYe 9eXDD/wNul3Vpi6+NHNqLrIHcNuGnMTOhgLHR+YpIOHcI+zK7IecB24a7nc4srlTZtnhsp0SlNE StA6bcE95ADqqltoPyK49R2Xyh5Yi/lBhDMsdnPslIq5c/KGNTkjO941Z0NDINCAnNNr4ugeV7A d1r8yRRnsa2ZUuOVL+TsVWU6MwwfQPGcEzc6HktEuTG5NyDAlBnGDLW9FqQZRem9SoaOJWxZIg3 s+aOwFJFE+HhivjWkyAmqrf3fF8XpQn+XsaW/SH2S/VwtBUlda9SUkeeQG9HIx90vra/FIcEpqA eP9b4+dX2Itdd+LpLnEAT3+qXcEOEOK7UTMr1fL77g4I2txOr8lSJo1YNG2hkay2IWERlv4gTTU TvVNVKIF3Ri3/J4rHVkU9BySBP41S334VK8+oRyyjeLY65Tk17QiivokJh5rYtadsjYGy0fIKW3 zy5fD0nmzzrAKVkS4GkUbGZlov8ob6NGkn01tVcjybQ2UrkbKxmlG337OLkaEq0DoBxgmWBo8Qf VK9qqfwQwMmOQ644yUrlw11rODFyKlroHFbx+wLnBnMLLU8AH9+HI1pRBOUDSDwyQI0R9w6VBrM UtMPAWWz8vG/AEz2JzWvNx/I3qpF5V4gcdR5uODq24lU1cSZeCAM0KI2XJx8n3LoH7CBx3hnB45 ljaYeCttdHMWoqQ== X-Developer-Key: i=tomi.valkeinen@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 The docs say about mode_valid(): "it is not allowed to look at anything else but the passed-in mode, and validate it against configuration-invariant hardware constraints" We're doing a lot more than just looking at the mode. The main issue here is that we're doing checks based on the pixel clock, before we know what the pixel clock from the crtc actually is. So, drop the cdns_dsi_check_conf() call from .mode_valid(). Reviewed-by: Aradhya Bhatia Tested-by: Parth Pancholi Tested-by: Jayesh Choudhary Reviewed-by: Devarsh Thakkar Signed-off-by: Tomi Valkeinen --- drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c b/drivers/gpu/d= rm/bridge/cadence/cdns-dsi-core.c index 000c5a2367fe..b2b6529b1c70 100644 --- a/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c +++ b/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c @@ -603,8 +603,7 @@ cdns_dsi_bridge_mode_valid(struct drm_bridge *bridge, struct cdns_dsi_input *input =3D bridge_to_cdns_dsi_input(bridge); struct cdns_dsi *dsi =3D input_to_dsi(input); struct cdns_dsi_output *output =3D &dsi->output; - struct cdns_dsi_cfg dsi_cfg; - int bpp, ret; + int bpp; =20 /* * VFP_DSI should be less than VFP_DPI and VFP_DSI should be at @@ -622,10 +621,6 @@ cdns_dsi_bridge_mode_valid(struct drm_bridge *bridge, if ((mode->hdisplay * bpp) % 32) return MODE_H_ILLEGAL; =20 - ret =3D cdns_dsi_check_conf(dsi, mode, &dsi_cfg); - if (ret) - return MODE_BAD; - return MODE_OK; } =20 --=20 2.43.0 From nobody Mon Oct 6 08:28:02 2025 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5DFEF291C01 for ; Wed, 23 Jul 2025 10:05:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753265152; cv=none; b=A5DB+aTFS1C3BE0xy/2OKZZwzEzmFcHl7VIvyw6l2XWpTB8HOO7McsGPM4w93PF665lXjCP3V8OcM6ixekO0bFvuUW4EL98eDhB+dJV/3MEl1lHImRbsCGa1PyVta8Bcv1DGis0oxtUJpZGQ7HhC0ur/zwt56zC2J48hZfZCZws= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753265152; c=relaxed/simple; bh=QyaPaFJI2DYR4QuA0uaZuxOPaRXXWCd5AxT5A2x7Q5Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GsY1kM2iqF2zm5jhOPYkG6vx4M8dFw3jEXYo2c4BZqvh2FuFfX2mxyO2b1833EPAL6xGYnHiX8l3N91XjYNr/4ZTh5uaGkW6ih2y48hmjjN6v6gdchULjXdLM4ELAhfN/BTTdfu91DjxXOZcIVTEPR9pGlAPaLKo/A/zVBpL6CU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=MOG+AzPl; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="MOG+AzPl" Received: from [127.0.1.1] (91-158-153-178.elisa-laajakaista.fi [91.158.153.178]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id C035613DE; Wed, 23 Jul 2025 12:05:07 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1753265108; bh=QyaPaFJI2DYR4QuA0uaZuxOPaRXXWCd5AxT5A2x7Q5Y=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=MOG+AzPleuh5lSupxh62rGvfes5Bh6imqb7eelTThU4TW64th+P7c+9WgHBFoS5CP H5m6Ky29GyrT1H3hctKNoeYp+Qa2Ucinpqs3hRup3/wOIvWwoqYSiTpAU8f9v8Ap8m sxkUfwHDNtZZKGKww3aW5oRkMZCVyTZ35fWTt9eM= From: Tomi Valkeinen Date: Wed, 23 Jul 2025 13:05:14 +0300 Subject: [PATCH v5 08/15] drm/bridge: cdns-dsi: Update htotal in cdns_dsi_mode2cfg() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250723-cdns-dsi-impro-v5-8-e61cc06074c2@ideasonboard.com> References: <20250723-cdns-dsi-impro-v5-0-e61cc06074c2@ideasonboard.com> In-Reply-To: <20250723-cdns-dsi-impro-v5-0-e61cc06074c2@ideasonboard.com> To: Jyri Sarha , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Vinod Koul , Kishon Vijay Abraham I , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Jayesh Choudhary , Dmitry Baryshkov Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org, Francesco Dolcini , Aradhya Bhatia , Devarsh Thakkar , Parth Pancholi , Tomi Valkeinen X-Mailer: b4 0.15-dev-c25d1 X-Developer-Signature: v=1; a=openpgp-sha256; l=2052; i=tomi.valkeinen@ideasonboard.com; h=from:subject:message-id; bh=QyaPaFJI2DYR4QuA0uaZuxOPaRXXWCd5AxT5A2x7Q5Y=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBogLPrCZQ6oe7tq8A5aa498P11jZiSpfN+6u8DC mzv4PXR5z2JAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCaICz6wAKCRD6PaqMvJYe 9bhoD/4wPoQFICkJrFipn04ZO0H6i46CbPboDYduDCUTbLV/9kqK8qlwiWJEprNfozqTQC9hPQ3 itzBDNKrLvMRlthSdXFqlkAHzo63ylNcRXSNCw3d+Fhevt1OB7CGz07TLU26NANuRphDTt65qSM 97p6d3oqBIkvCzjFTQoSUXbH2IbDZGhEvZpSVnxrbju7iupYFFZdmPVGaqVH2SU2YpBZ7eTXTyc ZsDKYdI2zBky/kXW4XjWfYN8ueHGR1Zxui1htqBd0Lya9bdGNr25Ow/cgnQ/sd3gFAQSgnrBHBu 0ZdWAYt5+ygSKpJ45b1YJvcBILwjQhBbgjFWhuz5Z/fkiARfU9L6X9VLYEmpCGe0H2AZgUYYnDN KqXZPo0w4kwFs75cGSv0dEEdeUG8g9gkZtjEg+GGOYxxlbQRx1tGZ2vfFiLNzeajJ18vpeTNbda xT2P8nwV6OIYh7hMrXSScpJXmwIglPfwH3QE0tUGuvfhE8k1t98z5rIid5iD/yJ0IzM9N4qaXSl kCAwc0vUrkQLidU8HCaN0dThDd9gSnfZ4goRxbjMVWQl8XkAjakCSnct6hj9MAUhEX39S6tjqBe hEodCCitmUYopTKr7cCCimliqaVJzwaI7WGgK3D9OIXbsMdlkZ1QPaQPs8luJdT3tgypDcFqDWh skMNu1Y4f3pm7nQ== X-Developer-Key: i=tomi.valkeinen@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 cdns_dsi_mode2cfg() calculates the dsi timings, but for some reason doesn't set the htotal based on those timings. It is set only later, in cdns_dsi_adjust_phy_config(). As cdns_dsi_mode2cfg() is the logical place to calculate it, let's move it there. Especially as the following patch will remove cdns_dsi_adjust_phy_config(). Reviewed-by: Aradhya Bhatia Tested-by: Parth Pancholi Tested-by: Jayesh Choudhary Reviewed-by: Devarsh Thakkar Signed-off-by: Tomi Valkeinen --- drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c b/drivers/gpu/d= rm/bridge/cadence/cdns-dsi-core.c index b2b6529b1c70..7103878df1e7 100644 --- a/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c +++ b/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c @@ -498,6 +498,13 @@ static int cdns_dsi_mode2cfg(struct cdns_dsi *dsi, dsi_cfg->hfp =3D dpi_to_dsi_timing(mode->hsync_start - mode->hdisplay, bpp, DSI_HFP_FRAME_OVERHEAD); =20 + dsi_cfg->htotal =3D dsi_cfg->hbp + DSI_HBP_FRAME_OVERHEAD; + if (output->dev->mode_flags & MIPI_DSI_MODE_VIDEO_SYNC_PULSE) + dsi_cfg->htotal +=3D dsi_cfg->hsa + DSI_HSA_FRAME_OVERHEAD; + + dsi_cfg->htotal +=3D dsi_cfg->hact; + dsi_cfg->htotal +=3D dsi_cfg->hfp + DSI_HFP_FRAME_OVERHEAD; + return 0; } =20 @@ -514,12 +521,7 @@ static int cdns_dsi_adjust_phy_config(struct cdns_dsi = *dsi, unsigned int dsi_hfp_ext; unsigned int lanes =3D output->dev->lanes; =20 - dsi_htotal =3D dsi_cfg->hbp + DSI_HBP_FRAME_OVERHEAD; - if (output->dev->mode_flags & MIPI_DSI_MODE_VIDEO_SYNC_PULSE) - dsi_htotal +=3D dsi_cfg->hsa + DSI_HSA_FRAME_OVERHEAD; - - dsi_htotal +=3D dsi_cfg->hact; - dsi_htotal +=3D dsi_cfg->hfp + DSI_HFP_FRAME_OVERHEAD; + dsi_htotal =3D dsi_cfg->htotal; =20 /* * Make sure DSI htotal is aligned on a lane boundary when calculating --=20 2.43.0 From nobody Mon Oct 6 08:28:02 2025 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 18477293B48 for ; Wed, 23 Jul 2025 10:05:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753265153; cv=none; b=pMlqDs+mLCCoTO9Qox/Uv6CkGGK+K5biDKK45V6PLr/txN6ygcggqASmhEz2RIQGYKHFaNV2+JG8j1/h2dN9b2ahjJg7lqFYbBOHvI5KIxFlYlr20WBQi/9HoMUqRitM7xcSgR9sSRd68kmCfgcmVPKE8bA2QnUo2ChHf+Lg+f8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753265153; c=relaxed/simple; bh=AIjszP/iGXkGjj23VjMych22bAgvN9HKxmaLXYlZiI4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=HwmYJ5IQ7odUBlagfWm5RLJ1kgEqHV8+DA/bmYnTe7HYtnT5MOe/zzlj4fE8/zbVnsfAUljmVnhvp2DZalkj9oD9fqlGNBK5WwnYOVJgVUHvVJiARCaO8M9SVOg0xtSZUIF6e3jibUgieFYKGNEKc1Iq/NYnGEhBALJMEduWrvQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=nxD906sU; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="nxD906sU" Received: from [127.0.1.1] (91-158-153-178.elisa-laajakaista.fi [91.158.153.178]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 1442F134F; Wed, 23 Jul 2025 12:05:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1753265110; bh=AIjszP/iGXkGjj23VjMych22bAgvN9HKxmaLXYlZiI4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=nxD906sUntKXTKtqZlII27MbW5l6FC8MENd0MOKOH6jry3MkjbckQiA7yeXSlW1Fj PFRTWYGRyDmHDnyxHnZ/x9okPrRDWJsJrCtA7I4LaXUmMgsoaC/SE1pCJuVKuZ5agU 6c4gWOUgWUb2WU2h3BihPoE0kJOwjOQOXFw6TvRY= From: Tomi Valkeinen Date: Wed, 23 Jul 2025 13:05:15 +0300 Subject: [PATCH v5 09/15] drm/bridge: cdns-dsi: Drop cdns_dsi_adjust_phy_config() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250723-cdns-dsi-impro-v5-9-e61cc06074c2@ideasonboard.com> References: <20250723-cdns-dsi-impro-v5-0-e61cc06074c2@ideasonboard.com> In-Reply-To: <20250723-cdns-dsi-impro-v5-0-e61cc06074c2@ideasonboard.com> To: Jyri Sarha , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Vinod Koul , Kishon Vijay Abraham I , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Jayesh Choudhary , Dmitry Baryshkov Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org, Francesco Dolcini , Aradhya Bhatia , Devarsh Thakkar , Parth Pancholi , Tomi Valkeinen X-Mailer: b4 0.15-dev-c25d1 X-Developer-Signature: v=1; a=openpgp-sha256; l=4077; i=tomi.valkeinen@ideasonboard.com; h=from:subject:message-id; bh=AIjszP/iGXkGjj23VjMych22bAgvN9HKxmaLXYlZiI4=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBogLPsk20j3LpAdEg4rSjoqN0ZJ1Hhayte5db8D bdtCrCOyc2JAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCaICz7AAKCRD6PaqMvJYe 9QnNEACQRtFQ6t1lr3SbQOaOL6qwBZuRIEfBoCq29OO1WbAWvUWjXqRtFgnF8O720V1VTh4GjIk DmF8Qyon5+Qes/47i4pwIJqjgkoBS1rGJZBoHgn+Bxybem+qnWB7T8bQuWWNYyZCEkX133fuBmq vYkdBNnE3J6wABuNmllbyTs09KzZqJLdftFDELwQ/Hi4nLMnH4LGgfQg4ZsBggQ9vZki+xLo0Ww 19QQk9BcRQ+pFndKhwslVB/PDJG1TDgIna04uykiu1wZcFN+A3jz/36kqpmJM9/WpKak8dousKg hA0prPtwaahzJ/z9ZFI/4g6JiJouGX2cxaoKTtwPZNL7YaNtBWDrIjIdjWl32ZRUZzHzBH2tknK Md7ZQemeLcYODB4XRqf1Ck/CbYm8zKUMFyyxAqQbedpeZjNznuiRurpmIW5TreiYUXYW9Fomj1R k19litD2W2gNf+ogKaejpXZ6SZCmP3ndMw4LimYoiOHxyqf4hg4jLWjpz5xZRiZcqMbwCbJIeP7 1IrVPTB+STE9EvmnQR1rsfnfQpGx/LZxSjirAiOHILDcFxerQlQDtaXBVy6gQ/ljfFd3XI6w/OG PrP9rlvhUzuJqlk4W26orr+o8zbQekMyi57iBcunef03bmBtBJTtfxwUliRNOKTTkjQbx6Lwi2r tpl8xnWhVJVJWBg== X-Developer-Key: i=tomi.valkeinen@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 cdns_dsi_adjust_phy_config() is called from cdns_dsi_check_conf(), which is called from .atomic_check(). It checks the DSI htotal and adjusts it to align on the DSI lane boundary by changing hfp and then recalculating htotal and HS clock rate. This has a few problems. First is the fact that the whole thing is not needed: we do not need to align on the lane boundary. The whole frame is sent in HS mode, and it is fine if the line's last byte clock tick fills, say, only 2 of the 4 lanes. The next line will just continue from there. Assuming the DSI timing values have been calculated to match the incoming DPI stream, and the HS clock is compatible with the DPI pixel clock, the "uneven" DSI lines will even out when multiple lines are being sent. But we could do the align, aligning is not a problem as such. However, adding more bytes to the hfp, as the function currently does, makes the DSI line time longer, so the function then adjusts the HS clock rate. This is where things fail: we don't know what rates we can get from the HS clock, and at least in TI K3 SoC case the rates are quite coarsely grained. Thus small adjustment to hfp will lead to a big change in HS clock rate, and things break down. We could do a loop here, adjusting hfp, adjusting clock, checking clock rate, adjusting hfp again, etc., but considering that the whole adjustment shouldn't be needed at all, it's easier to just remove the function. Something like this function should be added back later, when adding burst mode support, but that's a bigger change and I don't think this function would help that work in any way. Tested-by: Parth Pancholi Tested-by: Jayesh Choudhary Reviewed-by: Devarsh Thakkar Signed-off-by: Tomi Valkeinen --- drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c | 45 ----------------------= ---- 1 file changed, 45 deletions(-) diff --git a/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c b/drivers/gpu/d= rm/bridge/cadence/cdns-dsi-core.c index 7103878df1e7..f7d7d277367e 100644 --- a/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c +++ b/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c @@ -508,47 +508,6 @@ static int cdns_dsi_mode2cfg(struct cdns_dsi *dsi, return 0; } =20 -static int cdns_dsi_adjust_phy_config(struct cdns_dsi *dsi, - struct cdns_dsi_cfg *dsi_cfg, - struct phy_configure_opts_mipi_dphy *phy_cfg, - const struct drm_display_mode *mode) -{ - struct cdns_dsi_output *output =3D &dsi->output; - unsigned long long dlane_bps; - unsigned long adj_dsi_htotal; - unsigned long dsi_htotal; - unsigned long dpi_hz; - unsigned int dsi_hfp_ext; - unsigned int lanes =3D output->dev->lanes; - - dsi_htotal =3D dsi_cfg->htotal; - - /* - * Make sure DSI htotal is aligned on a lane boundary when calculating - * the expected data rate. This is done by extending HFP in case of - * misalignment. - */ - adj_dsi_htotal =3D dsi_htotal; - if (dsi_htotal % lanes) - adj_dsi_htotal +=3D lanes - (dsi_htotal % lanes); - - dpi_hz =3D mode->clock * 1000; - dlane_bps =3D (unsigned long long)dpi_hz * adj_dsi_htotal; - - /* data rate in bytes/sec is not an integer, refuse the mode. */ - if (do_div(dlane_bps, lanes * mode->htotal)) - return -EINVAL; - - /* data rate was in bytes/sec, convert to bits/sec. */ - phy_cfg->hs_clk_rate =3D dlane_bps * 8; - - dsi_hfp_ext =3D adj_dsi_htotal - dsi_htotal; - dsi_cfg->hfp +=3D dsi_hfp_ext; - dsi_cfg->htotal =3D dsi_htotal + dsi_hfp_ext; - - return 0; -} - static int cdns_dsi_check_conf(struct cdns_dsi *dsi, const struct drm_display_mode *mode, struct cdns_dsi_cfg *dsi_cfg) @@ -568,10 +527,6 @@ static int cdns_dsi_check_conf(struct cdns_dsi *dsi, if (ret) return ret; =20 - ret =3D cdns_dsi_adjust_phy_config(dsi, dsi_cfg, phy_cfg, mode); - if (ret) - return ret; - ret =3D phy_validate(dsi->dphy, PHY_MODE_MIPI_DPHY, 0, &output->phy_opts); if (ret) return ret; --=20 2.43.0 From nobody Mon Oct 6 08:28:02 2025 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3200229E0E3 for ; Wed, 23 Jul 2025 10:05:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753265156; cv=none; b=re0DcFAP2aM3EuONBkTspvSkX85kVT82UZH95FernIUz5DE+ynZJF8YWhO9G5PFlogZwtz+bynilOI6bZavEdfNUfQ04YnIar1xCLVvd6qAo3R/CTGXfH+2YexaZ29ZxTLd44RQLTrgOSl7Hcosd3n879DHvnlbG6jhfG6+nuyg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753265156; c=relaxed/simple; bh=BrIsZY7PNeailKwzMPwyX4UVV3ZOBX2nZ4UDWTTe6Zs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=hgkcK4UMKWRcRc1pPA8kagmBTeWW7IQlb255Spbt7xFlheuG39YVYI5WNvt0CgptbZKl0UWVR6xxxZrROu8vyGNVEidvdKAu4NN1swb4UK0O+Bd2x87XSPGAuKlU/Zln8AUceNJ1TJXGIiiR8ZsPDpwePdqmm7MGYRp8aIo/x1k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=dKWk08SQ; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="dKWk08SQ" Received: from [127.0.1.1] (91-158-153-178.elisa-laajakaista.fi [91.158.153.178]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 5BDE51733; Wed, 23 Jul 2025 12:05:10 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1753265111; bh=BrIsZY7PNeailKwzMPwyX4UVV3ZOBX2nZ4UDWTTe6Zs=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=dKWk08SQQRbx7shGYW18DfnydlpqVcdCBcISFL88SxC+Jpp72zjdJBAkQBykLjSG6 p7SNfaqYlfGvu+pRI9R01D4EBymMcNK1pPxFDcLNurZeiptx3kDpZ1wqZn3L6KZOPT 0yTm+qE5tOVR59F2NrZ8mpV447g2Hb5w+1NG/VhM= From: Tomi Valkeinen Date: Wed, 23 Jul 2025 13:05:16 +0300 Subject: [PATCH v5 10/15] drm/bridge: cdns-dsi: Adjust mode to negative syncs Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250723-cdns-dsi-impro-v5-10-e61cc06074c2@ideasonboard.com> References: <20250723-cdns-dsi-impro-v5-0-e61cc06074c2@ideasonboard.com> In-Reply-To: <20250723-cdns-dsi-impro-v5-0-e61cc06074c2@ideasonboard.com> To: Jyri Sarha , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Vinod Koul , Kishon Vijay Abraham I , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Jayesh Choudhary , Dmitry Baryshkov Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org, Francesco Dolcini , Aradhya Bhatia , Devarsh Thakkar , Parth Pancholi , Tomi Valkeinen X-Mailer: b4 0.15-dev-c25d1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1706; i=tomi.valkeinen@ideasonboard.com; h=from:subject:message-id; bh=BrIsZY7PNeailKwzMPwyX4UVV3ZOBX2nZ4UDWTTe6Zs=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBogLPscCoAuwajUn2NN5f7RfvfrQq2bchc1EgAb aUXF1Bd6g2JAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCaICz7AAKCRD6PaqMvJYe 9UEBD/4jCgkBMOcT6LN6eNoYdt8E6YjbnhYxs9n1s5bVd7ihVrU7yvCIUf4mgUt76VvMxw0w22n YaFcI96dDz+ZrY+efGkDBCXCnQKKvMDhqA+jAUCrtyjL6Hur2mlFzAsnb6YSEmLW35dzGPFXT72 tUFhBUc9c5vTURqLMXGd3frgTn+VTlOczs/ASDetnWVwVeblUDPJl5Caq+alRVZei6UR6KCFiNL X7VqsN5vfWFahRAFqgCZk+JbPxR3A0+ixxgCNtrH+FRMoBJSZidp4JwBrp8UdzJYwPU4ZKeYfF/ hBztx0Ew/IqM2SpkW58DSzh4bROaJHQG1SDC/JAWPXfpq5q4dHmojkwUjO2uk6rJoyb5Y8/tDG/ cYQ6bbuj8zgtUNmVD9Cbc8M9vchV59hf/JOrvVv8HjDv3m9LmAplwvGhEPADMeJWxXLOHVrzGGN +H87rfLbtn3TAdtcMZOjnmNWGj71hOB2/ywg34ST88pBDCtX8M6BkAqSQB/P/9gguGRCWs9zS2r ZX8wz5mJSBaoDi3f2oMLptxXdYFDIbs693UVaGXaJKNmMeOaZzpoX7NUx5DkAmbfySS12xY557M 6nZLOU9N5ky35neRsyYSNBEHOAqI2QwGppt1Kw2tf4idH9EixQjbrvrc1dNks6PME24UcRqu9A2 qsDnKImp/kaYftA== X-Developer-Key: i=tomi.valkeinen@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 The Cadence DSI requires negative syncs from the incoming video signal, but at the moment that requirement is not expressed in any way. If the crtc decides to use positive syncs, things break down. Use the adjusted_mode in atomic_check to set the sync flags to negative ones. Reviewed-by: Aradhya Bhatia Tested-by: Parth Pancholi Tested-by: Jayesh Choudhary Reviewed-by: Devarsh Thakkar Signed-off-by: Tomi Valkeinen --- drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c b/drivers/gpu/d= rm/bridge/cadence/cdns-dsi-core.c index f7d7d277367e..d49b4789a074 100644 --- a/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c +++ b/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c @@ -908,9 +908,13 @@ static int cdns_dsi_bridge_atomic_check(struct drm_bri= dge *bridge, struct cdns_dsi_input *input =3D bridge_to_cdns_dsi_input(bridge); struct cdns_dsi *dsi =3D input_to_dsi(input); struct cdns_dsi_bridge_state *dsi_state =3D to_cdns_dsi_bridge_state(brid= ge_state); - const struct drm_display_mode *adjusted_mode =3D &crtc_state->adjusted_mo= de; + struct drm_display_mode *adjusted_mode =3D &crtc_state->adjusted_mode; struct cdns_dsi_cfg *dsi_cfg =3D &dsi_state->dsi_cfg; =20 + /* cdns-dsi requires negative syncs */ + adjusted_mode->flags &=3D ~(DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC); + adjusted_mode->flags |=3D DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC; + return cdns_dsi_check_conf(dsi, adjusted_mode, dsi_cfg); } =20 --=20 2.43.0 From nobody Mon Oct 6 08:28:02 2025 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 31F9429CB45 for ; Wed, 23 Jul 2025 10:05:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753265156; cv=none; b=FTJE3LL8aWSrZy9GMQ02C1XtH5E9Yn+ZK4xU+RW+yK7kA0mdocU0cPCAgQFpEgO6IG5shQJQLHMbsFFuHR7M0G5WAouDscnaUxqyZZn98Y/WlNrwUpoLvchcmQXhGkGVd2XZctkD2GygmKAeGpI4gcril6AP07c5JfQs2pDwVgw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753265156; c=relaxed/simple; bh=Xc+qT2XQjEkYeWWEXGGWk/XOfjaEnBSg823/HrVp0v4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=c/yyvB81B8ye0s+G8RBDOjS7mgjKFwS3nP03BL03S62PF+qejc1yrqes/lq6w6BQwOfCXGVet4XbugrhGCVVUObc+uD6hV2bYTuWOrCAHhjsdPqpV4pG0lUuMdLh9/27TW2mMbH7DMl/1exY4salYPMaGRoqGWdByJBdBhmpTYw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=aF8oG2GF; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="aF8oG2GF" Received: from [127.0.1.1] (91-158-153-178.elisa-laajakaista.fi [91.158.153.178]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id A78C5F06; Wed, 23 Jul 2025 12:05:11 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1753265112; bh=Xc+qT2XQjEkYeWWEXGGWk/XOfjaEnBSg823/HrVp0v4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=aF8oG2GF200u4HlLCmle9UZm93z+3lNEG/3gOBDfpS+leSKjEwnMdEyGr/Grqe2RS WtJp4F7QAxiDTBoMAhwaypxAeLEmg3mspLt73tsSwaIgDqMjOJcD4j3gLaWuWljAqe TJRBHGNSVQbJ4ofECPReQAdrCwEHbRIjMyKOtqcM= From: Tomi Valkeinen Date: Wed, 23 Jul 2025 13:05:17 +0300 Subject: [PATCH v5 11/15] drm/bridge: cdns-dsi: Fix REG_WAKEUP_TIME value Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250723-cdns-dsi-impro-v5-11-e61cc06074c2@ideasonboard.com> References: <20250723-cdns-dsi-impro-v5-0-e61cc06074c2@ideasonboard.com> In-Reply-To: <20250723-cdns-dsi-impro-v5-0-e61cc06074c2@ideasonboard.com> To: Jyri Sarha , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Vinod Koul , Kishon Vijay Abraham I , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Jayesh Choudhary , Dmitry Baryshkov Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org, Francesco Dolcini , Aradhya Bhatia , Devarsh Thakkar , Parth Pancholi , Tomi Valkeinen X-Mailer: b4 0.15-dev-c25d1 X-Developer-Signature: v=1; a=openpgp-sha256; l=2068; i=tomi.valkeinen@ideasonboard.com; h=from:subject:message-id; bh=Xc+qT2XQjEkYeWWEXGGWk/XOfjaEnBSg823/HrVp0v4=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBogLPtNazPSbQ5KpE3M+6zEt/M6XZbg5m3Yefhq qf4Qd41bDCJAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCaICz7QAKCRD6PaqMvJYe 9U35EACXI0Z3p/DF0JFrEZbdyogW0eK8s1n4cQdf4cM9+c3Es3LV+L0muS/5NKMC5O3eLh2xxjk vameoiILDZGFDMRD5QILgdQs1dUzl6jIYptjTe22j9sDPXmz33WEBYi0n0z/2lHMnkJwPTe+Tpi tn34Rf4xcFGahLdpjwWQ5AxSHHkhnkMenuQY2VVSOts0Uhm5MZoQtupQXdPQxlBxjyqMzsc2sTR PYI6QmB0ba8BPa4Mv5otq0NG9CrpiWKU4CUvdE9HAQMDsPsQlL7u2upPhdmU7gU51w+vK36yBLe mQPrTxvormuvNeJl/uxubHLJ0l27DXTFWq/WySFIuKxE7WUBKe6xcUGeiLcxSZZd1Joj4IpPkOo 6/lphWtI1xrkKFnNouFOSsce7OuDyd2Bq4O8zpixDfd8jowVG/lTXiFq0l8v3EswXBFuIlPGYV2 dg+BY4yIAREtJT1JsRHo+soUey4i/038geEOgCEUH54PuISCfV09dCBYkGvrhItky9gTTWM9pgO clhPqLLINeXXBKFmHkDhXwrYQHHp3Dk7Fhto7AKtRsMJW2Mvd19H2AjTPs38NTm+5cyFlFSOMsp 8lJC+XDg49oizu6q5ym+AkFzbqRzIznt8FJ8T2YDDP1Va+lwFywL4qIGASQ5h0oDLXxIRrZdJdG Rhy5bOCQUUW6x3Q== X-Developer-Key: i=tomi.valkeinen@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 The driver tries to calculate the value for REG_WAKEUP_TIME. However, the calculation itself is not correct, and to add on it, the resulting value is almost always larger than the field's size, so the actual result is more or less random. According to the docs, figuring out the value for REG_WAKEUP_TIME requires HW characterization and there's no way to have a generic algorithm to come up with the value. That doesn't help at all... However, we know that the value must be smaller than the line time, and, at least in my understanding, the proper value for it is quite small. Testing shows that setting it to 1/10 of the line time seems to work well. All video modes from my HDMI monitor work with this algorithm. Hopefully we'll get more information on how to calculate the value, and we can then update this. Tested-by: Parth Pancholi Tested-by: Jayesh Choudhary Reviewed-by: Devarsh Thakkar Signed-off-by: Tomi Valkeinen --- drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c b/drivers/gpu/d= rm/bridge/cadence/cdns-dsi-core.c index d49b4789a074..6bc0a0d00d69 100644 --- a/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c +++ b/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c @@ -793,7 +793,13 @@ static void cdns_dsi_bridge_atomic_pre_enable(struct d= rm_bridge *bridge, =20 tx_byte_period =3D DIV_ROUND_DOWN_ULL((u64)NSEC_PER_SEC * 8, phy_cfg->hs_clk_rate); - reg_wakeup =3D (phy_cfg->hs_prepare + phy_cfg->hs_zero) / tx_byte_period; + + /* + * Estimated time [in clock cycles] to perform LP->HS on D-PHY. + * It is not clear how to calculate this, so for now, + * set it to 1/10 of the total number of clocks in a line. + */ + reg_wakeup =3D dsi_cfg.htotal / nlanes / 10; writel(REG_WAKEUP_TIME(reg_wakeup) | REG_LINE_DURATION(tmp), dsi->regs + VID_DPHY_TIME); =20 --=20 2.43.0 From nobody Mon Oct 6 08:28:02 2025 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3FA062BE02A for ; Wed, 23 Jul 2025 10:05:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753265159; cv=none; b=gLpOZxsJUXA7LsraWTzu6pesAfXnwKoHKN3wKOslJyXKasJl3fLXfeeFAEJjD1VuzqHGWGxQdCBlZlWPqvbGMdPySDZiAhm6YwTroqDo2pxWSa96NXjotH1/N3XyCkHBUWJmozU1ZaqPfhH8cJIkp3lSbTwl576mGc/2ATbH1tw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753265159; c=relaxed/simple; bh=7lmhdHLGtnxLHPbRqWTXPm7itvpD72rVUURBCngSQhA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=JAEzgTqj0l2lcpgGAkDQqZMTuc8yqLVA1SXjG+ilajD6QHkBXm9YHyYmALS7J+px7F38u9F7nOVuaiDfCl3ymsQWsyRzvpdEWaKtjPf9/kJWTPpw5QdiGbyzufIYUdWPZI6xGlDyg/tyGLhGL97cEk9wOg6UhjOaWeOR/iQl3UQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=KZRPq9ft; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="KZRPq9ft" Received: from [127.0.1.1] (91-158-153-178.elisa-laajakaista.fi [91.158.153.178]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id EBFAA157F; Wed, 23 Jul 2025 12:05:12 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1753265114; bh=7lmhdHLGtnxLHPbRqWTXPm7itvpD72rVUURBCngSQhA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=KZRPq9ft738dHaAIypRBzyhHDSysMwRpdQvVBQ5J+NRDP9MCyIiDhoZKENJrDla7+ isnFXLXxDK8BZOsyjfvPWrentzgEzVyz0bc/yFUc6J/wV50+0fBe8vyRAOaNB9Ccuj 7DkmKLqT4k41hIp4JzPqXqRslb4Rzd8DcbHH0GMo= From: Tomi Valkeinen Date: Wed, 23 Jul 2025 13:05:18 +0300 Subject: [PATCH v5 12/15] drm/bridge: cdns-dsi: Use video mode and clean up cdns_dsi_mode2cfg() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250723-cdns-dsi-impro-v5-12-e61cc06074c2@ideasonboard.com> References: <20250723-cdns-dsi-impro-v5-0-e61cc06074c2@ideasonboard.com> In-Reply-To: <20250723-cdns-dsi-impro-v5-0-e61cc06074c2@ideasonboard.com> To: Jyri Sarha , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Vinod Koul , Kishon Vijay Abraham I , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Jayesh Choudhary , Dmitry Baryshkov Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org, Francesco Dolcini , Aradhya Bhatia , Devarsh Thakkar , Parth Pancholi , Tomi Valkeinen X-Mailer: b4 0.15-dev-c25d1 X-Developer-Signature: v=1; a=openpgp-sha256; l=4557; i=tomi.valkeinen@ideasonboard.com; h=from:subject:message-id; bh=7lmhdHLGtnxLHPbRqWTXPm7itvpD72rVUURBCngSQhA=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBogLPtOIIi8tcw4ekhFpnzdFPrBI5KHOIdts8Yd ykIGxhsce6JAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCaICz7QAKCRD6PaqMvJYe 9T9ED/99wGaPJcacn7ug9Y+uFeFiaIT7CgHKndCC9thdQ7yscbcdYQxZV7g6Oiv5HgPEsH9Zjkt XjNjm0uLciijmPOWwf5RI1VLQjCy6xySCd7ilrQa0Iyb+rHI/As1Zrv/LbLwQhfoaEnCzopofa0 GBPv/3KkWRb0t3opdfDSN8+i4CIUnKtOZ/7ElxWEIZmXqgG/WY999dEN6CCabYFs0m13rane8nv p/4XAGC+LwT0HC7FsGOEyY4jnb/ACio0OL8S43zHqwRojCf6qNTBGBme4fOd5D9NH+jg7iryRwO /Lqv/cHU5Lg1rLHh6CHZSv3w92ARINuDufsyh22Pdiie/Zean27kfAJDXysevys7ukdk1zcN4sG YER37pLD6Q2A4sZ8jPw2fQBPSvbHMJZzy+P8K/lbOVg9a0SkT24lzATJbTd6Vnih5Is65QeGU37 pO4OC+Er4wmjR2NK7puWIM0ApLQy8U3DnntZMt//TAbvbCGvpikDoTQT+dTIhvgIz3+wFF48B4z tPzUZV/qiCCdcASFyHECdfq0dRSqqjoC30ArlRuQTcSHo/2BC2f6OngkSmA1NjAMmERusRNqWsW AxWYturCSpneGDIu6Zd7qNqRfAgSgImRbtZFTm7x/5vKY1y45TcsaZy9YZTNEiA66xVvFyrNkUq EFtNHVwp2rFen1w== X-Developer-Key: i=tomi.valkeinen@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 The driver does all the calculations and programming with video timings (hftp, hbp, etc.) instead of the modeline values (hsync_start, ...). Thus it makes sense to use struct videomode instead of struct drm_display_mode internally. Switch to videomode and do some cleanups in cdns_dsi_mode2cfg() along the way. Tested-by: Parth Pancholi Reviewed-by: Aradhya Bhatia Tested-by: Jayesh Choudhary Reviewed-by: Devarsh Thakkar Signed-off-by: Tomi Valkeinen --- drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c | 45 ++++++++++++++--------= ---- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c b/drivers/gpu/d= rm/bridge/cadence/cdns-dsi-core.c index 6bc0a0d00d69..07f8d5f5c2aa 100644 --- a/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c +++ b/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c @@ -9,6 +9,7 @@ #include #include #include