Re: [PATCH v12 18/31] iommu/exynos: allow having multiple System MMUs for a master H/W
From: Cho KyongHo <hidden>
Date: 2014-05-01 14:10:55
Also in:
linux-arm-kernel, linux-iommu, linux-samsung-soc, lkml
On Mon, 28 Apr 2014 16:08:14 +0530, Tushar Behera wrote:
On 04/27/2014 01:07 PM, Shaik Ameer Basha wrote:quoted
From: Cho KyongHo <redacted> Some master device descriptor like fimc-is which is an abstraction of very complex H/W may have multiple System MMUs. For those devices, the design of the link between System MMU and its master H/W is needed to be reconsidered. A link structure, sysmmu_list_data is introduced that provides a link to master H/W and that has a pointer to the device descriptor of a System MMU. Given a device descriptor of a master H/W, it is possible to traverse all System MMUs that must be controlled along with the master H/W. Signed-off-by: Cho KyongHo <redacted>Since you are posting the patches, you should also add your Signed-of-by.quoted
--- drivers/iommu/exynos-iommu.c | 545 ++++++++++++++++++++++++++---------------- 1 file changed, 335 insertions(+), 210 deletions(-)diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c index fefedec3..c2e6365 100755 --- a/drivers/iommu/exynos-iommu.c +++ b/drivers/iommu/exynos-iommu.c[ ... ]quoted
static int sysmmu_pm_genpd_save_state(struct device *dev)@@ -1215,7 +1349,7 @@ static int sysmmu_pm_genpd_save_state(struct device *dev) ret = cb(dev); if (ret == 0) - sysmmu_save_state(client->sysmmu); + sysmmu_save_state(dev);client is now unused, remove the variable.quoted
return ret; }@@ -1238,13 +1372,13 @@ static int sysmmu_pm_genpd_restore_state(struct device *dev) if (!cb && dev->driver && dev->driver->pm) cb = dev->driver->pm->runtime_resume; - sysmmu_restore_state(client->sysmmu); + sysmmu_restore_state(dev); if (cb) ret = cb(dev); if (ret) - sysmmu_save_state(client->sysmmu); + sysmmu_restore_state(dev);client is now unused, remove the variable.
Ok. Thanks. KyongHo