From nobody Tue Dec 16 16:38:04 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BFB8EC77B76 for ; Sun, 23 Apr 2023 12:13:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229983AbjDWMND (ORCPT ); Sun, 23 Apr 2023 08:13:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43288 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229522AbjDWMM5 (ORCPT ); Sun, 23 Apr 2023 08:12:57 -0400 Received: from mail-io1-xd29.google.com (mail-io1-xd29.google.com [IPv6:2607:f8b0:4864:20::d29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0E0BC10C9 for ; Sun, 23 Apr 2023 05:12:54 -0700 (PDT) Received: by mail-io1-xd29.google.com with SMTP id ca18e2360f4ac-763c3429aa6so28890939f.2 for ; Sun, 23 Apr 2023 05:12:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1682251974; x=1684843974; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=JTAw7F03HuAr0OI8IRjYA7Odta6kZ/yszj+u/BSAuPo=; b=REgwWBSRFUiIEK9qwudRmoDNqt33mzgWRpmSeTuO2i/B46etyi8vK2RjYE9C13aKph ZyKhanQ0+t1Z8fBqUULDvdIolx+0Fxu8moCOZsKPN5GgUj5g1viY7TQiMiwUA5v1Shwr 5tfFcNnPlsA+19dAYi5OAxfGbC53Oedw2SC09NpWcmDpQ4Vste76HhxFcxE9QVh4xNcp xl26AtEqF+gEmpzevyNYf2RE5yEx3g9g1RdErKJbwGG4tw86WWFFHyZfzm0wpdw0HhTS Otc5B5oJZ0pHrEVL7mOkHAVWvPhV4zL+UvE96ikTJo92Wnjw1sR3QGnl63CHt1w0M0DF TlXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682251974; x=1684843974; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JTAw7F03HuAr0OI8IRjYA7Odta6kZ/yszj+u/BSAuPo=; b=C+cFyASwnxmAFk2wpWZXB+dXPCHTFaW6OObSRRuvDu8ey9cxYcz7zsLOGTbiWdyTvu XYN0rbGi4vCtrJeihF8g8BWiws9X9SRGXtdQDA8xKGPEm9oFE1ajN2UJLV6MHyo3plKE MJ8e2YxgbyaVHPkZ2jgPO/8BlA+IC3ubeXtqYKns6zMgLx3gCe+bf5tt1pniqEIsTHGs D9b7MJOUoGke4IdetMdIFqgWZDhqQZ/Yf9saDhtMTvvMCO4LgZi0ri9fOubY1+8GPdSn HePdD+ug0rNwIukNnIvXBr6CCXvQB4s1zk+HxyVlZARL5GW0WcDqOn+ozHGoG/lqOujG WU1w== X-Gm-Message-State: AAQBX9cTds6DYtBAqITtcfEZBogsPqzie+ZswTzc1kG6Oj4h6XQnFvBb pYzwFm44eBhFGBGTsK5+izo= X-Google-Smtp-Source: AKy350b4IsmOmc2kdOlEa4VZcUd9HynWDxOz89lLecHxdvuNlqnpR4ecObEj/S+7bd3uBqX33WJ1vw== X-Received: by 2002:a6b:7617:0:b0:74d:771:6ed5 with SMTP id g23-20020a6b7617000000b0074d07716ed5mr3107823iom.21.1682251974106; Sun, 23 Apr 2023 05:12:54 -0700 (PDT) Received: from aford-B741.lan ([2601:447:d001:897f:b473:5d7c:4c2:75d7]) by smtp.gmail.com with ESMTPSA id u11-20020a02230b000000b00411a1373aa5sm1612155jau.155.2023.04.23.05.12.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Apr 2023 05:12:53 -0700 (PDT) From: Adam Ford To: dri-devel@lists.freedesktop.org Cc: m.szyprowski@samsung.com, aford@beaconembedded.com, dario.binacchi@amarulasolutions.com, l.stach@pengutronix.de, Adam Ford , Inki Dae , Jagan Teki , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , David Airlie , Daniel Vetter , Frieder Schrempf , Marek Vasut , linux-kernel@vger.kernel.org Subject: [PATCH V2 1/6] drm: bridge: samsung-dsim: fix blanking packet size calculation Date: Sun, 23 Apr 2023 07:12:27 -0500 Message-Id: <20230423121232.1345909-2-aford173@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230423121232.1345909-1-aford173@gmail.com> References: <20230423121232.1345909-1-aford173@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Lucas Stach Scale the blanking packet sizes to match the ratio between HS clock and DPI interface clock. The controller seems to do internal scaling to the number of active lanes, so we don't take those into account. Signed-off-by: Lucas Stach Signed-off-by: Adam Ford Tested-by: Chen-Yu Tsai --- drivers/gpu/drm/bridge/samsung-dsim.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge= /samsung-dsim.c index e0a402a85787..2be3b58624c3 100644 --- a/drivers/gpu/drm/bridge/samsung-dsim.c +++ b/drivers/gpu/drm/bridge/samsung-dsim.c @@ -874,17 +874,29 @@ static void samsung_dsim_set_display_mode(struct sams= ung_dsim *dsi) u32 reg; =20 if (dsi->mode_flags & MIPI_DSI_MODE_VIDEO) { + int byte_clk_khz =3D dsi->burst_clk_rate / 1000 / 8; + int hfp =3D (m->hsync_start - m->hdisplay) * byte_clk_khz / m->clock; + int hbp =3D (m->htotal - m->hsync_end) * byte_clk_khz / m->clock; + int hsa =3D (m->hsync_end - m->hsync_start) * byte_clk_khz / m->clock; + + /* remove packet overhead when possible */ + hfp =3D max(hfp - 6, 0); + hbp =3D max(hbp - 6, 0); + hsa =3D max(hsa - 6, 0); + + dev_dbg(dsi->dev, "calculated hfp: %u, hbp: %u, hsa: %u", + hfp, hbp, hsa); + reg =3D DSIM_CMD_ALLOW(0xf) | DSIM_STABLE_VFP(m->vsync_start - m->vdisplay) | DSIM_MAIN_VBP(m->vtotal - m->vsync_end); samsung_dsim_write(dsi, DSIM_MVPORCH_REG, reg); =20 - reg =3D DSIM_MAIN_HFP(m->hsync_start - m->hdisplay) - | DSIM_MAIN_HBP(m->htotal - m->hsync_end); + reg =3D DSIM_MAIN_HFP(hfp) | DSIM_MAIN_HBP(hbp); samsung_dsim_write(dsi, DSIM_MHPORCH_REG, reg); =20 reg =3D DSIM_MAIN_VSA(m->vsync_end - m->vsync_start) - | DSIM_MAIN_HSA(m->hsync_end - m->hsync_start); + | DSIM_MAIN_HSA(hsa); samsung_dsim_write(dsi, DSIM_MSYNC_REG, reg); } reg =3D DSIM_MAIN_HRESOL(m->hdisplay, num_bits_resol) | --=20 2.39.2 From nobody Tue Dec 16 16:38:04 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E801EC77B7E for ; Sun, 23 Apr 2023 12:13:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230032AbjDWMNH (ORCPT ); Sun, 23 Apr 2023 08:13:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43310 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229799AbjDWMM7 (ORCPT ); Sun, 23 Apr 2023 08:12:59 -0400 Received: from mail-io1-xd2a.google.com (mail-io1-xd2a.google.com [IPv6:2607:f8b0:4864:20::d2a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0572310D3 for ; Sun, 23 Apr 2023 05:12:57 -0700 (PDT) Received: by mail-io1-xd2a.google.com with SMTP id ca18e2360f4ac-760ecf3424bso84125139f.2 for ; Sun, 23 Apr 2023 05:12:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1682251976; x=1684843976; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=C3pPY9HtEOUAK4JXw4/vXoPtAe/9xi0JXRHIjuTfYXw=; b=gmvH94iI2m0GKZIajyYNPgxVP+S3TM1zQ35lnAgZhuIRabJdWMZTrvMYTvO5J1zcmh bFKUcJfddTNIHmMGE0D5ojK5Csx+Jwh/BFBXEYJB0OWgxtJVyAF5gr8WzN4c9dCTITLX 2sVWn2sHt8H/1xUfA65AJSuohQXMxN81a54EtcIldxBOvVulldqWC15Ja8rXePL9wDOg lBv6Dqs5geytGMtkxr1C3z7/P4EZm1KV7WSTgz0UqP5s0VUSShIkvV6J7dCE77/cEOI3 dUnIWCXZxO5zFHUcUZQLN+cuJ6Pm1q/SpW4gxvDIkyJmbDxtG19M0J0bs8xKId+nNT9x 0HWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682251976; x=1684843976; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=C3pPY9HtEOUAK4JXw4/vXoPtAe/9xi0JXRHIjuTfYXw=; b=ZYik/BMEvxfwW7GbJHW86NtWI3XXsSp2WIxOA9Mziqie60QIV2zznnyPN4+defZs24 KkUg1bOtWGGd/NOn+o9NOdE/Uxwi1k2OPqgHdeL14hzJjtetZDHdvUP0EcxRPlU4sU1t WZhZeaLvFr8Mi5XGMsW/H49icT04YvDZG7zZP2ilUrMk3PsV87up7/Rx8FJOBbjb056u Wl0tyW5EQvDnTIfFHGof6FCosCVEupWo8141rizvpAMBYpOcw4RfBcH08er/lX61tvZg Q7TmvKfbWOaK6hYOHkjLJeLlJstmnWk1g+F/SEtAGnRS5uTdD3DVGzZf2a4E8iSNDAIv JeCg== X-Gm-Message-State: AAQBX9cTxLsVjVRXptJXDFnp70YRGrEsorOrZqLQ/M+94KaZ1B8pZAZZ tvdHoJNYIQp+VhyQGdKm/9g= X-Google-Smtp-Source: AKy350a/O9W6zY3tjTMBeCg1ESutg2q3D+HvasDlLWjLo21snfZvgTbxN68OuUpeacv8kcMa5kVMRg== X-Received: by 2002:a5e:c709:0:b0:763:5ab7:a8ec with SMTP id f9-20020a5ec709000000b007635ab7a8ecmr3700527iop.12.1682251975744; Sun, 23 Apr 2023 05:12:55 -0700 (PDT) Received: from aford-B741.lan ([2601:447:d001:897f:b473:5d7c:4c2:75d7]) by smtp.gmail.com with ESMTPSA id u11-20020a02230b000000b00411a1373aa5sm1612155jau.155.2023.04.23.05.12.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Apr 2023 05:12:55 -0700 (PDT) From: Adam Ford To: dri-devel@lists.freedesktop.org Cc: m.szyprowski@samsung.com, aford@beaconembedded.com, dario.binacchi@amarulasolutions.com, l.stach@pengutronix.de, Adam Ford , Inki Dae , Jagan Teki , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , David Airlie , Daniel Vetter , Marek Vasut , linux-kernel@vger.kernel.org Subject: [PATCH V2 2/6] drm: bridge: samsung-dsim: Fix PMS Calculator on imx8m[mnp] Date: Sun, 23 Apr 2023 07:12:28 -0500 Message-Id: <20230423121232.1345909-3-aford173@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230423121232.1345909-1-aford173@gmail.com> References: <20230423121232.1345909-1-aford173@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" According to Table 13-45 of the i.MX8M Mini Reference Manual, the min and max values for M and the frequency range for the VCO_out calculator were incorrect. This information was contradicted in other parts of the mini, nano and plus manuals. After reaching out to my NXP Rep, when confronting him about discrepencies in the Nano manual, he responded with: "Yes it is definitely wrong, the one that is part of the NOTE in MIPI_DPHY_M_PLLPMS register table against PMS_P, PMS_M and PMS_S is not correct. I will report this to Doc team, the one customer should be take into account is the Table 13-40 DPHY PLL Parameters and the Note above." These updated values also match what is used in the NXP downstream kernel. To fix this, make new variables to hold the min and max values of m and the minimum value of VCO_out, and update the PMS calculator to use these new variables instead of using hard-coded values to keep the backwards compatibility with other parts using this driver. Fixes: 4d562c70c4dc ("drm: bridge: samsung-dsim: Add i.MX8M Mini/Nano suppo= rt") Signed-off-by: Adam Ford Reviewed-by: Lucas Stach Tested-by: Chen-Yu Tsai --- drivers/gpu/drm/bridge/samsung-dsim.c | 22 ++++++++++++++++++++-- include/drm/bridge/samsung-dsim.h | 3 +++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge= /samsung-dsim.c index 2be3b58624c3..adb9c13c5f7f 100644 --- a/drivers/gpu/drm/bridge/samsung-dsim.c +++ b/drivers/gpu/drm/bridge/samsung-dsim.c @@ -405,6 +405,9 @@ static const struct samsung_dsim_driver_data exynos3_ds= i_driver_data =3D { .num_bits_resol =3D 11, .pll_p_offset =3D 13, .reg_values =3D reg_values, + .m_min =3D 41, + .m_max =3D 125, + .vco_min =3D 500, }; =20 static const struct samsung_dsim_driver_data exynos4_dsi_driver_data =3D { @@ -418,6 +421,9 @@ static const struct samsung_dsim_driver_data exynos4_ds= i_driver_data =3D { .num_bits_resol =3D 11, .pll_p_offset =3D 13, .reg_values =3D reg_values, + .m_min =3D 41, + .m_max =3D 125, + .vco_min =3D 500, }; =20 static const struct samsung_dsim_driver_data exynos5_dsi_driver_data =3D { @@ -429,6 +435,9 @@ static const struct samsung_dsim_driver_data exynos5_ds= i_driver_data =3D { .num_bits_resol =3D 11, .pll_p_offset =3D 13, .reg_values =3D reg_values, + .m_min =3D 41, + .m_max =3D 125, + .vco_min =3D 500, }; =20 static const struct samsung_dsim_driver_data exynos5433_dsi_driver_data = =3D { @@ -441,6 +450,9 @@ static const struct samsung_dsim_driver_data exynos5433= _dsi_driver_data =3D { .num_bits_resol =3D 12, .pll_p_offset =3D 13, .reg_values =3D exynos5433_reg_values, + .m_min =3D 41, + .m_max =3D 125, + .vco_min =3D 500, }; =20 static const struct samsung_dsim_driver_data exynos5422_dsi_driver_data = =3D { @@ -453,6 +465,9 @@ static const struct samsung_dsim_driver_data exynos5422= _dsi_driver_data =3D { .num_bits_resol =3D 12, .pll_p_offset =3D 13, .reg_values =3D exynos5422_reg_values, + .m_min =3D 41, + .m_max =3D 125, + .vco_min =3D 500, }; =20 static const struct samsung_dsim_driver_data imx8mm_dsi_driver_data =3D { @@ -469,6 +484,9 @@ static const struct samsung_dsim_driver_data imx8mm_dsi= _driver_data =3D { */ .pll_p_offset =3D 14, .reg_values =3D imx8mm_dsim_reg_values, + .m_min =3D 64, + .m_max =3D 1023, + .vco_min =3D 1050, }; =20 static const struct samsung_dsim_driver_data * @@ -547,12 +565,12 @@ static unsigned long samsung_dsim_pll_find_pms(struct= samsung_dsim *dsi, tmp =3D (u64)fout * (_p << _s); do_div(tmp, fin); _m =3D tmp; - if (_m < 41 || _m > 125) + if (_m < driver_data->m_min || _m > driver_data->m_max) continue; =20 tmp =3D (u64)_m * fin; do_div(tmp, _p); - if (tmp < 500 * MHZ || + if (tmp < driver_data->vco_min * MHZ || tmp > driver_data->max_freq * MHZ) continue; =20 diff --git a/include/drm/bridge/samsung-dsim.h b/include/drm/bridge/samsung= -dsim.h index ba5484de2b30..a088d84579bc 100644 --- a/include/drm/bridge/samsung-dsim.h +++ b/include/drm/bridge/samsung-dsim.h @@ -59,6 +59,9 @@ struct samsung_dsim_driver_data { unsigned int num_bits_resol; unsigned int pll_p_offset; const unsigned int *reg_values; + u16 m_min; + u16 m_max; + u64 vco_min; }; =20 struct samsung_dsim_host_ops { --=20 2.39.2 From nobody Tue Dec 16 16:38:04 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 14219C77B7C for ; Sun, 23 Apr 2023 12:13:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230110AbjDWMNK (ORCPT ); Sun, 23 Apr 2023 08:13:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43324 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229808AbjDWMNA (ORCPT ); Sun, 23 Apr 2023 08:13:00 -0400 Received: from mail-io1-xd30.google.com (mail-io1-xd30.google.com [IPv6:2607:f8b0:4864:20::d30]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 07A581733 for ; Sun, 23 Apr 2023 05:12:58 -0700 (PDT) Received: by mail-io1-xd30.google.com with SMTP id ca18e2360f4ac-763ae18986cso45292739f.3 for ; Sun, 23 Apr 2023 05:12:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1682251977; x=1684843977; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=h8jgcM/QeE+Y8+Tr1jy98fVl4Bmm9q0XNJC4VTJTM+4=; b=JLzNHOnxE/Vlwa1HzZoN9UvluDSoAkJFGjmilwdrZTHODn/B7WZdQo7WJVxGLOdN7P 41iUIe9L5ctu6NXqWhWF/1BN6smV+7uv+21u4sE/cuNMlSTkM/7HegdzxECGDsXkwpqf 3UZiJe9PYRE7ni885DRXTw9Y7+unExr9OxeBkQ3V8RiTgFTtRHKVLzfLsZLFWYUpOR4Y jz+GeF5+kA/+aBsfgbJLeN6tCtFltbkAsZAtSWChw2el75ZYa0P2JtRGNvw8bPlQtO4Y ZEwyr3AgNLNfZrvwn97aAw/SQs/eXhWhuI4J14L30r1VywENs6jB2cczfwXedgy5Pneh 11Ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682251977; x=1684843977; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=h8jgcM/QeE+Y8+Tr1jy98fVl4Bmm9q0XNJC4VTJTM+4=; b=hFJ7Eo8AWdSE7DCmBj5YPSW3+tKzMMyro15ld4AGGK1iH9dfjnIwO38pr6jEK0euYH nfFL/+Bjz7PQkJf0733m6DTp+1gsBVqoXeQ1BetoXNOxwaWwrEKsLXBKBLDZHNe8Lipb UCJMaOeeACgw7DigNTXWUV74T9R+NF/kahH2A3C4sAwaT3SQ/t59byC21pyHWqaYO2mV IHIFmfds1Y+9A0KU+u5HYD+H5xeDpLAKE19O+0Y6JUZq4HjJPH1T/Zp+2Xhv5FPDJMGK iyJS6WGIgtbPxSwbIqIk+ozDpBYNHL0k5uzZ7wHbxkt2c2/qDmw++cWE7nN5moX6g+S9 P3XQ== X-Gm-Message-State: AAQBX9dGuHzlGHcZT73tOvZE+kjLHuu6rdHpT6ctg1/xhsbbee4c+LT4 0tq7+MLQ5FFWJp+fEUh1/2k= X-Google-Smtp-Source: AKy350ajJ9p8UuNCdHf/nb41YNZSCy7QL46641e67mbV4AIeXZePMPVquMYo6Rj4SZM0+ArxtubmcQ== X-Received: by 2002:a92:cd4f:0:b0:329:bba2:781e with SMTP id v15-20020a92cd4f000000b00329bba2781emr3531026ilq.17.1682251977351; Sun, 23 Apr 2023 05:12:57 -0700 (PDT) Received: from aford-B741.lan ([2601:447:d001:897f:b473:5d7c:4c2:75d7]) by smtp.gmail.com with ESMTPSA id u11-20020a02230b000000b00411a1373aa5sm1612155jau.155.2023.04.23.05.12.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Apr 2023 05:12:56 -0700 (PDT) From: Adam Ford To: dri-devel@lists.freedesktop.org Cc: m.szyprowski@samsung.com, aford@beaconembedded.com, dario.binacchi@amarulasolutions.com, l.stach@pengutronix.de, Adam Ford , Inki Dae , Jagan Teki , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , David Airlie , Daniel Vetter , Marek Vasut , linux-kernel@vger.kernel.org Subject: [PATCH V2 3/6] drm: bridge: samsung-dsim: Fetch pll-clock-frequency automatically Date: Sun, 23 Apr 2023 07:12:29 -0500 Message-Id: <20230423121232.1345909-4-aford173@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230423121232.1345909-1-aford173@gmail.com> References: <20230423121232.1345909-1-aford173@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Make the pll-clock-frequency optional. If it's present, use it to maintain backwards compatibility with existing hardware. If it is absent, read clock rate of "sclk_mipi" to determine the rate. Signed-off-by: Adam Ford Tested-by: Chen-Yu Tsai --- drivers/gpu/drm/bridge/samsung-dsim.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge= /samsung-dsim.c index adb9c13c5f7f..5b6e7825b92f 100644 --- a/drivers/gpu/drm/bridge/samsung-dsim.c +++ b/drivers/gpu/drm/bridge/samsung-dsim.c @@ -1726,12 +1726,20 @@ static int samsung_dsim_parse_dt(struct samsung_dsi= m *dsi) { struct device *dev =3D dsi->dev; struct device_node *node =3D dev->of_node; + struct clk *pll_clk; int ret; =20 ret =3D samsung_dsim_of_read_u32(node, "samsung,pll-clock-frequency", &dsi->pll_clk_rate); - if (ret < 0) - return ret; + + /* If it doesn't exist, read it from the clock instead of failing */ + if (ret < 0) { + pll_clk =3D devm_clk_get(dev, "sclk_mipi"); + if (!IS_ERR(pll_clk)) + dsi->pll_clk_rate =3D clk_get_rate(pll_clk); + else + return PTR_ERR(pll_clk); + } =20 ret =3D samsung_dsim_of_read_u32(node, "samsung,burst-clock-frequency", &dsi->burst_clk_rate); --=20 2.39.2 From nobody Tue Dec 16 16:38:04 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D0BDEC77B73 for ; Sun, 23 Apr 2023 12:13:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230130AbjDWMNN (ORCPT ); Sun, 23 Apr 2023 08:13:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43338 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229972AbjDWMNB (ORCPT ); Sun, 23 Apr 2023 08:13:01 -0400 Received: from mail-il1-x133.google.com (mail-il1-x133.google.com [IPv6:2607:f8b0:4864:20::133]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7653F1997 for ; Sun, 23 Apr 2023 05:12:59 -0700 (PDT) Received: by mail-il1-x133.google.com with SMTP id e9e14a558f8ab-329627dabfbso35778975ab.0 for ; Sun, 23 Apr 2023 05:12:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1682251979; x=1684843979; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=O6CFEB27xnVdVzEI62Flt6e1TPcC5Y7Hj3J4O8a2oNs=; b=HPz5zGuQZjGTlD9yDmRFg5osb0SdqVkhFRdAZeSXK3qdl6WHUVTmDNlROtS8eNFTQs EIcytRZzFR3srIcZQvhU7qdDC1fybmSrsjcIu6V0wXQE+YHfSQ8FuhKFdfxc+7bB+SLw QvG5oYV+oR10Sg3bObZFSw1eLZV+cHTUZfWaUGMmWGPJCY/dUzaZUrCgY/bMdyy4uDdq dkgI5WeG9TzCv1Xfi8hO7mUvKqpD/OB/5ucQ60/lcDZt8eXYultn1MRTl39ZaGupVV87 B3bM/sXNp2wV9QhzRvdSsDjvZaGwy0Gs5PY/jQXXj6ZN7L/heWci4OFbJ1AAQ4Iv6mYh vIcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682251979; x=1684843979; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=O6CFEB27xnVdVzEI62Flt6e1TPcC5Y7Hj3J4O8a2oNs=; b=DY6+PPCFruvcHlBdgXZ8SKaZcwoINK17NAcLwih7xfcHzr9RmP0vQXldnJ/77LjT3r kQk5K8+xVKNBUvy4PdBtIlqXi9uJRdxtygnFYbCkVPXH7PBW8hswkX1i1gIqYo8GzEU0 +NNs6qnqIlNrLj26V+5duVDeGPnq06s27xDYsAqhPoh5THBmhZ0J+bFRlipUxw23MS8w QBtCi530BcQ82awnN9EHtv2TVd7DeSqEG2qVsBhsrDX1ii4wfwNByWPtPKhCfCmhQNsK jWw2pt7D9ynZZ29uxDjbtB/YxsHBELXTbmoumVi6eWCsrKmSEQI+1vKAbSnQpSMeVdgf My3A== X-Gm-Message-State: AAQBX9fH1SHSXJJWMpv53+/qg6SlWuHlYFiyOvQMUqxkXrJZrD+lmrWS Gv0YecB3qRAwIkTg0VxuUvE= X-Google-Smtp-Source: AKy350aV7Y3qxojQ8ut07O12d1kdEL+nfMyl42N9PB2EuYGoAfF2NGj/nUuy9peWZ/5OXSCH30XvqQ== X-Received: by 2002:a05:6e02:34a0:b0:326:5b1b:3cc5 with SMTP id bp32-20020a056e0234a000b003265b1b3cc5mr3119124ilb.15.1682251978999; Sun, 23 Apr 2023 05:12:58 -0700 (PDT) Received: from aford-B741.lan ([2601:447:d001:897f:b473:5d7c:4c2:75d7]) by smtp.gmail.com with ESMTPSA id u11-20020a02230b000000b00411a1373aa5sm1612155jau.155.2023.04.23.05.12.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Apr 2023 05:12:58 -0700 (PDT) From: Adam Ford To: dri-devel@lists.freedesktop.org Cc: m.szyprowski@samsung.com, aford@beaconembedded.com, dario.binacchi@amarulasolutions.com, l.stach@pengutronix.de, Adam Ford , Inki Dae , Jagan Teki , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , David Airlie , Daniel Vetter , Marek Vasut , linux-kernel@vger.kernel.org Subject: [PATCH V2 4/6] drm: bridge: samsung-dsim: Dynamically configure DPHY timing Date: Sun, 23 Apr 2023 07:12:30 -0500 Message-Id: <20230423121232.1345909-5-aford173@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230423121232.1345909-1-aford173@gmail.com> References: <20230423121232.1345909-1-aford173@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The DPHY timings are currently hard coded. Since the input clock can be variable, the phy timings need to be variable too. Add an additional variable to the driver data to enable this feature to prevent breaking boards that don't support it. The phy_mipi_dphy_get_default_config function configures the DPHY timings in pico-seconds, and a small macro converts those timings into clock cycles based on the pixel clock rate. Signed-off-by: Adam Ford Tested-by: Chen-Yu Tsai --- drivers/gpu/drm/bridge/samsung-dsim.c | 79 +++++++++++++++++++++++---- include/drm/bridge/samsung-dsim.h | 1 + 2 files changed, 70 insertions(+), 10 deletions(-) diff --git a/drivers/gpu/drm/bridge/samsung-dsim.c b/drivers/gpu/drm/bridge= /samsung-dsim.c index 5b6e7825b92f..f165483d5044 100644 --- a/drivers/gpu/drm/bridge/samsung-dsim.c +++ b/drivers/gpu/drm/bridge/samsung-dsim.c @@ -18,9 +18,7 @@ #include #include #include - #include