On 23.05.2023 14:28, Bjorn Andersson wrote: > On Tue, May 23, 2023 at 10:04:40AM +0200, Konrad Dybcio wrote: >> >> >> On 23.05.2023 03:15, Bjorn Andersson wrote: >>> From: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx> >>> >>> Add memory reservation for the zap-shader and enable the Adreno SMMU, >>> GPU clock controller, GMU and the GPU nodes for the SC8280XP CRD and the >>> Lenovo ThinkPad X13s. >>> >>> Signed-off-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx> >>> Signed-off-by: Bjorn Andersson <quic_bjorande@xxxxxxxxxxx> >>> --- >>> >>> Changes since v1: >>> - None >>> >>> arch/arm64/boot/dts/qcom/sc8280xp-crd.dts | 26 +++++++++++++++++++ >>> .../qcom/sc8280xp-lenovo-thinkpad-x13s.dts | 26 +++++++++++++++++++ >>> 2 files changed, 52 insertions(+) >>> >>> diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts b/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts >>> index 5b25d54b9591..547277924ea3 100644 >>> --- a/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts >>> +++ b/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts >>> @@ -210,6 +210,11 @@ vreg_wwan: regulator-wwan { >>> }; >>> >>> reserved-memory { >>> + gpu_mem: gpu-mem@8bf00000 { >> The ZAP region is very seldom moved around, and I wouldn't expect it >> to be uncommon among the very usecase-specific 8280 machines. >> >>> + reg = <0 0x8bf00000 0 0x2000>; >>> + no-map; >>> + }; >>> + >>> linux,cma { >>> compatible = "shared-dma-pool"; >>> size = <0x0 0x8000000>; >>> @@ -259,6 +264,10 @@ usb1_sbu_mux: endpoint { >>> }; >>> }; >>> >>> +&adreno_smmu { >>> + status = "okay"; >>> +}; >> Ugh. Should definitely be enabled by default. >> >>> + >>> &apps_rsc { >>> regulators-0 { >>> compatible = "qcom,pm8350-rpmh-regulators"; >>> @@ -376,6 +385,23 @@ &dispcc0 { >>> status = "okay"; >>> }; >>> >>> +&gmu { >>> + status = "okay"; >>> +}; >> You can keep the GMU enabled by default as well, it won't "probe" on >> its own (the GPU's hw_init calls its registration) >> >>> + >>> +&gpu { >>> + status = "okay"; >>> + >>> + zap-shader { >>> + memory-region = <&gpu_mem>; >>> + firmware-name = "qcom/sc8280xp/qcdxkmsuc8280.mbn"; >>> + }; >>> +}; >>> + >>> +&gpucc { >>> + status = "okay"; >>> +}; >> Clock controllers have no reason to be off by default. >> > > On sa8295p/sa8540p the GPU is powered differently, so if I leave it > enabled by default I need to disable it (or configure it) for those, or > they won't boot. Another "messed up automotive forks" situation, eh.. Would it take a lot of new code to configure these platforms correctly? Konrad > > Regards, > Bjorn > >> Konrad >>> + >>> &mdss0 { >>> status = "okay"; >>> }; >>> diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts >>> index bdcba719fc38..5ef3f4c07d75 100644 >>> --- a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts >>> +++ b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts >>> @@ -264,6 +264,11 @@ vreg_wwan: regulator-wwan { >>> }; >>> >>> reserved-memory { >>> + gpu_mem: gpu-mem@8bf00000 { >>> + reg = <0 0x8bf00000 0 0x2000>; >>> + no-map; >>> + }; >>> + >>> linux,cma { >>> compatible = "shared-dma-pool"; >>> size = <0x0 0x8000000>; >>> @@ -359,6 +364,10 @@ usb1_sbu_mux: endpoint { >>> }; >>> }; >>> >>> +&adreno_smmu { >>> + status = "okay"; >>> +}; >>> + >>> &apps_rsc { >>> regulators-0 { >>> compatible = "qcom,pm8350-rpmh-regulators"; >>> @@ -518,6 +527,23 @@ &dispcc0 { >>> status = "okay"; >>> }; >>> >>> +&gmu { >>> + status = "okay"; >>> +}; >>> + >>> +&gpu { >>> + status = "okay"; >>> + >>> + zap-shader { >>> + memory-region = <&gpu_mem>; >>> + firmware-name = "qcom/sc8280xp/LENOVO/21BX/qcdxkmsuc8280.mbn"; >>> + }; >>> +}; >>> + >>> +&gpucc { >>> + status = "okay"; >>> +}; >>> + >>> &mdss0 { >>> status = "okay"; >>> };