All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] PM / Domains: export pm_genpd_add_device symbol
@ 2015-11-16  9:07 ` Maruthi Srinivas Bayyavarapu
  0 siblings, 0 replies; 5+ messages in thread
From: Maruthi Srinivas Bayyavarapu @ 2015-11-16  9:07 UTC (permalink / raw)
  To: rjw, khilman, ulf.hansson, pavel, len.brown, gregkh
  Cc: broonie, linux-pm, linux-kernel, Maruthi Srinivas Bayyavarapu,
	Maruthi Bayyavarapu

Drivers which can be built as loadable module needs
symbol - pm_genpd_add_device to be exported. Those drivers
create platform devices which comes under a powerdomain.

Signed-off-by: Maruthi Bayyavarapu <maruthi.bayyavarapu@amd.com>
---
 drivers/base/power/domain.c | 7 +++++++
 include/linux/pm_domain.h   | 9 ++-------
 2 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
index f932058..72998f8 100644
--- a/drivers/base/power/domain.c
+++ b/drivers/base/power/domain.c
@@ -1253,6 +1253,13 @@ int __pm_genpd_add_device(struct generic_pm_domain *genpd, struct device *dev,
 	return ret;
 }
 
+int pm_genpd_add_device(struct generic_pm_domain *genpd,
+				      struct device *dev)
+{
+	return __pm_genpd_add_device(genpd, dev, NULL);
+}
+EXPORT_SYMBOL_GPL(pm_genpd_add_device);
+
 /**
  * pm_genpd_remove_device - Remove a device from an I/O PM domain.
  * @genpd: PM domain to remove the device from.
diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
index ba4ced3..f9e2f7e 100644
--- a/include/linux/pm_domain.h
+++ b/include/linux/pm_domain.h
@@ -114,7 +114,8 @@ extern struct generic_pm_domain *pm_genpd_lookup_dev(struct device *dev);
 extern int __pm_genpd_add_device(struct generic_pm_domain *genpd,
 				 struct device *dev,
 				 struct gpd_timing_data *td);
-
+extern int pm_genpd_add_device(struct generic_pm_domain *genpd,
+				      struct device *dev);
 extern int pm_genpd_remove_device(struct generic_pm_domain *genpd,
 				  struct device *dev);
 extern int pm_genpd_add_subdomain(struct generic_pm_domain *genpd,
@@ -163,12 +164,6 @@ static inline void pm_genpd_init(struct generic_pm_domain *genpd,
 }
 #endif
 
-static inline int pm_genpd_add_device(struct generic_pm_domain *genpd,
-				      struct device *dev)
-{
-	return __pm_genpd_add_device(genpd, dev, NULL);
-}
-
 #ifdef CONFIG_PM_GENERIC_DOMAINS_SLEEP
 extern void pm_genpd_syscore_poweroff(struct device *dev);
 extern void pm_genpd_syscore_poweron(struct device *dev);
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH] PM / Domains: export pm_genpd_add_device symbol
@ 2015-11-16  9:07 ` Maruthi Srinivas Bayyavarapu
  0 siblings, 0 replies; 5+ messages in thread
From: Maruthi Srinivas Bayyavarapu @ 2015-11-16  9:07 UTC (permalink / raw)
  To: rjw, khilman, ulf.hansson, pavel, len.brown, gregkh
  Cc: broonie, linux-pm, linux-kernel, Maruthi Srinivas Bayyavarapu,
	Maruthi Bayyavarapu

Drivers which can be built as loadable module needs
symbol - pm_genpd_add_device to be exported. Those drivers
create platform devices which comes under a powerdomain.

Signed-off-by: Maruthi Bayyavarapu <maruthi.bayyavarapu@amd.com>
---
 drivers/base/power/domain.c | 7 +++++++
 include/linux/pm_domain.h   | 9 ++-------
 2 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
index f932058..72998f8 100644
--- a/drivers/base/power/domain.c
+++ b/drivers/base/power/domain.c
@@ -1253,6 +1253,13 @@ int __pm_genpd_add_device(struct generic_pm_domain *genpd, struct device *dev,
 	return ret;
 }
 
+int pm_genpd_add_device(struct generic_pm_domain *genpd,
+				      struct device *dev)
+{
+	return __pm_genpd_add_device(genpd, dev, NULL);
+}
+EXPORT_SYMBOL_GPL(pm_genpd_add_device);
+
 /**
  * pm_genpd_remove_device - Remove a device from an I/O PM domain.
  * @genpd: PM domain to remove the device from.
diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
index ba4ced3..f9e2f7e 100644
--- a/include/linux/pm_domain.h
+++ b/include/linux/pm_domain.h
@@ -114,7 +114,8 @@ extern struct generic_pm_domain *pm_genpd_lookup_dev(struct device *dev);
 extern int __pm_genpd_add_device(struct generic_pm_domain *genpd,
 				 struct device *dev,
 				 struct gpd_timing_data *td);
-
+extern int pm_genpd_add_device(struct generic_pm_domain *genpd,
+				      struct device *dev);
 extern int pm_genpd_remove_device(struct generic_pm_domain *genpd,
 				  struct device *dev);
 extern int pm_genpd_add_subdomain(struct generic_pm_domain *genpd,
@@ -163,12 +164,6 @@ static inline void pm_genpd_init(struct generic_pm_domain *genpd,
 }
 #endif
 
-static inline int pm_genpd_add_device(struct generic_pm_domain *genpd,
-				      struct device *dev)
-{
-	return __pm_genpd_add_device(genpd, dev, NULL);
-}
-
 #ifdef CONFIG_PM_GENERIC_DOMAINS_SLEEP
 extern void pm_genpd_syscore_poweroff(struct device *dev);
 extern void pm_genpd_syscore_poweron(struct device *dev);
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] PM / Domains: export pm_genpd_add_device symbol
  2015-11-16  9:07 ` Maruthi Srinivas Bayyavarapu
  (?)
@ 2015-11-16  9:54 ` Pavel Machek
  -1 siblings, 0 replies; 5+ messages in thread
From: Pavel Machek @ 2015-11-16  9:54 UTC (permalink / raw)
  To: Maruthi Srinivas Bayyavarapu
  Cc: rjw, khilman, ulf.hansson, len.brown, gregkh, broonie, linux-pm,
	linux-kernel

On Mon 2015-11-16 14:37:28, Maruthi Srinivas Bayyavarapu wrote:
> Drivers which can be built as loadable module needs
> symbol - pm_genpd_add_device to be exported. Those drivers
> create platform devices which comes under a powerdomain.
> 
> Signed-off-by: Maruthi Bayyavarapu <maruthi.bayyavarapu@amd.com>
> ---
>  drivers/base/power/domain.c | 7 +++++++
>  include/linux/pm_domain.h   | 9 ++-------
>  2 files changed, 9 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
> index f932058..72998f8 100644
> --- a/drivers/base/power/domain.c
> +++ b/drivers/base/power/domain.c
> @@ -1253,6 +1253,13 @@ int __pm_genpd_add_device(struct generic_pm_domain *genpd, struct device *dev,
>  	return ret;
>  }
>  
> +int pm_genpd_add_device(struct generic_pm_domain *genpd,
> +				      struct device *dev)
> +{
> +	return __pm_genpd_add_device(genpd, dev, NULL);
> +}
> +EXPORT_SYMBOL_GPL(pm_genpd_add_device);
> +

Hmm. Alternatively, you can just export __pm_genpd_add_device and let
the static inline do its magic?

								Pavel

>  /**
>   * pm_genpd_remove_device - Remove a device from an I/O PM domain.
>   * @genpd: PM domain to remove the device from.
> diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
> index ba4ced3..f9e2f7e 100644
> --- a/include/linux/pm_domain.h
> +++ b/include/linux/pm_domain.h
> @@ -114,7 +114,8 @@ extern struct generic_pm_domain *pm_genpd_lookup_dev(struct device *dev);
>  extern int __pm_genpd_add_device(struct generic_pm_domain *genpd,
>  				 struct device *dev,
>  				 struct gpd_timing_data *td);
> -
> +extern int pm_genpd_add_device(struct generic_pm_domain *genpd,
> +				      struct device *dev);
>  extern int pm_genpd_remove_device(struct generic_pm_domain *genpd,
>  				  struct device *dev);
>  extern int pm_genpd_add_subdomain(struct generic_pm_domain *genpd,
> @@ -163,12 +164,6 @@ static inline void pm_genpd_init(struct generic_pm_domain *genpd,
>  }
>  #endif
>  
> -static inline int pm_genpd_add_device(struct generic_pm_domain *genpd,
> -				      struct device *dev)
> -{
> -	return __pm_genpd_add_device(genpd, dev, NULL);
> -}
> -
>  #ifdef CONFIG_PM_GENERIC_DOMAINS_SLEEP
>  extern void pm_genpd_syscore_poweroff(struct device *dev);
>  extern void pm_genpd_syscore_poweron(struct device *dev);

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] PM / Domains: export pm_genpd_add_device symbol
  2015-11-16  9:07 ` Maruthi Srinivas Bayyavarapu
  (?)
  (?)
@ 2015-11-16 11:08 ` Ulf Hansson
  2015-11-16 17:23   ` Mark Brown
  -1 siblings, 1 reply; 5+ messages in thread
From: Ulf Hansson @ 2015-11-16 11:08 UTC (permalink / raw)
  To: Maruthi Srinivas Bayyavarapu
  Cc: Rafael J. Wysocki, Kevin Hilman, Pavel Machek, Len Brown,
	Greg Kroah-Hartman, Mark Brown, linux-pm, linux-kernel

On 16 November 2015 at 10:07, Maruthi Srinivas Bayyavarapu
<Maruthi.Bayyavarapu@amd.com> wrote:
> Drivers which can be built as loadable module needs
> symbol - pm_genpd_add_device to be exported. Those drivers
> create platform devices which comes under a powerdomain.

Currently this API is used by a few SoCs that haven't yet been
converted to device tree.

Can you tell me more about what driver/SoC you intend to use it for?

Kind regards
Uffe

>
> Signed-off-by: Maruthi Bayyavarapu <maruthi.bayyavarapu@amd.com>
> ---
>  drivers/base/power/domain.c | 7 +++++++
>  include/linux/pm_domain.h   | 9 ++-------
>  2 files changed, 9 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
> index f932058..72998f8 100644
> --- a/drivers/base/power/domain.c
> +++ b/drivers/base/power/domain.c
> @@ -1253,6 +1253,13 @@ int __pm_genpd_add_device(struct generic_pm_domain *genpd, struct device *dev,
>         return ret;
>  }
>
> +int pm_genpd_add_device(struct generic_pm_domain *genpd,
> +                                     struct device *dev)
> +{
> +       return __pm_genpd_add_device(genpd, dev, NULL);
> +}
> +EXPORT_SYMBOL_GPL(pm_genpd_add_device);
> +
>  /**
>   * pm_genpd_remove_device - Remove a device from an I/O PM domain.
>   * @genpd: PM domain to remove the device from.
> diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
> index ba4ced3..f9e2f7e 100644
> --- a/include/linux/pm_domain.h
> +++ b/include/linux/pm_domain.h
> @@ -114,7 +114,8 @@ extern struct generic_pm_domain *pm_genpd_lookup_dev(struct device *dev);
>  extern int __pm_genpd_add_device(struct generic_pm_domain *genpd,
>                                  struct device *dev,
>                                  struct gpd_timing_data *td);
> -
> +extern int pm_genpd_add_device(struct generic_pm_domain *genpd,
> +                                     struct device *dev);
>  extern int pm_genpd_remove_device(struct generic_pm_domain *genpd,
>                                   struct device *dev);
>  extern int pm_genpd_add_subdomain(struct generic_pm_domain *genpd,
> @@ -163,12 +164,6 @@ static inline void pm_genpd_init(struct generic_pm_domain *genpd,
>  }
>  #endif
>
> -static inline int pm_genpd_add_device(struct generic_pm_domain *genpd,
> -                                     struct device *dev)
> -{
> -       return __pm_genpd_add_device(genpd, dev, NULL);
> -}
> -
>  #ifdef CONFIG_PM_GENERIC_DOMAINS_SLEEP
>  extern void pm_genpd_syscore_poweroff(struct device *dev);
>  extern void pm_genpd_syscore_poweron(struct device *dev);
> --
> 1.9.1
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] PM / Domains: export pm_genpd_add_device symbol
  2015-11-16 11:08 ` Ulf Hansson
@ 2015-11-16 17:23   ` Mark Brown
  0 siblings, 0 replies; 5+ messages in thread
From: Mark Brown @ 2015-11-16 17:23 UTC (permalink / raw)
  To: Ulf Hansson
  Cc: Maruthi Srinivas Bayyavarapu, Rafael J. Wysocki, Kevin Hilman,
	Pavel Machek, Len Brown, Greg Kroah-Hartman, linux-pm,
	linux-kernel

[-- Attachment #1: Type: text/plain, Size: 747 bytes --]

On Mon, Nov 16, 2015 at 12:08:17PM +0100, Ulf Hansson wrote:
> On 16 November 2015 at 10:07, Maruthi Srinivas Bayyavarapu

> > Drivers which can be built as loadable module needs
> > symbol - pm_genpd_add_device to be exported. Those drivers
> > create platform devices which comes under a powerdomain.

> Currently this API is used by a few SoCs that haven't yet been
> converted to device tree.

> Can you tell me more about what driver/SoC you intend to use it for?

He's got a graphics card with audio subfunctions that looks a lot like a
general purpose SoC with power domains and resulting code that looked
like it was trying to redo the power domain code, I asked him to
refactor to use that instead of open coding a version in the driver.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-11-16 17:23 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-16  9:07 [PATCH] PM / Domains: export pm_genpd_add_device symbol Maruthi Srinivas Bayyavarapu
2015-11-16  9:07 ` Maruthi Srinivas Bayyavarapu
2015-11-16  9:54 ` Pavel Machek
2015-11-16 11:08 ` Ulf Hansson
2015-11-16 17:23   ` Mark Brown

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.