arm-smmu: Implement iova_to_phys with a software table walk
The qcom,smmu-v2 hw implementation requires halting all context banks
during an atos transaction. The DMA layer makes frequent use of this
operation through iommu_iova_to_phys(), which results in a loss of
throughput due to the iommu being frequently halted.
Additionally, iommu_iova_to_phys() can be called from atomic context,
but writing to the atos registers requires a clock and power vote,
which are nonatomic.
Use a software table walk instead.
Change-Id: Id42905e8f5d69ebaaae103dc07042473e0a22f51
Signed-off-by:
Patrick Daly <pdaly@codeaurora.org>
Loading
Please register or sign in to comment