summaryrefslogtreecommitdiffstats
path: root/drivers/iommu/arm-smmu.c
diff options
context:
space:
mode:
authorSricharan R <sricharan@codeaurora.org>2018-12-04 07:22:11 +0100
committerWill Deacon <will.deacon@arm.com>2018-12-10 15:55:59 +0100
commit655e364374e74a910d87dbe758bad3e4794f659e (patch)
tree8924b54fc4ccf4a9f8ed1f73c0334f5bb68476ee /drivers/iommu/arm-smmu.c
parentiommu/arm-smmu: Invoke pm_runtime across the driver (diff)
downloadlinux-655e364374e74a910d87dbe758bad3e4794f659e.tar.xz
linux-655e364374e74a910d87dbe758bad3e4794f659e.zip
iommu/arm-smmu: Add the device_link between masters and smmu
Finally add the device link between the master device and smmu, so that the smmu gets runtime enabled/disabled only when the master needs it. This is done from add_device callback which gets called once when the master is added to the smmu. Signed-off-by: Sricharan R <sricharan@codeaurora.org> Signed-off-by: Vivek Gautam <vivek.gautam@codeaurora.org> Reviewed-by: Tomasz Figa <tfiga@chromium.org> Tested-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Reviewed-by: Robin Murphy <robin.murphy@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'drivers/iommu/arm-smmu.c')
-rw-r--r--drivers/iommu/arm-smmu.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
index 1917d214c4d9..b6b11642b3a9 100644
--- a/drivers/iommu/arm-smmu.c
+++ b/drivers/iommu/arm-smmu.c
@@ -1500,6 +1500,9 @@ static int arm_smmu_add_device(struct device *dev)
iommu_device_link(&smmu->iommu, dev);
+ device_link_add(dev, smmu->dev,
+ DL_FLAG_PM_RUNTIME | DL_FLAG_AUTOREMOVE_SUPPLIER);
+
return 0;
out_cfg_free: