From patchwork Mon Aug 28 15:59:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Tretter X-Patchwork-Id: 137048 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a7d1:0:b0:3f2:4152:657d with SMTP id p17csp3433681vqm; Mon, 28 Aug 2023 09:14:32 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFBZQWj7m/f6JPUkP3HbGB7Ou/YOBeJxNgEdDZTxylInY1146kF1qHuaEByPPhD/b5Uc2Xk X-Received: by 2002:a17:903:32cf:b0:1bf:193a:70b6 with SMTP id i15-20020a17090332cf00b001bf193a70b6mr106671plr.5.1693239272108; Mon, 28 Aug 2023 09:14:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693239272; cv=none; d=google.com; s=arc-20160816; b=zQ9LFl86sPNP0zdB/EdwnloDFuWMPQKkwuk38G94uGFSKs3x11FPk9odhLLE6c8U/Y Aov7zSAijOIafzbvvsFLM22Umu/yjqRmaHp5tXEPYVsGLEsN6Je05eVDxkt0Ot4NJghq FQNBVO0Kla3yeaczgC3sexKjoZZUniIHJ8momoAOinMMay5SOiNuz40wBfxTGJkMrWXj NiqDnlhPCK/gZWiritNJFuFIZQKZ5RjFjRT4y+na7KSYvkq2sQ7oFzjH16dwvClNkUw/ iCNXe6Tcp5/06/EP0wgCp1V3pZosN2C/cAQemSKlROnAKlIEqX2eiW0Ela6SFC+3NWvp IFKg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from; bh=VoH3y4pBkHYT9ff+16Fn517/F4sH+aJeNpc2NgHHSPw=; fh=S9QYf7af0Dx+bFvFpm4ZC/80dQFmXfHvpxE2lPQy7L8=; b=ZlrPhN/4HNwdpzXoGA+CwFpzZgtSGA7TsZfEOmTyUp/W8JIgHc4hgTYNQtPe1Mt09B kz3aAhPzyb+HpqnRc3y26kZT+r5kNkT7H2Mr68XVc9fGtJzuxuQ3IhbThCYiFmvSyRrm S6zcRxXx92O+zF7v/b1Btwu7zDrJ1dxm3v1Z8eO7iF/5RfEp2vOLupqjSThRzKV9RD8X L70UdQlY+P8QGAl2ntjm+itqQEyMCDYzPop4bKgZGeiREl8hXtLkof5mTG06NRH6fdcX 9ZfYSEVu+I0rqwsoPvJWPaFQ4w0QzvJa7LfiGy11eT0xzgfAe5Bq6LCE41k9S09Y6mVY I7lQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id jf15-20020a170903268f00b001bb993ef74bsi7417095plb.540.2023.08.28.09.14.06; Mon, 28 Aug 2023 09:14:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232603AbjH1P7x (ORCPT + 99 others); Mon, 28 Aug 2023 11:59:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40974 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230234AbjH1P7V (ORCPT ); Mon, 28 Aug 2023 11:59:21 -0400 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CEB1610C for ; Mon, 28 Aug 2023 08:59:17 -0700 (PDT) Received: from dude05.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::54]) by metis.ext.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1qaedy-0005pk-Sk; Mon, 28 Aug 2023 17:59:10 +0200 From: Michael Tretter Date: Mon, 28 Aug 2023 17:59:06 +0200 Subject: [PATCH 1/5] drm/bridge: samsung-dsim: add more mipi-dsi device debug information MIME-Version: 1.0 Message-Id: <20230818-samsung-dsim-v1-1-b39716db6b7a@pengutronix.de> References: <20230818-samsung-dsim-v1-0-b39716db6b7a@pengutronix.de> In-Reply-To: <20230818-samsung-dsim-v1-0-b39716db6b7a@pengutronix.de> To: Inki Dae , Jagan Teki , Marek Szyprowski , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , David Airlie , Daniel Vetter Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, kernel@pengutronix.de, Michael Tretter , Marco Felsch X-Mailer: b4 0.12.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:1101:1d::54 X-SA-Exim-Mail-From: m.tretter@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1775490063060799270 X-GMAIL-MSGID: 1775490063060799270 From: Marco Felsch Since the MIPI configuration can be changed on demand it is very useful to print more MIPI settings during the MIPI device attach step. Signed-off-by: Marco Felsch Signed-off-by: Michael Tretter --- drivers/gpu/drm/bridge/samsung-dsim.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge/samsung-dsim.c index 73ec60757dbc..6778f1751faa 100644 --- a/drivers/gpu/drm/bridge/samsung-dsim.c +++ b/drivers/gpu/drm/bridge/samsung-dsim.c @@ -1711,7 +1711,10 @@ static int samsung_dsim_host_attach(struct mipi_dsi_host *host, return ret; } - DRM_DEV_INFO(dev, "Attached %s device\n", device->name); + DRM_DEV_INFO(dev, "Attached %s device (lanes:%d bpp:%d mode-flags:0x%lx)\n", + device->name, device->lanes, + mipi_dsi_pixel_format_to_bpp(device->format), + device->mode_flags); drm_bridge_add(&dsi->bridge); From patchwork Mon Aug 28 15:59:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Tretter X-Patchwork-Id: 137058 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a7d1:0:b0:3f2:4152:657d with SMTP id p17csp3469471vqm; Mon, 28 Aug 2023 10:13:33 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFOL5ShMbbl1dtJWH2pT++IXkxbWuAxypuudw/sQhyz6d2TRF6lJrxxUqx3cBB7scA0W+7Z X-Received: by 2002:a05:6a00:24c7:b0:68c:3f2:5ff9 with SMTP id d7-20020a056a0024c700b0068c03f25ff9mr12653422pfv.7.1693242812736; Mon, 28 Aug 2023 10:13:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693242812; cv=none; d=google.com; s=arc-20160816; b=TIBEdM/qV2zM2NxjzgzNHh2VGlTXn2NbkqDVBCQdtJBQMIiMkblT2PJCiCSNCCbLq4 mY2USYbK9oM23RFJSiI2owRSjGiGTYDT9CCHgfQ8sBOVqlNt/37G9XQsthB4spY0vx7d yCut/yv3cvstu7E8SV4Iu+b2ZwyklamDvMh39NRfaktwzHVt3zQPIZwwaFQ1MQxQ/upe mNvB/28yebiUh/dA3Xb1UB+la3dSPw2WfQOjncHtGMPTwXDIGbvTL5atfbzhSEGJ1J4y 9wIf+4IlI9n/np2sviTqnlVvwGyfuSbVPLo/uhWNtqZ5z1mLwhlQaXFv7TCQOt0I7LWp FjTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from; bh=cVk9lOWR6PkswaB9bvBF48/hHpTHfRHph5Buhs3/tEM=; fh=pKDXkxIseImAYs4+ZQjMc4DXEQVqgI/B2AVAWtKoC1k=; b=gV+rNODKXv9uOwk1LjGQwzggyEe9uc2L1FFnG09JtzJYcrAq1lHcdeE3+5o5xeRTvi 8TUpVoqsQx1/yJLPsN3uo2D+wPch4CA3ywfisKF+llqXgF5zGkHa5uNLK7aP728ApGhE L2J3Dcprb3tCq+zVoHmHjN7RjLGAKS5NpS3NzQh/C/oidXCeKhNAP7dojrPQrjxJM2fl Mczdh3lMdmpNj9vTYtt7tyHdG6u0vXqV/QNzz9lxfR+PmdTDXUMyJ3C39LHLS6sTH8Dv ZHs2+rtDtoDkUi8TIiDUA09iCX7YYM9cU3JZnDpjJ8mM6pcvhmK64UOBDLY6kAKWIymO ePHw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k18-20020aa78212000000b0068be9437c0esi1241089pfi.215.2023.08.28.10.13.10; Mon, 28 Aug 2023 10:13:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232634AbjH1P76 (ORCPT + 99 others); Mon, 28 Aug 2023 11:59:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40958 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229664AbjH1P7T (ORCPT ); Mon, 28 Aug 2023 11:59:19 -0400 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 755A010B for ; Mon, 28 Aug 2023 08:59:17 -0700 (PDT) Received: from dude05.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::54]) by metis.ext.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1qaedz-0005pk-GH; Mon, 28 Aug 2023 17:59:11 +0200 From: Michael Tretter Date: Mon, 28 Aug 2023 17:59:07 +0200 Subject: [PATCH 2/5] drm/bridge: samsung-dsim: reread ref clock before configuring PLL MIME-Version: 1.0 Message-Id: <20230818-samsung-dsim-v1-2-b39716db6b7a@pengutronix.de> References: <20230818-samsung-dsim-v1-0-b39716db6b7a@pengutronix.de> In-Reply-To: <20230818-samsung-dsim-v1-0-b39716db6b7a@pengutronix.de> To: Inki Dae , Jagan Teki , Marek Szyprowski , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , David Airlie , Daniel Vetter Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, kernel@pengutronix.de, Michael Tretter X-Mailer: b4 0.12.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:1101:1d::54 X-SA-Exim-Mail-From: m.tretter@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1775493775466437385 X-GMAIL-MSGID: 1775493775466437385 The PLL reference clock may change at runtime. Thus, reading the clock rate during probe is not sufficient to correctly configure the PLL for the expected hs clock. Read the actual rate of the reference clock before calculating the PLL configuration parameters. Signed-off-by: Michael Tretter --- drivers/gpu/drm/bridge/samsung-dsim.c | 16 +++++++++------- include/drm/bridge/samsung-dsim.h | 1 + 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge/samsung-dsim.c index 6778f1751faa..da90c2038042 100644 --- a/drivers/gpu/drm/bridge/samsung-dsim.c +++ b/drivers/gpu/drm/bridge/samsung-dsim.c @@ -611,7 +611,12 @@ static unsigned long samsung_dsim_set_pll(struct samsung_dsim *dsi, u16 m; u32 reg; - fin = dsi->pll_clk_rate; + if (dsi->pll_clk) + fin = clk_get_rate(dsi->pll_clk); + else + fin = dsi->pll_clk_rate; + dev_dbg(dsi->dev, "PLL ref clock freq %lu\n", fin); + fout = samsung_dsim_pll_find_pms(dsi, fin, freq, &p, &m, &s); if (!fout) { dev_err(dsi->dev, @@ -1821,18 +1826,15 @@ static int samsung_dsim_parse_dt(struct samsung_dsim *dsi) u32 lane_polarities[5] = { 0 }; struct device_node *endpoint; int i, nr_lanes, ret; - struct clk *pll_clk; ret = samsung_dsim_of_read_u32(node, "samsung,pll-clock-frequency", &dsi->pll_clk_rate, 1); /* If it doesn't exist, read it from the clock instead of failing */ if (ret < 0) { dev_dbg(dev, "Using sclk_mipi for pll clock frequency\n"); - pll_clk = devm_clk_get(dev, "sclk_mipi"); - if (!IS_ERR(pll_clk)) - dsi->pll_clk_rate = clk_get_rate(pll_clk); - else - return PTR_ERR(pll_clk); + dsi->pll_clk = devm_clk_get(dev, "sclk_mipi"); + if (IS_ERR(dsi->pll_clk)) + return PTR_ERR(dsi->pll_clk); } /* If it doesn't exist, use pixel clock instead of failing */ diff --git a/include/drm/bridge/samsung-dsim.h b/include/drm/bridge/samsung-dsim.h index 05100e91ecb9..31ff88f152fb 100644 --- a/include/drm/bridge/samsung-dsim.h +++ b/include/drm/bridge/samsung-dsim.h @@ -87,6 +87,7 @@ struct samsung_dsim { void __iomem *reg_base; struct phy *phy; struct clk **clks; + struct clk *pll_clk; struct regulator_bulk_data supplies[2]; int irq; struct gpio_desc *te_gpio; From patchwork Mon Aug 28 15:59:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Tretter X-Patchwork-Id: 137051 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a7d1:0:b0:3f2:4152:657d with SMTP id p17csp3457604vqm; Mon, 28 Aug 2023 09:54:42 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGBZ6k64GapNQtYpWg9WMPOSMm+zfTd4peSt0PvqSN1SFaRnEHyW+22IfVOa4rNrwH1tHp8 X-Received: by 2002:a17:906:8466:b0:9a5:846d:d820 with SMTP id hx6-20020a170906846600b009a5846dd820mr6144235ejc.16.1693241682449; Mon, 28 Aug 2023 09:54:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693241682; cv=none; d=google.com; s=arc-20160816; b=qRe13uvStRgGVXV6oBsJbifZr/0Up9EOsDb+V2iTMVwa3trXsqVizHItr22r6DHA/q Ef3vABrvQjImCMoKD0oykk47X0NTTEXXXIQmBpFRXbcnDjtsejzmlsCwe6dA5FjjSVEh 70xL1loTedHpFLfr12l1JhMVyBdJNklUmOL6NIR0qh11JPGDHr97IxPAxyr71MCJndKR kOS9KmTJLLE3bDfA0mCy54rQ8SUSz84TSiodb8MsQNpeNMrMZt6FgdzN6ZlSZmIpaKk2 nGuvdm/PTCFEbQtiDLA4D3PkZOpzdFFxYKxFjRBmVfql8cm+k3/SSgWJI3yUZ10ghvbb G+mw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from; bh=KEbHOcg0mUA73hwANQLthBWtbFGakynd1t3RcFk2ros=; fh=pKDXkxIseImAYs4+ZQjMc4DXEQVqgI/B2AVAWtKoC1k=; b=XXCUd2svm9MNBVHMrjTzidhZ+ZZo8bHOkx5DW4FNS1+x+eQyWANTyFtd2RBnjgkPJF +As4zCVaseuwLwB1vUs6LiWtXZi7Uee63b6GKMJwxi6EYwsr4qbO/PiwujwZ8t5xlGUU Za6EvLk0j29wW7Q25Qg7zjwrP0EEKpbIQJN3fVYNroJjuZ5Vy+87ZUNAxsKJKKSWay4f 7ISmaXYLn8IaSGWaXxqlMJHU8dHpeeO64s5ZqTrQUWR2rUolSrR1WMFt/EFpbS785ewa hAiYclel49Si5n6LponwTju4u8gjtln3Eh2dcQkpaQzS9kkfh2TFQwQ5LI7nyXObNVLC GBsA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id hb13-20020a170906b88d00b009a1a2126de4si2713644ejb.329.2023.08.28.09.54.03; Mon, 28 Aug 2023 09:54:42 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232640AbjH1QAA (ORCPT + 99 others); Mon, 28 Aug 2023 12:00:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40976 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229746AbjH1P7V (ORCPT ); Mon, 28 Aug 2023 11:59:21 -0400 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B12E2115 for ; Mon, 28 Aug 2023 08:59:18 -0700 (PDT) Received: from dude05.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::54]) by metis.ext.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1qaee0-0005pk-3q; Mon, 28 Aug 2023 17:59:12 +0200 From: Michael Tretter Date: Mon, 28 Aug 2023 17:59:08 +0200 Subject: [PATCH 3/5] drm/bridge: samsung-dsim: update PLL reference clock MIME-Version: 1.0 Message-Id: <20230818-samsung-dsim-v1-3-b39716db6b7a@pengutronix.de> References: <20230818-samsung-dsim-v1-0-b39716db6b7a@pengutronix.de> In-Reply-To: <20230818-samsung-dsim-v1-0-b39716db6b7a@pengutronix.de> To: Inki Dae , Jagan Teki , Marek Szyprowski , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , David Airlie , Daniel Vetter Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, kernel@pengutronix.de, Michael Tretter X-Mailer: b4 0.12.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:1101:1d::54 X-SA-Exim-Mail-From: m.tretter@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1775492590158301121 X-GMAIL-MSGID: 1775492590158301121 The PLL requires a clock between 2 MHz and 30 MHz after the pre-divider. The reference clock for the PLL may change due to changes to it's parent clock. Thus, the frequency may be out of range or unsuited for generating the high speed clock for MIPI DSI. Try to keep the pre-devider small, and set the reference clock close to 30 MHz before recalculating the PLL configuration. Use a divider with a power of two for the reference clock as this seems to work best in my tests. Signed-off-by: Michael Tretter Reviewed-by: Marco Felsch --- drivers/gpu/drm/bridge/samsung-dsim.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge/samsung-dsim.c index da90c2038042..4de6e4f116db 100644 --- a/drivers/gpu/drm/bridge/samsung-dsim.c +++ b/drivers/gpu/drm/bridge/samsung-dsim.c @@ -611,10 +611,21 @@ static unsigned long samsung_dsim_set_pll(struct samsung_dsim *dsi, u16 m; u32 reg; - if (dsi->pll_clk) + if (dsi->pll_clk) { + /* + * Ensure that the reference clock is generated with a power of + * two divider from its parent, but close to the PLLs upper + * limit of the valid range of 2 MHz to 30 MHz. + */ + fin = clk_get_rate(clk_get_parent(dsi->pll_clk)); + while (fin > 30 * MHZ) + fin = fin / 2; + clk_set_rate(dsi->pll_clk, fin); + fin = clk_get_rate(dsi->pll_clk); - else + } else { fin = dsi->pll_clk_rate; + } dev_dbg(dsi->dev, "PLL ref clock freq %lu\n", fin); fout = samsung_dsim_pll_find_pms(dsi, fin, freq, &p, &m, &s); From patchwork Mon Aug 28 15:59:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Tretter X-Patchwork-Id: 137059 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a7d1:0:b0:3f2:4152:657d with SMTP id p17csp3469483vqm; Mon, 28 Aug 2023 10:13:34 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFY/IpFB2oL/A9g6wt2uC4I3YMLw2/0OkADgDOkMLY4RmgWfPdEmnYvq994As4IftWK4Nqb X-Received: by 2002:a17:906:20d7:b0:9a2:2015:3aa with SMTP id c23-20020a17090620d700b009a2201503aamr6996802ejc.7.1693242814026; Mon, 28 Aug 2023 10:13:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693242814; cv=none; d=google.com; s=arc-20160816; b=EEt2aopxHoSI3uYLK4pGqD3UZ8aG7pP2Blyt1zJrXYFanU2eRENNXaB3mdyXZcH1g5 ObGUZnhM7fTlWyunZg4+ZD9iYckwipb63qIoQp9WQNT5CbXREQZaFSQH7zDhC+5PdaQE DLlnwjZ9FvURZbwyCEh+QLMdqE3Fx5MupKcj4RNY7priKcftHMDswkqr8PbuhQuiet3z qkbS4HGhiRWxOgV6xlO9Oam3lSqkIr75Dv4VQA6vyvfG7+cYeiFWETbRB2kjUPo9+C+3 jX3t43J+hd/oXTHR3kY3A+W6uYcLRT6KYq5pR2BytwMl7UN+OEQ4V13m1cRne4SpoL9D 3qvA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from; bh=HK98IdkCnPnh/6qPTl8WfOACiLFNUJasLNQj/kQCtBc=; fh=pKDXkxIseImAYs4+ZQjMc4DXEQVqgI/B2AVAWtKoC1k=; b=dtRpisYnypoqvdgTi0SIBGQESrLnx6EObFlPQxdTKDAgcw7kW9VWDhtsET856uy17q PR5SxYCRkxHwEbJJa0QNz3SMvaaUrtwlTGJlptjeGhqhqGMgX8pwQiclzMTXHtWCWv7h RayUombplIzhM1WxfBAYAF+eFDTHMVn2FOvB8mSj9XvNWjGGyYdY//jTWkC2u9B9LTWJ qp/oiYkHdUu10DluFYkan+i3+m0F/ba7WNw+3MFFzHzcu7yaAC3orIy71GAx8iBpm6tT 3QkLxjag6du2s8tH9XQ5kL2Z2TM4taWDTEX3yaErPQEJoq5rn0OIa5q2HdDrKcisTSUE RUlg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id sd15-20020a170906ce2f00b00992acf9b9c9si2657288ejb.621.2023.08.28.10.12.53; Mon, 28 Aug 2023 10:13:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232613AbjH1P7y (ORCPT + 99 others); Mon, 28 Aug 2023 11:59:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58444 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231271AbjH1P7V (ORCPT ); Mon, 28 Aug 2023 11:59:21 -0400 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4989E119 for ; Mon, 28 Aug 2023 08:59:19 -0700 (PDT) Received: from dude05.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::54]) by metis.ext.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1qaee0-0005pk-N8; Mon, 28 Aug 2023 17:59:12 +0200 From: Michael Tretter Date: Mon, 28 Aug 2023 17:59:09 +0200 Subject: [PATCH 4/5] drm/bridge: samsung-dsim: adjust porches by rounding up MIME-Version: 1.0 Message-Id: <20230818-samsung-dsim-v1-4-b39716db6b7a@pengutronix.de> References: <20230818-samsung-dsim-v1-0-b39716db6b7a@pengutronix.de> In-Reply-To: <20230818-samsung-dsim-v1-0-b39716db6b7a@pengutronix.de> To: Inki Dae , Jagan Teki , Marek Szyprowski , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , David Airlie , Daniel Vetter Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, kernel@pengutronix.de, Michael Tretter X-Mailer: b4 0.12.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:1101:1d::54 X-SA-Exim-Mail-From: m.tretter@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1775493776901729121 X-GMAIL-MSGID: 1775493776901729121 The porches must be rounded up to make the samsung-dsim work. Signed-off-by: Michael Tretter --- drivers/gpu/drm/bridge/samsung-dsim.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge/samsung-dsim.c index 4de6e4f116db..459be953be55 100644 --- a/drivers/gpu/drm/bridge/samsung-dsim.c +++ b/drivers/gpu/drm/bridge/samsung-dsim.c @@ -974,9 +974,9 @@ static void samsung_dsim_set_display_mode(struct samsung_dsim *dsi) if (dsi->mode_flags & MIPI_DSI_MODE_VIDEO) { int byte_clk_khz = dsi->hs_clock / 1000 / 8; - int hfp = (m->hsync_start - m->hdisplay) * byte_clk_khz / m->clock; - int hbp = (m->htotal - m->hsync_end) * byte_clk_khz / m->clock; - int hsa = (m->hsync_end - m->hsync_start) * byte_clk_khz / m->clock; + int hfp = DIV_ROUND_UP((m->hsync_start - m->hdisplay) * byte_clk_khz, m->clock); + int hbp = DIV_ROUND_UP((m->htotal - m->hsync_end) * byte_clk_khz, m->clock); + int hsa = DIV_ROUND_UP((m->hsync_end - m->hsync_start) * byte_clk_khz, m->clock); /* remove packet overhead when possible */ hfp = max(hfp - 6, 0); From patchwork Mon Aug 28 15:59:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Tretter X-Patchwork-Id: 137057 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a7d1:0:b0:3f2:4152:657d with SMTP id p17csp3468443vqm; Mon, 28 Aug 2023 10:11:46 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEiAfRAuHT8vuJJ9qWoRj13PfTmdmgTQROffTjmJf2fxMGaOadEsYcM9D4ijVnDGg4Oedjn X-Received: by 2002:a05:6870:6387:b0:1bb:8333:ab8a with SMTP id t7-20020a056870638700b001bb8333ab8amr13758187oap.4.1693242706376; Mon, 28 Aug 2023 10:11:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693242706; cv=none; d=google.com; s=arc-20160816; b=hfRQTgnblraOot5BvLuy0dpy9nrPD/gQTanAu4PIF6BdPMwYklv+jYyrrD67zI9BJU G1Ml2OnsyMSImYFNCEKESuJZCFG5xY6InfHLTGxaN8GcGBHjIIflxYtWB9PEBEVhJBjx hymhchd+fBgb412E3MgG8gLmPcja/bQdZnk1OD17qsvi1qebSUc8G9/fPrzv6pM9NpBC Ts4EHqFaOski3rdRqsQtGdkdK0rOq7crIrjQOwGM/Zu7i+Pe3FTaQGnUvr/W/K3sysdD YkRnoCcRRwE+/VqCfa3LyHjwizkbfASD2NPfffYqZrKeTYgh/Se0njcpYXrTxMj2uEN4 hK2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from; bh=RH+TeAqTA1DOSx/GfLi7JQLQNPFy+XqKVP41rugU6eA=; fh=pKDXkxIseImAYs4+ZQjMc4DXEQVqgI/B2AVAWtKoC1k=; b=uOLxHb91+jXv3Pmqei5QNX3Pb+aaW3XKn7UvP1wYjlt7ZQHvOjLwhw7q9X+3jXwwGF IOAylm3Z6LOKQq4Wi0X6RUhxAjxsjWIY1qxayZWmpoC5O1vrTLvsDBReZly/ZfJiHbcB Xij9n8G8Z/+tNRD6RIaeTPL16gMM3okfXDgEhIahKcwGOiQGlnVek8zY9tQx5PfJ6wY/ jfRLUim0PojqsDnhyU+K4Cr2cuqhfqMWVDWg5anzSmxJ+CEk5CY9DUNK2AjB4SzaUSb4 rOR/2teTOHwHqGODdxdEPRgo/xzUF6EsIVzns1Pg0CIafPV9co/zYvALTN83vBaJgLmp pRFA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 11-20020a63020b000000b0054fdf58c23esi7915959pgc.680.2023.08.28.10.11.21; Mon, 28 Aug 2023 10:11:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232584AbjH1P7w (ORCPT + 99 others); Mon, 28 Aug 2023 11:59:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58460 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232596AbjH1P7W (ORCPT ); Mon, 28 Aug 2023 11:59:22 -0400 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4BCCA123 for ; Mon, 28 Aug 2023 08:59:19 -0700 (PDT) Received: from dude05.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::54]) by metis.ext.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1qaee1-0005pk-FX; Mon, 28 Aug 2023 17:59:13 +0200 From: Michael Tretter Date: Mon, 28 Aug 2023 17:59:10 +0200 Subject: [PATCH 5/5] drm/bridge: samsung-dsim: calculate porches in Hz MIME-Version: 1.0 Message-Id: <20230818-samsung-dsim-v1-5-b39716db6b7a@pengutronix.de> References: <20230818-samsung-dsim-v1-0-b39716db6b7a@pengutronix.de> In-Reply-To: <20230818-samsung-dsim-v1-0-b39716db6b7a@pengutronix.de> To: Inki Dae , Jagan Teki , Marek Szyprowski , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , David Airlie , Daniel Vetter Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, kernel@pengutronix.de, Michael Tretter X-Mailer: b4 0.12.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:1101:1d::54 X-SA-Exim-Mail-From: m.tretter@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1775493663919242977 X-GMAIL-MSGID: 1775493663919242977 Calculating the byte_clk in kHz is imprecise for a hs_clock of 55687500 Hz, which may be used with a pixel clock of 74.25 MHz with mode 1920x1080-30. Fix the calculation by using HZ instead of kHZ. This requires to change the type to u64 to prevent overflows of the integer type. Signed-off-by: Michael Tretter --- drivers/gpu/drm/bridge/samsung-dsim.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge/samsung-dsim.c index 459be953be55..eb7aca2b9ab7 100644 --- a/drivers/gpu/drm/bridge/samsung-dsim.c +++ b/drivers/gpu/drm/bridge/samsung-dsim.c @@ -973,10 +973,12 @@ static void samsung_dsim_set_display_mode(struct samsung_dsim *dsi) u32 reg; if (dsi->mode_flags & MIPI_DSI_MODE_VIDEO) { - int byte_clk_khz = dsi->hs_clock / 1000 / 8; - int hfp = DIV_ROUND_UP((m->hsync_start - m->hdisplay) * byte_clk_khz, m->clock); - int hbp = DIV_ROUND_UP((m->htotal - m->hsync_end) * byte_clk_khz, m->clock); - int hsa = DIV_ROUND_UP((m->hsync_end - m->hsync_start) * byte_clk_khz, m->clock); + u64 byte_clk = dsi->hs_clock / 8; + u64 pix_clk = m->clock * 1000; + + int hfp = DIV64_U64_ROUND_UP((m->hsync_start - m->hdisplay) * byte_clk, pix_clk); + int hbp = DIV64_U64_ROUND_UP((m->htotal - m->hsync_end) * byte_clk, pix_clk); + int hsa = DIV64_U64_ROUND_UP((m->hsync_end - m->hsync_start) * byte_clk, pix_clk); /* remove packet overhead when possible */ hfp = max(hfp - 6, 0);