From patchwork Fri Oct 6 15:07:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Tretter X-Patchwork-Id: 149294 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a888:0:b0:403:3b70:6f57 with SMTP id x8csp396694vqo; Fri, 6 Oct 2023 08:07:46 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG6nWALJKBtueFEc8hf0Gw03JUKolS64tukOcKo+LsoPDb3yBomqxrFpLit+htcxPhSH8cG X-Received: by 2002:a05:6e02:1c08:b0:34b:ad80:61c1 with SMTP id l8-20020a056e021c0800b0034bad8061c1mr10112837ilh.26.1696604865990; Fri, 06 Oct 2023 08:07:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696604865; cv=none; d=google.com; s=arc-20160816; b=qzZUYT1379fW2bdsUIswitC1BK5lHfJ2eOL0MT8X9ZMb9CbdojvIHoJP28nB0LVec/ cZpCrq/XJGzV0PX/tNxdorAZMiIYdAjS8OaNDbsuuMF00V0fOOSjwq97gCkclxVarYqU xKxRy5+X1kt2Q1glIgOAxz0MIFHKwb+wA6tDDj7leizZQaIwpe5sDaEAGf6YI2up8xYu TzvWVOUPoL/B7uHInQ3Pu/gNvLy7oDuHKjqY3cRGpfF/FRTG+faYreujNHTc4Kud79BW gMbAE7O6GPg7QztXFRe0mHRO0/g8zCqrVFA8+qKzV9ZumYaB41NVGJS8WPdE8lYmU1sy AG1w== 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=8qdSZxtCYb4Uabi+V7ZN0m8TS0ytyiUn0Bmh5IXTR04=; fh=wH9nxyUO+Gj9IJP7/Iz+xHyp2fkGcf6LG5mfY0IWEB4=; b=BJZoghItPCyI6W1eGT7IEmNgRRev9RabAFO5yDMFePNsxwzOZ0t9mr4RXv3ZxGtbqU N3+UAls/YwY1Mad1aV0U7kk1q5QCIZNbjPqTZk1yEiRAl8JGtNgUlXIi95rMtzfW7yUn V4+BX+mbtUGcEswC4jDsZQBS5z3sJ+uhD5+MQPCkU5hsNzUuL6cXkiyPBnbff4vNF1yH VtPxyno8eJuWmsGZ7CdUfRKRIdYSP1ATTcYdDp4fUQHjjQK/nd2grfqUCjGzpW+jho3f xYY2kgcbIir3k4X5DyaCmQZnokRHe/nNU3Ot+A+e7mFfmXEi167Obs+zNBDF/IseORzM wXnQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id bs63-20020a632842000000b0055c8d58cee9si3712453pgb.714.2023.10.06.08.07.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Oct 2023 08:07:45 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 47841806CC19; Fri, 6 Oct 2023 08:07:38 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232761AbjJFPHa (ORCPT + 18 others); Fri, 6 Oct 2023 11:07:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51508 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232733AbjJFPHR (ORCPT ); Fri, 6 Oct 2023 11:07:17 -0400 Received: from metis.whiteo.stw.pengutronix.de (metis.whiteo.stw.pengutronix.de [IPv6:2a0a:edc0:2:b01:1d::104]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7AC25CF for ; Fri, 6 Oct 2023 08:07:16 -0700 (PDT) Received: from dude05.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::54]) by metis.whiteo.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1qomPy-00051v-2n; Fri, 06 Oct 2023 17:07:06 +0200 From: Michael Tretter Date: Fri, 06 Oct 2023 17:07:03 +0200 Subject: [PATCH v2 1/5] drm/bridge: samsung-dsim: add more mipi-dsi device debug information MIME-Version: 1.0 Message-Id: <20230818-samsung-dsim-v2-1-846603df0e0a@pengutronix.de> References: <20230818-samsung-dsim-v2-0-846603df0e0a@pengutronix.de> In-Reply-To: <20230818-samsung-dsim-v2-0-846603df0e0a@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 , Adam Ford , Frieder Schrempf 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.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, 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-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Fri, 06 Oct 2023 08:07:38 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1779019143973080823 X-GMAIL-MSGID: 1779019143973080823 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 Reviewed-by: Adam Ford #imx8mm-beacon Tested-by: Adam Ford #imx8mm-beacon Reviewed-by: Inki Dae Acked-by: Inki Dae Tested-by: Frieder Schrempf # Kontron BL i.MX8MM + Waveshare 10.1inch HDMI LCD (E) Reviewed-by: Marco Felsch Signed-off-by: Michael Tretter --- Changes in v2: None --- 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 cf777bdb25d2..3e8ee9d73a72 100644 --- a/drivers/gpu/drm/bridge/samsung-dsim.c +++ b/drivers/gpu/drm/bridge/samsung-dsim.c @@ -1712,7 +1712,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 Fri Oct 6 15:07:04 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Tretter X-Patchwork-Id: 149292 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a888:0:b0:403:3b70:6f57 with SMTP id x8csp396424vqo; Fri, 6 Oct 2023 08:07:25 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE8sJuiWHYbqy7SWtOm1F7EAFXZRolBBRENJjiBo8YE362HJhYI9lsMegKzpKQXsTM4L4dO X-Received: by 2002:a05:6a20:2449:b0:15a:f4e:620d with SMTP id t9-20020a056a20244900b0015a0f4e620dmr10314252pzc.4.1696604845171; Fri, 06 Oct 2023 08:07:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696604845; cv=none; d=google.com; s=arc-20160816; b=v1kSK0jfdHrEHuA3rCCqRJaF26MTbTMkG8xXoo239tu7EK3aglDWsnb+qlvSOMBAg1 E9hUEIwMqPUM8QcEvMxv7BHYOzSQP3GjXze3JXSw+xmoCn9yW69takZavDJ6tKVkQDG0 Dsgh/R1hkLcUHR8v2uwxsNPQSN4KAbd1r0Gl2l4NUMtc8SaAqWS7eVfBdBEYL0TbE4Co RKCACvuJf0Y0WfJJZ9Y3dfQ/cL35xfUUP8nqPQligfuYQduU1g8+Tp7UR8ZzbjiOe4Qt ZAQ8h2PYsBjBvTYbai2kblhwx+x71Qix7lbHOBzlygAnSPbFQODHiveBv1Cni59dbRo+ Bs1g== 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=STNm79IFOuDdaCc/EcIB0tTm1U3nb9XVB+R32VijQVo=; fh=Uw6RirmC1fIrRwzp1BTxOykRc1xQ5VClnAdgGQxsZ+s=; b=TcCeN45rwtY6cXfqe8UyEmS7KAzw6RtoqniqDDzcSOBzOERUx5e4XguznMrbsAEkSJ YeZHDABFiIP4jZG73W1+fBBkrBbmVSG5uan8JyJOWzE5g4/GyxBJB97BTruEYfbEIm/t JB1bjbKX7jsxHt65ozVI54lR0UgCbNxg6A+++M347QFW3B08FrFtoWTDPBjgqVw6J0HU +tfByNfqYzkvaSPWrWA/HtI65guoGk8fA4hpG+/oT7tGrks79Nvd5+szLvmgZOcPUjrZ Be9kRCz7CdZ8LV5WG+U09GE8aBg/TQjsGsufJi4rPAjIrB3B2tmFlxwxOHac2WZuwi+7 VJ9w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id s30-20020a056a00179e00b00690bd5a0bc9si1755210pfg.360.2023.10.06.08.07.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Oct 2023 08:07:25 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 28DF98313345; Fri, 6 Oct 2023 08:07:16 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232711AbjJFPHL (ORCPT + 18 others); Fri, 6 Oct 2023 11:07:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57084 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232611AbjJFPHK (ORCPT ); Fri, 6 Oct 2023 11:07:10 -0400 Received: from metis.whiteo.stw.pengutronix.de (metis.whiteo.stw.pengutronix.de [IPv6:2a0a:edc0:2:b01:1d::104]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 62F14D6 for ; Fri, 6 Oct 2023 08:07:08 -0700 (PDT) Received: from dude05.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::54]) by metis.whiteo.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1qomPy-00051v-5B; Fri, 06 Oct 2023 17:07:06 +0200 From: Michael Tretter Date: Fri, 06 Oct 2023 17:07:04 +0200 Subject: [PATCH v2 2/5] drm/bridge: samsung-dsim: reread ref clock before configuring PLL MIME-Version: 1.0 Message-Id: <20230818-samsung-dsim-v2-2-846603df0e0a@pengutronix.de> References: <20230818-samsung-dsim-v2-0-846603df0e0a@pengutronix.de> In-Reply-To: <20230818-samsung-dsim-v2-0-846603df0e0a@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 , Frieder Schrempf , 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.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, 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-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Fri, 06 Oct 2023 08:07:16 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1779019122487356327 X-GMAIL-MSGID: 1779019122487356327 The PLL reference clock may change at runtime when its parent clock changes. For example, this may happen on the i.MX8M Nano if the reference clock is a child of the Video PLL. If the pixel clock changes, this may propagate to the Video PLL and as a side effect change the reference clock. 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. Note that the "samsung,pll-clock-frequency" is always preferred and PLL reference clock is only read from the clock tree if that device tree property is not set. Reviewed-by: Inki Dae Acked-by: Inki Dae Tested-by: Frieder Schrempf # Kontron BL i.MX8MM + Waveshare 10.1inch HDMI LCD (E) Reviewed-by: Marco Felsch Signed-off-by: Michael Tretter --- Changes in v2: - Clarify commit message --- 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 3e8ee9d73a72..392c023c5925 100644 --- a/drivers/gpu/drm/bridge/samsung-dsim.c +++ b/drivers/gpu/drm/bridge/samsung-dsim.c @@ -612,7 +612,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, @@ -1822,18 +1827,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 Fri Oct 6 15:07:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Tretter X-Patchwork-Id: 149293 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a888:0:b0:403:3b70:6f57 with SMTP id x8csp396609vqo; Fri, 6 Oct 2023 08:07:39 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHD7JLM0SxIGmip+nH67ftJ9Rj+f9DeQV7Z8GoFNUe876ZYaFONa2aGTW4WlT6A9r5hsW6T X-Received: by 2002:a17:90b:3a8e:b0:274:2906:656a with SMTP id om14-20020a17090b3a8e00b002742906656amr8710642pjb.5.1696604859323; Fri, 06 Oct 2023 08:07:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696604859; cv=none; d=google.com; s=arc-20160816; b=nI0LtdC29dJQyeKU+nlAsR/3JnyJfFmaFV62zf8FxqG9KejooedZNzGEkgHMr70b/j 6V60qlC5EAWYHCSp7z8UNFaUDJz7QRWJIZxkMVAI7beaALDoJ1v3qzUociBYPCnySC+H wgt87PbHuXh1lHqYEtz7BG/coe8JSztBnlb3g7ILdiC1yn+Dx4ZXFIqHho22mt034FUz dNTovmZYkaDg6uKC/cyfFbnU7nv5JIbIAIZ6XJpI/oM9aVO74xaPm5V2ng60dZ3bIzWB 8EC22qnQPIB9e3T0giV90ybuNbQnlJp/fALpjRj1CN+c4N0wY3mbdRCPeEacnHghYB77 4JFA== 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=WhGOxcmJWPZWblwJJl03R3XP2N4epy7Rs2nvBXay7Gw=; fh=eHf4LTynNfltNEtDyYWh6M2zY4R9lNUpiw7LYmZlMnU=; b=GJWp/d109YiIhHnIVD+v2c98dXroNdcoCV+RZSNXphbuRAn1smVd2O2A2aahpVkL+3 xBhP0T61eTwhA0RDDCNSxiHP2fLGvLw+11+j51cPJxyAU94rnO5d9EkNI/1RKQcTR7EG tfnMPcdVplqVfhSsi57/wU1Mz4PL+qWrvj6iVRiFSdiAaNBaQnQ/+2VXkM7H/boey1vQ ARC/tUHDXIc0Rmas339uP2UzW/F/1lM85hM9pv1OlN6vEhsl06YOFOetsqUWOYErdLe5 /vMqncFKMajZRsJ+11CTzAF0VjV/6SFFY8mpb+wGsc/siZxhxd/p59V8KU+49Fcccq26 fGXg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id z2-20020a17090ab10200b00276671731e3si5999961pjq.136.2023.10.06.08.07.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Oct 2023 08:07:39 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 67B50806CC0F; Fri, 6 Oct 2023 08:07:29 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232677AbjJFPHV (ORCPT + 18 others); Fri, 6 Oct 2023 11:07:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57144 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232715AbjJFPHL (ORCPT ); Fri, 6 Oct 2023 11:07:11 -0400 Received: from metis.whiteo.stw.pengutronix.de (metis.whiteo.stw.pengutronix.de [IPv6:2a0a:edc0:2:b01:1d::104]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6F4B5DB for ; Fri, 6 Oct 2023 08:07:08 -0700 (PDT) Received: from dude05.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::54]) by metis.whiteo.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1qomPy-00051v-7N; Fri, 06 Oct 2023 17:07:06 +0200 From: Michael Tretter Date: Fri, 06 Oct 2023 17:07:05 +0200 Subject: [PATCH v2 3/5] drm/bridge: samsung-dsim: update PLL reference clock MIME-Version: 1.0 Message-Id: <20230818-samsung-dsim-v2-3-846603df0e0a@pengutronix.de> References: <20230818-samsung-dsim-v2-0-846603df0e0a@pengutronix.de> In-Reply-To: <20230818-samsung-dsim-v2-0-846603df0e0a@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 , Frieder Schrempf 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.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, 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-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Fri, 06 Oct 2023 08:07:29 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1779019136981815762 X-GMAIL-MSGID: 1779019136981815762 The PLL requires a clock frequency in a certain platform-dependent range 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 the upper limit 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. Reviewed-by: Marco Felsch Tested-by: Frieder Schrempf # Kontron BL i.MX8MM + Waveshare 10.1inch HDMI LCD (E) Signed-off-by: Michael Tretter --- Changes in v2: - Specify limits for the PLL input clock in samsung_dsim_driver_data --- drivers/gpu/drm/bridge/samsung-dsim.c | 27 +++++++++++++++++++++++++-- include/drm/bridge/samsung-dsim.h | 2 ++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge/samsung-dsim.c index 392c023c5925..16c8326d921b 100644 --- a/drivers/gpu/drm/bridge/samsung-dsim.c +++ b/drivers/gpu/drm/bridge/samsung-dsim.c @@ -410,6 +410,8 @@ static const struct samsung_dsim_driver_data exynos3_dsi_driver_data = { .num_bits_resol = 11, .pll_p_offset = 13, .reg_values = reg_values, + .pll_fin_min = 6, + .pll_fin_max = 12, .m_min = 41, .m_max = 125, .min_freq = 500, @@ -426,6 +428,8 @@ static const struct samsung_dsim_driver_data exynos4_dsi_driver_data = { .num_bits_resol = 11, .pll_p_offset = 13, .reg_values = reg_values, + .pll_fin_min = 6, + .pll_fin_max = 12, .m_min = 41, .m_max = 125, .min_freq = 500, @@ -440,6 +444,8 @@ static const struct samsung_dsim_driver_data exynos5_dsi_driver_data = { .num_bits_resol = 11, .pll_p_offset = 13, .reg_values = reg_values, + .pll_fin_min = 6, + .pll_fin_max = 12, .m_min = 41, .m_max = 125, .min_freq = 500, @@ -455,6 +461,8 @@ static const struct samsung_dsim_driver_data exynos5433_dsi_driver_data = { .num_bits_resol = 12, .pll_p_offset = 13, .reg_values = exynos5433_reg_values, + .pll_fin_min = 6, + .pll_fin_max = 12, .m_min = 41, .m_max = 125, .min_freq = 500, @@ -470,6 +478,8 @@ static const struct samsung_dsim_driver_data exynos5422_dsi_driver_data = { .num_bits_resol = 12, .pll_p_offset = 13, .reg_values = exynos5422_reg_values, + .pll_fin_min = 6, + .pll_fin_max = 12, .m_min = 41, .m_max = 125, .min_freq = 500, @@ -489,6 +499,8 @@ static const struct samsung_dsim_driver_data imx8mm_dsi_driver_data = { */ .pll_p_offset = 14, .reg_values = imx8mm_dsim_reg_values, + .pll_fin_min = 2, + .pll_fin_max = 30, .m_min = 64, .m_max = 1023, .min_freq = 1050, @@ -612,10 +624,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. + */ + fin = clk_get_rate(clk_get_parent(dsi->pll_clk)); + while (fin > driver_data->pll_fin_max * MHZ) + 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); diff --git a/include/drm/bridge/samsung-dsim.h b/include/drm/bridge/samsung-dsim.h index 31ff88f152fb..3370f66ea80a 100644 --- a/include/drm/bridge/samsung-dsim.h +++ b/include/drm/bridge/samsung-dsim.h @@ -60,6 +60,8 @@ struct samsung_dsim_driver_data { unsigned int num_bits_resol; unsigned int pll_p_offset; const unsigned int *reg_values; + unsigned int pll_fin_min; + unsigned int pll_fin_max; u16 m_min; u16 m_max; }; From patchwork Fri Oct 6 15:07: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: 149291 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a888:0:b0:403:3b70:6f57 with SMTP id x8csp396386vqo; Fri, 6 Oct 2023 08:07:22 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEkj3Kzb8zYRvDnBBYxFi2si6x5bEPgKKuKLxS+SMnOlZmek10Sw048iqzsXnpXRoPoLuYZ X-Received: by 2002:a05:6358:938f:b0:144:9cef:cd28 with SMTP id h15-20020a056358938f00b001449cefcd28mr8977570rwb.7.1696604841911; Fri, 06 Oct 2023 08:07:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696604841; cv=none; d=google.com; s=arc-20160816; b=qERo5bOKSqd7nRdayu87Uq/1a0nYuiYC5xnVwwaA6EGpKcCemp2qvA9/Xv9f4tZFjA Ll1kkHC2IPcYQOuui6AEocC+trT3jkdv14UKyZWUhkTc1ObXMpi9sNySWCpbCna1ZuwP yoeW3VmkFPk1Xh+YnhFjUzFlPAtx12VmByOmgHFqBDDIi4b8XPzSRchWQJm4pk3/xo4a WjWrEyV+pfnyx1O1uz6aUKzKma9J7dxELfTDpnGin8z2gOq5mEUn4VmXpIr3/4MKX5Ls IfFLOGJaZy08ORojZsCL5Bt7TQWE1GpT99w67VA88hTvKmUA5+7YSblSh9A/w8fKrC0V BU7w== 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=AAWQ1SfhKtuJzFFJ0mKrtfuMj+B6zEZ66eiUHHnFjFw=; fh=tysWfEZ76Pug+BlQldbkXEC1+E9LgPZYVh1J2Q1B8hU=; b=C3FNUJHB6eqns2eoJUx6i1PSft66/CJxE6gOqmLIKcG9sfsUEyoQDEZ6w3dCKVE3K/ 0VP+DaEBw9FCq+YH+3vK4SZBCSWE3fCPo4W4temWgXsi+0MgIIdJ9xH81ax6jxu6Dvrx LO+Wv/ahvBiafAmkkxON57c+rPbuAjd64nv4e+SboQT6aXthj4M9WAfdNe2JZwOnRmU/ HnJV5IsX0wMMQNyQqgeiwz0K7zT2KbKVH8yJhxCBc/Km0701F+ev2o5ji1RnGWG6YFEC ZIH6aIz9mVYdrMApYMLzzXI/XSXP4FdvRRefHRBOrwB8nwcdAACLOPl6gWtTl29UljPp t+YQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id q65-20020a632a44000000b005776040b2a6si3927395pgq.187.2023.10.06.08.07.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Oct 2023 08:07:21 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 30B35831922F; Fri, 6 Oct 2023 08:07:21 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232678AbjJFPHP (ORCPT + 18 others); Fri, 6 Oct 2023 11:07:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57096 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232677AbjJFPHK (ORCPT ); Fri, 6 Oct 2023 11:07:10 -0400 Received: from metis.whiteo.stw.pengutronix.de (metis.whiteo.stw.pengutronix.de [IPv6:2a0a:edc0:2:b01:1d::104]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7B179DE for ; Fri, 6 Oct 2023 08:07:08 -0700 (PDT) Received: from dude05.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::54]) by metis.whiteo.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1qomPy-00051v-Ac; Fri, 06 Oct 2023 17:07:06 +0200 From: Michael Tretter Date: Fri, 06 Oct 2023 17:07:06 +0200 Subject: [PATCH v2 4/5] drm/bridge: samsung-dsim: adjust porches by rounding up MIME-Version: 1.0 Message-Id: <20230818-samsung-dsim-v2-4-846603df0e0a@pengutronix.de> References: <20230818-samsung-dsim-v2-0-846603df0e0a@pengutronix.de> In-Reply-To: <20230818-samsung-dsim-v2-0-846603df0e0a@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 , Adam Ford , Frieder Schrempf , 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.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, 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-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Fri, 06 Oct 2023 08:07:21 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1779019118662318119 X-GMAIL-MSGID: 1779019118662318119 Rounding the porches up instead of down fixes the samsung-dsim at some more resolutions and refresh rates: The following resolutions are working with rounded-up porches, but don't work when the porches are rounded down: 1920x1080-59.94 1920x1080-30.00 1920x1080-29.97 1920x1080-25.00 1680x1050-59.88 1280x1024-75.02 1200x960-59.99 1280x720-50.00 1024x768-75.03 1024x768-60.00 640x480-60.00 640x480-59.94 Reviewed-by: Adam Ford #imx8mm-beacon Tested-by: Adam Ford #imx8mm-beacon Tested-by: Frieder Schrempf # Kontron BL i.MX8MM + Waveshare 10.1inch HDMI LCD (E) Reviewed-by: Marco Felsch Signed-off-by: Michael Tretter --- Changes in v2: - Rephrase commit message --- 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 16c8326d921b..714e1e833606 100644 --- a/drivers/gpu/drm/bridge/samsung-dsim.c +++ b/drivers/gpu/drm/bridge/samsung-dsim.c @@ -987,9 +987,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 Fri Oct 6 15:07: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: 149295 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a888:0:b0:403:3b70:6f57 with SMTP id x8csp396820vqo; Fri, 6 Oct 2023 08:07:56 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE79+HmYsLF9WkcTUEZwuKRysOzNtjcGsSZzKuVXUXYmkBZjz/CnUrlBwB5ny3DWxT26K69 X-Received: by 2002:a05:6a00:139d:b0:68f:b5cb:cecd with SMTP id t29-20020a056a00139d00b0068fb5cbcecdmr10042227pfg.16.1696604875928; Fri, 06 Oct 2023 08:07:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696604875; cv=none; d=google.com; s=arc-20160816; b=c2OP9KS9csRn45+CkaGE6IkqVLAFR8E61Vec83v651bxgoCirNTG/azkNjRqlk2Jli /MS16EsvI7uHgnBvOuWOvCbpf/hEs/+mqFiF9grJ9gOFSjepDz+hFhIJ2ZkYuXBXPLjB VynSL6jyHkcOfIQUhmiDfZJUV4+Z7RExK4sLPluT+c+wHqq1d7y1ikK7uNRlh2t1vfAT zfG/qyEJCZgakv+mHAKToyToIJCxTcm8ZQj3oFiypRI2sPKSEp1LYwe/nO5zlNshmqu6 /MkRb4R03WiEAHdlDAtXj3/i2UNqYypB4XmmoyYheZcUXypaoI2DxoLW/MHyE/Q1XyqH OzXQ== 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=ChS4Xhrycb6U7gJJhyz0PfHDhKfy1VIsPfM+y8bVYss=; fh=tysWfEZ76Pug+BlQldbkXEC1+E9LgPZYVh1J2Q1B8hU=; b=CxfYXqCL5Fgr8dabm1ptxQ7lVEo6UnEK1OvkRQBw5FnFKW99Tn+0rRyi9FKiisphb8 CvU5j2T4PM1pMq0cjJAo1NIvLu69YTlpwudMrIx6y1EOxGPn1AQOke2QL7p2avADCJ8j cup5GUNzawdPUhxRuF3ZG+gVzdxFFZxSOnQqCCkcNJr9mOqDb7wQlHONPeZr2gPKZLie eKMsumjuGFXFiQc4LL3eCrbtLzW2DiJGggsZMb2+6mX7rzGUTcEy5DTtymykIWCBQjHL GVD4vDOHJFIa85svmpbHoigMdslJpM+587JHTlGqcqsALK6mhvSZ//dQGclbSKmJLC5F 13SA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from morse.vger.email (morse.vger.email. [2620:137:e000::3:1]) by mx.google.com with ESMTPS id cr6-20020a056a000f0600b00694d034452csi1623801pfb.105.2023.10.06.08.07.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Oct 2023 08:07:55 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) client-ip=2620:137:e000::3:1; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by morse.vger.email (Postfix) with ESMTP id 372CA80A9E0E; Fri, 6 Oct 2023 08:07:44 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232732AbjJFPHR (ORCPT + 18 others); Fri, 6 Oct 2023 11:07:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57110 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232659AbjJFPHK (ORCPT ); Fri, 6 Oct 2023 11:07:10 -0400 Received: from metis.whiteo.stw.pengutronix.de (metis.whiteo.stw.pengutronix.de [IPv6:2a0a:edc0:2:b01:1d::104]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 975348F for ; Fri, 6 Oct 2023 08:07:08 -0700 (PDT) Received: from dude05.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::54]) by metis.whiteo.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1qomPy-00051v-D3; Fri, 06 Oct 2023 17:07:06 +0200 From: Michael Tretter Date: Fri, 06 Oct 2023 17:07:07 +0200 Subject: [PATCH v2 5/5] drm/bridge: samsung-dsim: calculate porches in Hz MIME-Version: 1.0 Message-Id: <20230818-samsung-dsim-v2-5-846603df0e0a@pengutronix.de> References: <20230818-samsung-dsim-v2-0-846603df0e0a@pengutronix.de> In-Reply-To: <20230818-samsung-dsim-v2-0-846603df0e0a@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 , Adam Ford , Frieder Schrempf , 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.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=2.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_SBL_CSS,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on morse.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (morse.vger.email [0.0.0.0]); Fri, 06 Oct 2023 08:07:44 -0700 (PDT) X-Spam-Level: ** X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1779019154456652642 X-GMAIL-MSGID: 1779019154456652642 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. Reviewed-by: Adam Ford #imx8mm-beacon Tested-by: Adam Ford #imx8mm-beacon Tested-by: Frieder Schrempf # Kontron BL i.MX8MM + Waveshare 10.1inch HDMI LCD (E) Reviewed-by: Marco Felsch Signed-off-by: Michael Tretter --- Changes in v2: None --- 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 714e1e833606..63a0d8dbe37c 100644 --- a/drivers/gpu/drm/bridge/samsung-dsim.c +++ b/drivers/gpu/drm/bridge/samsung-dsim.c @@ -986,10 +986,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);