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);