From mboxrd@z Thu Jan 1 00:00:00 1970 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A5B31C433EF for ; Mon, 18 Oct 2021 18:10:59 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 627836127B for ; Mon, 18 Oct 2021 18:10:59 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 627836127B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:References: Cc:To:Subject:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Hx36dlISvw8uN9mUzfpKAejkXGG89k77qbrbH248Heg=; b=ARYexGUFfpTZBxXoEyu7WRFtiX nGjYkjzCRwyvWC/joAOt9bexoYbQaHbdPokXO5bVLhNTMHN6AJaIyCn/0aE7En7Cs7zh8EZEhxqBz ZFxyq101uR2OlUas9lwanYW1ZPEUBR9fS9DRavFmyzUntU9yBPS9eDiNsjl0GwBbkszBvZqLbdih8 vhWWbFN0ZawADCIzB/PoSgEcYbl7o/GmeFDXQ7yej2be98zNqKjfj6IkT/X5OWe8OoruFQTdny5pF wg/jWdjDJWcS6cx+UHUhldhrfDh24DSYyuR+RnA4eM3SX7ZfFaoSyjXl+5gUOm726lLk127q1FJsG jjZam7lg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mcX4x-00Gl0d-2p; Mon, 18 Oct 2021 18:09:43 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mcX4s-00Gkyc-Vm; Mon, 18 Oct 2021 18:09:40 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 090BCD6E; Mon, 18 Oct 2021 11:09:33 -0700 (PDT) Received: from [10.57.27.231] (unknown [10.57.27.231]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 1835D3F694; Mon, 18 Oct 2021 11:09:30 -0700 (PDT) From: Robin Murphy Subject: Re: [PATCH 1/2] arm64: dts: rk3328: add gpu opp table To: Trevor Woerner , Johan Jonker Cc: linux-kernel@vger.kernel.org, Rob Herring , Heiko Stuebner , Chen-Yu Tsai , David Wu , Ezequiel Garcia , Cameron Nemo , Elaine Zhang , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , "moderated list:ARM/Rockchip SoC support" , "open list:ARM/Rockchip SoC support" References: <20211016154548.29555-1-twoerner@gmail.com> <67c7c3c6-b946-a6bc-24fd-85f56bcec7f3@gmail.com> <20211017152941.GA33697@localhost> Message-ID: Date: Mon, 18 Oct 2021 19:09:25 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 MIME-Version: 1.0 In-Reply-To: <20211017152941.GA33697@localhost> Content-Language: en-GB X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211018_110939_178601_C7415985 X-CRM114-Status: GOOD ( 29.73 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On 2021-10-17 16:29, Trevor Woerner wrote: > On Sat 2021-10-16 @ 10:45:04 PM, Johan Jonker wrote: >> On 10/16/21 5:45 PM, Trevor Woerner wrote: >>> Add an operating-points table and cooling entry to the GPU on the >>> RK3328 SoC to improve its performance. According to its datasheet[1] >>> the maximum frequency of the Mali-450 MP2 GPU found on the RK3328 SoC >>> is 500MHz. >>> >>> On my rock64 device, under x11, glmark2-es2 performance increased from >>> around 60 to just over 100. Same device running glmark2-es2 under >>> wayland/weston improved from just over 100 to just over 200. >>> >>> [1] https://rockchip.fr/RK3328%20datasheet%20V1.2.pdf >>> >>> Signed-off-by: Trevor Woerner >>> --- >>> arch/arm64/boot/dts/rockchip/rk3328.dtsi | 26 +++++++++++++++++++++++- >>> 1 file changed, 25 insertions(+), 1 deletion(-) >>> >>> diff --git a/arch/arm64/boot/dts/rockchip/rk3328.dtsi b/arch/arm64/boot/dts/rockchip/rk3328.dtsi >>> index 8c821acb21ff..5e1dcf71e414 100644 >>> --- a/arch/arm64/boot/dts/rockchip/rk3328.dtsi >>> +++ b/arch/arm64/boot/dts/rockchip/rk3328.dtsi >>> @@ -532,7 +532,8 @@ map0 { >>> cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, >>> <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, >>> <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, >>> - <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; >>> + <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, >>> + <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; >>> contribution = <4096>; >>> }; >>> }; >>> @@ -617,6 +618,29 @@ gpu: gpu@ff300000 { >>> clocks = <&cru ACLK_GPU>, <&cru ACLK_GPU>; >>> clock-names = "bus", "core"; >>> resets = <&cru SRST_GPU_A>; >>> + operating-points-v2 = <&gpu_opp_table>; >>> + #cooling-cells = <2>; >>> + }; >>> + >> >>> + gpu_opp_table: gpu-opp-table { >> >> After the conversion to YAML of the Operating Performance Points(OPP) >> binding the operating-points-v2 property expects the nodename to have >> the '^opp-table(-[a-z0-9]+)?$' format. >> >> make ARCH=arm64 dtbs_check >> DT_SCHEMA_FILES=Documentation/devicetree/bindings/opp/opp-v2.yaml > > Thanks, I wasn't aware. > >>> + compatible = "operating-points-v2"; >>> + >>> + opp-200000000 { >>> + opp-hz = /bits/ 64 <200000000>; >>> + opp-microvolt = <1100000>; >>> + }; >>> + opp-300000000 { >>> + opp-hz = /bits/ 64 <300000000>; >>> + opp-microvolt = <1100000>; >>> + }; >>> + opp-400000000 { >>> + opp-hz = /bits/ 64 <400000000>; >>> + opp-microvolt = <1100000>; >>> + }; >>> + opp-500000000 { >>> + opp-hz = /bits/ 64 <500000000>; >>> + opp-microvolt = <1100000>; >>> + }; >>> }; >> >> opp-microvolt has the same value for every node vs. table below? > > On page 1 of the schematic for the rock64 > https://files.pine64.org/doc/rock64/ROCK64_Schematic_v3.0_20181105.pdf is a > table ("Power Timing") showing BUCK1 at 1.1V. I interpreted this to mean that > VDD_LOG should always be at 1.1V, regardless of frequency. No, that's just the default voltage that BUCK1 itself starts up at - looks like that table is an unfinished attempt to summarise the Power Sequence section from the RK805 datasheet. >> See also previous discussion: >> >> https://lore.kernel.org/linux-rockchip/3c95c29b-6c07-5945-ac22-d683997e1ca0@arm.com/ >> >> Is that now fixed/checked? > > I wasn't aware of the previous/on-going discussion regarding a gpu opp table > for this SoC. Perhaps that explains my suspicions? I couldn't help wonder why > the frequency is always reported as 163840000 even when I have an opp table > that only has the 500MHz entry? FWIW the usual culprit for clocks not changing is inadvertently not having devfreq and/or the simple_ondemand governor enabled. However, I do seem to recall that devfreq doesn't explicitly fix up an out-of-spec clock to a known OPP on startup like cpufreq does - I think it only actually touches the clocks and regulators when transitioning between OPPs, so if it only has one it might possibly end up in a pathological state where that effectively never happens; I don't remember exactly. Unfortunately all my boards are out of action for various reasons at the moment so I can't readily check how I was running mine, but from memory I think I ended up with slightly tweaked voltages based on a survey of several other BSP kernels, and the 200-300MHz points just disabled to avoid undervolting the memory controller once lima voltage scaling was working properly. Cheers, Robin. > > I'll investigate whether I can prove or disprove the scaling is actually > occurring? > > Best regards, > Trevor > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel