diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-05-09 18:15:47 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-05-09 18:15:47 -0400 |
commit | 28b47809b2171a6cfbab839936b24280639c9f85 (patch) | |
tree | 23c918f66783e269e95680136f80362d9c62070d /drivers/media | |
parent | 4a1e31c68e9f40be32838944931178b0d9ed9162 (diff) | |
parent | 2c0248d68880fc0e783af1048b3367ee5d4412f0 (diff) |
Merge tag 'iommu-updates-v4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu
Pull IOMMU updates from Joerg Roedel:
- code optimizations for the Intel VT-d driver
- ability to switch off a previously enabled Intel IOMMU
- support for 'struct iommu_device' for OMAP, Rockchip and Mediatek
IOMMUs
- header optimizations for IOMMU core code headers and a few fixes that
became necessary in other parts of the kernel because of that
- ACPI/IORT updates and fixes
- Exynos IOMMU optimizations
- updates for the IOMMU dma-api code to bring it closer to use per-cpu
iova caches
- new command-line option to set default domain type allocated by the
iommu core code
- another command line option to allow the Intel IOMMU switched off in
a tboot environment
- ARM/SMMU: TLB sync optimisations for SMMUv2, Support for using an
IDENTITY domain in conjunction with DMA ops, Support for SMR masking,
Support for 16-bit ASIDs (was previously broken)
- various other small fixes and improvements
* tag 'iommu-updates-v4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (63 commits)
soc/qbman: Move dma-mapping.h include to qman_priv.h
soc/qbman: Fix implicit header dependency now causing build fails
iommu: Remove trace-events include from iommu.h
iommu: Remove pci.h include from trace/events/iommu.h
arm: dma-mapping: Don't override dma_ops in arch_setup_dma_ops()
ACPI/IORT: Fix CONFIG_IOMMU_API dependency
iommu/vt-d: Don't print the failure message when booting non-kdump kernel
iommu: Move report_iommu_fault() to iommu.c
iommu: Include device.h in iommu.h
x86, iommu/vt-d: Add an option to disable Intel IOMMU force on
iommu/arm-smmu: Return IOVA in iova_to_phys when SMMU is bypassed
iommu/arm-smmu: Correct sid to mask
iommu/amd: Fix incorrect error handling in amd_iommu_bind_pasid()
iommu: Make iommu_bus_notifier return NOTIFY_DONE rather than error code
omap3isp: Remove iommu_group related code
iommu/omap: Add iommu-group support
iommu/omap: Make use of 'struct iommu_device'
iommu/omap: Store iommu_dev pointer in arch_data
iommu/omap: Move data structures to omap-iommu.h
iommu/omap: Drop legacy-style device support
...
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/platform/mtk-vpu/mtk_vpu.c | 1 | ||||
-rw-r--r-- | drivers/media/platform/omap3isp/isp.c | 17 | ||||
-rw-r--r-- | drivers/media/platform/omap3isp/isp.h | 1 |
3 files changed, 1 insertions, 18 deletions
diff --git a/drivers/media/platform/mtk-vpu/mtk_vpu.c b/drivers/media/platform/mtk-vpu/mtk_vpu.c index aa44e11decca..853d598937f6 100644 --- a/drivers/media/platform/mtk-vpu/mtk_vpu.c +++ b/drivers/media/platform/mtk-vpu/mtk_vpu.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <linux/of_reserved_mem.h> | 23 | #include <linux/of_reserved_mem.h> |
24 | #include <linux/sched.h> | 24 | #include <linux/sched.h> |
25 | #include <linux/sizes.h> | 25 | #include <linux/sizes.h> |
26 | #include <linux/dma-mapping.h> | ||
26 | 27 | ||
27 | #include "mtk_vpu.h" | 28 | #include "mtk_vpu.h" |
28 | 29 | ||
diff --git a/drivers/media/platform/omap3isp/isp.c b/drivers/media/platform/omap3isp/isp.c index 084ecf4aa9a4..0d984a28a003 100644 --- a/drivers/media/platform/omap3isp/isp.c +++ b/drivers/media/platform/omap3isp/isp.c | |||
@@ -1943,30 +1943,13 @@ static void isp_detach_iommu(struct isp_device *isp) | |||
1943 | { | 1943 | { |
1944 | arm_iommu_release_mapping(isp->mapping); | 1944 | arm_iommu_release_mapping(isp->mapping); |
1945 | isp->mapping = NULL; | 1945 | isp->mapping = NULL; |
1946 | iommu_group_remove_device(isp->dev); | ||
1947 | } | 1946 | } |
1948 | 1947 | ||
1949 | static int isp_attach_iommu(struct isp_device *isp) | 1948 | static int isp_attach_iommu(struct isp_device *isp) |
1950 | { | 1949 | { |
1951 | struct dma_iommu_mapping *mapping; | 1950 | struct dma_iommu_mapping *mapping; |
1952 | struct iommu_group *group; | ||
1953 | int ret; | 1951 | int ret; |
1954 | 1952 | ||
1955 | /* Create a device group and add the device to it. */ | ||
1956 | group = iommu_group_alloc(); | ||
1957 | if (IS_ERR(group)) { | ||
1958 | dev_err(isp->dev, "failed to allocate IOMMU group\n"); | ||
1959 | return PTR_ERR(group); | ||
1960 | } | ||
1961 | |||
1962 | ret = iommu_group_add_device(group, isp->dev); | ||
1963 | iommu_group_put(group); | ||
1964 | |||
1965 | if (ret < 0) { | ||
1966 | dev_err(isp->dev, "failed to add device to IPMMU group\n"); | ||
1967 | return ret; | ||
1968 | } | ||
1969 | |||
1970 | /* | 1953 | /* |
1971 | * Create the ARM mapping, used by the ARM DMA mapping core to allocate | 1954 | * Create the ARM mapping, used by the ARM DMA mapping core to allocate |
1972 | * VAs. This will allocate a corresponding IOMMU domain. | 1955 | * VAs. This will allocate a corresponding IOMMU domain. |
diff --git a/drivers/media/platform/omap3isp/isp.h b/drivers/media/platform/omap3isp/isp.h index 7e6f6638433b..2f2ae609c548 100644 --- a/drivers/media/platform/omap3isp/isp.h +++ b/drivers/media/platform/omap3isp/isp.h | |||
@@ -23,7 +23,6 @@ | |||
23 | #include <linux/clk-provider.h> | 23 | #include <linux/clk-provider.h> |
24 | #include <linux/device.h> | 24 | #include <linux/device.h> |
25 | #include <linux/io.h> | 25 | #include <linux/io.h> |
26 | #include <linux/iommu.h> | ||
27 | #include <linux/platform_device.h> | 26 | #include <linux/platform_device.h> |
28 | #include <linux/wait.h> | 27 | #include <linux/wait.h> |
29 | 28 | ||