Message ID | 20231201-sc7280-venus-pas-v3-2-bc132dc5fc30@fairphone.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 82066cdb17608abc95192632fd5c702be8e57ab5 |
Headers | show |
Series | Enable venus on Fairphone 5 / non-ChromeOS sc7280 venus support | expand |
On 12/1/2023 3:03 PM, Luca Weiss wrote: > If the video-firmware node is present, the venus driver assumes we're on > a system that doesn't use TZ for starting venus, like on ChromeOS > devices. > > Move the video-firmware node to chrome-common.dtsi so we can use venus > on a non-ChromeOS devices. We also need to move the secure SID 0x2184 > for iommu since (on some boards) we cannot touch that. > > At the same time also disable the venus node by default in the dtsi, > like it's done on other SoCs. > > Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> > Signed-off-by: Luca Weiss <luca.weiss@fairphone.com> Reviewed-by: Vikash Garodia <quic_vgarodia@quicinc.com> Regards, Vikash > --- > arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi | 11 +++++++++++ > arch/arm64/boot/dts/qcom/sc7280.dtsi | 9 +++------ > 2 files changed, 14 insertions(+), 6 deletions(-) > > diff --git a/arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi b/arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi > index 5d462ae14ba1..459ff877df54 100644 > --- a/arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi > +++ b/arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi > @@ -104,6 +104,17 @@ &scm { > dma-coherent; > }; > > +&venus { > + iommus = <&apps_smmu 0x2180 0x20>, > + <&apps_smmu 0x2184 0x20>; > + > + status = "okay"; > + > + video-firmware { > + iommus = <&apps_smmu 0x21a2 0x0>; > + }; > +}; > + > &watchdog { > status = "okay"; > }; > diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi > index 326897af117a..0ff9a2484096 100644 > --- a/arch/arm64/boot/dts/qcom/sc7280.dtsi > +++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi > @@ -3836,10 +3836,11 @@ venus: video-codec@aa00000 { > <&mmss_noc MASTER_VIDEO_P0 0 &mc_virt SLAVE_EBI1 0>; > interconnect-names = "cpu-cfg", "video-mem"; > > - iommus = <&apps_smmu 0x2180 0x20>, > - <&apps_smmu 0x2184 0x20>; > + iommus = <&apps_smmu 0x2180 0x20>; > memory-region = <&video_mem>; > > + status = "disabled"; > + > video-decoder { > compatible = "venus-decoder"; > }; > @@ -3848,10 +3849,6 @@ video-encoder { > compatible = "venus-encoder"; > }; > > - video-firmware { > - iommus = <&apps_smmu 0x21a2 0x0>; > - }; > - > venus_opp_table: opp-table { > compatible = "operating-points-v2"; > >
On Fri, Dec 01, 2023 at 10:33:19AM +0100, Luca Weiss wrote: > If the video-firmware node is present, the venus driver assumes we're on > a system that doesn't use TZ for starting venus, like on ChromeOS > devices. > > Move the video-firmware node to chrome-common.dtsi so we can use venus > on a non-ChromeOS devices. We also need to move the secure SID 0x2184 > for iommu since (on some boards) we cannot touch that. > > At the same time also disable the venus node by default in the dtsi, > like it's done on other SoCs. > > Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> > Signed-off-by: Luca Weiss <luca.weiss@fairphone.com> > --- > arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi | 11 +++++++++++ > arch/arm64/boot/dts/qcom/sc7280.dtsi | 9 +++------ > 2 files changed, 14 insertions(+), 6 deletions(-) > > diff --git a/arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi b/arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi > index 5d462ae14ba1..459ff877df54 100644 > --- a/arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi > +++ b/arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi > @@ -104,6 +104,17 @@ &scm { > dma-coherent; > }; > > +&venus { > + iommus = <&apps_smmu 0x2180 0x20>, > + <&apps_smmu 0x2184 0x20>; > + > + status = "okay"; > + > + video-firmware { > + iommus = <&apps_smmu 0x21a2 0x0>; > + }; > +}; > + > &watchdog { > status = "okay"; > }; > diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi > index 326897af117a..0ff9a2484096 100644 > --- a/arch/arm64/boot/dts/qcom/sc7280.dtsi > +++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi > @@ -3836,10 +3836,11 @@ venus: video-codec@aa00000 { > <&mmss_noc MASTER_VIDEO_P0 0 &mc_virt SLAVE_EBI1 0>; > interconnect-names = "cpu-cfg", "video-mem"; > > - iommus = <&apps_smmu 0x2180 0x20>, > - <&apps_smmu 0x2184 0x20>; > + iommus = <&apps_smmu 0x2180 0x20>; qcom,sc7280-venus expects 2 items here. Please follow up with a patch to the binding, if you haven't send one already. Thanks, Bjorn > memory-region = <&video_mem>; > > + status = "disabled"; > + > video-decoder { > compatible = "venus-decoder"; > }; > @@ -3848,10 +3849,6 @@ video-encoder { > compatible = "venus-encoder"; > }; > > - video-firmware { > - iommus = <&apps_smmu 0x21a2 0x0>; > - }; > - > venus_opp_table: opp-table { > compatible = "operating-points-v2"; > > > -- > 2.43.0 >
diff --git a/arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi b/arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi index 5d462ae14ba1..459ff877df54 100644 --- a/arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi +++ b/arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi @@ -104,6 +104,17 @@ &scm { dma-coherent; }; +&venus { + iommus = <&apps_smmu 0x2180 0x20>, + <&apps_smmu 0x2184 0x20>; + + status = "okay"; + + video-firmware { + iommus = <&apps_smmu 0x21a2 0x0>; + }; +}; + &watchdog { status = "okay"; }; diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi index 326897af117a..0ff9a2484096 100644 --- a/arch/arm64/boot/dts/qcom/sc7280.dtsi +++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi @@ -3836,10 +3836,11 @@ venus: video-codec@aa00000 { <&mmss_noc MASTER_VIDEO_P0 0 &mc_virt SLAVE_EBI1 0>; interconnect-names = "cpu-cfg", "video-mem"; - iommus = <&apps_smmu 0x2180 0x20>, - <&apps_smmu 0x2184 0x20>; + iommus = <&apps_smmu 0x2180 0x20>; memory-region = <&video_mem>; + status = "disabled"; + video-decoder { compatible = "venus-decoder"; }; @@ -3848,10 +3849,6 @@ video-encoder { compatible = "venus-encoder"; }; - video-firmware { - iommus = <&apps_smmu 0x21a2 0x0>; - }; - venus_opp_table: opp-table { compatible = "operating-points-v2";