MLK-14585-1 power: domain: expose generic_pm_domain structure to clients
authorAnson Huang <Anson.Huang@nxp.com>
Thu, 30 Mar 2017 22:36:55 +0000 (06:36 +0800)
committerNitin Garg <nitin.garg@nxp.com>
Mon, 19 Mar 2018 20:21:45 +0000 (15:21 -0500)
In some platforms, accessing registers needs to make sure
power domain is enabled, such as for clock operations, power
domain needs to be enabled first before accessing clock
registers, so some clocks need to know its power domain's
status, it will need to get power domain structure by phandle,
expose the API to support this case.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
drivers/base/power/domain.c
include/linux/pm_domain.h

index e6f9dea..2d59c2e 100644 (file)
@@ -1649,7 +1649,7 @@ EXPORT_SYMBOL_GPL(of_genpd_del_provider);
  * Returns a valid pointer to struct generic_pm_domain on success or ERR_PTR()
  * on failure.
  */
-static struct generic_pm_domain *genpd_get_from_provider(
+struct generic_pm_domain *genpd_get_from_provider(
                                        struct of_phandle_args *genpdspec)
 {
        struct generic_pm_domain *genpd = ERR_PTR(-ENOENT);
@@ -1672,6 +1672,7 @@ static struct generic_pm_domain *genpd_get_from_provider(
 
        return genpd;
 }
+EXPORT_SYMBOL_GPL(genpd_get_from_provider);
 
 /**
  * of_genpd_add_device() - Add a device to an I/O PM domain
index a09fe5c..cf987dc 100644 (file)
@@ -207,6 +207,8 @@ extern int of_genpd_add_subdomain(struct of_phandle_args *parent,
 extern struct generic_pm_domain *of_genpd_remove_last(struct device_node *np);
 
 int genpd_dev_pm_attach(struct device *dev);
+struct generic_pm_domain *genpd_get_from_provider(
+                               struct of_phandle_args *genpdspec);
 #else /* !CONFIG_PM_GENERIC_DOMAINS_OF */
 static inline int of_genpd_add_provider_simple(struct device_node *np,
                                        struct generic_pm_domain *genpd)
@@ -244,6 +246,13 @@ struct generic_pm_domain *of_genpd_remove_last(struct device_node *np)
 {
        return ERR_PTR(-ENOTSUPP);
 }
+
+static inline
+struct generic_pm_domain *genpd_get_from_provider(
+                               struct of_phandle_args *genpdspec)
+{
+       return ERR_PTR(-ENOTSUPP);
+}
 #endif /* CONFIG_PM_GENERIC_DOMAINS_OF */
 
 #ifdef CONFIG_PM