summaryrefslogtreecommitdiffstats
path: root/arm-fix-iommu-rockchip.patch
diff options
context:
space:
mode:
Diffstat (limited to 'arm-fix-iommu-rockchip.patch')
-rw-r--r--arm-fix-iommu-rockchip.patch51
1 files changed, 0 insertions, 51 deletions
diff --git a/arm-fix-iommu-rockchip.patch b/arm-fix-iommu-rockchip.patch
deleted file mode 100644
index def4a0df8..000000000
--- a/arm-fix-iommu-rockchip.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From: Thierry Reding <treding at nvidia.com>
-
-The Rockchip IOMMU driver unconditionally executes code and registers a
-struct iommu_ops with the platform bus irrespective of whether it runs
-on a Rockchip SoC or not. This causes problems in multi-platform kernels
-where drivers for other SoCs will no longer be able to register their
-own struct iommu_ops or even try to use a struct iommu_ops for an IOMMU
-that obviously isn't there.
-
-The smallest fix I could think of is to check for the existence of any
-Rockchip IOMMU devices in the device tree and skip initialization
-otherwise.
-
-This fixes a problem on Tegra20 where the DRM driver will try to use the
-obviously non-existent Rockchip IOMMU.
-Reported-by: Nicolas Chauvet <kwizart at gmail.com>
-Cc: Heiko Stuebner <heiko at sntech.de>
-Cc: Daniel Kurtz <djkurtz at chromium.org>
-Reviewed-by: Heiko Stuebner <heiko at sntech.de>
-Tested-by: Heiko Stuebner <heiko at sntech.de>
-Signed-off-by: Thierry Reding <treding at nvidia.com>
----
-Changes in v2:
-- do not fix up module exit function since it's dead code
-- drop reference to struct device_node
-
- drivers/iommu/rockchip-iommu.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/drivers/iommu/rockchip-iommu.c b/drivers/iommu/rockchip-iommu.c
-index 6a8b1ec4a48a..9f74fddcd304 100644
---- a/drivers/iommu/rockchip-iommu.c
-+++ b/drivers/iommu/rockchip-iommu.c
-@@ -1015,8 +1015,15 @@ static struct platform_driver rk_iommu_driver = {
-
- static int __init rk_iommu_init(void)
- {
-+ struct device_node *np;
- int ret;
-
-+ np = of_find_matching_node(NULL, rk_iommu_dt_ids);
-+ if (!np)
-+ return 0;
-+
-+ of_node_put(np);
-+
- ret = bus_set_iommu(&platform_bus_type, &rk_iommu_ops);
- if (ret)
- return ret;
---
-2.1.3