Received: by 2002:a05:6358:9144:b0:117:f937:c515 with SMTP id r4csp429035rwr; Thu, 4 May 2023 22:31:10 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4UJhR8u/5KDs16jB/3soBO3/D4bZxowDHmPKw2YC0VUk5iHORJ7aumaKtbOMAmbxSt6wJR X-Received: by 2002:a05:6a21:9707:b0:ef:c4f6:9122 with SMTP id ub7-20020a056a21970700b000efc4f69122mr318147pzb.24.1683264670358; Thu, 04 May 2023 22:31:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1683264670; cv=none; d=google.com; s=arc-20160816; b=OhxrMWwczaQyObzWM8cAYWJgy7tMMy7mMQ5tkPqMNvnx2jBsPuC6xQcNtkMzK6XJUw 6vi9lrOmVGc7IpHlbicIAFJZ+hDjeWOwq9/IN+mK4Q44m8e3AYVNggbCMzCtU3hnyj2X K6UtiG+ffxJcAPLoFLUXqt2zucXzyzdnLJFpB9e9hujC6EyyfGHhb9aW7JXaEgUy9u6p lUc3iij8Csk0hE/e+D+ldi3uagUs7Jd2DJO8cRQonsZ9BAVeeQJyFNrs8wop6hzDbChf I1uKa+adBmsjf5lHUuViNYDsga/WYcxZzojEtiqAXd4YnbwN+QMIWSybnwRf6XDt8Uhw gOxg== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=GRdOoP7K5t1Qmrug0XJy+c34os7rpF7gVntp5bQK458=; b=SfC5r27S4T6EzDEDCI07ocgYi9lOlUEWpwpy+jQkIgJGjVVCVhy53byOY3DZ1YUDLZ SCcvvR09QcEork+T5v5PGvXE0lnXViKTxHyn3D/XGNMkI+Q1uL28E4sZ/i3XQtrvtMMh kiUvtjNLc31j03YEsx4dSUYLEqW34m2zdxvG9Co9pXuKssWhI1T+O62XOuHjDWhfPGoZ Lac75zjQEi2UbLD/x/4eG91gV+tMLMREDTUNsj0hTbj9Ey/E3rpgvraVgjZrSARID1LG JzVL8aOekY/pW/TxJEyBhxvgksPzYuKvunAlO7bvpaswk/CPrlb1XpefZFbn/U0Z7Ruf 2BDA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@crly.cz header.s=gm1 header.b=MHUcTg5y; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=crly.cz Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l65-20020a639144000000b0051b3d5543c3si1251296pge.130.2023.05.04.22.30.55; Thu, 04 May 2023 22:31:10 -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; dkim=pass header.i=@crly.cz header.s=gm1 header.b=MHUcTg5y; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=crly.cz Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230097AbjEEFVe (ORCPT + 99 others); Fri, 5 May 2023 01:21:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53628 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229751AbjEEFVd (ORCPT ); Fri, 5 May 2023 01:21:33 -0400 Received: from relay8-d.mail.gandi.net (relay8-d.mail.gandi.net [IPv6:2001:4b98:dc4:8::228]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A0957199D; Thu, 4 May 2023 22:21:29 -0700 (PDT) Received: (Authenticated sender: me@crly.cz) by mail.gandi.net (Postfix) with ESMTPSA id 440EA1BF20A; Fri, 5 May 2023 05:21:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=crly.cz; s=gm1; t=1683264086; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=GRdOoP7K5t1Qmrug0XJy+c34os7rpF7gVntp5bQK458=; b=MHUcTg5y6RwNfqDH4nhHg2jVT68SY2Ni30HE0C+0bJZIHv7pXGu7TP0auq613VAvcx7Atr nRpeaPT5xAVxBE+vcB1RsIgtNIoIz73PQC4hma+ndYr8wOga6YbQT5yaHXm0o9iVhiRIps oNEPiXY+wOU37gA/U3adL9J7Ush70ixMokIFaYqqSbUmNQIvWf1Rsj70ErsszCOloyBnAp MtUydyM7/eo3M4M4fj7fUf2O+zTb/9m5ieB3VPFkWipEhz7rt8Zd/wBMtwwqiURu207uJD nmxmyelyX+jSrtuoPEen50qWTCErqWoGtethnfymqSiNQnbPbSxtUAcfwGgNaw== From: Roman Beranek To: Maxime Ripard , David Airlie , Daniel Vetter , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski Cc: Frank Oltmanns , Icenowy Zheng , Ondrej Jirman , devicetree@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v4 0/4] drm: sun4i: set proper TCON0 DCLK rate in DSI mode Date: Fri, 5 May 2023 07:21:06 +0200 Message-Id: <20230505052110.67514-1-me@crly.cz> X-Mailer: git-send-email 2.32.0 (Apple Git-132) MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE, 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 According to Allwinner's BSP code, in DSI mode, TCON0 clock needs to be running at what's effectively the per-lane datarate of the DSI link. Given that the TCON DCLK divider is fixed to 4 (SUN6I_DSI_TCON_DIV), DCLK can't be set equal to the dotclock. Therefore labeling TCON DCLK as sun4i_dotclock or tcon-pixel-clock shall be avoided. With bpp bits per pixel transmitted over n DSI lanes, the target DCLK rate for a given pixel clock is obtained as follows: DCLK rate = 1/4 * bpp / n * pixel clock Effect of this change can be observed through the rate of Vblank IRQs which should now match refresh rate implied by set display mode. It was verified to do so on a A64 board with a 2-lane and a 4-lane panel. v2: 1. prevent reparent of tcon0 to pll-video0-2x 2. include pll-video0 in setting TCON0 DCLK rate 3. tested the whole thing also on a PinePhone v3: 1. accept that pll-video0 can't be included in setting TCON0 DCLK rate 2. reset pll-video0 to its default rate in case u-boot changed it v4: 1. keep pll-video0 as is 2. assign parent to TCON0 mux in sun50i_a64_ccu_probe (not in DT) Roman Beranek (4): clk: sunxi-ng: a64: force select PLL_MIPI in TCON0 mux ARM: dts: sunxi: rename tcon's clock output drm: sun4i: rename sun4i_dotclock to sun4i_tcon_dclk drm: sun4i: calculate proper DCLK rate for DSI arch/arm/boot/dts/sun5i.dtsi | 2 +- arch/arm/boot/dts/sun8i-a23-a33.dtsi | 2 +- arch/arm/boot/dts/sun8i-a83t.dtsi | 2 +- arch/arm/boot/dts/sun8i-v3s.dtsi | 2 +- arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 2 +- drivers/clk/sunxi-ng/ccu-sun50i-a64.c | 14 +++++- drivers/gpu/drm/sun4i/Makefile | 2 +- drivers/gpu/drm/sun4i/sun4i_tcon.c | 46 +++++++++++-------- .../{sun4i_dotclock.c => sun4i_tcon_dclk.c} | 2 +- .../{sun4i_dotclock.h => sun4i_tcon_dclk.h} | 0 10 files changed, 46 insertions(+), 28 deletions(-) rename drivers/gpu/drm/sun4i/{sun4i_dotclock.c => sun4i_tcon_dclk.c} (99%) rename drivers/gpu/drm/sun4i/{sun4i_dotclock.h => sun4i_tcon_dclk.h} (100%) base-commit: 8a91b29f1f50ce7742cdbe5cf11d17f128511f3f -- 2.32.0 (Apple Git-132)