From patchwork Mon Feb 5 15:22:23 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Oltmanns X-Patchwork-Id: 19941 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:168b:b0:106:860b:bbdd with SMTP id ma11csp945515dyb; Mon, 5 Feb 2024 07:23:22 -0800 (PST) X-Google-Smtp-Source: AGHT+IE9VHYK5un+1QVCnT1g/JhOQUTOMvYEYmi1zHDfZ+WNNsA55mJvK+KDaaj5x0g+9y2UkbbA X-Received: by 2002:a05:6a20:a1a0:b0:19c:af95:96ec with SMTP id r32-20020a056a20a1a000b0019caf9596ecmr9939199pzk.35.1707146601767; Mon, 05 Feb 2024 07:23:21 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1707146601; cv=pass; d=google.com; s=arc-20160816; b=gt7MA7xG9jZ0L/tEfX506pDMfCTAdz05gvkaFynUYaVIUpeHN8+ozm7dckGn92Uhw6 AQ8tNWOm3FkinN7270bpLckKbdd7p+6vyTabaSYaM0msr4aGGujFiysMyd+pqY0VbWZf jSJcDoG5Zp/b4fK/r3aFVvUovPKmMROqWxd6nR+E76RvHEzWS2lhhqzt/mlGcXaqdmFW b0lCLt6CFmofLQHxzuhTPpYQyNM+G4N+f63W0u1ein9R0iFL5yo2ehJvswvhHn+ZxRW3 boEQ+BJ4FeQ39iYecPF4+T+YZ1q6416i4Dd3IH5AHZx4YaB4MG+32osNFacaPSh4rrpC mFpQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:from :dkim-signature; bh=02ruNxK++PAViNf3AQJm4dGqBoNl7wJTiwKpbNLSczQ=; fh=MWQMu7grZ28gqWwWn6ZuzWGd4uCzAUz27EdYXgQqigE=; b=gF7I3HUzmOWHeyklsvSTnTZqmiu091n3I2NbftYa8915zZj1t2uDgXVMO9Ga3HZGgZ BecK3PW0YaXbbrQEDJ/HMStUSWsrUYxNcWwks17zrpgsFzVUn4y0JuFJXfPS5qi74Ksm 7QV722YrNlIFwaXiNuvxu1pzwrTXYe14dcYnyKRyFp685Ap8ZKuHN1AJl3pSb3qU1CAs rxQFtBdf383ozsSjMuofLys7aY4h7XvCyq4wy1iUBuIStHWqhgNAy2okqdDXvX5ceIyo aZgaFI+t1RS6C8u1rjqVtP9VxX1jErMHpttXUz9Nwm07iZNUEBTDWdW6QCxhv3AUSEsG 63Kw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oltmanns.dev header.s=MBO0001 header.b=ZXjQNScE; arc=pass (i=1 spf=pass spfdomain=oltmanns.dev dkim=pass dkdomain=oltmanns.dev dmarc=pass fromdomain=oltmanns.dev); spf=pass (google.com: domain of linux-kernel+bounces-52890-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-52890-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oltmanns.dev X-Forwarded-Encrypted: i=1; AJvYcCUstyEiEjcgMxK4NsdCiV/HTFOkNLy3JsllywR7wh/AAkR81LfPFnY0iqtQxQYh14FRSSDRiePmpOszBNDru+VLgzqe7g== Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id lo8-20020a056a003d0800b006dff2e8a1edsi6193213pfb.111.2024.02.05.07.23.21 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 Feb 2024 07:23:21 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-52890-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@oltmanns.dev header.s=MBO0001 header.b=ZXjQNScE; arc=pass (i=1 spf=pass spfdomain=oltmanns.dev dkim=pass dkdomain=oltmanns.dev dmarc=pass fromdomain=oltmanns.dev); spf=pass (google.com: domain of linux-kernel+bounces-52890-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-52890-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oltmanns.dev Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 8575D2874BC for ; Mon, 5 Feb 2024 15:23:21 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id EA54B2D043; Mon, 5 Feb 2024 15:23:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oltmanns.dev header.i=@oltmanns.dev header.b="ZXjQNScE" Received: from mout-p-201.mailbox.org (mout-p-201.mailbox.org [80.241.56.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 87DC12C85D; Mon, 5 Feb 2024 15:22:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=80.241.56.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707146580; cv=none; b=FDwFvx7yX+pwIiKwy27LaZB0MsugGYFZgQJSEXEX0AB2lphZRDuSJeuwL//118Hb+Sxj4/bpSwCAlXicRRxhn2rJffEeiEoZC5dLOFvouFkcQ/GoHgFoZk3HdpPqhiRuHdLW6UgE3d7J5F/iHwj4LPgOqtwKQK+q6IRFs0OiqrE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707146580; c=relaxed/simple; bh=5zewW1sTOm7xcvwNa8TfsiT0OyH+Ac61q0oCG1IJ5yo=; h=From:Subject:Date:Message-Id:MIME-Version:Content-Type:To:Cc; b=J+q999+tto3ChA1GRctvR/GfP3BnfmNoJOjLdCCyT1BCvDO2KOVGysVplnSp91Eq3wexE9eYs8Vpz/ZeHykqhj1z9kLU7gAVc2CK+2p8qjAR+DElZ+2/pTXNTlUsDgtd2BKuOORrYItjEMHzeaAGGhkwKswZ2atBJhn2AjjpeNc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oltmanns.dev; spf=pass smtp.mailfrom=oltmanns.dev; dkim=pass (2048-bit key) header.d=oltmanns.dev header.i=@oltmanns.dev header.b=ZXjQNScE; arc=none smtp.client-ip=80.241.56.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oltmanns.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oltmanns.dev Received: from smtp102.mailbox.org (smtp102.mailbox.org [10.196.197.102]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-201.mailbox.org (Postfix) with ESMTPS id 4TT99g5Pc0z9t3b; Mon, 5 Feb 2024 16:22:47 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oltmanns.dev; s=MBO0001; t=1707146567; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=02ruNxK++PAViNf3AQJm4dGqBoNl7wJTiwKpbNLSczQ=; b=ZXjQNScEzCDO5NsBo6jCxc7YVO0UavM3fURJA02d2ggdkgyTOadBMCFAiGtdL0hSZM+XBb AvrfdmRiQ11Ft5QjNjBNDq+3/GuKmqGHuR4xpUR0fqvVgQfDPlxU+21lQON76gnN4fgChs 5/txjXryAkW91io2nbW80T03qpUXIgTiDDQnXDTKdOdrtEcxwjf1piZKGY33HeJP5Mq6np 4ZwEIXIN5T+Tvn1RfxJGdCLHzRJw1IbYiXlIFUY2bCVVBfnU44TaOG9+y9ecOlNy1/iVOW i4iPtDI/TDl4HC3mJFeHoLpoEGt6NxHM1XHpt1NKH8VZs6R1JUu9/gcf60VWdQ== From: Frank Oltmanns Subject: [PATCH v2 0/6] Pinephone video out fixes (flipping between two frames) Date: Mon, 05 Feb 2024 16:22:23 +0100 Message-Id: <20240205-pinephone-pll-fixes-v2-0-96a46a2d8c9b@oltmanns.dev> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-B4-Tracking: v=1; b=H4sIAC/9wGUC/32NQQ6CMBREr0L+2m9oMUhceQ/CAttBfoJt05JGQ 7i7lQO4fDN5MxslREGiW7VRRJYk3hXQp4rMPLonWGxh0rVulFYdB3EIs3fgsCw8yRuJa2PsZKG vDS5UzBBxFEXsh8KzpNXHz3GS1S/9v5cV1wzddI8WtrVG3f2yvkbn0tki07Dv+xePHWdPuQAAA A== To: Michael Turquette , Stephen Boyd , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , =?utf-8?q?Guido_G=C3=BCnther?= , Purism Kernel Team , Ondrej Jirman , Neil Armstrong , Jessica Zhang , Sam Ravnborg , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley 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 X-Developer-Signature: v=1; a=openpgp-sha256; l=3229; i=frank@oltmanns.dev; h=from:subject:message-id; bh=5zewW1sTOm7xcvwNa8TfsiT0OyH+Ac61q0oCG1IJ5yo=; b=owEB7QES/pANAwAIAZppogiUStPHAcsmYgBlwP0+wYhW9UKwddP3vrnpyhEsFoFsaicaYwiaO 2dmOF/4eR2JAbMEAAEIAB0WIQQC/SV7f5DmuaVET5aaaaIIlErTxwUCZcD9PgAKCRCaaaIIlErT xxGkC/4qc4crIa5Eoj/UZwfbXARGqeQPX8RtVBTso0IlLQapsMZarACv3napgYyiG3p/WOCGiPt YCNMoHryUaHjF9Dvyt27XXm24Fu7eA72vSJ3Po72R03TumUH6G1vDdE/ht0humpzOoDyXoJnogU ujW0CYknGItVUQtqBcfAU1a6GeqU/I1CpgzQQi6SMusrjZju4TZBSE6JU/zuhlqSDDVr6P6pkeQ CPyXTpiGu9xJLcA1VxMIOmXx7GtY7tsJNkFKhzSaOAQMfZOz8n+2+wFbwwkPEWSJ8+p3dVXP2Md clqNDRWt7asIY8cu4HNR9ZIkJqI600PFe/4W+UHMNwq45v8qHSuc3cP3aXmsiifk+h+fll2awdg iQmNzjJQV4+nIxSxPY5HeovLW5/tTXa2aq8O8TCppSjMewGW4vuRZVRJg6euwTSVKIpf7CDGUUD TPd3iE6/EWTYbW8dmVNfGuRrmExcg1/7ePbYZL2xoS59qt2aPgmKzCWMFovCf66jj8udc= X-Developer-Key: i=frank@oltmanns.dev; a=openpgp; fpr=02FD257B7F90E6B9A5444F969A69A208944AD3C7 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1790072955280399008 X-GMAIL-MSGID: 1790072955280399008 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 --- 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,