From patchwork Thu Feb 20 11:14:43 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 13983818 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 A0E69C021B2 for ; Thu, 20 Feb 2025 11:15:02 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 1CF8610E941; Thu, 20 Feb 2025 11:15:02 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="fl5YpyWM"; dkim-atps=neutral Received: from mail-lf1-f48.google.com (mail-lf1-f48.google.com [209.85.167.48]) by gabe.freedesktop.org (Postfix) with ESMTPS id 13B3110E941 for ; Thu, 20 Feb 2025 11:14:59 +0000 (UTC) Received: by mail-lf1-f48.google.com with SMTP id 2adb3069b0e04-547bcef2f96so181275e87.1 for ; Thu, 20 Feb 2025 03:14:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1740050097; x=1740654897; 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=Kmi5qZiZT2PWJkmQW4SIR2YbWKNMaLc2hi9Q1PeeMGU=; b=fl5YpyWM+7e/CVzqpTiBLfSmVSRTeQIHU4d+stqkO7jpG+lXG4keMNjn1Mq329mY3Y dMnfJR2KqRbJfQaKJWZVvIY3BYEx+4xUvwEf5hblcp/MLiSfRhSsYo+9vVvhtQTsryZ8 E+4bGA3ka0kKTFsuO3TW0Qh6ABEGMlUD5+GlFKt6UL7XlMsGZRMHOO3wZS33+OoScIP1 D5U3I+21mwIy3AfZZKdzAwe7qE49hedPA8S0h3Xgn2AbsUFbhCxFR5heM9/ACK8w1hMR fstQuRCz0OvgKUUb48tdIZCASVAxOqqiqpMKMvdv909zu0K511gex8D0+EC1mFsfPX3V DE4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740050097; x=1740654897; 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=Kmi5qZiZT2PWJkmQW4SIR2YbWKNMaLc2hi9Q1PeeMGU=; b=Tl4DwLtfpmhj2FkRPsiBU9K2JDbjGfAKUDx5PVfZ2PtdzJFx7vf90cS1LsLnh1uFUU DWqUa29iTURi2vzvkA8p3Ped+QWJxXKQzbWy/cnCQH03ttJEc+ACEMO9Aen81QVBNDum tx6forSb96XcfaiFd2Dlz/hSMl5ufyeYaPNwIbOhHcONyzX9rI2c7t1BQgVUgW7yldh2 Ow4xJ45n+B6si5B0vCOr+Q3S5kM6mH8+L3l/8iucB5iUJ3zB3OxPXG7Aj3zfoO6Lv93r aEhIdtViAiHEagVO66ybbEaNRlcuDo1ZXtqb+rrRafG2qqq0BfIIzwzZtzTcoLlW/eV3 kkRg== X-Forwarded-Encrypted: i=1; AJvYcCVbzwkzkUfWguTSS/aYDN8gTRh58uEI3bieCwkRKaweBe7Pz2dQ7magmXpGSDfdgoM3VfmyYRaazAo=@lists.freedesktop.org X-Gm-Message-State: AOJu0YwVLjVjSCwqFLfr5+lBZWATTl99snzHkOeVOXoCLWhfJ1hP2h+2 InaBYlBk3FICp5/I8tKjYivxx9gXVdQ+P0ki2WqGY6JyFK6ECSd7jzBHZ3fq8XQ= X-Gm-Gg: ASbGncsnWMNc9Bh3GUOuUjCQFFPJWoK1ZHYaj+D5vpAeCNV08S+/4SNV66WrZw64/vR Ubjh76gHkaooe8xc6NFiYOme02jDjNIVVH5xEqMBa8QktTX5/6IVvmFwC538AsH+6DVoRIFZ5wL 2FV9iUM+4K/Z4Glb0+6fD4FGFcUfRXzhVkxYEriIV61Ab6f97YrHYCH9qrfQAjAHhhBds5+Y8cV ti7whwAW0pIgSrSmTIOglsUn2tjXSM0XSz0gLDuV10KeBHRFz2NWv4iLIAixG9JgR2jMRrM8TCo UqkjiS83bBXlqi75dqOSL7g= X-Google-Smtp-Source: AGHT+IEcT8WbQ5vEweEAYBbOtxpJnbkkjGYmd95cHUJt/YZkrsXFT+WC5s2N5eKXQwAqzYTMpYUmmA== X-Received: by 2002:a05:6512:3a8f:b0:545:cc2:acd7 with SMTP id 2adb3069b0e04-54724a7b458mr785756e87.27.1740050097280; Thu, 20 Feb 2025 03:14:57 -0800 (PST) Received: from umbar.lan ([192.130.178.90]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-545297856c6sm2056164e87.142.2025.02.20.03.14.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 03:14:55 -0800 (PST) From: Dmitry Baryshkov Date: Thu, 20 Feb 2025 13:14:43 +0200 Subject: [PATCH v2 1/7] dt-bindings: display: msm: mdp4: add LCDC clock and PLL source MIME-Version: 1.0 Message-Id: <20250220-fd-mdp4-lvds-v2-1-15afe5578a31@linaro.org> References: <20250220-fd-mdp4-lvds-v2-0-15afe5578a31@linaro.org> In-Reply-To: <20250220-fd-mdp4-lvds-v2-0-15afe5578a31@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=1242; i=dmitry.baryshkov@linaro.org; h=from:subject:message-id; bh=h5+bG7QnOGzKdNB1OGuaSSBt1fw1j+BI9wMBVkvkoFE=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBntw6rLFo5o/3jAn6PLBBB8PgMmUUthGTk+MMz3 InhVdiOND2JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCZ7cOqwAKCRCLPIo+Aiko 1T+3B/wIyihaqmkz1M8Ue/9XefuiaGR4R8gc3Nvfhww3ydt5DSX5EZw5UVzMInfEP1xG4CPoA4u hKzVa8HwQouiKCKBbdX5vF79BlHcquloeI5Y8JH6w8VLkE0JCiCm1swqbq2Ak52Hi8zWgVMaZ0N /4iptmF7mzSgUYBc/4uQVWvhGzUVB/MxxldvDVJF/ETZHcAK21P7ej6V9VbrZG2QLDAaP94Gz2t 2WGe08QpbdMkw1qz+JWHeigDBpghXOuipKUNxeWdHH3v2spRexhSKjgHaMVb9113vqi9ss/DvkT EZgReHrtG6NJUbt410Dl9MpFn/PHtEem1Eo7Use0eqzsNWEF 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. Signed-off-by: Dmitry Baryshkov Acked-by: Rob Herring (Arm) --- 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 20 11:14:44 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 13983819 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 6AE8EC021B2 for ; Thu, 20 Feb 2025 11:15:05 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id AF32310E944; Thu, 20 Feb 2025 11:15:04 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="u51D0B4u"; dkim-atps=neutral Received: from mail-lf1-f49.google.com (mail-lf1-f49.google.com [209.85.167.49]) by gabe.freedesktop.org (Postfix) with ESMTPS id 942B110E942 for ; Thu, 20 Feb 2025 11:15:01 +0000 (UTC) Received: by mail-lf1-f49.google.com with SMTP id 2adb3069b0e04-5439e331cceso895913e87.1 for ; Thu, 20 Feb 2025 03:15:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1740050100; x=1740654900; 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=v2FT69grsgtQGwodtPuDBrmjAJehPRULckabnrzgeOM=; b=u51D0B4uEAQCa1B2ZUIF5Wsj1bc6dT5lj5QB5id6JWOhdek2oT75zn6AS8E1EvVyv+ iywuoiRjrrryAP9U3nF/RJu01zmRY1+OkwWYe70fgIf4wvklxWMT+V3iFhQPisK6Eu1x MDE652wtOQoh0U8SC7xrWzT+QFY6mlU/I6J+SBBcuLrFJIziASMNOh2IFFFGFUmYa6j9 YPKqL5XGNU+q34P70xx6H5WeNpVqenGxbr71fa6Vq30SbzQlHUugjo8Uoavgn1yFRWQ0 BmX+3sB1AqbyADB9tIGiXa/H2hAY6NQa3SoF+nYeQ5Dyc7y9u7EKMIgfoRuhTsSbqs9x HnMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740050100; x=1740654900; 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=v2FT69grsgtQGwodtPuDBrmjAJehPRULckabnrzgeOM=; b=btmwW2RzGTcGczTxbxbPY5qgludBf/TdboEkmeRdIGbcOgRnHxvtV/isM5Mx+H82UH xHiGSrEB8aUYu0f6Gysw3YmkEekywhU3jbGZVyBUsJllooBykYsSVOQ+GZaGkipI/fwE C7MTyuz9T1rSq3RB2DEpgDACc2IqBnJe1xeJPmerKMve67Dyz3JjV1tUP5+Vekud5Dws 3yE0YbAK+LPAqT2pzq9q1Gnx4QcT6v6hritWitoVXGn9XZq+7zLExXBbq7N5s3UHXgSj Z9ME7/RLABpdSU34Fg35wOOHPJlvgawdkCKFL0pon7R4ZGgSGBfWX1BYmjTe7KhHk6ru 3E7w== X-Forwarded-Encrypted: i=1; AJvYcCV1S5BqaK1PydHvK23MG6x/Fc6aj5TkFd+HH627F76W1IP73bLzDmi+oL8MSpAN6iudakJQMJjK7JU=@lists.freedesktop.org X-Gm-Message-State: AOJu0YyWZ36pIbrxfFlcfDLPHT0KPAlCNwJbNqQEpwGB8vwmhRPUNFEO q2DORK+67sZ707klidnijziFX3VEGZ342TRx84FDZlBCGEdIhRhj0gJn/NeGxos= X-Gm-Gg: ASbGnctoPToZBEWMdQUWiT8DtTRxqQ9Iw7P4HpjsySTrzD12jAddGGx45MRFW3hcFG1 vT9saK/hCXyit1eiLSVlTiDf47wgFr+qUZYPha/DEa+EhjkFlsurThd6+J0/6pdIycQBvuRfKWi nCoAOGWt604rPOcs3QKablaGCKuJqJrf0ISQNRZ8T8R8jXQ+4rX+qYqUmZklRtV7ccg4xFyzvBJ mfULtFLB5cCmlZUgEBaSdbehzfv9G5HTD8mgp4yLqVSUpmaIJYGVTMkuDw1rMJMAt0dK+j+/qL8 G76oT+JfcFeVcSkD8ZTopVg= X-Google-Smtp-Source: AGHT+IEK5YepgQWPALUfLRJKi3C8erOz++2sLryCYJu3ofhHXWr7LbJxyrpPkJIZbnwDfcXCA7dAIw== X-Received: by 2002:a05:6512:1189:b0:545:bda:f17 with SMTP id 2adb3069b0e04-5462ef201a0mr3010127e87.44.1740050099792; Thu, 20 Feb 2025 03:14:59 -0800 (PST) Received: from umbar.lan ([192.130.178.90]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-545297856c6sm2056164e87.142.2025.02.20.03.14.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 03:14:58 -0800 (PST) From: Dmitry Baryshkov Date: Thu, 20 Feb 2025 13:14:44 +0200 Subject: [PATCH v2 2/7] drm/msm/mdp4: drop mpd4_lvds_pll_init stub MIME-Version: 1.0 Message-Id: <20250220-fd-mdp4-lvds-v2-2-15afe5578a31@linaro.org> References: <20250220-fd-mdp4-lvds-v2-0-15afe5578a31@linaro.org> In-Reply-To: <20250220-fd-mdp4-lvds-v2-0-15afe5578a31@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=922; i=dmitry.baryshkov@linaro.org; h=from:subject:message-id; bh=Iuu/rih2gTkZKK6Ghs6dsVuCdf8xwLg/vMhkHtsubTw=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBntw6rBhceXrSdx0nb7uB53zSoFWDO1AkbXhVhq +gcl/EdOZuJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCZ7cOqwAKCRCLPIo+Aiko 1YGzB/0Xno3UiIYTOdud4CEcJfrYiPKQ+eDCZMrq2/oZ3IKWU8zODmyCDhFLUcbZQ0C04pdG40O rYOSy2Jg8WQNkxq444ypAAVL3fV3LD466bkbnE84alabWsqUc95eCsbpatXcR1zt5C0SXGXZiZc Md04vbC4VX36PjRWVJigYfHQbbINZ7pG28jzX3Sk3GzjQ4frPc8PlEI7NBw+0T9gPcqfovjJp4a j+JLYqZ2LQFVh4CThB5jajAT1whTWnjZZNxaUgEld9idFUVCoLrRLazh8ADiIT3oMEBF9UbJt2J FY1lN1Ofmnmmuw+OeJcGqDv8RkS5ZlbAx+7roaozkAtlnVV3 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. Signed-off-by: Dmitry Baryshkov Reviewed-by: Konrad Dybcio --- 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 20 11:14:45 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 13983820 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 00170C021B2 for ; Thu, 20 Feb 2025 11:15:08 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 582B710E948; Thu, 20 Feb 2025 11:15:08 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="s256S6oQ"; dkim-atps=neutral Received: from mail-lf1-f42.google.com (mail-lf1-f42.google.com [209.85.167.42]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4754110E945 for ; Thu, 20 Feb 2025 11:15:04 +0000 (UTC) Received: by mail-lf1-f42.google.com with SMTP id 2adb3069b0e04-5454f00fc8dso765024e87.0 for ; Thu, 20 Feb 2025 03:15:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1740050102; x=1740654902; 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=z8FeS/va+zHK5sGx9TRcjS6J+iyejHe2ih+fYa/2Q5k=; b=s256S6oQ4Y47vnBhg9KGXjzAz9cpETxH/cKT5W5lokaep6dyEwoydYHszS5BoVC182 v0aDh37KzUw0oyFgp7qS+v4cf7rnCWFhpFbnslYchTBo4VnhwAmL//a/l2/94+fcjP6n KHZJ/iZky0Glht5yM44YlLqw6QYLgqh5E7XAnng2OJo4U5G46dRuFtWSEaE6h0MTe0b3 +RrSq+c5l6ueZ0Px+lRPYLEGM1eu7Pj0k3dKTppH8yo/yimrXz/R9uuXtv8eFaDdFdAG ed2s+3QrTo9ZFkbXDtdJsaTUEI0cP686V36EEpJZh9Z/1WiWJoJnewmq+J7Fe2qXQ9ce dwuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740050102; x=1740654902; 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=z8FeS/va+zHK5sGx9TRcjS6J+iyejHe2ih+fYa/2Q5k=; b=qGhoMyw4Ezpx1ymLDQM3UKY4xVcBafei5UnvlirKih69tLy+QFP+7YgWM+weLGloQm x4snhAkBigDHVSiptVgMZZ6vcps4TgrVZgYXhc7kZHutUQ6AY/oB3sgQnMEHw1+p/9th ktyBV6y3CK9w1+jMWQiuwLEIG42giwY5ZJyWFgCr1ZzZVna8viL0MCIDeDEhWnP3vOTB iY4wOGhap8St3iXSyOl47RliYYwbkGj1kV9WHr/nQC8lK3J7wtn5rqLeiMecMeAc+Iup OYoSM5PrSC4vDeolA7iiUTZaEm/RQy1QgxWMZGNny7NNA46lmj348J1B1YI7TM5i7OEZ s6Bw== X-Forwarded-Encrypted: i=1; AJvYcCX7kBrdYfUrcZH9iG/XdTzEDpoDDii7mvqDFxxX1G6o4k6HyG89e6awWQsMoEt+po/R9XRJU7Hq35I=@lists.freedesktop.org X-Gm-Message-State: AOJu0YzO+XD4TDzz4WstdKmJ1wfiauq20jrhGQiEvPW6sy92lMPaIkfW NKe2uC3DrPos17HDMSvd3jvs6xCXmSZnB4SCd4AHJtaCTz2+YCE0D7zqNCYgL4g= X-Gm-Gg: ASbGncuvTriQNgondHqF4lLyDpUd2Yadgul/gmbqDP1ft/CDqF6j3o/HMJ4PD4d8bIh yZKOtuze/M0vQNeE4hQD38u8tA+5i2DuXBINYIgQSXkBCwhf3683h53l/gzATW2stW1ud+Xqc3e deNbqcQV+T8DeBfgPxiXz4sjLUUXtlJn0FYBPZ+u5hIJ3uSAMDxqpLPzk/BzLCIcP5mvG9en6rt Z48qTsZNOMWXeqmXE3j8joUf91HOHPMgUlEwka1vEVlspBdz1InuZ2zz1dvHv0av8iuCS7wV4NQ NIkclodtEIijfVpGhSitHw8= X-Google-Smtp-Source: AGHT+IFU9ElSwjjqQx8XjrVFfwUEEeETjZJP2gCbsJDlUGmgPawhSl7mzS0K/iqHALGezyTI0ARFpA== X-Received: by 2002:a05:6512:3b06:b0:545:1bd:a0df with SMTP id 2adb3069b0e04-5462eef45cemr3252158e87.23.1740050102303; Thu, 20 Feb 2025 03:15:02 -0800 (PST) Received: from umbar.lan ([192.130.178.90]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-545297856c6sm2056164e87.142.2025.02.20.03.14.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 03:15:01 -0800 (PST) From: Dmitry Baryshkov Date: Thu, 20 Feb 2025 13:14:45 +0200 Subject: [PATCH v2 3/7] drm/msm/mdp4: register the LVDS PLL as a clock provider MIME-Version: 1.0 Message-Id: <20250220-fd-mdp4-lvds-v2-3-15afe5578a31@linaro.org> References: <20250220-fd-mdp4-lvds-v2-0-15afe5578a31@linaro.org> In-Reply-To: <20250220-fd-mdp4-lvds-v2-0-15afe5578a31@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=3307; i=dmitry.baryshkov@linaro.org; h=from:subject:message-id; bh=nznA3A8GlMjZ03UpAd+EaFdRwVMW2jSUcP5sfO1ICTE=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBntw6rRbr96yN51JnJO6N0m78cEm276ifFyrQ2E SShQlIaEjCJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCZ7cOqwAKCRCLPIo+Aiko 1QfDB/9LTU1jklbNgPinoHoSuaCNIbTox61Mp/VXVFwjcGnGIgku+sEd8/SG5lglE//EmBGWt6A g+GYO1DSoxgyIDBhioiPRbqPWZ8AmLX62snw6MX24URO9S2wZbECNtWPpvkIKXZwExfe4h8mQQA PokpkU5Y420PU0CHcE0rm8N91K0OU3Dz861Tta1thWxOxytytW8WWbxHDv/Yxf8pjAvGbw4brzd Urh6HMf9xwocvdRIcaEM8Nkb2VDVEtw94oFGAQ0oNyukOO5jFRs/BlCs1foGhvnJoKGvtsWs27O WlUpo1/27GKOfKGo+GWMovy3tyjklSjmA8aiZGvTklHcDUWv 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. 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 20 11:14:46 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 13983821 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 773FCC021B1 for ; Thu, 20 Feb 2025 11:15:12 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 73D6A10E94B; Thu, 20 Feb 2025 11:15:11 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="rKw1BR+d"; 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 8AD2A10E948 for ; Thu, 20 Feb 2025 11:15:06 +0000 (UTC) Received: by mail-lf1-f41.google.com with SMTP id 2adb3069b0e04-545fed4642aso898363e87.0 for ; Thu, 20 Feb 2025 03:15:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1740050105; x=1740654905; 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=KX85e3cYE0QI6HqN7XA+DGsKC7NKCz4a8QkfcGXFNn0=; b=rKw1BR+doGDPBYiFPDKxUeqp7D/+4bnXsZxA/BP/69c5sylUIvr3fi6L4gj28PiRmc rLzdUXC0z567K18F8HsMjDYJa4cZz6OvuYPPk+CjNWUNbHqudDszA/+qnV4zTtGIln4w I/bI3iIMUnOqrJxZPByaune3m/l6fufFbGctptgbHluKxcybQ9jUBH4qt//B8EcwOaQQ SOTn89jBKpQztmAjRbGnEZw28QwayW9iyr5E+/I+KPX2F+dgZ64kyNbvQoj1YMNJ2xyb 7gV5/AftybzIetJMO2ZlMvnhoG5m7XNOXvfhgpUgYQZBycRWfrGqAhKNSQVR949nKx6v VS0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740050105; x=1740654905; 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=KX85e3cYE0QI6HqN7XA+DGsKC7NKCz4a8QkfcGXFNn0=; b=MnhUDOVtjrOjGCwFeAtT42EJBEktNt8tkZWMo9vzKqL6E5aoYWUmowbBHKChgEEhW0 rTL3hIsCf9fABaTe12GvROf4Q1cIHDFNbA9/YmiDrmNu4lNtDys47XcqO198wdYz9GM2 h7AcVgE4luqYW3Rhm+JgrTeGynK+drB5kRRPaW+O3BtS6VQSQxCBFgJFrl8c7KZQzv6N cXAVvbuMC6SFi2FktcaTdDsfbEORsgvDV4+us90++koK7dLkzKi7duUhr7eSguif3sSS v83ZJ8d8Y+3eoFwAuqOVPjZXl+BPDeR7fPiT1Ol8HDdR7dPrhmzBjvEUgWxps41zMSr0 Ys/A== X-Forwarded-Encrypted: i=1; AJvYcCX1/0Jxx508V7Kw+J1xz0eomGDxbuyG8EQ9wBJk+ClafKm00g709mCctGiKaSce3n2Lsaoc9DxzxFw=@lists.freedesktop.org X-Gm-Message-State: AOJu0Yyx39AiM1aulg4CwZ+IGSKPjSKP+t29T+xVzJBQXvHg2L+twNJI oM0LF8kkH+BRi2eVFR/ifpytvVHfQuRmHwKWPbvPv2gwwtfhXjEiuv9xAiNpVF0= X-Gm-Gg: ASbGnctTWnmmhpxYYL9WhEKikKBfoc1vGWVQwkIjytpXHwU/FE4OOWD4/CszkxMGg9/ uVV3uDTGuMlqrFqjoHdOHE8rboXs1CoNkwdRjTFgjIShbxBMe/r1zVw3kViDvV7ItNL7BLhKa+V JA/jx4PDGBjo+V6ODOlduC+ki+Gv893sYxd5aiBCwwYHFZ27kKovoIRlnMlwKdZZI25o80bPBey +B0Fo3wLgdE67lBI1PGXXbhpX3qdu0O7/MnXuUNJ9oyq8ppWjvBhPbPN2LJ00ehrcF/YC5SDknr 7GepZOcN08yIdFAB4007KRk= X-Google-Smtp-Source: AGHT+IG5EZ3MbgXrnnf2FkcjlwzeGF14xhIhWRQXhiEeQQCNYMIhTxtVaUCFD3nFrIpgoLw26AvRGg== X-Received: by 2002:a05:6512:224e:b0:544:c36:3333 with SMTP id 2adb3069b0e04-54724a7b447mr799283e87.30.1740050104821; Thu, 20 Feb 2025 03:15:04 -0800 (PST) Received: from umbar.lan ([192.130.178.90]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-545297856c6sm2056164e87.142.2025.02.20.03.15.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 03:15:03 -0800 (PST) From: Dmitry Baryshkov Date: Thu, 20 Feb 2025 13:14:46 +0200 Subject: [PATCH v2 4/7] drm/msm/mdp4: use parent_data for LVDS PLL MIME-Version: 1.0 Message-Id: <20250220-fd-mdp4-lvds-v2-4-15afe5578a31@linaro.org> References: <20250220-fd-mdp4-lvds-v2-0-15afe5578a31@linaro.org> In-Reply-To: <20250220-fd-mdp4-lvds-v2-0-15afe5578a31@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=1210; i=dmitry.baryshkov@linaro.org; h=from:subject:message-id; bh=gCK+JqgYnCP01PtEyqufWSc/n0zhfsQsxdJ+Ud3negE=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBntw6rEbJHBbORbIefZc6iISdAFhieGQ33v4LyZ TdCorO1c32JATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCZ7cOqwAKCRCLPIo+Aiko 1fjdCACP6GLXiufCQ9UEpsNvSB7qNK9i1JDaj/ntqy8bB6XhsyXItB4E00m3PRNBAO32QhZ/WnX nktwAb2tH1j0Sg2HKU0CW0Y9y8l5jTX3oLQoKh+wVAXrXdpUum4qRBndE88/7xaSa3x+p85OzzL xWXcDJkFVKUPuNj//5AF0s9+33Pyfp2sgqUbSKltUCjoNEvj/5XSvD45MaEfhAfp3k7I1skaPE9 a1SwxoaY4Sx44nleZaJ7xvx4VAThvuBbUtyQix1OGjk5hqBlK7y0cW/iDzLKf30qxM9lvBY0Jk8 fOYobntzAK8ViKS88/mj+MvhbEgHl+1nuplkxzdDW0tswKXM 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 rather than 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 20 11:14:47 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 13983822 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 ED79DC021B2 for ; Thu, 20 Feb 2025 11:15:11 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 5A35010E94A; Thu, 20 Feb 2025 11:15:11 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="EzdAdZ/J"; dkim-atps=neutral Received: from mail-lf1-f46.google.com (mail-lf1-f46.google.com [209.85.167.46]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1D3BC10E94B for ; Thu, 20 Feb 2025 11:15:09 +0000 (UTC) Received: by mail-lf1-f46.google.com with SMTP id 2adb3069b0e04-54524740032so894628e87.3 for ; Thu, 20 Feb 2025 03:15:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1740050107; x=1740654907; 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=atkE0DuTwytlFBGYlZ0GLoUvtN43x5D45gLKOUS3e3I=; b=EzdAdZ/Jj/jx+N8ZHaw5roWqy54sNMrM2DYegOXxJvzXmnA3jF69mYn9HuhegtHDOR xnaJgI2JgKW/zjLuiFtOe7Aovv12molYz/XNTmTvFWvZIuedPwy0SISzZYLRq86/Sogc LelsFnhC75sO8X78AIE+5Nqizy5vTqKLJqQ4R1d3NHv6bB7MkL1G1TQi+dFv3jhvfMnC goHRNYoVhFRDF22AWgFq91Nr3AxtiFhdmn8b1qIvDqYZWPRgqSJrjexmbFi0qg6zzMjS OV1KSEA5gALYba+Xm+cT6ezmxfLp6O2tVl2m21fY9xqqlD0On1/IEE3gKXsQiAsj1BjT H9rA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740050107; x=1740654907; 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=atkE0DuTwytlFBGYlZ0GLoUvtN43x5D45gLKOUS3e3I=; b=IvEmtRMD/sBzFLWvsSmmBXhwNk2oyNO35bRGPmQrG0OWyrLV50DMD38AbiRZ2bY6ms 4GE0HC7f/T0QAH2Z9fkDRzNP6RRKo+4Kh7y9Y4lG2tdSfmOozPjEJPxPCxl6WNVKJVpA NvujbvpbWcgEogxbI723v2BElMPb2isW6unl768NcIUMZjSGkAz2U8ty9xtm5/ezDU2v zPS70Y3KRrzFgk6WVAGKtJXb52wAnHDqCUU4J+ELB+hz51deRasmeeLBbA+U6MPNp7eK IBy2Gn68Mvh9sAM1exDmSnKbxJIJXP2LnXaYsUQFkcFxL850kDkCjDPiALlwXemLlAho QxxA== X-Forwarded-Encrypted: i=1; AJvYcCVh45uSqs2FbfnomWkPPAb6WU26P8bVJe9otrS1dpU+ZPEci7cGXongA+OpIxznPXuuLUYNntNf7qY=@lists.freedesktop.org X-Gm-Message-State: AOJu0YxCIYuslv67m3t0IErsvW7dUrblYOLdTRWAgBtMxoX3Ox/WESn3 NVp/Ys/IFB9yrjVwsbbmaiav77/qbP0T0IEoCLcehz/WXlbYY9imHMYc58mrQww= X-Gm-Gg: ASbGnctbmnVkjvgSKduib1u8w812nShCeO0k9XFjEWQvPj2BmL/5yUYt5MqPymsgqOB pn/Xtf1HF+j5FojT+61TV6Mj55zK+iflj7+sPyYQyNIoSMwtCqwyX//fiRhrlA7csWVsE4z5UfA 8vH1J0NL+IbxFepRyXjepsZJFgFq82nltb2kYplsFHR56/puVar7qFhjDB0MwIpmLFoYEv64ATG M740gBySiwZ8v3/gfNXThioYhekye58T1mGXpQ1kp/O5XtyfARMH4n4vTdhka0sCJEFf9CoYT0q fdZkCXPQVNPEAmBRRBYHfBI= X-Google-Smtp-Source: AGHT+IGeL3hIO5IEL/UFM93w49MRwYtCVueI+BviXB8wj/vAF/fCqwh+GCrLx80hGd4UkPc4SzjieQ== X-Received: by 2002:a05:6512:e97:b0:545:56c:36c7 with SMTP id 2adb3069b0e04-5452fe86dddmr6819562e87.41.1740050107328; Thu, 20 Feb 2025 03:15:07 -0800 (PST) Received: from umbar.lan ([192.130.178.90]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-545297856c6sm2056164e87.142.2025.02.20.03.15.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 03:15:06 -0800 (PST) From: Dmitry Baryshkov Date: Thu, 20 Feb 2025 13:14:47 +0200 Subject: [PATCH v2 5/7] drm/msm/mdp4: move move_valid callback to lcdc_encoder MIME-Version: 1.0 Message-Id: <20250220-fd-mdp4-lvds-v2-5-15afe5578a31@linaro.org> References: <20250220-fd-mdp4-lvds-v2-0-15afe5578a31@linaro.org> In-Reply-To: <20250220-fd-mdp4-lvds-v2-0-15afe5578a31@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=4269; i=dmitry.baryshkov@linaro.org; h=from:subject:message-id; bh=sd81US2AbqPojIDQwuSaetI1ujs5Ko+pXwBs3VRaHGk=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBntw6rTPm+AqJ3Oe00AJ8yppJULkHQ9dKbM/18U NNC9+ZJDDaJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCZ7cOqwAKCRCLPIo+Aiko 1UEECACKjmUdHIogEsc92biZ7CHLmnmFDJoK5DYBGMrRoc0gq30rOLHn/DGpybnuVUOoTRhcCQ/ srxTbAtPHYKz5GPZ6HU0nzSuZXLeXlZa/Ai98jYxQvVyvkSayLovY3UkjzoHNOyXfwc38FLIPvM UIMP/EawAuFJbkq5PFnq1nTdWXtjlEIS+cmao+5TlRnb4Gbgw5l6KI1unJiMLewApO8qtZaYaGI 3Qr0lVOLugDL+admaJR4HlV1P6LFCZnMPDwaYuDVzuhgww34I9LV303cDXMY2wBVZnDFH5d14j0 WWj6ag03DsV2nNjKI2J0brnn0vx8z7++w82J9fjQuvZwj+rQ 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. Signed-off-by: Dmitry Baryshkov Reviewed-by: Konrad Dybcio --- 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 20 11:14:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 13983824 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 6D556C021B3 for ; Thu, 20 Feb 2025 11:15:18 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C310110E943; Thu, 20 Feb 2025 11:15:17 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="rY63Rqul"; dkim-atps=neutral Received: from mail-lf1-f43.google.com (mail-lf1-f43.google.com [209.85.167.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id BF57010E94E for ; Thu, 20 Feb 2025 11:15:11 +0000 (UTC) Received: by mail-lf1-f43.google.com with SMTP id 2adb3069b0e04-54626a71b40so797786e87.3 for ; Thu, 20 Feb 2025 03:15:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1740050110; x=1740654910; 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=rY63RqulXXLxUzs6DWAW7Pjis9X7Mi32HkSu1M1Lt/91Oo7gWKEE2mJR5nWkVpky1E tnHSSCMjdX09y8Eorxc+apRJS96SnxBfetNc+pBAw0KGfSHgm08Q5YGmJ48iqoD296Ne /RunYKu1oODPo47bihL7ITQIxoChGcYXHBrFSaGxwe172UNei4mTdRPgX5oY5JclZpqb STsU5AT8+CqCNDUE7tpNI7UyL576EX0svpp8tk0HVcIjy5/CY38uqlj77GkQvrkl5Vvq fo96t3x8dGlXzlbVDh0Q4GDaV7olmF5qUloSPmLENyOmCH4U1O3JVi1p9ePiRknmRgfh uzMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740050110; x=1740654910; 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=pOQ3pBO/nhU6fpuur1lUgATOMRYA7enZxJtXyfcNc+KxdJHYtnbSxpcl7+hL6QyxuI 7FbevGtpVVTgu8q/uVjlRCmwba3W2PlEaZ0RY6kn3WNq2zlvI1GEjcQQ+SkXuEyIMQxt YW6CRJ62+vajb9K12LAY+n2g2P4wXBk4ggGCgS6SY5vRAGLiA8RvEARvPnKvoWRHnuqw Wcf14OOe0cUjWl5bnhW8sF/RyrW1+ssgbGGBA36bpKGWZ/WPYe4bTbpRzw6IYPttNibd qOPmfaMQ027XkUnCsSYjXFaSBnXEiGPU11a4y5wqf5DA044nO+FxYfuU1QlKEinq+69R kQlQ== X-Forwarded-Encrypted: i=1; AJvYcCXX8KgPaolY43W8zaNv5lzg90Ru7dDN3iwSd2wr9bodHc4W23cCDH7keXxJreTLNAyEX516/o9xK/M=@lists.freedesktop.org X-Gm-Message-State: AOJu0YwQIaX9Sr18j8IpI+6tH75fc8vH46PYQlUA9s9IfU9PaGCqDfoW jdo5JWBWbehD1nqMlFI2GJ4y+0qqtsGFKBO5qdq1nRZthUWM+PFKdv4WAcMzN0E= X-Gm-Gg: ASbGncsBkb+22GR7Vh61zbAOt+IHwlyUVkiNZQLMlOh4DaLBF6bPpGxbtzD3jO6nR3Z uBvBuMG5i3+cXn1UzCAYFn7yvOxtiGDTlYzzHk4YpgJrl6YQ+ltyHiaYEUxO705q/UWDkUVtLDd a2SU06DjpXh5diVKmtTXwPVaQOh4vQnbkKxG+HmDtj3ov0i2u+nmW/7Flw40uCyjjOKTfGlqmv/ fgNb6FzXS4D3zsF4J57WJIaLkGP9TqcTXhyKKhgWBG1aP/T8nvXEwrctsnz79F4qT12uadLa+zi CIv2GoRBtGp1tfrG1OLU0tk= X-Google-Smtp-Source: AGHT+IFLmuofJZAPPdn/voaRPjKCsN8RM7jaAav41hPT/JRZmj1CezRyZIpCTJVK79XnKgaiPolXoQ== X-Received: by 2002:a05:6512:304d:b0:546:3052:4202 with SMTP id 2adb3069b0e04-546305242bamr2422240e87.27.1740050109865; Thu, 20 Feb 2025 03:15:09 -0800 (PST) Received: from umbar.lan ([192.130.178.90]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-545297856c6sm2056164e87.142.2025.02.20.03.15.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 03:15:08 -0800 (PST) From: Dmitry Baryshkov Date: Thu, 20 Feb 2025 13:14:48 +0200 Subject: [PATCH v2 6/7] drm/msm/mdp4: switch LVDS to use drm_bridge/_connector MIME-Version: 1.0 Message-Id: <20250220-fd-mdp4-lvds-v2-6-15afe5578a31@linaro.org> References: <20250220-fd-mdp4-lvds-v2-0-15afe5578a31@linaro.org> In-Reply-To: <20250220-fd-mdp4-lvds-v2-0-15afe5578a31@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/pANAwAKAYs8ij4CKSjVAcsmYgBntw6rtOhBVgnhA1cDBrmo3nWNRXGCQYlsACeFE SrvA3JYiRaJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCZ7cOqwAKCRCLPIo+Aiko 1WB+B/sGNxABjeQAlXGWahE6pllJa60BD2dJK6JoWb6ygju1p7TpDAMrrzrN/Hhu6UpsgF2b0Vp xBkGYh5ze/VPFoiEWAJBfAFybO7frnetNtDUDHdAs7pV+QgKYpQ+xBZJMs/AnNAMvm+5UUaQajN /6GiFhzpK1zS9XxmXpxo9/eq1D/wK20M0GJPd4ZycQXPsEw7eLxUFwLdBBAtky6eoBWRRrh8q76 9raK63egGli8/RYgC0hXKk0kKYhQpyP/FmvHJcl/O9KK/2DkclMrwi54uXNTf3chpDvSUevQcZ4 aB9FW9iG3kZL6VNh67QhnSwTkfVMnBUcmdhCV9CAFBL5DuCM 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 20 11:14:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Baryshkov X-Patchwork-Id: 13983823 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 11951C021B1 for ; Thu, 20 Feb 2025 11:15:18 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 8631D10E93E; Thu, 20 Feb 2025 11:15:17 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.b="f66OCZ76"; 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 46EAA10E94D for ; Thu, 20 Feb 2025 11:15:13 +0000 (UTC) Received: by mail-lf1-f41.google.com with SMTP id 2adb3069b0e04-5461a485aa2so780393e87.2 for ; Thu, 20 Feb 2025 03:15:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1740050111; x=1740654911; 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=9X5DqzSWRf6FCwakTqnI1Z6ip+HiUbF/QIcptAcLPLE=; b=f66OCZ7625BYtXJaIHbCtHrnDbF5CYlLwrmXM+rI/pfV+A3CpEMazDHZu7ZaRHnzcP JqbBO0/gmAV2y9NbztL3e5mhXODxASDCeyEBzWIA0xWjWqOKfKVqjqJg3PHO/uTBcI0W d1Xfs2vyiFQaaSZcnK8VbDaZLSaEiaURUWgECGwDjkVOdBpD+fK2nCaaKno8Q6ATRfuD M9hOYWx+OF3CpSxRkrF57f+qmOGUixsBJAN68+dsqiPjTxFVckFlwiy0KHcrih9sgmdd q1oRtbFLaxu5mltY8m6rg5RCTp+7E/9lYdGimRySw3LrvcZV3xP//Hr24EPibGWzKOjc VAuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740050111; x=1740654911; 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=9X5DqzSWRf6FCwakTqnI1Z6ip+HiUbF/QIcptAcLPLE=; b=a8xiU2JvvgUACiH6lb/IggSz2E9cIdrMbeOJ1sndik9WrQkDia5RpFV91d/sWppxR8 PJNA5Zu0ifoWNBJEmUSbipqHOLvs1K2icj13U8pwxasMRK6irUYgANJynclGEgpTMORK bDx9oYesW+sRF1TeaAAlHWf9i6VAGiB7HjbEtZbBDoOI5G64kKqxnaVnvu9iXn0tiF8s PsuZaRIgEUp9du1blgVQw65hKyz7rU2rQVZXPNlN4lfNaZouQEDMdjdG7MioQmTb5voL oUGTi5rvLxV0Sg4oW56enNtrK3+xg1dJROwlHuP2RNQ8EdWMr2WwTMm/92pTJOgXBQuP kdww== X-Forwarded-Encrypted: i=1; AJvYcCWMO74Dls9YXMefh2ayRBtg/ocpOad7J2OMOmLxgVilSaULN6TAMr6RMa+rUl93kpZFUC1mmspfInI=@lists.freedesktop.org X-Gm-Message-State: AOJu0Yz6tnxR+TQBTwVbQnpfyRA3N17yT6aI7XkS7HNnJt+DmahH9Dzn Cff1w90+gTxqbsewjkurfHUfzlK0TZf+t25ww/TEs98NWf6SwfDPB5Za2a69v5o= X-Gm-Gg: ASbGncvM9pX0ZI6xtI42liwzyv0I0QcSFT5tRebrcE75ZkQqaTbwnFhkmGCM7CgLOG4 oyJCwUTVQkt05PfjdEV9D7CCaBjTGJzAiDf+AywCuNEXsrFZqEiR2OfrpuvxTjQnS2PkYGsbfJR RCVhLYR2MImk25f1gft6qnY30fr/6LJDCVEpZeyGsyhol003F4+dk8t2SE0kHdauwfcGTEeK91/ FhFEnZdMe78Vj07Uemczk76DFH5P6ASs+exqv9eyEPKI3J+KKVXFJXxV7z3+SRDX+BJuMcUSwz+ Go/f79g7SoMbxOMtNli7mdk= X-Google-Smtp-Source: AGHT+IEBrH7t5T3Pj2WB/YKjyu6Tt9mfV/BJf6mygTdxQLlHJOo6nI55pj3svLEpB1+vdLAfNkGcnQ== X-Received: by 2002:a05:6512:68c:b0:543:e406:6363 with SMTP id 2adb3069b0e04-5462eedb651mr3405483e87.3.1740050111516; Thu, 20 Feb 2025 03:15:11 -0800 (PST) Received: from umbar.lan ([192.130.178.90]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-545297856c6sm2056164e87.142.2025.02.20.03.15.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Feb 2025 03:15:11 -0800 (PST) From: Dmitry Baryshkov Date: Thu, 20 Feb 2025 13:14:49 +0200 Subject: [PATCH v2 7/7] arm: dts: qcom: apq8064: link LVDS clocks MIME-Version: 1.0 Message-Id: <20250220-fd-mdp4-lvds-v2-7-15afe5578a31@linaro.org> References: <20250220-fd-mdp4-lvds-v2-0-15afe5578a31@linaro.org> In-Reply-To: <20250220-fd-mdp4-lvds-v2-0-15afe5578a31@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=1634; i=dmitry.baryshkov@linaro.org; h=from:subject:message-id; bh=d0CtcQf8Wv3lL9BY8WXV1YwbKLOoSAl/tzsPQ0leEnU=; b=owEBbQGS/pANAwAKAYs8ij4CKSjVAcsmYgBntw6sydCzdr3lq263K0JOQk4Qc0tnyxdU2wME+ N15Skc4LBWJATMEAAEKAB0WIQRMcISVXLJjVvC4lX+LPIo+Aiko1QUCZ7cOrAAKCRCLPIo+Aiko 1a22B/4pss99hBOLDX1XScPaKx+olriF4M0K8pHizkh00Z3WXSnIrKWJXBFmoeXMv3qVLJGrM0t XYV/MGe18IURcZhSkygCpi9HvJpgzK1QVEW74QVH9x9GSMrWQba0SLDX1XLzOdGYooiBB5mUI8E EuXd973XQNSA8aWj4ilqqFrzPvd+O7wYJPNC8s8WnG7Zt3Gz8FuIW5NzveuDEk4+d2delGqk9PY Nuxg8zf+Nxh9tMnz6to4uG9vp3dw8eB62vBCBvfcsgEzqok9at27cUaEEKlbBieluMZ6W4HKacr IO+VeB/mBl7Pa5mhesh4KgO9VbWqQ5+a9Jc65SqVnFSdjklR 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. Signed-off-by: Dmitry Baryshkov Reviewed-by: Konrad Dybcio --- 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