diff options
author | Yassine Oudjana <y.oudjana@protonmail.com> | 2021-10-21 13:24:42 +0000 |
---|---|---|
committer | Georgi Djakov <djakov@kernel.org> | 2021-11-22 18:25:48 +0200 |
commit | 7de109c0abe9bb3f03b3500f3e1840b06c5fd853 (patch) | |
tree | 0d69a2d7d946a0936d9bb044d6a487574f1696b3 | |
parent | 45c548cc5baa047e59865bec5dfa0bd36b48ff17 (diff) | |
download | linux-7de109c0abe9bb3f03b3500f3e1840b06c5fd853.tar.bz2 |
interconnect: icc-rpm: Add support for bus power domain
Add support for attaching to a power domain. This is required
for Aggregate 0 NoC on MSM8996, which is powered by a GDSC.
Signed-off-by: Yassine Oudjana <y.oudjana@protonmail.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Tested-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> #db820c
Link: https://lore.kernel.org/r/20211021132329.234942-3-y.oudjana@protonmail.com
Signed-off-by: Georgi Djakov <djakov@kernel.org>
-rw-r--r-- | drivers/interconnect/qcom/icc-rpm.c | 7 | ||||
-rw-r--r-- | drivers/interconnect/qcom/icc-rpm.h | 1 |
2 files changed, 8 insertions, 0 deletions
diff --git a/drivers/interconnect/qcom/icc-rpm.c b/drivers/interconnect/qcom/icc-rpm.c index ef7999a08c8b..6b918d082ab6 100644 --- a/drivers/interconnect/qcom/icc-rpm.c +++ b/drivers/interconnect/qcom/icc-rpm.c @@ -11,6 +11,7 @@ #include <linux/of_device.h> #include <linux/of_platform.h> #include <linux/platform_device.h> +#include <linux/pm_domain.h> #include <linux/regmap.h> #include <linux/slab.h> @@ -340,6 +341,12 @@ int qnoc_probe(struct platform_device *pdev) if (ret) return ret; + if (desc->has_bus_pd) { + ret = dev_pm_domain_attach(dev, true); + if (ret) + return ret; + } + provider = &qp->provider; INIT_LIST_HEAD(&provider->nodes); provider->dev = dev; diff --git a/drivers/interconnect/qcom/icc-rpm.h b/drivers/interconnect/qcom/icc-rpm.h index f5744de4da19..fd06a3b9e3f7 100644 --- a/drivers/interconnect/qcom/icc-rpm.h +++ b/drivers/interconnect/qcom/icc-rpm.h @@ -77,6 +77,7 @@ struct qcom_icc_desc { size_t num_nodes; const char * const *clocks; size_t num_clocks; + bool has_bus_pd; bool is_bimc_node; const struct regmap_config *regmap_cfg; unsigned int qos_offset; |