From patchwork Thu Apr 27 14:29:28 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Francesco Dolcini X-Patchwork-Id: 88285 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp312393vqo; Thu, 27 Apr 2023 07:34:59 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6sUTbNOYWgswvJEBl/98Io2teoP9uYM28joEJ/rjOCslVVE9y0vOwgZgDyP0Li4Ewrgt1M X-Received: by 2002:a05:6a20:394a:b0:ec:5eb2:a2bb with SMTP id r10-20020a056a20394a00b000ec5eb2a2bbmr2419183pzg.61.1682606098819; Thu, 27 Apr 2023 07:34:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682606098; cv=none; d=google.com; s=arc-20160816; b=l9j9pqyTRReqEo+eP3PBWVhilzYiHSK+Qv+ipMZdR5Q5XzVvnZFRQjSe8hlKhRrPHb Vh2CiI1xct6yqtvwVpzGu5TMYsg6FH2D/xarzo0Dty9MDl+DZyj/FKbZBr+8a5X4pIV5 90mstkIx4nxPfNcp135xW9g2OYgiPqeVBiYXC9wZF9tuhfA94GPpDo6+YzsFDXK9i3vR J9hEb3zgjltCF8Z8FPosuqyCIEDLjxNVZcsZSUNP1dWIqI9IfAiuCxTZIvV0RCdbosBY wO0haTpt2vro4hf/rp8OkdIdr7Rc6PgaA44JkoylDspqGhysuSsIlYT83eSkGA8ZE66Q IJjA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=AgCbS65Z6arsdaarFfPoTaGN82Mu54ilD1aXoRZPAFY=; b=v2o13RWEJiuGvJWgsui1fdLIKXsBHiJjxY8pLlXdqebs8fCu/WhHk9jfvMdslMwhmr UfdyI7hzecs5SU1LUbi1y024qBVGPd4GiS/2VYuw8aHbJ2OoT50R/vWEiTmlXyJYcDE3 eoZdSD3pOkXNzvsCJafd0s80zKMfx0DDW3Gpxa0AR0FNxbFRXpbiavCR0g/lfN79toQL DopaYQkdOpxksUGmq/Fof3LMQoIdB3m5fT4mtz04XwEpqAdvTobfz73a8/GiCwNk5zmg /4xTW53BAHt4N4Umz09WiuupBfuyGamrraZ0ig7b01O48f8qt5MCUi+tXgHcWsuH2FKM vgAA== 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 197-20020a6300ce000000b0051b5ceff4b1si18696878pga.404.2023.04.27.07.34.42; Thu, 27 Apr 2023 07:34:58 -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 S244095AbjD0Oaf (ORCPT + 99 others); Thu, 27 Apr 2023 10:30:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49858 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S243431AbjD0OaT (ORCPT ); Thu, 27 Apr 2023 10:30:19 -0400 Received: from mail11.truemail.it (mail11.truemail.it [IPv6:2001:4b7e:0:8::81]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3BA685BB2 for ; Thu, 27 Apr 2023 07:29:44 -0700 (PDT) Received: from francesco-nb.pivistrello.it (93-49-2-63.ip317.fastwebnet.it [93.49.2.63]) by mail11.truemail.it (Postfix) with ESMTPA id C28EC20B57; Thu, 27 Apr 2023 16:29:40 +0200 (CEST) From: Francesco Dolcini To: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , tomi.valkeinen@ideasonboard.com, dri-devel@lists.freedesktop.org Cc: Francesco Dolcini , David Airlie , Daniel Vetter , linux-kernel@vger.kernel.org Subject: [PATCH v1 3/9] drm/bridge: tc358768: fix PLL target frequency Date: Thu, 27 Apr 2023 16:29:28 +0200 Message-Id: <20230427142934.55435-4-francesco@dolcini.it> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230427142934.55435-1-francesco@dolcini.it> References: <20230427142934.55435-1-francesco@dolcini.it> MIME-Version: 1.0 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_PASS, SPF_PASS,T_SCC_BODY_TEXT_LINE 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: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1764340372534324377?= X-GMAIL-MSGID: =?utf-8?q?1764340372534324377?= From: Francesco Dolcini Correctly compute the PLL target frequency, the current formula works correctly only when the input bus width is 24bit, actually to properly compute the PLL target frequency what is relevant is the bits-per-pixel on the DSI link. No regression expected since the DSI format is currently hard-coded as MIPI_DSI_FMT_RGB888. Fixes: ff1ca6397b1d ("drm/bridge: Add tc358768 driver") Signed-off-by: Francesco Dolcini Reviewed-by: Robert Foss --- drivers/gpu/drm/bridge/tc358768.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/bridge/tc358768.c b/drivers/gpu/drm/bridge/tc358768.c index e9e3f9e02bba..dba1bf3912f1 100644 --- a/drivers/gpu/drm/bridge/tc358768.c +++ b/drivers/gpu/drm/bridge/tc358768.c @@ -146,6 +146,7 @@ struct tc358768_priv { u32 pd_lines; /* number of Parallel Port Input Data Lines */ u32 dsi_lanes; /* number of DSI Lanes */ + u32 dsi_bpp; /* number of Bits Per Pixel over DSI */ /* Parameters for PLL programming */ u32 fbd; /* PLL feedback divider */ @@ -284,12 +285,12 @@ static void tc358768_hw_disable(struct tc358768_priv *priv) static u32 tc358768_pll_to_pclk(struct tc358768_priv *priv, u32 pll_clk) { - return (u32)div_u64((u64)pll_clk * priv->dsi_lanes, priv->pd_lines); + return (u32)div_u64((u64)pll_clk * priv->dsi_lanes, priv->dsi_bpp); } static u32 tc358768_pclk_to_pll(struct tc358768_priv *priv, u32 pclk) { - return (u32)div_u64((u64)pclk * priv->pd_lines, priv->dsi_lanes); + return (u32)div_u64((u64)pclk * priv->dsi_bpp, priv->dsi_lanes); } static int tc358768_calc_pll(struct tc358768_priv *priv, @@ -426,6 +427,7 @@ static int tc358768_dsi_host_attach(struct mipi_dsi_host *host, priv->output.panel = panel; priv->dsi_lanes = dev->lanes; + priv->dsi_bpp = mipi_dsi_pixel_format_to_bpp(dev->format); /* get input ep (port0/endpoint0) */ ret = -EINVAL; @@ -437,7 +439,7 @@ static int tc358768_dsi_host_attach(struct mipi_dsi_host *host, } if (ret) - priv->pd_lines = mipi_dsi_pixel_format_to_bpp(dev->format); + priv->pd_lines = priv->dsi_bpp; drm_bridge_add(&priv->bridge);