Message ID | 20230523011522.65351-4-quic_bjorande@quicinc.com |
---|---|
State | Superseded |
Headers | show |
Series | drm/msm/adreno: GPU support on SC8280XP | expand |
On 23.05.2023 03:15, Bjorn Andersson wrote: > From: Bjorn Andersson <bjorn.andersson@linaro.org> > > 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@linaro.org> > Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com> > --- > > 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. 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"; > };
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 { + 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"; +}; + &apps_rsc { regulators-0 { compatible = "qcom,pm8350-rpmh-regulators"; @@ -376,6 +385,23 @@ &dispcc0 { status = "okay"; }; +&gmu { + status = "okay"; +}; + +&gpu { + status = "okay"; + + zap-shader { + memory-region = <&gpu_mem>; + firmware-name = "qcom/sc8280xp/qcdxkmsuc8280.mbn"; + }; +}; + +&gpucc { + status = "okay"; +}; + &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"; };