summaryrefslogtreecommitdiff
path: root/include/linux/omap-iommu.h
diff options
context:
space:
mode:
authorSuman Anna <s-anna@ti.com>2019-08-07 11:26:50 +0300
committerJoerg Roedel <jroedel@suse.de>2019-08-09 18:37:10 +0300
commitd9c4d8a6cc0f852adf3829fbe40e2e3f6213b0c6 (patch)
tree36aa9cff761a5760293c022a112f378a18ad27a6 /include/linux/omap-iommu.h
parentc4206c4e190bd272e4e86389613f2cded4609ba1 (diff)
downloadlinux-d9c4d8a6cc0f852adf3829fbe40e2e3f6213b0c6.tar.xz
iommu/omap: introduce new API for runtime suspend/resume control
This patch adds the support for the OMAP IOMMUs to be suspended during the auto suspend/resume of the OMAP remoteproc devices. The remote processors are auto suspended after a certain time of idle or inactivity period. This is done by introducing two new API, omap_iommu_domain_deactivate() and omap_iommu_domain_activate() to allow the client users/master devices of the IOMMU devices to deactivate & activate the IOMMU devices from their runtime suspend/resume operations. There is no API exposed by the IOMMU layer at present, and so these new API are added directly in the OMAP IOMMU driver to minimize framework changes. The API simply decrements and increments the runtime usage count of the IOMMU devices and let the context be saved/restored using the existing runtime pm callbacks. Signed-off-by: Suman Anna <s-anna@ti.com> Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to 'include/linux/omap-iommu.h')
-rw-r--r--include/linux/omap-iommu.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/linux/omap-iommu.h b/include/linux/omap-iommu.h
index 153bf25b4df3..36b645726813 100644
--- a/include/linux/omap-iommu.h
+++ b/include/linux/omap-iommu.h
@@ -10,12 +10,20 @@
#ifndef _OMAP_IOMMU_H_
#define _OMAP_IOMMU_H_
+struct iommu_domain;
+
#ifdef CONFIG_OMAP_IOMMU
extern void omap_iommu_save_ctx(struct device *dev);
extern void omap_iommu_restore_ctx(struct device *dev);
+
+int omap_iommu_domain_deactivate(struct iommu_domain *domain);
+int omap_iommu_domain_activate(struct iommu_domain *domain);
#else
static inline void omap_iommu_save_ctx(struct device *dev) {}
static inline void omap_iommu_restore_ctx(struct device *dev) {}
+
+static inline int omap_iommu_domain_deactivate(struct iommu_domain *domain) {}
+static inline int omap_iommu_domain_activate(struct iommu_domain *domain) {}
#endif
#endif