Received: by 2002:a05:6358:53a8:b0:117:f937:c515 with SMTP id z40csp5034009rwe; Tue, 18 Apr 2023 00:44:07 -0700 (PDT) X-Google-Smtp-Source: AKy350aSl0JOaqJYdIbmlPvkYgsX8/d5jZXEbY89IS4z9dIUvPiWfKRQxr/iYnyj0ww7ZHziYMvY X-Received: by 2002:aa7:888b:0:b0:63d:2260:f7d with SMTP id z11-20020aa7888b000000b0063d22600f7dmr7540089pfe.8.1681803847362; Tue, 18 Apr 2023 00:44:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681803847; cv=none; d=google.com; s=arc-20160816; b=nd9W4q/W0H7ZcyqoQME3LzPS4bTh3pUEFXc4zbI/JnYWUgtjbL84JGXE47/WiFijy2 4zSXY9ZdnsMSx20btkUpQlzTzos9bZUtvzTMEU4rv+bdK1FrLdSpZPug0TN4CYNdzaap zlkE8S/xS/SvHxC9h+ciLoCa27gLgK7mNBE6n9fh60BsBpYbemgv/RhbLDtYAlSuKb3p 509av/m+w83vsHJd1DxGBDicg51MP9WwsZ1Uh/KtC1zxU7Ew22haxXmR4gqsFEpxHgwp aK6qb7qeCn7aUPcyv0vU7OSovQRawU/eEWQ33rKAkNoya9zRYr7EdBvLlTBktBrjInhC 2whw== 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=aPl7ACTbaf6Xi825bUFZ+ZDPrR2PqiPSSSG/kvCOI6A=; b=BO32XYN4JYJAZ/wEf2Wzr4P3W61ijjwJijfB6nYH4lO+aQle6B6/iD4AHSPBmkAhGE 9+bRZ7V5H7/fdQTXjDu68mNyY5PRTwduN+FMHRxrrwcs3piCSn8Fq/SUCLkZTp2uLTW0 8uOvCOZhQJsn/DCw063DrYO7IWfziFeaX+Dm7ZtPIsJWfQ91X1tyMclBk4askk2EeGi3 M3rxYf9sy0rxm5myXxEB+2y3uPM+K6UJ5qwvieXX+WSZEYzjcs9psUdEAn+G3arD2O44 YrWUD4FouwJGY/1pwSwjTVAy0Fv6yVo3RhqvHyXO5+KN86RXsQgTnlvFQ3fYU0TV6rro 1l1w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@crly.cz header.s=gm1 header.b=XdtnH+Ga; 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 74-20020a62174d000000b0063b2655def0si13618889pfx.47.2023.04.18.00.43.56; Tue, 18 Apr 2023 00:44:07 -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=XdtnH+Ga; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230252AbjDRHkp (ORCPT + 99 others); Tue, 18 Apr 2023 03:40:45 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47866 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229681AbjDRHkn (ORCPT ); Tue, 18 Apr 2023 03:40:43 -0400 Received: from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net [IPv6:2001:4b98:dc4:8::229]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A96223C1F for ; Tue, 18 Apr 2023 00:40:41 -0700 (PDT) Received: (Authenticated sender: me@crly.cz) by mail.gandi.net (Postfix) with ESMTPSA id D396EFF805; Tue, 18 Apr 2023 07:40:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=crly.cz; s=gm1; t=1681803639; 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=aPl7ACTbaf6Xi825bUFZ+ZDPrR2PqiPSSSG/kvCOI6A=; b=XdtnH+Ga3tmi0mjo+o7qTfYAfcy0q1ULx/84PvIl1J4116fLhnBuDh3Z84H93wZkY//f0y 4/bxPyKexMl2frjIzlUnOL+wv+V/mZjA2UO7QsTlPAjjd5LJTknc7OiCkJwX009uhoHZQX botK5leRdXmNHYEQygaHjHh40LhxRsEDYV9t7N2DMFTstDInax1/2dml3MVjQHmYlfuLgz rSaSa8VrA77glCtFFU+ZxS0EJterarKLjIOgkKaWiScRFVMs7FtQuxfkJe/JKPZDWrFplC Ra10K+ITElx+paoqAtuE2av+5rNyFltMzW8zDtOPJFzNvusrG/W4usDoZaCNlA== From: Roman Beranek To: Maxime Ripard , Chen-Yu Tsai , David Airlie , Daniel Vetter , Jernej Skrabec , Samuel Holland Cc: Roman Beranek , Frank Oltmanns , Icenowy Zheng , Ondrej Jirman , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v2 0/7] drm: sun4i: set proper TCON0 DCLK rate in DSI mode Date: Tue, 18 Apr 2023 09:40:01 +0200 Message-Id: <20230418074008.69752-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,URIBL_BLOCKED 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 Roman Beranek (7): clk: sunxi-ng: a64: propagate rate change from pll-mipi clk: sunxi-ng: a64: export PLL_MIPI clk: sunxi-ng: a64: prevent CLK_TCON0 being reparented arm64: dts: allwinner: a64: assign PLL_MIPI to CLK_TCON0 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 | 4 +- drivers/clk/sunxi-ng/ccu-sun50i-a64.c | 6 ++- drivers/clk/sunxi-ng/ccu-sun50i-a64.h | 4 +- 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 include/dt-bindings/clock/sun50i-a64-ccu.h | 1 + 12 files changed, 43 insertions(+), 30 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: 4aa35a0130d6b8afbefc9ef530a521fb0fb9b8e1 -- 2.34.1