From patchwork Thu Feb 27 02:25:09 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 13993592 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 3A3B9C021B8 for ; Thu, 27 Feb 2025 02:25:25 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 9DD4710E1FA; Thu, 27 Feb 2025 02:25:21 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="AvaqfsNa"; dkim-atps=neutral Received: from mail-lf1-f50.google.com (mail-lf1-f50.google.com [209.85.167.50]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4798710E066 for ; Thu, 27 Feb 2025 02:25:18 +0000 (UTC) Received: by mail-lf1-f50.google.com with SMTP id 2adb3069b0e04-5461f2ca386so343650e87.1 for ; Wed, 26 Feb 2025 18:25:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1740623117; x=1741227917; darn=lists.freedesktop.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=q5U2PqqsAittXp536ew/SvCsut9jyzjmr2ENiR9whTM=; b=AvaqfsNaf6gopj5zPycm6J15DPm4gefpkUBiulyBEymtYI08IYTWndWy7ZEm5u2DTT ij35dJexbuEbbYgareyDL1gWYOgoUVCSJ/pApGV0NEsVGEKYEHheJM4+cY1oNqx80ZEn kEGksWWjQ1/ISFpyD1/24YRm4fIcV+yYspwdBmNiierybul6Ya/SWXsjoWCScWJYeGsc KyVo+mFMW0PcFre+8nNXSe5HakAjjlPyfeQOd2hqnk+qF1ssTLeNE6Ka8RSCMbMcw4vB 7dEpmAQt06bA2hfhNrtQXaDRi0wzfexJ4Ptnz7hhMN7VHugEa2n9DhDx92rG/kdNZC6K 6COQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740623117; x=1741227917; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=q5U2PqqsAittXp536ew/SvCsut9jyzjmr2ENiR9whTM=; b=nprBg3pZppmkayOGunfKgUxkWgq/8fljqpjthVnURwjc4v90hoV3LUpDNdMW6zrjOU 1xyR4FTCkUeQlF0bZF13rCxw81koD/YypfoWC6GgVqZ55Qyrej+uZ+n29sBbX+3ZmTGM PcNuJP0ZUCw6KdEJ2iZtVp8xAym+h5f4DdEVAyNtIN2yzazML9ZCSskr+nPQD8jO/nwn T6B/d0I/lIfk3qRLv09yhBZ0SuKxx4HxcvkLKZTaZDY52VzWb+MfCXpO1wjCJH/0CFIE 3p12swYXkFF9tg9fZbvWsDajtm3+cakBfJyHOPtkL0gSR57ZTslSlOmT1u2lluHyZ91B jTkw== X-Forwarded-Encrypted: i=1; AJvYcCUEbHjcrnG2tE/PaTyOwI3VSf1IKrCHHu1hqqpN6utgimogVDupjaIfOMI10D8VltQTC9+87DCmT30=@lists.freedesktop.org X-Gm-Message-State: AOJu0YzNb5VIziHLvfZ1gZnrshMhY8G5FoGOLsip07bZg9ExQXEXrz+O /doY3A1szsAR5nYO3IKRjih6Z0lypp0TPPhNrUUyyJ/A11R/oPn1/8pUA5dnKRk= X-Gm-Gg: ASbGncsnl2qeL/Z3Yrz7HEKnPm6Y9d2nR11tcGMT1+/Ie8zbXPDQ1FVhIA5HNDqe+Cx rdNPhlIBgp4aFGdFl/zaLopJcP3IOWIyEvOeDO/eTtkXVfzVqITKVuBhqH4m/SFi1sLGgrG85vx K1yoj/PoY4pBv0U7uw5g4bYBMyiAlRMmWYwzN4gBM0u39k+ApO/YQ8gduth9Fvy9Ms16/njB0fm 6d0+nF47Tmysd3sSfWnGyOnh6/vgQ/kBkRhNLY33UvfRdW4/0AsYU1C1r+VPySzxzFQkobvEnVW YzQzLRAqE3pkEKiwTvArCWDiMxHrPOyGmw== X-Google-Smtp-Source: AGHT+IGGp9KrMaDyRbIC/wTKqo5mY4JxnEPl4O+DeJ+ybSnTzA3m+DKpiJplqcNL8wwlCZUgExesLg== X-Received: by 2002:a05:6512:2347:b0:545:27f0:7b6f with SMTP id 2adb3069b0e04-5483912fc82mr11153371e87.11.1740623116670; Wed, 26 Feb 2025 18:25:16 -0800 (PST) Received: from umbar.lan ([192.130.178.90]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-549441742a0sm48067e87.5.2025.02.26.18.25.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Feb 2025 18:25:15 -0800 (PST) From: Dmitry Baryshkov Date: Thu, 27 Feb 2025 04:25:09 +0200 Subject: [PATCH v3 1/7] dt-bindings: display: msm: mdp4: add LCDC clock and PLL source MIME-Version: 1.0 Message-Id: <20250227-fd-mdp4-lvds-v3-1-c983788987ae@linaro.org> References: <20250227-fd-mdp4-lvds-v3-0-c983788987ae@linaro.org> In-Reply-To: <20250227-fd-mdp4-lvds-v3-0-c983788987ae@linaro.org> To: Rob Clark , Abhinav Kumar , Sean Paul , Marijn Suijten , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1289; i=dmitry.baryshkov@linaro.org; h=from:subject:message-id; bh=nAUeCQaacPy4eDcat81zyQ4FPPYgERyNRUqIhBqqdZk=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBnv80G1AVXjPfLNQ8ur8MgA/B8hG0n9UdJwoFEA 3JcymoX9+mJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCZ7/NBgAKCRCLPIo+Aiko 1UNWCAChp9UJAPMKWIwQHWroB0P5YvcwUfqq3siqgw9PBarSlLO0xCgLeBDo/2zRn2E+OHq7oxB EmRoXMsWHJwSDbHd8/uyWb66SkpVKZH+xtYPJyBTBj7it/qpWjOMK7EZM75sHAWwwTnGgaimA+a /cW/3uQeNEnukCV2+c6OzEV5W5tkVLvoMuvzzMcoraJPl4sTKCU5++fBGoSYx5ZgR+Wih7rOQ/C l8v7QSCRHn0omGtFc4ZyVSG/jdTn1bcAFVzUXf954MGo5XJwxeRwGPM4dTCFt4kD3iBzdMoSO1f Z+5iseXm/gQaIZ2W5cMZcQ5bKfMJYmBK4k8CM0b554psYjFr X-Developer-Key: i=dmitry.baryshkov@linaro.org; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Add the LCDC / LVDS clock input and the XO used to drive internal LVDS PLL to MDP4 controller bindings. The controller also provides LVDS PHY PLL, so add optional #clock-cells to the device. Acked-by: Rob Herring (Arm) Signed-off-by: Dmitry Baryshkov --- Documentation/devicetree/bindings/display/msm/mdp4.yaml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/display/msm/mdp4.yaml b/Documentation/devicetree/bindings/display/msm/mdp4.yaml index 35204a2875795e2c1f7582c8fab227f8a9107ed9..03ee09faa335f332259b64a42eefa3ec199b8e03 100644 --- a/Documentation/devicetree/bindings/display/msm/mdp4.yaml +++ b/Documentation/devicetree/bindings/display/msm/mdp4.yaml @@ -18,9 +18,10 @@ properties: clocks: minItems: 6 - maxItems: 6 + maxItems: 8 clock-names: + minItems: 6 items: - const: core_clk - const: iface_clk @@ -28,6 +29,12 @@ properties: - const: lut_clk - const: hdmi_clk - const: tv_clk + - const: lcdc_clk + - const: pxo + description: XO used to drive the internal LVDS PLL + + '#clock-cells': + const: 0 reg: maxItems: 1 From patchwork Thu Feb 27 02:25:10 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 13993596 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 6928AC19776 for ; Thu, 27 Feb 2025 02:25:36 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E074E10EA1C; Thu, 27 Feb 2025 02:25:35 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="cpOIaf1R"; dkim-atps=neutral Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.51]) by gabe.freedesktop.org (Postfix) with ESMTPS id A047710EA18 for ; Thu, 27 Feb 2025 02:25:30 +0000 (UTC) Received: by mail-ed1-f51.google.com with SMTP id 4fb4d7f45d1cf-5e04cb346eeso573597a12.2 for ; Wed, 26 Feb 2025 18:25:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1740623129; x=1741227929; darn=lists.freedesktop.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=nwMJpPPmQJzExGwtrw5qRSd6mRYkoPvcGAO5V9qYYKM=; b=cpOIaf1RzIlUzAnP8ftwwbprQiCq+xcCmN8SvNnr8nPAGQiyAY8H1cewv+rbNZgbOC Irp1fxR+lT7hr/QhGy1Tu/QXu9sPDcmZW3mvfrB2EHtTQb7PuL6Vk/sk3/aSu3jyv8bg na37oQWsml3416G+g/UZKbhDaA69kUqVB/H0gZYZ2GWaP3pHHzCZObwRZ4oNrOogyzaY 5O5N8zP7QhAJPE26jk1MvnM4NGuTQklCOf6OvhxDKvO6i36GT8s7nsfR/LEdxq+yYM0+ XRWA2mSpmFd0ZtsuuAC0yB6ObwwnTsE0mgrU0pjHNLRk6EX2nPbOCBfkBATx+Z9Bosc1 NNHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740623129; x=1741227929; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nwMJpPPmQJzExGwtrw5qRSd6mRYkoPvcGAO5V9qYYKM=; b=i3sIdKePQAZ3t09kx9cfaylSSgwv2IoqlevIBKeZeRBdqTwapiLBzP/jfABWAsBsv7 HL+leu1ylS8XGMC2WGRRmCZpnlzbyx11ml0TIzB8/uCmW3E5IMSE6+p7ZbHJGOw2aNLy pKvmPnQlPTbsf+p26sISBnoJQ3WTh8GeqAm8RWnFXhPxccWQ3VfPNfMf4twgq16kw7AL e8FgrgnYIcYaEIFf8OykoJbQGP6ZRsQDDocmy4fKk2Ly188sgFmfPTPy0aee3C5CQweP E0PaoK9aQOlwQap3hChFrz0G7QQaK7VmjrovYVCjvYjAyenlgtWxyXe22yZnO8Rpr8L+ NwqQ== X-Forwarded-Encrypted: i=1; AJvYcCV1oHkUbdqZFODUtkPrAsO+cOcipGCLKp/+9G2CcBVUEeEaijpDeKjei5hDK7ZlUFqoeLYNnkd9fJ8=@lists.freedesktop.org X-Gm-Message-State: AOJu0YwgQEzlleIofyRBL2wZowNJmOzH4bzlMK3qaxLqzWJAzKjmvrZV +NB0k8GMCkuZQ1U7Xv9r1BHQX2njk8cjHm9MAclqDeV0FnirfgC2Mq4kt2187gUWFwCek6tOJNp 6cCeHYw== X-Gm-Gg: ASbGncvCNVJfqvDJcNpAMEmmIAq1f9x8tg1u6sNpJkzWXK8xl5aOnSfR16lOlor1NzJ Fnq3ugKz7oqx9RokQjjxZwh7ky/bj6Xc3pZZfx+0lCU4QdBUajh5JdYVORbjH65F+L14ItFGwyg 3hWmG5PWoU0GjPd4G3d3bRnBMrdGfibWaxiXWeqZrj/JY0Ne4Iai4DhQyYU+Kaj+bRboMIt5S5i E+1iWSIUJtDnT4U5VHEog/cc1/V3nDiIxNVT7dW2vIbRDqxMwQgtkxP3DBkBobyuuG7uShG3JmB vEQPFT+2GXEHnmYV2NCxXiokVxHC/TEbUg== X-Google-Smtp-Source: AGHT+IFMFzSt2wsG3oOm+5w5wwMdb2DuK5Yp/Au+CFco5T/pzSUdUvjy0J4YD00jtRalqEX70RhAkA== X-Received: by 2002:a05:6512:200e:b0:548:794f:f9dd with SMTP id 2adb3069b0e04-548794ffb8cmr4463137e87.10.1740623119107; Wed, 26 Feb 2025 18:25:19 -0800 (PST) Received: from umbar.lan ([192.130.178.90]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-549441742a0sm48067e87.5.2025.02.26.18.25.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Feb 2025 18:25:17 -0800 (PST) From: Dmitry Baryshkov Date: Thu, 27 Feb 2025 04:25:10 +0200 Subject: [PATCH v3 2/7] drm/msm/mdp4: drop mpd4_lvds_pll_init stub MIME-Version: 1.0 Message-Id: <20250227-fd-mdp4-lvds-v3-2-c983788987ae@linaro.org> References: <20250227-fd-mdp4-lvds-v3-0-c983788987ae@linaro.org> In-Reply-To: <20250227-fd-mdp4-lvds-v3-0-c983788987ae@linaro.org> To: Rob Clark , Abhinav Kumar , Sean Paul , Marijn Suijten , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=983; i=dmitry.baryshkov@linaro.org; h=from:subject:message-id; bh=ydZYZoA0TUi+Gh3S8eUOrsgEJcPFXVh59QDIeik/wpQ=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBnv80GyadA2VzNwTHLQ/rRvBiE8jpMBgAfbiyde YCGRYQ0O/2JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCZ7/NBgAKCRCLPIo+Aiko 1ZDVB/90aFrmR5KOT95tmB3pWLZEsq87+yhuvUptiF1UJSOURslGc6sVg9ydUx9NCix6I56zEbW 3GyGXkGhjaQdfQhmFp7u32GGTj7dl9MzYhy+0vcprVXVPn3wkOfwYoL+ZP8j7EKEO0azkfZxNBo APuBMtzFjaX8PRcgo7MeQMyxLv5di8a/xaX5TF/0FE9FPAE3vnL4erAXNQvSqw1i/dUOr6BMqOs ysFDUPsAzvwcqlgqBgJav4+a2KJLzJrt2BDDeH+wsQ+b0SJ/koY1jFvs9pQR/VQ73GVc9rsWqjo G5DuZIKjsVNaD71Is+vFt/CQYparpNF4JOOIxVg1hnWhc2bD X-Developer-Key: i=dmitry.baryshkov@linaro.org; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Drop the !COMMON_CLK stub for mpd4_lvds_pll_init(), the DRM_MSM driver depends on COMMON_CLK. Reviewed-by: Konrad Dybcio Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h | 7 ------- 1 file changed, 7 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h index 94b1ba92785fe55f8ead3bb8a7f998dc24a76f6a..142ccb68b435263f91ba1ab27676e426d43e5d84 100644 --- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h +++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h @@ -207,13 +207,6 @@ static inline struct drm_encoder *mdp4_dsi_encoder_init(struct drm_device *dev) } #endif -#ifdef CONFIG_COMMON_CLK struct clk *mpd4_lvds_pll_init(struct drm_device *dev); -#else -static inline struct clk *mpd4_lvds_pll_init(struct drm_device *dev) -{ - return ERR_PTR(-ENODEV); -} -#endif #endif /* __MDP4_KMS_H__ */ From patchwork Thu Feb 27 02:25:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 13993595 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 785B8C021B8 for ; Thu, 27 Feb 2025 02:25:31 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E15A410EA17; Thu, 27 Feb 2025 02:25:30 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="M1HgS3hI"; dkim-atps=neutral Received: from mail-lf1-f41.google.com (mail-lf1-f41.google.com [209.85.167.41]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3637B10E2FE for ; Thu, 27 Feb 2025 02:25:23 +0000 (UTC) Received: by mail-lf1-f41.google.com with SMTP id 2adb3069b0e04-546210287c1so382198e87.2 for ; Wed, 26 Feb 2025 18:25:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1740623121; x=1741227921; darn=lists.freedesktop.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=xjMPSn3p+kKVaFgGwZAw2jpHs3L/eAAFrrWZof4s+cw=; b=M1HgS3hIlPufEgwQvFJxZgRLtDMM9QSfs0z0mejYOG2oGsumTdvHbX7mxjKM8j65C+ u7IuJaY2v/RnERRcFq6U/i5JP/2i8EHDHOGuEU22dDeFlTqlw8vzIVFatvD7A6aU3oKk yIo8wxB78qjNFQqwZ27GNOFmDNFjk2pxUV529XQchEuiDrPN6oFt/2psq01ju4HbZH+7 jIHE0vKoxg1cPxWD2E1qMI3cVx72ev7IqXNFTgZElVKuZ0kin62+S5fbiGSn1ciQgCb3 RejDLWhl1jh37jWkAQKDcW2XjdGjo+R1UcJi5Anmc+BJrzsNXj6uCJ0jXYcdE3rW6XNL tzXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740623121; x=1741227921; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xjMPSn3p+kKVaFgGwZAw2jpHs3L/eAAFrrWZof4s+cw=; b=lnVG/GUj2sb66Qy6hAaEtQHfPSfsbJM73uBpHco6s50yPwuAOoHsnPDJTWlf9ywVs1 /dqWCI/n/F4SotDyD7wayU6q5kL033Ijgl+ykQzNuJHT5/uKa136s/mKZ5r2EBv2f9sS t5HmLOU6MB0wOXKg9vaNLtl9ZwZPihf6L4R9wIiopDjHK3wsOk6Hx7eQ8HJGUflAYR1G Wrd8wC8QoKGlIcCPDpxNLF1yCutfJ1VrEWEBQ7vrmQ0cvNMGTwhjiWwBYLOxF7igazBi rjXoR4HoIcpY5vd5UFNoAP82ZxscF/d5SnO20yubNI165rX1CNUoLXxrbdYNc0Deo4uO 8SdQ== X-Forwarded-Encrypted: i=1; AJvYcCU5dymd2LRCyZVQHvt/g4vnuuELaMDtx78Z0yMA3aSrwfaLHFHAecO6sIBbMMrNohxv0DJCJmPJoqM=@lists.freedesktop.org X-Gm-Message-State: AOJu0Yy5nVTRf+dn+vro0JB2nCJ51zd2AZ9y1rH6l0sST/epdpF6nKNp pncmW6LeftbeJVLCk3/ZOJzSDdSZavNFYXxb97TjorlJfcb3h10rFQaowT1f+LA= X-Gm-Gg: ASbGncuEPrXIrwmHriG6sr27cbbKCirWsMIAOoZx8DC9llql0h8hXkDCGMGUnYyutb3 jiIGOFfLKHFODEHIZJLhklZ9TgFPUiBFTyefKK/lm7eNzMcR8Y3beCme+ibmp0sxpRbDV457P3Y MVesfRi1U0X2PXrAG1L3wvzDdQZIUaqiNXbjmEq1ErzJrSSea0Bg9/TMBeX2dPV72Hz3sJjRjNp TlEAjLzkR7l/AM8rx15PTTj+/o2bM9zBk8MWzogC+nHdsJNkVWaEBEan6q9bVPGCsYA0bQMcdjO 3/rKh0xXop4ocaR0T/IlbokMMriuCsTjGA== X-Google-Smtp-Source: AGHT+IH77YDGb3SZATx2bSqI54qqDb0dQOMQtl3AYNP1lYyp8xUbecwSvBjawn7myFKJmWOKcAzSAA== X-Received: by 2002:a05:6512:3c9c:b0:545:c23:9a9f with SMTP id 2adb3069b0e04-5483926338bmr11394006e87.44.1740623121569; Wed, 26 Feb 2025 18:25:21 -0800 (PST) Received: from umbar.lan ([192.130.178.90]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-549441742a0sm48067e87.5.2025.02.26.18.25.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Feb 2025 18:25:20 -0800 (PST) From: Dmitry Baryshkov Date: Thu, 27 Feb 2025 04:25:11 +0200 Subject: [PATCH v3 3/7] drm/msm/mdp4: register the LVDS PLL as a clock provider MIME-Version: 1.0 Message-Id: <20250227-fd-mdp4-lvds-v3-3-c983788987ae@linaro.org> References: <20250227-fd-mdp4-lvds-v3-0-c983788987ae@linaro.org> In-Reply-To: <20250227-fd-mdp4-lvds-v3-0-c983788987ae@linaro.org> To: Rob Clark , Abhinav Kumar , Sean Paul , Marijn Suijten , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3368; i=dmitry.baryshkov@linaro.org; h=from:subject:message-id; bh=27+bBwIzCM8lHu2v6Fir13MzMlLQU6chggcqKIoU0MI=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBnv80Gt/5nSvJtT/vlFx8Una3vhVbTV9fge9Jhj jIZmIOXNPCJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCZ7/NBgAKCRCLPIo+Aiko 1Zw0B/0X9T9NpQIFhPxEgci4pkI3GQTWUb6qpGsk+NLJ+A1v4NgpUypKdVr6srLGtwcdZp9i23h SfSAwiTWE/idrluzIasJ4sQsQ9f47F5gCpWRexmttiwyxpVcqLDGLcRYAsf3cQ/EgRAX0zV5cvO Kgy5Vk21qsHpeb8IAuDgsMg4Zb+DZUhYt1Eo+Pl2rOGmXdG28FirbFGS30IwPlvlRiCHaMjZwpu 4VBIGuT0UUjf+YG2UL7uIKH56gpgkMQC07+VlNui77Q07EOWZ+bQOX1o5TMu0qctVaLs6M5DcpS zWMcqMFEDrW91UvPDrvkDkmXXnsV/QgCWDnIsVV/BSEJP6Gy X-Developer-Key: i=dmitry.baryshkov@linaro.org; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" The LVDS/LCDC controller uses pixel clock coming from the multimedia controller (mmcc) rather than using the PLL directly. Stop using LVDS PLL directly and register it as a clock provider. Use lcdc_clk as a pixel clock for the LCDC. Reviewed-by: Konrad Dybcio Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h | 2 +- drivers/gpu/drm/msm/disp/mdp4/mdp4_lcdc_encoder.c | 8 +++++++- drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_pll.c | 22 +++++++--------------- 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h index 142ccb68b435263f91ba1ab27676e426d43e5d84..b8bdc3712c73b14f3547dce3439a895e3d10f193 100644 --- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h +++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h @@ -207,6 +207,6 @@ static inline struct drm_encoder *mdp4_dsi_encoder_init(struct drm_device *dev) } #endif -struct clk *mpd4_lvds_pll_init(struct drm_device *dev); +int mpd4_lvds_pll_init(struct drm_device *dev); #endif /* __MDP4_KMS_H__ */ diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lcdc_encoder.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lcdc_encoder.c index 8bbc7fb881d599e7d309cc61bda83697fecd253a..db93795916cdaa87ac8e61d3b44c2dadac10fd9e 100644 --- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lcdc_encoder.c +++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lcdc_encoder.c @@ -381,7 +381,13 @@ struct drm_encoder *mdp4_lcdc_encoder_init(struct drm_device *dev, drm_encoder_helper_add(encoder, &mdp4_lcdc_encoder_helper_funcs); /* TODO: do we need different pll in other cases? */ - mdp4_lcdc_encoder->lcdc_clk = mpd4_lvds_pll_init(dev); + ret = mpd4_lvds_pll_init(dev); + if (ret) { + DRM_DEV_ERROR(dev->dev, "failed to register LVDS PLL\n"); + return ERR_PTR(ret); + } + + mdp4_lcdc_encoder->lcdc_clk = devm_clk_get(dev->dev, "lcdc_clk"); if (IS_ERR(mdp4_lcdc_encoder->lcdc_clk)) { DRM_DEV_ERROR(dev->dev, "failed to get lvds_clk\n"); return ERR_CAST(mdp4_lcdc_encoder->lcdc_clk); diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_pll.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_pll.c index ab8c0c187fb2cd05e26f5019244af15f1b2470c8..cbd154c72e44c848fa65fe01d848879b9f6735fb 100644 --- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_pll.c +++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_pll.c @@ -133,29 +133,21 @@ static struct clk_init_data pll_init = { .num_parents = ARRAY_SIZE(mpd4_lvds_pll_parents), }; -struct clk *mpd4_lvds_pll_init(struct drm_device *dev) +int mpd4_lvds_pll_init(struct drm_device *dev) { struct mdp4_lvds_pll *lvds_pll; - struct clk *clk; int ret; lvds_pll = devm_kzalloc(dev->dev, sizeof(*lvds_pll), GFP_KERNEL); - if (!lvds_pll) { - ret = -ENOMEM; - goto fail; - } + if (!lvds_pll) + return -ENOMEM; lvds_pll->dev = dev; lvds_pll->pll_hw.init = &pll_init; - clk = devm_clk_register(dev->dev, &lvds_pll->pll_hw); - if (IS_ERR(clk)) { - ret = PTR_ERR(clk); - goto fail; - } + ret = devm_clk_hw_register(dev->dev, &lvds_pll->pll_hw); + if (ret) + return ret; - return clk; - -fail: - return ERR_PTR(ret); + return devm_of_clk_add_hw_provider(dev->dev, of_clk_hw_simple_get, &lvds_pll->pll_hw); } From patchwork Thu Feb 27 02:25:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 13993594 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 911F9C1B0D9 for ; Thu, 27 Feb 2025 02:25:27 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 02EAD10EA0F; Thu, 27 Feb 2025 02:25:27 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="kV+u69lz"; dkim-atps=neutral Received: from mail-lf1-f50.google.com (mail-lf1-f50.google.com [209.85.167.50]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9BCEB10EA0F for ; Thu, 27 Feb 2025 02:25:25 +0000 (UTC) Received: by mail-lf1-f50.google.com with SMTP id 2adb3069b0e04-5485646441cso422912e87.2 for ; Wed, 26 Feb 2025 18:25:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1740623124; x=1741227924; darn=lists.freedesktop.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=4ouKK+P8Bp77QlLVV+lTMqGiv9R+6akFjSocFKtf2Jk=; b=kV+u69lz7f8PteSFEc8XBMhe7aGVZJSS0CEDWDZA2fL3OC0NFUeTFFQL5MQbg675vm 7l2y+uE+hU3SC7V0Da2pFfSOsKPmdVSMTQOVlBbxhac/nhoGJ0+rjfa+WO+vmoZtg9GQ XUJiAZJJGFRH22oWGxvKpFrsV489leKtgAyKALgEC0HiWppEjDPPQ5W+3qaMJmocfL5D dcArbMQJ5UYUhiz77GSrS6k41L3++ZztX1oQjS/hilpbfI3W6MzBsqbeTMNJuH7cNeuZ 52kGdlceVFY9yHYkPNWXGsqz6/y16nT6+VSWjJJCe11o5lbkAbuGeN7I4y4XleejgP9/ heBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740623124; x=1741227924; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4ouKK+P8Bp77QlLVV+lTMqGiv9R+6akFjSocFKtf2Jk=; b=DonGvjNGVP3SiDlGXyhCJqR55e83GqWmv5sIlkPIVnrAn5nTkbEGfQ0npEylloQiJi PatfTgvwyhmdp3v5NVWs85aVulh8w4Rc93H3tbQtOY5omo2gBnmD13kPdP9nrZeO5yAn PmYsfyM4Ty7/0UYuK7vTSIxq6cKYQWThyIilXYRhBRUwmPOpYQxMpwa1Di6f6qc1+B2p El7GhicykcWxVe/pn0Vgsm0TRqGIz+4P+Cf8qRWkaGQL4m0bS6OpKxXw2GxWnv2qn2WH +7sL2t5z2iHZZJvm194D+q6fQFkA42RUZxN4PJvkvu5AZxBu1USk/+soq820kU2uyceD KW7w== X-Forwarded-Encrypted: i=1; AJvYcCWNpZc+Le3PmT7/3Ku78wxrM94frK2gAokGNSFpeSo9mK2WMQC8+YeKMA2328GgAZqp6YIsaXV51fo=@lists.freedesktop.org X-Gm-Message-State: AOJu0Yzfx3JPrQrjk3R9Yqa4TRnZH3fG+Geqo6FFGOy+Qs90tlRXHy7R FkD+XP/SHflda8u6p2dFplH/bqDtnJrjrX7TnmQD5LaqWPUp7cuUdi/+C0/eM2saTukJPc+ht1c nvAEh2Q== X-Gm-Gg: ASbGncvrFOb/8mHnqj1smYB3+uZwe3q1PVgLFz7z2wg+oJEzFa/VjUVWUkPpdT6T17m CVmy2n5xiRsglVVX55VhRxlApWurFmIeQ4NzsmhtixTowMQvaIvqcKWda9UBXvrPHBxN0tA2NLz qojYg4iHA8QWjtnExOlNS6KkaIYw4O5PMCekCXg9JFALjDsu+MK2PSG0LTIjud5+3WiJWTqTQQo QtUexAVgwDHI9SvrrgEmwoTtsPerzF2Yfdy8bjncPIFUS0xvzdeaAmEvjh6O5+qtLwmfcZAAKTo tWwgQK2Jw6NKGzz5LiZryljRHydEmGxgRg== X-Google-Smtp-Source: AGHT+IGw8901cx7jCW8IdagRI7moWHr/MMfNM5yDe+5tE18iV9njnk83dC4KRsquOX1KAt/AJwgQyg== X-Received: by 2002:a05:6512:3053:b0:546:2f44:ee99 with SMTP id 2adb3069b0e04-548510d68fbmr6201726e87.17.1740623123953; Wed, 26 Feb 2025 18:25:23 -0800 (PST) Received: from umbar.lan ([192.130.178.90]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-549441742a0sm48067e87.5.2025.02.26.18.25.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Feb 2025 18:25:22 -0800 (PST) From: Dmitry Baryshkov Date: Thu, 27 Feb 2025 04:25:12 +0200 Subject: [PATCH v3 4/7] drm/msm/mdp4: use parent_data for LVDS PLL MIME-Version: 1.0 Message-Id: <20250227-fd-mdp4-lvds-v3-4-c983788987ae@linaro.org> References: <20250227-fd-mdp4-lvds-v3-0-c983788987ae@linaro.org> In-Reply-To: <20250227-fd-mdp4-lvds-v3-0-c983788987ae@linaro.org> To: Rob Clark , Abhinav Kumar , Sean Paul , Marijn Suijten , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1213; i=dmitry.baryshkov@linaro.org; h=from:subject:message-id; bh=RyZRLS8pZm8hoJDU+OVp+AAZeLhFhiibO05/Oz7CvDI=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBnv80HC1H31A21mg4pym4gsBNuP+Y0XPTOg2WqT WP81odVunCJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCZ7/NBwAKCRCLPIo+Aiko 1bN2B/4+9AgpU9l9qzAXAQxbcg+hLFdSjQXilior66+rMZDVFalCW9/W3knGRJVNzfacf2hDInD j9l325E0ZCZR1eVT0PXx9CaGTuKokn/6FTCRGnk/YYWG407FY+wlntoX9fObr7ED8+WHRcafZtx k9gjzwnEDAym1/FoHs1XpDh4a/856niPt8lgRzoxEu6bA95Z3ko8DD9iomDdDT2itq++sevwF0N 1QhipfDTUGvODMu/xumMe54Yup2nSs/dwosAzUGm2krQthWKpXy4RH01jIMhXOSXu81lVlQ4wPg VAHGB8kgtUGZ5IVJY7DzCQfDdvTTRU6ydn3L9tQNfMO2Tla4 X-Developer-Key: i=dmitry.baryshkov@linaro.org; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Instead of using .parent_names, use .parent_data, which binds parent clocks by using relative names specified in DT in addition to using global system clock names. Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_pll.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_pll.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_pll.c index cbd154c72e44c848fa65fe01d848879b9f6735fb..a99bf482ba2c02e27a76341ae454930a13c8dd92 100644 --- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_pll.c +++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_pll.c @@ -122,14 +122,14 @@ static const struct clk_ops mpd4_lvds_pll_ops = { .set_rate = mpd4_lvds_pll_set_rate, }; -static const char *mpd4_lvds_pll_parents[] = { - "pxo", +static const struct clk_parent_data mpd4_lvds_pll_parents[] = { + { .fw_name = "pxo", .name = "pxo", }, }; static struct clk_init_data pll_init = { .name = "mpd4_lvds_pll", .ops = &mpd4_lvds_pll_ops, - .parent_names = mpd4_lvds_pll_parents, + .parent_data = mpd4_lvds_pll_parents, .num_parents = ARRAY_SIZE(mpd4_lvds_pll_parents), }; From patchwork Thu Feb 27 02:25:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 13993599 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 32CF0C19F32 for ; Thu, 27 Feb 2025 02:25:39 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 7416510EA1F; Thu, 27 Feb 2025 02:25:36 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="a9sBrF5t"; dkim-atps=neutral Received: from mail-lf1-f52.google.com (mail-lf1-f52.google.com [209.85.167.52]) by gabe.freedesktop.org (Postfix) with ESMTPS id 31C3310EA16 for ; Thu, 27 Feb 2025 02:25:28 +0000 (UTC) Received: by mail-lf1-f52.google.com with SMTP id 2adb3069b0e04-5461cb12e39so392156e87.2 for ; Wed, 26 Feb 2025 18:25:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1740623126; x=1741227926; darn=lists.freedesktop.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=E18tpw+zq+SBOUnMq7VeJ2wmflhlIp1Qicz+wQlS2Sw=; b=a9sBrF5twxv3GitSFZcvqW4Ewi2Pw7nsExfqG8VtQdTpEW49omq/nKVW6gfMyNc6IH 7hr9Sz0yLnmAVx73WqfRxMswQj5P6f/L9VxQvH4oXSohtWs5yeK56pN7yDKm4nwywI8D m5FpbumT8bfbCmCo/OIt4wSCJW3GQWOMBkAMji4jx7y+zujOkq+dcIxTTE/6zghijxPZ bPPROYtVx3sx/7VuJjNE0OmSuf97evkCHMFVOTnBXMQvzjQVg2N8RH0zCGEhdHhfkpoR xjbSe3kFuk4tQhpp9V+XyY2NzdBAP0oI/SYX11NtWa5Z27y0l4JQvmxNPnSRIOkkPRCN QcTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740623126; x=1741227926; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=E18tpw+zq+SBOUnMq7VeJ2wmflhlIp1Qicz+wQlS2Sw=; b=XojFdGB8n4AzWBbPFOmWXD1ljF4p07Y+93TKSMVmrJf8sOyUp8ecWwHYM1V/NvJaUi XXEy+sB6KG7IZhT0SA8+27yqZzini6ZcITLDdeM8uD8v+ptGNzn6pMxWeRCo3CpxX9M2 XOtgKN0FY+3FSkSOPBMlWwveTiJi1eMsS2nOsH1m86OV+Z0xjLW3q0vXL49K4+acAoit FVmuXAGdTVO6ZkoSBEUwLfpcYy4xfSjNVnDo9KTueT3GBjzrJtSzGGgCEH4oBRTh2JWp TVJnH5J2urjgULBF+iY04hA+CSfxxDkdAvzevsX+FyEVKgxLXN3MW/6OV/1/3j0d7nDS wZJg== X-Forwarded-Encrypted: i=1; AJvYcCXbzo2tqLKVFXnJqlH8hSrIxjqtcwbktC3H5zl9rulUT5srn6avijDQ3XbKAdw4NmmIHQOL+kPS+jA=@lists.freedesktop.org X-Gm-Message-State: AOJu0Yw1QMGFyYRkRWFYf49aSv2MeAZybWpS3BjAu//rMQIW+wKBEsyw urOLRxqjNNv3pTwtBK0IAbGvhKdmgn2dTvwlaEwRu3tQn9s2qs4EyjC+ucobG4g= X-Gm-Gg: ASbGnctvsy87aBUM63IvIBA37T6Tc3QXwjgqg1AmtRFqsyoD9uCcY1gPwXdu47PQJrM f8bppV/TPzANLiibdsgnz1HWWd9ObXVIayjeX4H/820beBnALbs3iShl13absD+gRO76dH8gs+C RG4R6LwAKXQ4xa+VQIMcTxjZaV6ypEa+ooU69FTXbLqx5w9coD0AN/PUdiX6i1VhWKc7Mrbb75B IbLFf5vcTBbB4TnrNiW+h8yYH7VNFG9639dsXpj3eGMeYYvkJEnCpxn1CJel996Sm51tnKHHXsf n28zosseUGs2vLaeNf+aMZKjbYYNYre/MA== X-Google-Smtp-Source: AGHT+IH6JvW63owJyZ1PeivaBeeBGjJMDrOP0137MVcsa3BSvMkJ++/F3s9OT2J6ygpsST5S+eTgWg== X-Received: by 2002:a05:6512:3b22:b0:545:60b:f38b with SMTP id 2adb3069b0e04-54838edd919mr10462109e87.8.1740623126477; Wed, 26 Feb 2025 18:25:26 -0800 (PST) Received: from umbar.lan ([192.130.178.90]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-549441742a0sm48067e87.5.2025.02.26.18.25.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Feb 2025 18:25:25 -0800 (PST) From: Dmitry Baryshkov Date: Thu, 27 Feb 2025 04:25:13 +0200 Subject: [PATCH v3 5/7] drm/msm/mdp4: move move_valid callback to lcdc_encoder MIME-Version: 1.0 Message-Id: <20250227-fd-mdp4-lvds-v3-5-c983788987ae@linaro.org> References: <20250227-fd-mdp4-lvds-v3-0-c983788987ae@linaro.org> In-Reply-To: <20250227-fd-mdp4-lvds-v3-0-c983788987ae@linaro.org> To: Rob Clark , Abhinav Kumar , Sean Paul , Marijn Suijten , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4330; i=dmitry.baryshkov@linaro.org; h=from:subject:message-id; bh=9z1p16IGdhhxiTm15wIHhYzKoRC0TrBbMnzmOx4bB8I=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBnv80H9mWNP5xm0U518aEA7MFJlLbfnScNOLNek 6ngfP55A2CJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCZ7/NBwAKCRCLPIo+Aiko 1TS4B/4jhTAUlM4rgtB8XhTYa1IaFlN4nD5YNisfDQe3RWIPeYXqasBrLgy3wsErfrpwSgbwk9Z dqw1eQFoMXtsQY5rCvEBgyDOyUwen61/QK9vPLoCKjkWlZi/9v5zHT3YMX7V2UaqjZb29UTSuNN 9KdTVUxqtgOYBzGLe7W3IMI5YtBGFuVe+21N2/q3WZ1ddbaFYbYuSCMcbym4iC42bZctMjHTmm7 wxgXY/Ny8i5fCoeiew39A6P4vYGvzigO2bJDaPFEAFI4yfVw8lpC25+5w1Yi03d2WZv/mmnJMeO 9y53Z/5Yh/8tu/PRj6tzTwc+b9VtXnp11bYtMffN9wgXQ4eD X-Developer-Key: i=dmitry.baryshkov@linaro.org; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" We can check the LCDC clock directly from the LCDC encoder driver, so remove it from the LVDS connector. Reviewed-by: Konrad Dybcio Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h | 1 - drivers/gpu/drm/msm/disp/mdp4/mdp4_lcdc_encoder.c | 27 ++++++++++++++++------ .../gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c | 21 ----------------- 3 files changed, 20 insertions(+), 29 deletions(-) diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h index b8bdc3712c73b14f3547dce3439a895e3d10f193..e0380d3b7e0cee99c4c376bf6369887106f44ede 100644 --- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h +++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h @@ -191,7 +191,6 @@ struct drm_crtc *mdp4_crtc_init(struct drm_device *dev, long mdp4_dtv_round_pixclk(struct drm_encoder *encoder, unsigned long rate); struct drm_encoder *mdp4_dtv_encoder_init(struct drm_device *dev); -long mdp4_lcdc_round_pixclk(struct drm_encoder *encoder, unsigned long rate); struct drm_encoder *mdp4_lcdc_encoder_init(struct drm_device *dev, struct device_node *panel_node); diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lcdc_encoder.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lcdc_encoder.c index db93795916cdaa87ac8e61d3b44c2dadac10fd9e..cfcedd8a635cf0297365e845ef415a8f0d553183 100644 --- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lcdc_encoder.c +++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lcdc_encoder.c @@ -348,19 +348,32 @@ static void mdp4_lcdc_encoder_enable(struct drm_encoder *encoder) mdp4_lcdc_encoder->enabled = true; } +static enum drm_mode_status +mdp4_lcdc_encoder_mode_valid(struct drm_encoder *encoder, + const struct drm_display_mode *mode) +{ + struct mdp4_lcdc_encoder *mdp4_lcdc_encoder = + to_mdp4_lcdc_encoder(encoder); + long actual, requested; + + requested = 1000 * mode->clock; + actual = clk_round_rate(mdp4_lcdc_encoder->lcdc_clk, requested); + + DBG("requested=%ld, actual=%ld", requested, actual); + + if (actual != requested) + return MODE_CLOCK_RANGE; + + return MODE_OK; +} + static const struct drm_encoder_helper_funcs mdp4_lcdc_encoder_helper_funcs = { .mode_set = mdp4_lcdc_encoder_mode_set, .disable = mdp4_lcdc_encoder_disable, .enable = mdp4_lcdc_encoder_enable, + .mode_valid = mdp4_lcdc_encoder_mode_valid, }; -long mdp4_lcdc_round_pixclk(struct drm_encoder *encoder, unsigned long rate) -{ - struct mdp4_lcdc_encoder *mdp4_lcdc_encoder = - to_mdp4_lcdc_encoder(encoder); - return clk_round_rate(mdp4_lcdc_encoder->lcdc_clk, rate); -} - /* initialize encoder */ struct drm_encoder *mdp4_lcdc_encoder_init(struct drm_device *dev, struct device_node *panel_node) diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c index 52e728181b523cc3380d7718b5956e7e2dbd4cad..4755eb13ef79f313d2be088145c8cd2e615226fe 100644 --- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c +++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c @@ -56,26 +56,6 @@ static int mdp4_lvds_connector_get_modes(struct drm_connector *connector) return ret; } -static enum drm_mode_status -mdp4_lvds_connector_mode_valid(struct drm_connector *connector, - const struct drm_display_mode *mode) -{ - struct mdp4_lvds_connector *mdp4_lvds_connector = - to_mdp4_lvds_connector(connector); - struct drm_encoder *encoder = mdp4_lvds_connector->encoder; - long actual, requested; - - requested = 1000 * mode->clock; - actual = mdp4_lcdc_round_pixclk(encoder, requested); - - DBG("requested=%ld, actual=%ld", requested, actual); - - if (actual != requested) - return MODE_CLOCK_RANGE; - - return MODE_OK; -} - static const struct drm_connector_funcs mdp4_lvds_connector_funcs = { .detect = mdp4_lvds_connector_detect, .fill_modes = drm_helper_probe_single_connector_modes, @@ -87,7 +67,6 @@ static const struct drm_connector_funcs mdp4_lvds_connector_funcs = { static const struct drm_connector_helper_funcs mdp4_lvds_connector_helper_funcs = { .get_modes = mdp4_lvds_connector_get_modes, - .mode_valid = mdp4_lvds_connector_mode_valid, }; /* initialize connector */ From patchwork Thu Feb 27 02:25:14 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 13993597 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 927A5C021B8 for ; Thu, 27 Feb 2025 02:25:36 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 025C010EA1D; Thu, 27 Feb 2025 02:25:36 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="vQWjNlC+"; dkim-atps=neutral Received: from mail-lf1-f45.google.com (mail-lf1-f45.google.com [209.85.167.45]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9E39110EA17 for ; Thu, 27 Feb 2025 02:25:30 +0000 (UTC) Received: by mail-lf1-f45.google.com with SMTP id 2adb3069b0e04-5462ea9691cso413980e87.2 for ; Wed, 26 Feb 2025 18:25:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1740623129; x=1741227929; darn=lists.freedesktop.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=B+FSEAZwM3JMz4x3mQU5rxG2ANMYWACSorMBKNolQMw=; b=vQWjNlC+MOb7Kt94nsrz7coM3bl6jYiu07VWE46Q4LE7OWOdMtfrw06KBekDpJMecH xiejyxajkb0AwukQDlPjZNiizX0lF+QVT2kl48cYVaiyJagd7l8Lt1GD+p6+BGC2e+A6 UuEeNz8Rj6IuWVCiB1IV67nhroo5UdhYgIbd/ZGtG2Hq1sF2BOOv5zj1Tssdr30wgjo/ cSKL3GfDpL9lHO0YPdJiEd4ZxI0iB7J0jE6Q7likuENRXPr57l2W1AujVHdK6sA+b38o xKP6nNpcgdOazUuoj8EoaLbdS730LEq6GhfAEXIaVUVaA/h7BYGpiNn7quelCR3bWY5a m/sA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740623129; x=1741227929; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=B+FSEAZwM3JMz4x3mQU5rxG2ANMYWACSorMBKNolQMw=; b=kJ0NJ4juwn6srshKgwJQscvzsN9dhWJC3igA4ildFGCX7mLp8qpy1+RwPBmBpsw6zS Jwduh+DgKvjlvVYVFI9ir582eg01+kjBupaQjKm42N7byKELgJPYpJoOd1PzWoD+QBeA j3wFLtvbjt7YBHwMW7WsDKDnOf8yIdrjKWC9OLZRxGVuHg2XcUiw3lCgoFcpSZpl1yk8 T3v2fQJIn13yFm98wpomzUWGPD81tpeankAHbtYhcldP4UnfVbKOY8377ulDAgaZEPfK weddCxxI15hu89oQyF87Mi9O6fpqaopS2jg5V6UErtZ2ggTF3U/Ms6K+JLfRpV6Z3Bn9 VKJQ== X-Forwarded-Encrypted: i=1; AJvYcCVUGEEDlTlvZlzn/DhnQPHUcqTWaUIUklctsUFHh1niTw/wGM/QJbfVolWrDVSm+iGDVAXRThhgNMc=@lists.freedesktop.org X-Gm-Message-State: AOJu0YwPWkj3n41JoTOGuC1kb8hgdkrpK+GfSvD4fvzCpd0r4AhZwEBW 0MapjzSbz/BzqMYo9scmaWQAkWIF5yNjY4bZCnTgQvKKQzU6C245Ykg0JI5Sg7s= X-Gm-Gg: ASbGncuZxrBbhk0TjTQ+GJl/QT5Dh/m9k70Abt9x76LOVQOG+atAqSFaf4TzVZAAVmG slzGwhwk+8iW79mX2SuE55NVEuq+iJFyNjYISIen/arv3SLiGH8wPGNlFdGFyeAOaiMYInuUmzI PXCqhMYVxIY2sdvXbrW8m71fK4wVJOaF63S4sAaRAGqOHbHplwHxUZPX0fAx7pb6RsbrOLB0hVS 9h1iajFszteEhZ+OYi0sRn5TjRCx/mif19Tu6WI5lxzFC9poWszqUttinM2piXqp74r7kPcJ0ya hxWrhvxawXBkwKFhFJVKY8XFTwTC7uzh5w== X-Google-Smtp-Source: AGHT+IEb02nQavOXOTZLj5r926nspuygodhMvivWQgeNEa/oOtFENkgYUEcxBrvNe4iEFFoz5pWyvg== X-Received: by 2002:a05:6512:3e05:b0:546:2ea9:6666 with SMTP id 2adb3069b0e04-5493c5b8deemr4087543e87.34.1740623128921; Wed, 26 Feb 2025 18:25:28 -0800 (PST) Received: from umbar.lan ([192.130.178.90]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-549441742a0sm48067e87.5.2025.02.26.18.25.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Feb 2025 18:25:27 -0800 (PST) From: Dmitry Baryshkov Date: Thu, 27 Feb 2025 04:25:14 +0200 Subject: [PATCH v3 6/7] drm/msm/mdp4: switch LVDS to use drm_bridge/_connector MIME-Version: 1.0 Message-Id: <20250227-fd-mdp4-lvds-v3-6-c983788987ae@linaro.org> References: <20250227-fd-mdp4-lvds-v3-0-c983788987ae@linaro.org> In-Reply-To: <20250227-fd-mdp4-lvds-v3-0-c983788987ae@linaro.org> To: Rob Clark , Abhinav Kumar , Sean Paul , Marijn Suijten , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=10669; i=dmitry.baryshkov@linaro.org; h=from:subject:message-id; bh=90eJnitNHrEK/bHG/5dquibI/K0ZaJ2fO88HjDQ4Cno=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBnv80HoeWx66fTPOHWuISqj9RZhIfWub/BXusDs jnSIEMTdsaJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCZ7/NBwAKCRCLPIo+Aiko 1d36CACuMr+t63zgWn7+j7zED/ci+Ofhu2ZBQ/evQCDyDnZRiO8fm4YEz7lHFXz9Rtv5/7JJcO1 ezS2i1Htlm/LUrkgEJI5s3nXeFhCJ3bHJR2OsWLp0pZSkPPSwt9YXOCAOl/kMLyn/vy9iMBLRxs LIiO2HcLyQ3YqjL20YV6wQ9x81NmHdkCQG6tHWXucqev+WFfB4hP6QK+AxHq/0/wtQ+CMBg/w2/ oi62xsA6tVY7sA8DhLHF/Fz8OL9laAb5l9b8TaLDFutPTs+kSU2VKxyaPyIatg0m0CJFp6HeRPV vFsUfWwxonoFOyPMsvRd4JAt5foNYVpHGF5V95qmPyfSU2sT X-Developer-Key: i=dmitry.baryshkov@linaro.org; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" LVDS support in MDP4 driver makes use of drm_connector directly. However LCDC encoder and LVDS connector are wrappers around drm_panel. Switch them to use drm_panel_bridge/drm_bridge_connector. This allows using standard interface for the drm_panel and also inserting additional bridges between encoder and panel. Signed-off-by: Dmitry Baryshkov --- drivers/gpu/drm/msm/Makefile | 1 - drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 34 +++++-- drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h | 6 +- drivers/gpu/drm/msm/disp/mdp4/mdp4_lcdc_encoder.c | 20 +---- .../gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c | 100 --------------------- 5 files changed, 28 insertions(+), 133 deletions(-) diff --git a/drivers/gpu/drm/msm/Makefile b/drivers/gpu/drm/msm/Makefile index 5df20cbeafb8bf07c825a1fd72719d5a56c38613..7a2ada6e2d74a902879e4f12a78ed475e5209ec2 100644 --- a/drivers/gpu/drm/msm/Makefile +++ b/drivers/gpu/drm/msm/Makefile @@ -48,7 +48,6 @@ msm-display-$(CONFIG_DRM_MSM_MDP4) += \ disp/mdp4/mdp4_dsi_encoder.o \ disp/mdp4/mdp4_dtv_encoder.o \ disp/mdp4/mdp4_lcdc_encoder.o \ - disp/mdp4/mdp4_lvds_connector.o \ disp/mdp4/mdp4_lvds_pll.o \ disp/mdp4/mdp4_irq.o \ disp/mdp4/mdp4_kms.o \ diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c index 689e210660a5218ed1e2d116073723215af5a187..93c9411eb422bc67b7fedb5ffce4c330310b520f 100644 --- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c +++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c @@ -6,6 +6,8 @@ #include +#include +#include #include #include "msm_drv.h" @@ -189,7 +191,7 @@ static int mdp4_modeset_init_intf(struct mdp4_kms *mdp4_kms, struct msm_drm_private *priv = dev->dev_private; struct drm_encoder *encoder; struct drm_connector *connector; - struct device_node *panel_node; + struct drm_bridge *next_bridge; int dsi_id; int ret; @@ -199,27 +201,43 @@ static int mdp4_modeset_init_intf(struct mdp4_kms *mdp4_kms, * bail out early if there is no panel node (no need to * initialize LCDC encoder and LVDS connector) */ - panel_node = of_graph_get_remote_node(dev->dev->of_node, 0, 0); - if (!panel_node) - return 0; + next_bridge = devm_drm_of_get_bridge(dev->dev, dev->dev->of_node, 0, 0); + if (IS_ERR(next_bridge)) { + ret = PTR_ERR(next_bridge); + if (ret == -ENODEV) + return 0; + return ret; + } - encoder = mdp4_lcdc_encoder_init(dev, panel_node); + encoder = mdp4_lcdc_encoder_init(dev); if (IS_ERR(encoder)) { DRM_DEV_ERROR(dev->dev, "failed to construct LCDC encoder\n"); - of_node_put(panel_node); return PTR_ERR(encoder); } /* LCDC can be hooked to DMA_P (TODO: Add DMA_S later?) */ encoder->possible_crtcs = 1 << DMA_P; - connector = mdp4_lvds_connector_init(dev, panel_node, encoder); + ret = drm_bridge_attach(encoder, next_bridge, NULL, DRM_BRIDGE_ATTACH_NO_CONNECTOR); + if (ret) { + DRM_DEV_ERROR(dev->dev, "failed to attach LVDS panel/bridge: %d\n", ret); + + return ret; + } + + connector = drm_bridge_connector_init(dev, encoder); if (IS_ERR(connector)) { DRM_DEV_ERROR(dev->dev, "failed to initialize LVDS connector\n"); - of_node_put(panel_node); return PTR_ERR(connector); } + ret = drm_connector_attach_encoder(connector, encoder); + if (ret) { + DRM_DEV_ERROR(dev->dev, "failed to attach LVDS connector: %d\n", ret); + + return ret; + } + break; case DRM_MODE_ENCODER_TMDS: encoder = mdp4_dtv_encoder_init(dev); diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h index e0380d3b7e0cee99c4c376bf6369887106f44ede..306f5ca8f810aaeecea56e74065933bbffcb67ec 100644 --- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h +++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.h @@ -191,11 +191,7 @@ struct drm_crtc *mdp4_crtc_init(struct drm_device *dev, long mdp4_dtv_round_pixclk(struct drm_encoder *encoder, unsigned long rate); struct drm_encoder *mdp4_dtv_encoder_init(struct drm_device *dev); -struct drm_encoder *mdp4_lcdc_encoder_init(struct drm_device *dev, - struct device_node *panel_node); - -struct drm_connector *mdp4_lvds_connector_init(struct drm_device *dev, - struct device_node *panel_node, struct drm_encoder *encoder); +struct drm_encoder *mdp4_lcdc_encoder_init(struct drm_device *dev); #ifdef CONFIG_DRM_MSM_DSI struct drm_encoder *mdp4_dsi_encoder_init(struct drm_device *dev); diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lcdc_encoder.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lcdc_encoder.c index cfcedd8a635cf0297365e845ef415a8f0d553183..a4f3edabefbd06286bfb8fbcd7f8c0a4281e5ef1 100644 --- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lcdc_encoder.c +++ b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lcdc_encoder.c @@ -14,7 +14,6 @@ struct mdp4_lcdc_encoder { struct drm_encoder base; - struct device_node *panel_node; struct drm_panel *panel; struct clk *lcdc_clk; unsigned long int pixclock; @@ -262,19 +261,12 @@ static void mdp4_lcdc_encoder_disable(struct drm_encoder *encoder) struct mdp4_lcdc_encoder *mdp4_lcdc_encoder = to_mdp4_lcdc_encoder(encoder); struct mdp4_kms *mdp4_kms = get_kms(encoder); - struct drm_panel *panel; if (WARN_ON(!mdp4_lcdc_encoder->enabled)) return; mdp4_write(mdp4_kms, REG_MDP4_LCDC_ENABLE, 0); - panel = of_drm_find_panel(mdp4_lcdc_encoder->panel_node); - if (!IS_ERR(panel)) { - drm_panel_disable(panel); - drm_panel_unprepare(panel); - } - /* * Wait for a vsync so we know the ENABLE=0 latched before * the (connector) source of the vsync's gets disabled, @@ -300,7 +292,6 @@ static void mdp4_lcdc_encoder_enable(struct drm_encoder *encoder) to_mdp4_lcdc_encoder(encoder); unsigned long pc = mdp4_lcdc_encoder->pixclock; struct mdp4_kms *mdp4_kms = get_kms(encoder); - struct drm_panel *panel; uint32_t config; int ret; @@ -335,12 +326,6 @@ static void mdp4_lcdc_encoder_enable(struct drm_encoder *encoder) if (ret) DRM_DEV_ERROR(dev->dev, "failed to enable lcdc_clk: %d\n", ret); - panel = of_drm_find_panel(mdp4_lcdc_encoder->panel_node); - if (!IS_ERR(panel)) { - drm_panel_prepare(panel); - drm_panel_enable(panel); - } - setup_phy(encoder); mdp4_write(mdp4_kms, REG_MDP4_LCDC_ENABLE, 1); @@ -375,8 +360,7 @@ static const struct drm_encoder_helper_funcs mdp4_lcdc_encoder_helper_funcs = { }; /* initialize encoder */ -struct drm_encoder *mdp4_lcdc_encoder_init(struct drm_device *dev, - struct device_node *panel_node) +struct drm_encoder *mdp4_lcdc_encoder_init(struct drm_device *dev) { struct drm_encoder *encoder; struct mdp4_lcdc_encoder *mdp4_lcdc_encoder; @@ -387,8 +371,6 @@ struct drm_encoder *mdp4_lcdc_encoder_init(struct drm_device *dev, if (IS_ERR(mdp4_lcdc_encoder)) return ERR_CAST(mdp4_lcdc_encoder); - mdp4_lcdc_encoder->panel_node = panel_node; - encoder = &mdp4_lcdc_encoder->base; drm_encoder_helper_add(encoder, &mdp4_lcdc_encoder_helper_funcs); diff --git a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c b/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c deleted file mode 100644 index 4755eb13ef79f313d2be088145c8cd2e615226fe..0000000000000000000000000000000000000000 --- a/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c +++ /dev/null @@ -1,100 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-only -/* - * Copyright (C) 2014 Red Hat - * Author: Rob Clark - * Author: Vinay Simha - */ - -#include "mdp4_kms.h" - -struct mdp4_lvds_connector { - struct drm_connector base; - struct drm_encoder *encoder; - struct device_node *panel_node; - struct drm_panel *panel; -}; -#define to_mdp4_lvds_connector(x) container_of(x, struct mdp4_lvds_connector, base) - -static enum drm_connector_status mdp4_lvds_connector_detect( - struct drm_connector *connector, bool force) -{ - struct mdp4_lvds_connector *mdp4_lvds_connector = - to_mdp4_lvds_connector(connector); - - if (!mdp4_lvds_connector->panel) { - mdp4_lvds_connector->panel = - of_drm_find_panel(mdp4_lvds_connector->panel_node); - if (IS_ERR(mdp4_lvds_connector->panel)) - mdp4_lvds_connector->panel = NULL; - } - - return mdp4_lvds_connector->panel ? - connector_status_connected : - connector_status_disconnected; -} - -static void mdp4_lvds_connector_destroy(struct drm_connector *connector) -{ - struct mdp4_lvds_connector *mdp4_lvds_connector = - to_mdp4_lvds_connector(connector); - - drm_connector_cleanup(connector); - - kfree(mdp4_lvds_connector); -} - -static int mdp4_lvds_connector_get_modes(struct drm_connector *connector) -{ - struct mdp4_lvds_connector *mdp4_lvds_connector = - to_mdp4_lvds_connector(connector); - struct drm_panel *panel = mdp4_lvds_connector->panel; - int ret = 0; - - if (panel) - ret = drm_panel_get_modes(panel, connector); - - return ret; -} - -static const struct drm_connector_funcs mdp4_lvds_connector_funcs = { - .detect = mdp4_lvds_connector_detect, - .fill_modes = drm_helper_probe_single_connector_modes, - .destroy = mdp4_lvds_connector_destroy, - .reset = drm_atomic_helper_connector_reset, - .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state, - .atomic_destroy_state = drm_atomic_helper_connector_destroy_state, -}; - -static const struct drm_connector_helper_funcs mdp4_lvds_connector_helper_funcs = { - .get_modes = mdp4_lvds_connector_get_modes, -}; - -/* initialize connector */ -struct drm_connector *mdp4_lvds_connector_init(struct drm_device *dev, - struct device_node *panel_node, struct drm_encoder *encoder) -{ - struct drm_connector *connector = NULL; - struct mdp4_lvds_connector *mdp4_lvds_connector; - - mdp4_lvds_connector = kzalloc(sizeof(*mdp4_lvds_connector), GFP_KERNEL); - if (!mdp4_lvds_connector) - return ERR_PTR(-ENOMEM); - - mdp4_lvds_connector->encoder = encoder; - mdp4_lvds_connector->panel_node = panel_node; - - connector = &mdp4_lvds_connector->base; - - drm_connector_init(dev, connector, &mdp4_lvds_connector_funcs, - DRM_MODE_CONNECTOR_LVDS); - drm_connector_helper_add(connector, &mdp4_lvds_connector_helper_funcs); - - connector->polled = 0; - - connector->interlace_allowed = 0; - connector->doublescan_allowed = 0; - - drm_connector_attach_encoder(connector, encoder); - - return connector; -} From patchwork Thu Feb 27 02:25:15 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 13993598 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 21B66C1B087 for ; Thu, 27 Feb 2025 02:25:38 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 1378B10EA1E; Thu, 27 Feb 2025 02:25:36 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="acGYGp3T"; dkim-atps=neutral Received: from mail-lj1-f172.google.com (mail-lj1-f172.google.com [209.85.208.172]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0F62E10EA1C for ; Thu, 27 Feb 2025 02:25:33 +0000 (UTC) Received: by mail-lj1-f172.google.com with SMTP id 38308e7fff4ca-30761be8fcfso5127391fa.0 for ; Wed, 26 Feb 2025 18:25:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1740623131; x=1741227931; darn=lists.freedesktop.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=qq9MmRx9UTHcwOJg2plfoPnrstGHmU+KXfgGIfhmApo=; b=acGYGp3TCmAHWR7R2SNlwn/6PtOYryVZEg0Px2yIy0p3slcqGOgs7kKRZ0UDOapJPz OCYYeFZNT+XkErGqlIOlqkD+0RiDLUtsHYjWjrQB6kCpnHxkVaBqY7djw5HFttRh19TT D7m5UdowQ7SeqxArMGWq6+EO4NJjQ2lNOGyKdGctRmp5+4yLEP9sCbtbCm2Tyf0ou/ei NJubSu/dMnsi94srYeUQzOTzuyXs7K3Y0+xN9VsWp4zbIHUMHK0dbyiOQ3FYlSwM+D74 bGwHb201c1gQJy/XXqnDbT5mFXTtAnLMW3HwNUO8e/+P+jGiMngBk/DU71iiCCgMa/RK MYBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740623131; x=1741227931; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qq9MmRx9UTHcwOJg2plfoPnrstGHmU+KXfgGIfhmApo=; b=sT0w3D3IuR0vgj9ccQjomnVP5T0TJeO2G+HaifKfzgsRnUYoJLIKGTpEkh9vrHYmKN PZ82jbqubHLBGeRIQOR3Kdvu1LaQR/D9n3OjiUfk3EtWzgnhLk1V9fvcRFQGN4J3bP9W TFSCIcwVJ2tFB+9uYjbkxfq+CxC/z4gm3gTcxXvQkSgoc6UH+uUvl56jUXOXhG7o3vly BiXWviMbBKrf3S63pr6lxCIQUKFyoBuPd4qsjgTlw1cHwlihrMN+80uIlrPnIcaeMi/H D8YiUXjFibf1HPu+RRAjpgKLq/GipMkNNCZ+q03kezdB+kOosH2R64gVBNkhFBlhsR40 r16g== X-Forwarded-Encrypted: i=1; AJvYcCWeyu08iOps+7dAWrCNVKPxC/0YNLK7xIJVhhVYHMje07m9EammUzwcw0HW2dX0I8G8RAFyA1EoML0=@lists.freedesktop.org X-Gm-Message-State: AOJu0YypmXSsq68G6l5r2qGcH+UtH6XFR659VbGLI8jVPgpjujeYACpt De6xdnR9s/XJ8fZoeELU2QudRa8oDkIR1AmZ2id4FBItf+0e4Tr1FmStLkfuO70= X-Gm-Gg: ASbGncvaG4YdMx35B44UJrw+PE/NpMD3mUy5cDKNrEDUn2kX7kSZg2KEOCLDcZfhydW qxZ1vslp3igYhodzwnJ9RfNLycolhWKyuAlUIEm9PxGqZtbe7enA63gj2eyyC3blh4Ms9Iweb2U aGLJ5A+JuNBnu8M2YECyntRwISxf7pACC/Jpa1x9x3OzHmlJL3QNGBbvIFWhjiV4btCqn3fl6Ep LPcWo7+mVO6ZIGiu6zEbfR+mbp5jqit/BnPN6o1lYzYZ353wBhYriFNC4vCAf2BlRGTDVOchpVn zpWC1LKNP6mrrTY9OwDbwDJ12K0pJiKDxQ== X-Google-Smtp-Source: AGHT+IEfNBpBj/ziCw82ad5v30aNPQAqE97K5Ze93xNXV4raP7uNtPDw2CsgCTSSUsjHK8YDRWNp3g== X-Received: by 2002:a05:6512:114d:b0:546:2ea9:6662 with SMTP id 2adb3069b0e04-54851109c6emr5818345e87.51.1740623131341; Wed, 26 Feb 2025 18:25:31 -0800 (PST) Received: from umbar.lan ([192.130.178.90]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-549441742a0sm48067e87.5.2025.02.26.18.25.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Feb 2025 18:25:30 -0800 (PST) From: Dmitry Baryshkov Date: Thu, 27 Feb 2025 04:25:15 +0200 Subject: [PATCH v3 7/7] arm: dts: qcom: apq8064: link LVDS clocks MIME-Version: 1.0 Message-Id: <20250227-fd-mdp4-lvds-v3-7-c983788987ae@linaro.org> References: <20250227-fd-mdp4-lvds-v3-0-c983788987ae@linaro.org> In-Reply-To: <20250227-fd-mdp4-lvds-v3-0-c983788987ae@linaro.org> To: Rob Clark , Abhinav Kumar , Sean Paul , Marijn Suijten , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1695; i=dmitry.baryshkov@linaro.org; h=from:subject:message-id; bh=gTQKG0fLWpD8Mjgk4DoVlbsZZVw4cfaJYQqKJoHiGbg=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBnv80HWgZt9T8wm96Mnxu2uLkRoQ+p08Vp+8VBB DjQRLaZ80yJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCZ7/NBwAKCRCLPIo+Aiko 1ftqB/45YhkzEZkAfeOFiXyfNAE94XiLoA1jUXvCiK6882ceMMQbxiQuvNpui7zQpA6uvNM9zi5 8lJvqdPEbKx+jgF9481iin0lE+yv7k0HqBf4GhTPfb/6dQCCYdtAXtAIJOQLAOZ/lvD8QSQ+G/Q pYsckfnly5UpsZLhIjafPx5mAZzVQBxup6O1PjZeERDQJm5UJlPaO+CCWGSvbb8UrqmH41M9u8x 7jnsmXpjy5UD49Sx9S3SI0tv1jgw2Qi64uj4s9afgN30VfwTSLE19phN038/IBCYcRrqEuAFXf/ jmRndD8vaNxweMA++NIyVi8MRVVYgBGgsyJ8/Vi7Qx3PETtr X-Developer-Key: i=dmitry.baryshkov@linaro.org; a=openpgp; fpr=8F88381DD5C873E4AE487DA5199BF1243632046A X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Link LVDS clocks to the from MDP4 to the MMCC and back from the MMCC to the MDP4 display controller. Reviewed-by: Konrad Dybcio Signed-off-by: Dmitry Baryshkov --- arch/arm/boot/dts/qcom/qcom-apq8064.dtsi | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/arch/arm/boot/dts/qcom/qcom-apq8064.dtsi b/arch/arm/boot/dts/qcom/qcom-apq8064.dtsi index 5f1a6b4b764492486df1a2610979f56c0a37b64a..b884900716464b6291869ff50825762a55099982 100644 --- a/arch/arm/boot/dts/qcom/qcom-apq8064.dtsi +++ b/arch/arm/boot/dts/qcom/qcom-apq8064.dtsi @@ -737,7 +737,8 @@ mmcc: clock-controller@4000000 { <&dsi0_phy 0>, <&dsi1_phy 1>, <&dsi1_phy 0>, - <&hdmi_phy>; + <&hdmi_phy>, + <&mdp>; clock-names = "pxo", "pll3", "pll8_vote", @@ -745,7 +746,8 @@ mmcc: clock-controller@4000000 { "dsi1pllbyte", "dsi2pll", "dsi2pllbyte", - "hdmipll"; + "hdmipll", + "lvdspll"; }; l2cc: clock-controller@2011000 { @@ -1404,13 +1406,19 @@ mdp: display-controller@5100000 { <&mmcc MDP_AXI_CLK>, <&mmcc MDP_LUT_CLK>, <&mmcc HDMI_TV_CLK>, - <&mmcc MDP_TV_CLK>; + <&mmcc MDP_TV_CLK>, + <&mmcc LVDS_CLK>, + <&rpmcc RPM_PXO_CLK>; clock-names = "core_clk", "iface_clk", "bus_clk", "lut_clk", "hdmi_clk", - "tv_clk"; + "tv_clk", + "lcdc_clk", + "pxo"; + + #clock-cells = <0>; iommus = <&mdp_port0 0 &mdp_port0 2