From: Frank Oltmanns <frank@oltmanns.dev> To: "Michael Turquette" <mturquette@baylibre.com>, "Stephen Boyd" <sboyd@kernel.org>, "Chen-Yu Tsai" <wens@csie.org>, "Jernej Skrabec" <jernej.skrabec@gmail.com>, "Samuel Holland" <samuel@sholland.org>, "Guido Günther" <agx@sigxcpu.org>, "Purism Kernel Team" <kernel@puri.sm>, "Ondrej Jirman" <megi@xff.cz>, "Neil Armstrong" <neil.armstrong@linaro.org>, "Jessica Zhang" <quic_jesszhan@quicinc.com>, "Sam Ravnborg" <sam@ravnborg.org>, "Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>, "Maxime Ripard" <mripard@kernel.org>, "Thomas Zimmermann" <tzimmermann@suse.de>, "David Airlie" <airlied@gmail.com>, "Daniel Vetter" <daniel@ffwll.ch>, "Rob Herring" <robh+dt@kernel.org>, "Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>, "Conor Dooley" <conor+dt@kernel.org> Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, Frank Oltmanns <frank@oltmanns.dev> Subject: [PATCH v2 0/6] Pinephone video out fixes (flipping between two frames) Date: Mon, 05 Feb 2024 16:22:23 +0100 [thread overview] Message-ID: <20240205-pinephone-pll-fixes-v2-0-96a46a2d8c9b@oltmanns.dev> (raw) On some pinephones the video output sometimes freezes (flips between two frames) [1]. It seems to be that the reason for this behaviour is that PLL-MIPI, PLL-GPU and GPU are operating outside their limits. In this patch series I propose the followin changes: 1. sunxi-ng: Adhere to the following constraints given in the Allwinner A64 Manual regarding PLL-MIPI: * M/N <= 3 * (PLL_VIDEO0)/M >= 24MHz * 500MHz <= clockrate <= 1400MHz 2. Choose a higher clock rate for the ST7703 based XDB599 panel, so that the panel function well with the Allwinner A64 SOC. PLL-MIPI must run between 500 MHz and 1.4 GHz. As PLL-MIPI runs at 6 times the panel's clock rate, we need the panel's clock to be at least 83.333 MHz. 3. Increase the minimum frequency in the A64 DTS OPPs from 120 MHz to 192 MHz. This further reduces the issue. Unfortunately, with these patches the issue [1] is not completely gone, but becomes less likely. Note, that when pinning the GPU to 432 MHz the issue completely disappears for me. I've searched the BSP and could not find any indication that supports the idea of having the three OPPs. The only frequency I found in the BPSs for A64 is 432 MHz, that has also proven stable for me. So, while increasing the minimum frequency to 192 MHz reduces the issue, should we maybe instead set the GPU to a fixed 432 MHz instead? I very much appreciate your feedback! [1] https://gitlab.com/postmarketOS/pmaports/-/issues/805 Signed-off-by: Frank Oltmanns <frank@oltmanns.dev> --- Changes in v2: - dts: Increase minimum GPU frequency to 192 MHz. - nkm and a64: Add minimum and maximum rate for PLL-MIPI. - nkm: Use the same approach for skipping invalid rates in ccu_nkm_find_best() as in ccu_nkm_find_best_with_parent_adj(). - nkm: Improve names for ratio struct members and hence get rid of describing comments. - nkm and a64: Correct description in the commit messages: M/N <= 3 - Remove patches for nm as they were not needed. - st7703: Rework the commit message to cover more background for the change. - Link to v1: https://lore.kernel.org/r/20231218-pinephone-pll-fixes-v1-0-e238b6ed6dc1@oltmanns.dev --- Frank Oltmanns (6): clk: sunxi-ng: nkm: Support constraints on m/n ratio and parent rate clk: sunxi-ng: a64: Add constraints on PLL-MIPI's n/m ratio and parent rate clk: sunxi-ng: nkm: Support minimum and maximum rate clk: sunxi-ng: a64: Set minimum and maximum rate for PLL-MIPI drm/panel: st7703: Drive XBD599 panel at higher clock rate arm64: dts: allwinner: a64: Fix minimum GPU OPP rate arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 4 ++-- drivers/clk/sunxi-ng/ccu-sun50i-a64.c | 14 +++++++---- drivers/clk/sunxi-ng/ccu_nkm.c | 34 +++++++++++++++++++++++++++ drivers/clk/sunxi-ng/ccu_nkm.h | 4 ++++ drivers/gpu/drm/panel/panel-sitronix-st7703.c | 14 +++++------ 5 files changed, 56 insertions(+), 14 deletions(-) --- base-commit: 059c53e877ca6e723e10490c27c1487a63e66efe change-id: 20231218-pinephone-pll-fixes-0ccdfde273e4 Best regards, -- Frank Oltmanns <frank@oltmanns.dev>
WARNING: multiple messages have this Message-ID (diff)
From: Frank Oltmanns <frank@oltmanns.dev> To: "Michael Turquette" <mturquette@baylibre.com>, "Stephen Boyd" <sboyd@kernel.org>, "Chen-Yu Tsai" <wens@csie.org>, "Jernej Skrabec" <jernej.skrabec@gmail.com>, "Samuel Holland" <samuel@sholland.org>, "Guido Günther" <agx@sigxcpu.org>, "Purism Kernel Team" <kernel@puri.sm>, "Ondrej Jirman" <megi@xff.cz>, "Neil Armstrong" <neil.armstrong@linaro.org>, "Jessica Zhang" <quic_jesszhan@quicinc.com>, "Sam Ravnborg" <sam@ravnborg.org>, "Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>, "Maxime Ripard" <mripard@kernel.org>, "Thomas Zimmermann" <tzimmermann@suse.de>, "David Airlie" <airlied@gmail.com>, "Daniel Vetter" <daniel@ffwll.ch>, "Rob Herring" <robh+dt@kernel.org>, "Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>, "Conor Dooley" <conor+dt@kernel.org> Cc: linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org, Frank Oltmanns <frank@oltmanns.dev> Subject: [PATCH v2 0/6] Pinephone video out fixes (flipping between two frames) Date: Mon, 05 Feb 2024 16:22:23 +0100 [thread overview] Message-ID: <20240205-pinephone-pll-fixes-v2-0-96a46a2d8c9b@oltmanns.dev> (raw) On some pinephones the video output sometimes freezes (flips between two frames) [1]. It seems to be that the reason for this behaviour is that PLL-MIPI, PLL-GPU and GPU are operating outside their limits. In this patch series I propose the followin changes: 1. sunxi-ng: Adhere to the following constraints given in the Allwinner A64 Manual regarding PLL-MIPI: * M/N <= 3 * (PLL_VIDEO0)/M >= 24MHz * 500MHz <= clockrate <= 1400MHz 2. Choose a higher clock rate for the ST7703 based XDB599 panel, so that the panel function well with the Allwinner A64 SOC. PLL-MIPI must run between 500 MHz and 1.4 GHz. As PLL-MIPI runs at 6 times the panel's clock rate, we need the panel's clock to be at least 83.333 MHz. 3. Increase the minimum frequency in the A64 DTS OPPs from 120 MHz to 192 MHz. This further reduces the issue. Unfortunately, with these patches the issue [1] is not completely gone, but becomes less likely. Note, that when pinning the GPU to 432 MHz the issue completely disappears for me. I've searched the BSP and could not find any indication that supports the idea of having the three OPPs. The only frequency I found in the BPSs for A64 is 432 MHz, that has also proven stable for me. So, while increasing the minimum frequency to 192 MHz reduces the issue, should we maybe instead set the GPU to a fixed 432 MHz instead? I very much appreciate your feedback! [1] https://gitlab.com/postmarketOS/pmaports/-/issues/805 Signed-off-by: Frank Oltmanns <frank@oltmanns.dev> --- Changes in v2: - dts: Increase minimum GPU frequency to 192 MHz. - nkm and a64: Add minimum and maximum rate for PLL-MIPI. - nkm: Use the same approach for skipping invalid rates in ccu_nkm_find_best() as in ccu_nkm_find_best_with_parent_adj(). - nkm: Improve names for ratio struct members and hence get rid of describing comments. - nkm and a64: Correct description in the commit messages: M/N <= 3 - Remove patches for nm as they were not needed. - st7703: Rework the commit message to cover more background for the change. - Link to v1: https://lore.kernel.org/r/20231218-pinephone-pll-fixes-v1-0-e238b6ed6dc1@oltmanns.dev --- Frank Oltmanns (6): clk: sunxi-ng: nkm: Support constraints on m/n ratio and parent rate clk: sunxi-ng: a64: Add constraints on PLL-MIPI's n/m ratio and parent rate clk: sunxi-ng: nkm: Support minimum and maximum rate clk: sunxi-ng: a64: Set minimum and maximum rate for PLL-MIPI drm/panel: st7703: Drive XBD599 panel at higher clock rate arm64: dts: allwinner: a64: Fix minimum GPU OPP rate arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 4 ++-- drivers/clk/sunxi-ng/ccu-sun50i-a64.c | 14 +++++++---- drivers/clk/sunxi-ng/ccu_nkm.c | 34 +++++++++++++++++++++++++++ drivers/clk/sunxi-ng/ccu_nkm.h | 4 ++++ drivers/gpu/drm/panel/panel-sitronix-st7703.c | 14 +++++------ 5 files changed, 56 insertions(+), 14 deletions(-) --- base-commit: 059c53e877ca6e723e10490c27c1487a63e66efe change-id: 20231218-pinephone-pll-fixes-0ccdfde273e4 Best regards, -- Frank Oltmanns <frank@oltmanns.dev> _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2024-02-05 15:22 UTC|newest] Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top 2024-02-05 15:22 Frank Oltmanns [this message] 2024-02-05 15:22 ` [PATCH v2 0/6] Pinephone video out fixes (flipping between two frames) Frank Oltmanns 2024-02-05 15:22 ` [PATCH v2 1/6] clk: sunxi-ng: nkm: Support constraints on m/n ratio and parent rate Frank Oltmanns 2024-02-05 15:22 ` Frank Oltmanns 2024-02-05 17:45 ` Jernej Škrabec 2024-02-05 17:45 ` Jernej Škrabec 2024-02-05 17:50 ` Frank Oltmanns 2024-02-05 17:50 ` Frank Oltmanns 2024-02-06 17:44 ` Jernej Škrabec 2024-02-06 17:44 ` Jernej Škrabec 2024-02-05 15:22 ` [PATCH v2 2/6] clk: sunxi-ng: a64: Add constraints on PLL-MIPI's n/m " Frank Oltmanns 2024-02-05 15:22 ` Frank Oltmanns 2024-02-06 17:48 ` Jernej Škrabec 2024-02-06 17:48 ` Jernej Škrabec 2024-02-05 15:22 ` [PATCH v2 3/6] clk: sunxi-ng: nkm: Support minimum and maximum rate Frank Oltmanns 2024-02-05 15:22 ` Frank Oltmanns 2024-02-05 17:56 ` Jernej Škrabec 2024-02-05 17:56 ` Jernej Škrabec 2024-02-05 20:34 ` Frank Oltmanns 2024-02-05 20:34 ` Frank Oltmanns 2024-02-06 17:51 ` Jernej Škrabec 2024-02-06 17:51 ` Jernej Škrabec 2024-02-08 12:16 ` Maxime Ripard 2024-02-08 12:16 ` Maxime Ripard 2024-02-18 8:29 ` Frank Oltmanns 2024-02-18 8:29 ` Frank Oltmanns 2024-02-22 10:26 ` Maxime Ripard 2024-02-22 10:26 ` Maxime Ripard 2024-02-21 10:38 ` Frank Oltmanns 2024-02-21 10:38 ` Frank Oltmanns 2024-02-22 10:28 ` Maxime Ripard 2024-02-22 10:28 ` Maxime Ripard 2024-02-05 15:22 ` [PATCH v2 4/6] clk: sunxi-ng: a64: Set minimum and maximum rate for PLL-MIPI Frank Oltmanns 2024-02-05 15:22 ` Frank Oltmanns 2024-02-05 17:57 ` Jernej Škrabec 2024-02-05 17:57 ` Jernej Škrabec 2024-02-05 15:22 ` [PATCH v2 5/6] drm/panel: st7703: Drive XBD599 panel at higher clock rate Frank Oltmanns 2024-02-05 15:22 ` Frank Oltmanns 2024-02-05 17:59 ` Jernej Škrabec 2024-02-05 17:59 ` Jernej Škrabec 2024-02-08 19:05 ` Maxime Ripard 2024-02-08 19:05 ` Maxime Ripard 2024-02-11 15:42 ` Frank Oltmanns 2024-02-11 15:42 ` Frank Oltmanns 2024-02-12 13:29 ` Frank Oltmanns 2024-02-12 13:29 ` Frank Oltmanns 2024-02-22 10:29 ` Maxime Ripard 2024-02-22 10:29 ` Maxime Ripard 2024-02-25 16:46 ` Frank Oltmanns 2024-02-25 16:46 ` Frank Oltmanns 2024-02-26 4:56 ` Icenowy Zheng 2024-02-26 4:56 ` Icenowy Zheng 2024-02-05 15:22 ` [PATCH v2 6/6] arm64: dts: allwinner: a64: Fix minimum GPU OPP rate Frank Oltmanns 2024-02-05 15:22 ` Frank Oltmanns 2024-02-05 15:54 ` [PATCH v2 0/6] Pinephone video out fixes (flipping between two frames) Ondřej Jirman 2024-02-05 15:54 ` Ondřej Jirman 2024-02-05 16:02 ` Ondřej Jirman 2024-02-05 16:02 ` Ondřej Jirman 2024-02-11 15:09 ` Frank Oltmanns 2024-02-11 15:09 ` Frank Oltmanns 2024-02-11 19:25 ` Ondřej Jirman 2024-02-11 19:25 ` Ondřej Jirman 2024-02-19 9:41 ` Frank Oltmanns 2024-02-19 9:41 ` Frank Oltmanns 2024-02-26 7:13 ` Frank Oltmanns 2024-02-26 7:13 ` Frank Oltmanns 2024-02-26 17:29 ` Jernej Škrabec 2024-02-26 17:29 ` Jernej Škrabec 2024-02-26 20:07 ` Erico Nunes 2024-02-26 20:07 ` Erico Nunes
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20240205-pinephone-pll-fixes-v2-0-96a46a2d8c9b@oltmanns.dev \ --to=frank@oltmanns.dev \ --cc=agx@sigxcpu.org \ --cc=airlied@gmail.com \ --cc=conor+dt@kernel.org \ --cc=daniel@ffwll.ch \ --cc=devicetree@vger.kernel.org \ --cc=dri-devel@lists.freedesktop.org \ --cc=jernej.skrabec@gmail.com \ --cc=kernel@puri.sm \ --cc=krzysztof.kozlowski+dt@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-clk@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-sunxi@lists.linux.dev \ --cc=maarten.lankhorst@linux.intel.com \ --cc=megi@xff.cz \ --cc=mripard@kernel.org \ --cc=mturquette@baylibre.com \ --cc=neil.armstrong@linaro.org \ --cc=quic_jesszhan@quicinc.com \ --cc=robh+dt@kernel.org \ --cc=sam@ravnborg.org \ --cc=samuel@sholland.org \ --cc=sboyd@kernel.org \ --cc=tzimmermann@suse.de \ --cc=wens@csie.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.