* [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.