iommu/rockchip: Fix bugs and enable on ARM64
From: Shunqian Zheng
Date: Thu Jun 23 2016 - 22:14:57 EST
This series intends mostly to enable support for ARM64 architecture
in the rockchip-iommu driver. On the way to do so, some bugs are also
fixed.
The most important changes here are:
- making the Rockchip IOMMU driver use DMA API for managing cache
coherency of page tables,
- making the Rockchip DRM driver not use DMA API on behalf of a virtual
device (behind a virtual IOMMU) to allocate and map buffers, but
instead proper DRM helpers and IOMMU API directly.
Changes since v4:
- Address some coding style comments on:
- https://chromium-review.googlesource.com/#/c/346328/38
- https://chromium-review.googlesource.com/#/c/353591/10
Changes since v3:
- Drop the idea of virtual IOMMU. Instead replace hacky allocation code
in DRM driver, with proper management of IOMMU domain.
- Add one more fix for allocation of IOMMU register base addresses.
Changes since v2:
- Instead of registering virtual IOMMU from DTS, create it when
attaching.
- Fix some bugs found in internal review.
Shunqian Zheng (4):
iommu/rockchip: Fix allocation of bases array in driver probe
iommu/rockchip: Use DMA API to manage coherency
iommu/rockchip: Prepare to support generic DMA mapping
drm/rockchip: Use common IOMMU API to attach devices
Simon Xue (3):
iommu/rockchip: Fix devm_{request,free}_irq parameter
iommu/rockchip: Add map_sg callback for rk_iommu_ops
iommu/rockchip: Enable Rockchip IOMMU on ARM64
Tomasz Figa (1):
drm/rockchip: Do not use DMA mapping API if attached to IOMMU domain
drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 100 +++++++------
drivers/gpu/drm/rockchip/rockchip_drm_drv.h | 3 +
drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 221 ++++++++++++++++++++++++++--
drivers/gpu/drm/rockchip/rockchip_drm_gem.h | 9 ++
drivers/iommu/Kconfig | 2 +-
drivers/iommu/rockchip-iommu.c | 181 +++++++++++++++++------
6 files changed, 413 insertions(+), 103 deletions(-)
--
1.9.1