linux-yocto: sc7280: move video-firmware to chrome-common

At the same time also disable the venus node by default in the dtsi,
like it's done on other SoCs.

This is needed to fix crash while venus init.

Call trace:
 qcom_smmu_write_s2cr+0x60/0xa4
 arm_smmu_attach_dev+0x1d8/0x98c
 __iommu_device_set_domain+0x7c/0x110
 __iommu_group_set_domain_internal+0x60/0x194
 iommu_setup_default_domain+0x374/0x420
 __iommu_probe_device+0x3ac/0x3d4
 iommu_probe_device+0x34/0x78
 of_iommu_configure+0x18c/0x25c
 of_dma_configure_id+0x114/0x2c8
 platform_dma_configure+0x30/0x78
 really_probe+0x70/0x2b0
 __driver_probe_device+0x78/0x12c
 driver_probe_device+0x3c/0x15c
 __driver_attach+0x90/0x19c
 bus_for_each_dev+0x7c/0xdc
 driver_attach+0x24/0x30
 bus_add_driver+0xe8/0x1f8
 driver_register+0x5c/0x124
 __platform_driver_register+0x28/0x34
 qcom_venus_driver_init+0x20/0x1000 [venus_core]
This commit is contained in:
Atul Dhudase
2024-04-03 17:14:09 +05:30
parent 38a97d1a05
commit ac49a2d7d5
2 changed files with 83 additions and 0 deletions

View File

@@ -0,0 +1,82 @@
From 65d0e0ecf6725459457162b33d02333888bfa25e Mon Sep 17 00:00:00 2001
From: Luca Weiss <luca.weiss@fairphone.com>
Date: Fri, 1 Dec 2023 10:33:19 +0100
Subject: [PATCH] UPSTREAM: arm64: dts: qcom: sc7280: Move video-firmware to
chrome-common
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>
Link: https://lore.kernel.org/r/20231201-sc7280-venus-pas-v3-2-bc132dc5fc30@fairphone.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Upstream-Status: Backport [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 82066cdb17608abc95192632fd5c702be8e57ab5]
---
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 cbd0f4176daa..1c136ad878ed 100644
--- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
@@ -3725,10 +3725,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";
};
@@ -3737,10 +3738,6 @@ video-encoder {
compatible = "venus-encoder";
};
- video-firmware {
- iommus = <&apps_smmu 0x21a2 0x0>;
- };
-
venus_opp_table: opp-table {
compatible = "operating-points-v2";
--
2.25.1

View File

@@ -55,6 +55,7 @@ SRC_URI:append:qcom = " \
file://qcm6490-drivers/0001-FROMGIT-phy-qcom-qmp-ufs-Add-Phy-Configuration-suppo.patch \
file://qcm6490-dtsi/0001-FROMLIST-arm64-dts-qcom-sc7280-Add-UFS-nodes-for-sc7.patch \
file://qcm6490-dtsi/0001-PENDING-arm64-dts-qcom-sc7280-Add-interconnect-paths.patch \
file://qcm6490-dtsi/0001-UPSTREAM-arm64-dts-qcom-sc7280-Move-video-firmware-t.patch \
file://qcm6490-dtsi/0001-UPSTREAM-arm64-dts-qcom-Use-QCOM_SCM_VMID-defines-fo.patch \
file://qcm6490-board-dts/0001-UPSTREAM-dt-bindings-arm-qcom-Add-QCM6490-Fairphone-.patch \
file://qcm6490-board-dts/0002-UPSTREAM-dt-bindings-arm-qcom-Add-QCM6490-IDP-and-QC.patch \