On 11/27/18 4:11 AM, Vivek Gautam wrote:
From: Sricharan R <[email protected]>

The smmu needs to be functional only when the respective
master's using it are active. The device_link feature
helps to track such functional dependencies, so that the
iommu gets powered when the master device enables itself
using pm_runtime. So by adapting the smmu driver for
runtime pm, above said dependency can be addressed.

This patch adds the pm runtime/sleep callbacks to the
driver and also the functions to parse the smmu clocks
from DT and enable them in resume/suspend.
We pull all the information about clocks from device tree.

Also, while we enable the runtime pm add a pm sleep suspend
callback that pushes devices to low power state by turning
the clocks off in a system sleep.
Also add corresponding clock enable path in resume callback.

Signed-off-by: Sricharan R <[email protected]>
Signed-off-by: Archit Taneja <[email protected]>
[Thor: Rework to get clocks from device tree]
Signed-off-by: Thor Thayer <[email protected]>
[vivek: rework for clock and pm ops]
Signed-off-by: Vivek Gautam <[email protected]>
Reviewed-by: Tomasz Figa <[email protected]>
Tested-by: Srinivas Kandagatla <[email protected]>
Reviewed-by: Robin Murphy <[email protected]>
---
  drivers/iommu/arm-smmu.c | 100 +++++++++++++++++++++++++++++++++++++++++++++--
  1 file changed, 97 insertions(+), 3 deletions(-)

diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
index 5a28ae892504..e47c840fc6a8 100644
--- a/drivers/iommu/arm-smmu.c
+++ b/drivers/iommu/arm-smmu.c
@@ -44,10 +44,12 @@
  #include <linux/module.h>
  #include <linux/of.h>
  #include <linux/of_address.h>
+#include <linux/of_clk.h>
  #include <linux/of_device.h>
  #include <linux/of_iommu.h>
  #include <linux/pci.h>
  #include <linux/platform_device.h>
+#include <linux/pm_runtime.h>
  #include <linux/slab.h>
  #include <linux/spinlock.h>
 <snip>

Thanks! Tested the device tree clock portions on Intel SOCFPGA Stratix10 DevKit.

Tested-by: Thor Thayer <[email protected]>
_______________________________________________
Freedreno mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/freedreno

Reply via email to