Received: by 2002:a05:7412:9c07:b0:fa:6e18:a558 with SMTP id lr7csp445529rdb; Sat, 27 Jan 2024 13:32:32 -0800 (PST) X-Google-Smtp-Source: AGHT+IFrmQt7tiNB7f9hS/U6jU5OssqqvuUKrGsVOeJ4AG3nNO0sSQQ8TWlyPxYC49mAHQ8c+Z0x X-Received: by 2002:a05:620a:21c9:b0:783:8e25:743 with SMTP id h9-20020a05620a21c900b007838e250743mr2492103qka.83.1706391152427; Sat, 27 Jan 2024 13:32:32 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706391152; cv=pass; d=google.com; s=arc-20160816; b=D16O4HDVe/8zmviGPzDKxl5g7NGGs7is9d6c9NkLJegLb5i0B6YO6PfdnvtbQwTXDn NIxXnl9OKhXpD+nE95ypqiYG2q3wV8boQtieZr0/hEOMsuDXyqhrFkUst4Rv4MPqJsXZ 2xNUEdMQ0//s6gDp7uRjqGW1MvY16nH0Q23PDkLJKQgFtxucsSIQknq7XkHVMAHJSjKi +k/BBRojyBzTIwsdWZudrLl0yNatCFmRzNAsHPz1dPLG9PobAVb4ZQYFNJo2irYJm0Oe 2N6DGVhfDG7ysgNVlvQcwUtnvr8qmrZRsA6fFMVx8Ji0xn7TFuVhf/CLD5GtpkVrDCn/ UiyQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:list-unsubscribe:list-subscribe:list-id:precedence :subject:date:from:dkim-signature; bh=/a3C2uqwCaEjaLtML2UNGANb8wE4gJeqwvM4Tmf+Hxo=; fh=ytyuSPC52TUElrA/mZen9kyWaXz91Oh2mpXiN50EEhI=; b=dsgoPUp2FM5a3QzDjQbQ0h5NFX3Y2t8dxy+L3l9DRTFVpwGZQrZkMI91v+d5y8EHFX xpwmZj8C6Lt4jvxYSQlbV9U4V+CNAHNd3s7XniU6TI/Cgjt72CR+W9rB7V2sWnxfEuBR sppmr3B97AdiGDNTypqOrfL4uZisATDW1PiLNgznpj/FbYGYWDPb+E6Z05KCU8mya4gm Ez7PEcLaTXbZXMsJSolq/mpMDQpGYmcdiiPX23GHplb2n0y8N2AZOWVsJ4ZUlkNZG3CE um+2ApG3z3ovwGeI8wct3FiHgnXn0dHyFbwr28qoGtVLxZRZjvEwb+g/zZ1kJGgWepOi 3XpA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@z3ntu.xyz header.s=s1 header.b=FWqk6gH4; arc=pass (i=1 spf=pass spfdomain=z3ntu.xyz dkim=pass dkdomain=z3ntu.xyz dmarc=pass fromdomain=z3ntu.xyz); spf=pass (google.com: domain of linux-kernel+bounces-39340-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-39340-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=z3ntu.xyz Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id s17-20020a17090aba1100b002935f38dcf1si3958525pjr.181.2024.01.27.13.32.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 27 Jan 2024 13:32:32 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-39340-linux.lists.archive=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=@z3ntu.xyz header.s=s1 header.b=FWqk6gH4; arc=pass (i=1 spf=pass spfdomain=z3ntu.xyz dkim=pass dkdomain=z3ntu.xyz dmarc=pass fromdomain=z3ntu.xyz); spf=pass (google.com: domain of linux-kernel+bounces-39340-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-39340-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=z3ntu.xyz 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 C17B1281B9C for ; Thu, 25 Jan 2024 21:56:59 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1368B13B799; Thu, 25 Jan 2024 21:56:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=z3ntu.xyz header.i=@z3ntu.xyz header.b="FWqk6gH4" Received: from ahti.lucaweiss.eu (ahti.lucaweiss.eu [128.199.32.197]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3F4FF13A25D; Thu, 25 Jan 2024 21:56:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=128.199.32.197 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706219793; cv=none; b=QidKAh3n2dKRfaD9y0ksEcErzLT3LaCzEqA9hyga4mtbh41S2vEkXoaTHyjPgjWDFtpnwPBdygI4CsuW7GBgZsOuKdbu4h+gKg549SfquIavWJ0FGxXdwz/sw66y/+2WfZ0zovRK+HbAZypMIR+DkSBooaAb8oYkyveyRUuBtdQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706219793; c=relaxed/simple; bh=Oqyozkp+3yIVzn78FJIm4wo9l8cFnDnRA86nkZK/rME=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mGpa3X9eP8NOkawquJtSVSbOdbdGnSUaqRPfJWu5GEwX4dX2qVCgiSFVB0JmDDIP555uswQDgW0/+7rVoSqhn7EFKWkETuIwl9H4RZMGVwg8rTs+4cOHJhukP2bee9JxuZY+7WZKhgFOj0ghmZtlrnO+ZkFVU1BwN429Y0sJhkg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=z3ntu.xyz; spf=pass smtp.mailfrom=z3ntu.xyz; dkim=pass (1024-bit key) header.d=z3ntu.xyz header.i=@z3ntu.xyz header.b=FWqk6gH4; arc=none smtp.client-ip=128.199.32.197 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=z3ntu.xyz Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=z3ntu.xyz DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=z3ntu.xyz; s=s1; t=1706219789; bh=Oqyozkp+3yIVzn78FJIm4wo9l8cFnDnRA86nkZK/rME=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=FWqk6gH4SXpC2psEycIdHU/CVfUyW4vur7C0aJS36GTNhjIxuWiR8IBAXm4rq1Wkv oq02yrBUliIW/ZInetRbZAtE4n7ebdy5p5leoKifisJ9lX1wJlm48DpgEvkbArc8mE x7l49g5ey8AtsnUuaYUQSpHqZzvyZtYBE0kStd6U= From: Luca Weiss Date: Thu, 25 Jan 2024 22:56:26 +0100 Subject: [PATCH RFC 2/2] arm64: dts: qcom: msm8953: Add GPU Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20240125-msm8953-gpu-v1-2-f6493a5951f3@z3ntu.xyz> References: <20240125-msm8953-gpu-v1-0-f6493a5951f3@z3ntu.xyz> In-Reply-To: <20240125-msm8953-gpu-v1-0-f6493a5951f3@z3ntu.xyz> To: ~postmarketos/upstreaming@lists.sr.ht, phone-devel@vger.kernel.org, Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Vladimir Lypak Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Luca Weiss X-Mailer: b4 0.12.4 X-Developer-Signature: v=1; a=openpgp-sha256; l=5530; i=luca@z3ntu.xyz; h=from:subject:message-id; bh=uxlKtlyhduTvOfdocjjZ8QA65zmTpmpXVNCWTg8SbYg=; b=owEBbQKS/ZANAwAIAXLYQ7idTddWAcsmYgBlstkLT23pPvklj9ZVYTuNZCeUf+xI5SlD7A/Pi NF34HTMp4SJAjMEAAEIAB0WIQQ5utIvCCzakboVj/py2EO4nU3XVgUCZbLZCwAKCRBy2EO4nU3X VmSeD/9GZ5NSNz0lBhI9KRyrbfH5Zm43r2g8/U70M2nZlrcHIVT1+/3d/1QcX2KOLpobK3lqx4z EnnyYuK74Qh+dqOdcepbvrNDs7uV3hUOGYSDOk2ULexLoS1JAU8b4Pb3LkQPQOJTtuqXhtjY95h mRaBGQLrFiOrEQbJbF5GLoXkhkhh96ezMqB74otxvdMSSBxKzGQtljh1GdXvSSwSwsvSR0XSs1/ beQIlsZr4+FnffcySH3fom6BO87IEop3O8HpUPUJc64x5lKC4O7b5Bx/F7D0WOb8AK2Q+ass52i BtM3k/iQaKkGl+7uNJdP4uePPhQZWQPG5ANc4OPAbj/GFfapYeY+4n90wCjVBnYMl1mOYeNJhKL kKZtQTVBHFoWkWTHNLrTtD3S48czekxbDJ8yhuWjP0wy9i2YBD9eSOOme0Fcat9bb6W4YE1xEcx wPRuzPlQ7n4xgyL01OwTbclzjitaw2U3D7KMfdbR+Orin/Nmgh1Swq65A/XmahDu5A6WZqkwXRj dLbRs7sKaWG3H6leXONwKFN/I7fovRZDah3NzhU3dMeecrAWXhmEOMg8R6j295L/Ae1bLKSG7tF SmjuD86vTn1wJFLYgWohjGQ8TlpvmehEPzUEWKXYdvssX1zf5ktTnV1W3GRcei3cjqTrtnWJpeT YO8kPGWAPjO6KSg== X-Developer-Key: i=luca@z3ntu.xyz; a=openpgp; fpr=BD04DA24C971B8D587B2B8D7FAF69CF6CD2D02CD From: Vladimir Lypak Add the GPU node for the Adreno 506 found on this family of SoCs. The clock speeds are a bit different per SoC variant, SDM450 maxes out at 600MHz while MSM8953 (= SDM625) goes up to 650MHz and SDM632 goes up to 725MHz. To achieve this, create a new sdm450.dtsi to hold the 600MHz OPP and use the new dtsi for sdm450-motorola-ali. Signed-off-by: Vladimir Lypak Co-developed-by: Luca Weiss Signed-off-by: Luca Weiss --- arch/arm64/boot/dts/qcom/msm8953.dtsi | 115 +++++++++++++++++++++++ arch/arm64/boot/dts/qcom/sdm450-motorola-ali.dts | 2 +- arch/arm64/boot/dts/qcom/sdm450.dtsi | 14 +++ arch/arm64/boot/dts/qcom/sdm632.dtsi | 8 ++ 4 files changed, 138 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/msm8953.dtsi b/arch/arm64/boot/dts/qcom/msm8953.dtsi index 91d083871ab0..1fe0c0c4fd15 100644 --- a/arch/arm64/boot/dts/qcom/msm8953.dtsi +++ b/arch/arm64/boot/dts/qcom/msm8953.dtsi @@ -1046,6 +1046,94 @@ mdss_dsi1_phy: phy@1a96400 { }; }; + gpu: gpu@1c00000 { + compatible = "qcom,adreno-506.0", "qcom,adreno"; + reg = <0x01c00000 0x40000>; + reg-names = "kgsl_3d0_reg_memory"; + interrupts = ; + + clocks = <&gcc GCC_OXILI_GFX3D_CLK>, + <&gcc GCC_OXILI_AHB_CLK>, + <&gcc GCC_BIMC_GFX_CLK>, + <&gcc GCC_BIMC_GPU_CLK>, + <&gcc GCC_OXILI_TIMER_CLK>, + <&gcc GCC_OXILI_AON_CLK>; + clock-names = "core", + "iface", + "mem_iface", + "alt_mem_iface", + "rbbmtimer", + "alwayson"; + power-domains = <&gcc OXILI_GX_GDSC>; + + iommus = <&gpu_iommu 0>; + operating-points-v2 = <&gpu_opp_table>; + + #cooling-cells = <2>; + + status = "disabled"; + + zap-shader { + memory-region = <&zap_shader_region>; + }; + + gpu_opp_table: opp-table { + compatible = "operating-points-v2"; + + opp-19200000 { + opp-hz = /bits/ 64 <19200000>; + opp-supported-hw = <0xff>; + required-opps = <&rpmpd_opp_min_svs>; + }; + + opp-133300000 { + opp-hz = /bits/ 64 <133300000>; + opp-supported-hw = <0xff>; + required-opps = <&rpmpd_opp_min_svs>; + }; + + opp-216000000 { + opp-hz = /bits/ 64 <216000000>; + opp-supported-hw = <0xff>; + required-opps = <&rpmpd_opp_low_svs>; + }; + + opp-320000000 { + opp-hz = /bits/ 64 <320000000>; + opp-supported-hw = <0xff>; + required-opps = <&rpmpd_opp_svs>; + }; + + opp-400000000 { + opp-hz = /bits/ 64 <400000000>; + opp-supported-hw = <0xff>; + required-opps = <&rpmpd_opp_svs_plus>; + }; + + opp-510000000 { + opp-hz = /bits/ 64 <510000000>; + opp-supported-hw = <0xff>; + required-opps = <&rpmpd_opp_nom>; + }; + + opp-560000000 { + opp-hz = /bits/ 64 <560000000>; + opp-supported-hw = <0xff>; + required-opps = <&rpmpd_opp_nom_plus>; + }; + + /* + * This opp is only available on msm8953 and + * sdm632, the max for sdm450 is 600MHz. + */ + opp-650000000 { + opp-hz = /bits/ 64 <650000000>; + opp-supported-hw = <0xff>; + required-opps = <&rpmpd_opp_turbo>; + }; + }; + }; + gpu_iommu: iommu@1c48000 { compatible = "qcom,msm8953-iommu", "qcom,msm-iommu-v2"; ranges = <0 0x01c48000 0x8000>; @@ -2045,6 +2133,33 @@ map0 { }; }; }; + + gpu-thermal { + polling-delay-passive = <250>; + polling-delay = <1000>; + thermal-sensors = <&tsens0 15>; + + trips { + gpu_alert: trip-point0 { + temperature = <70000>; + hysteresis = <2000>; + type = "passive"; + }; + + gpu_crit: crit { + temperature = <90000>; + hysteresis = <2000>; + type = "critical"; + }; + }; + + cooling-maps { + map0 { + trip = <&gpu_alert>; + cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + }; + }; + }; }; timer { diff --git a/arch/arm64/boot/dts/qcom/sdm450-motorola-ali.dts b/arch/arm64/boot/dts/qcom/sdm450-motorola-ali.dts index 362be5719dd2..e27f3c5d5bba 100644 --- a/arch/arm64/boot/dts/qcom/sdm450-motorola-ali.dts +++ b/arch/arm64/boot/dts/qcom/sdm450-motorola-ali.dts @@ -4,7 +4,7 @@ */ /dts-v1/; -#include "msm8953.dtsi" +#include "sdm450.dtsi" #include "pm8953.dtsi" #include "pmi8950.dtsi" diff --git a/arch/arm64/boot/dts/qcom/sdm450.dtsi b/arch/arm64/boot/dts/qcom/sdm450.dtsi new file mode 100644 index 000000000000..b222aeb459a3 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/sdm450.dtsi @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* Copyright (c) 2023, Luca Weiss */ + +#include "msm8953.dtsi" + +&gpu_opp_table { + /delete-node/ opp-650000000; + + opp-600000000 { + opp-hz = /bits/ 64 <600000000>; + opp-supported-hw = <0xff>; + required-opps = <&rpmpd_opp_turbo>; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/sdm632.dtsi b/arch/arm64/boot/dts/qcom/sdm632.dtsi index 645b9f6a801f..95b025ea260b 100644 --- a/arch/arm64/boot/dts/qcom/sdm632.dtsi +++ b/arch/arm64/boot/dts/qcom/sdm632.dtsi @@ -79,3 +79,11 @@ &CPU7 { compatible = "qcom,kryo250"; capacity-dmips-mhz = <1980>; }; + +&gpu_opp_table { + opp-725000000 { + opp-hz = /bits/ 64 <725000000>; + opp-supported-hw = <0xff>; + required-opps = <&rpmpd_opp_turbo>; + }; +}; -- 2.43.0