BACKPORT: UPSTREAM: iommu/arm-smmu: Add pm_runtime/sleep ops
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 the corresponding bulk clock handling for all the clocks needed by smmu. 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. Add corresponding clock enable path in resume callback as well. This backport fixes the previously merged ff0fa3d2 ("FROMLIST: iommu/arm-smmu: Add pm_runtime/sleep ops") to match the upstream result, without having to revert a series of FROMLIST. BUG=b:137202421 TEST=Run label_image in loop (cherry picked from commit 96a299d2 https://github.com/torvalds/linux.git ) Signed-off-by:Sricharan R <sricharan@codeaurora.org> Signed-off-by:
Archit Taneja <architt@codeaurora.org> [Thor: Rework to get clocks from device tree] Signed-off-by:
Thor Thayer <thor.thayer@linux.intel.com> [vivek: rework for clock and pm ops] 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> Tested-by:
Thor Thayer <thor.thayer@linux.intel.com> Signed-off-by:
Will Deacon <will.deacon@arm.com> Signed-off-by:
Bjorn Andersson <bjorn.andersson@linaro.org> Signed-off-by:
Abhinav Asati <asatiabhi@codeaurora.org> Change-Id: I7d9edebaf5638e832d59066ce51162cf3b57d06f Signed-off-by:
Vamsi Singamsetty <vamssi@codeaurora.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/1613945 Reviewed-by:
Julan Hsu <julanhsu@google.com> Tested-by:
Julan Hsu <julanhsu@google.com> Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org>
Loading
Please sign in to comment