Re: [PATCH RFC v2 07/12] PM / Domains: export pm_genpd_lookup_name

2014-11-28 Thread amit daniel kachhap
On Thu, Nov 27, 2014 at 7:50 PM, Ulf Hansson  wrote:
> On 25 November 2014 at 09:48, amit daniel kachhap
>  wrote:
>> On Tue, Nov 25, 2014 at 1:05 PM, Ulf Hansson  wrote:
>>> On 24 November 2014 at 14:04, Amit Daniel Kachhap
>>>  wrote:
 This API may be needed to set the power domain parent/child relationship
 in the power domain platform driver. The parent relationship is
 generally set after the child power domain is registered with the power
 domain subsystem. In this case, pm_genpd_lookup_name API might be
 useful.
>>>
>>> I think this is a step in the wrong direction. Instead we should be
>>> working on removing the "name" based APIs from genpd.
>>>
>>> The proper way should be to pass the PM domain as a parameter to the
>>> APIs instead.
>> Yes i understand but i had a special requirement for using this API
>> during pd probe.
>>  I cannot use hierarchy to represent parent/child pd nodes as it will
>> break the existing SoC's. In my case all the PD nodes are linear. The
>> parent/child relationship are established in the second pass after all
>> the PD entries are registered with the help of this API.
>> Although there a way that i can always keep parent PD's before the
>> child PD's in DT in linear order. Will check this approach.
>
> I had some thinking around this, could the below approach work?
>
> I just posted a patch[1] adding a new pm_genpd_lookup() API, which is
> using a "DT device node" to fetch the genpd. The idea is to use that
> API to get the genpd handle which is needed to configure a subdomain
> through pm_genpd_add_subdomain() API.
I looked at your patch. I seems fine. i will test them and post the
new version of my series.

Regards,
Amit D
>
> In principle you will have to walk through the DT a couple of times,
> initialize those domains (and subdomains) which either don't have a
> parent domain or which parent domain already has been initialized. I
> guess you need a somewhat clever loop to do that, but I think it's
> doable.
>
> Obviously we also need to have a generic binding for a "parent
> domain". I like Geert's proposal from the other patch, which means
> using "power-domains = <_xyz>".
>
> Kind regards
> Uffe
>
> [1]
> http://marc.info/?l=linux-pm=141709766008458=2
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" 
> in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH RFC v2 07/12] PM / Domains: export pm_genpd_lookup_name

2014-11-28 Thread amit daniel kachhap
On Thu, Nov 27, 2014 at 7:50 PM, Ulf Hansson ulf.hans...@linaro.org wrote:
 On 25 November 2014 at 09:48, amit daniel kachhap
 amit.dan...@samsung.com wrote:
 On Tue, Nov 25, 2014 at 1:05 PM, Ulf Hansson ulf.hans...@linaro.org wrote:
 On 24 November 2014 at 14:04, Amit Daniel Kachhap
 amit.dan...@samsung.com wrote:
 This API may be needed to set the power domain parent/child relationship
 in the power domain platform driver. The parent relationship is
 generally set after the child power domain is registered with the power
 domain subsystem. In this case, pm_genpd_lookup_name API might be
 useful.

 I think this is a step in the wrong direction. Instead we should be
 working on removing the name based APIs from genpd.

 The proper way should be to pass the PM domain as a parameter to the
 APIs instead.
 Yes i understand but i had a special requirement for using this API
 during pd probe.
  I cannot use hierarchy to represent parent/child pd nodes as it will
 break the existing SoC's. In my case all the PD nodes are linear. The
 parent/child relationship are established in the second pass after all
 the PD entries are registered with the help of this API.
 Although there a way that i can always keep parent PD's before the
 child PD's in DT in linear order. Will check this approach.

 I had some thinking around this, could the below approach work?

 I just posted a patch[1] adding a new pm_genpd_lookup() API, which is
 using a DT device node to fetch the genpd. The idea is to use that
 API to get the genpd handle which is needed to configure a subdomain
 through pm_genpd_add_subdomain() API.
I looked at your patch. I seems fine. i will test them and post the
new version of my series.

Regards,
Amit D

 In principle you will have to walk through the DT a couple of times,
 initialize those domains (and subdomains) which either don't have a
 parent domain or which parent domain already has been initialized. I
 guess you need a somewhat clever loop to do that, but I think it's
 doable.

 Obviously we also need to have a generic binding for a parent
 domain. I like Geert's proposal from the other patch, which means
 using power-domains = pd_xyz.

 Kind regards
 Uffe

 [1]
 http://marc.info/?l=linux-pmm=141709766008458w=2
 --
 To unsubscribe from this list: send the line unsubscribe linux-samsung-soc 
 in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH RFC v2 07/12] PM / Domains: export pm_genpd_lookup_name

2014-11-27 Thread Ulf Hansson
On 25 November 2014 at 09:48, amit daniel kachhap
 wrote:
> On Tue, Nov 25, 2014 at 1:05 PM, Ulf Hansson  wrote:
>> On 24 November 2014 at 14:04, Amit Daniel Kachhap
>>  wrote:
>>> This API may be needed to set the power domain parent/child relationship
>>> in the power domain platform driver. The parent relationship is
>>> generally set after the child power domain is registered with the power
>>> domain subsystem. In this case, pm_genpd_lookup_name API might be
>>> useful.
>>
>> I think this is a step in the wrong direction. Instead we should be
>> working on removing the "name" based APIs from genpd.
>>
>> The proper way should be to pass the PM domain as a parameter to the
>> APIs instead.
> Yes i understand but i had a special requirement for using this API
> during pd probe.
>  I cannot use hierarchy to represent parent/child pd nodes as it will
> break the existing SoC's. In my case all the PD nodes are linear. The
> parent/child relationship are established in the second pass after all
> the PD entries are registered with the help of this API.
> Although there a way that i can always keep parent PD's before the
> child PD's in DT in linear order. Will check this approach.

I had some thinking around this, could the below approach work?

I just posted a patch[1] adding a new pm_genpd_lookup() API, which is
using a "DT device node" to fetch the genpd. The idea is to use that
API to get the genpd handle which is needed to configure a subdomain
through pm_genpd_add_subdomain() API.

In principle you will have to walk through the DT a couple of times,
initialize those domains (and subdomains) which either don't have a
parent domain or which parent domain already has been initialized. I
guess you need a somewhat clever loop to do that, but I think it's
doable.

Obviously we also need to have a generic binding for a "parent
domain". I like Geert's proposal from the other patch, which means
using "power-domains = <_xyz>".

Kind regards
Uffe

[1]
http://marc.info/?l=linux-pm=141709766008458=2
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH RFC v2 07/12] PM / Domains: export pm_genpd_lookup_name

2014-11-27 Thread Ulf Hansson
On 25 November 2014 at 09:48, amit daniel kachhap
amit.dan...@samsung.com wrote:
 On Tue, Nov 25, 2014 at 1:05 PM, Ulf Hansson ulf.hans...@linaro.org wrote:
 On 24 November 2014 at 14:04, Amit Daniel Kachhap
 amit.dan...@samsung.com wrote:
 This API may be needed to set the power domain parent/child relationship
 in the power domain platform driver. The parent relationship is
 generally set after the child power domain is registered with the power
 domain subsystem. In this case, pm_genpd_lookup_name API might be
 useful.

 I think this is a step in the wrong direction. Instead we should be
 working on removing the name based APIs from genpd.

 The proper way should be to pass the PM domain as a parameter to the
 APIs instead.
 Yes i understand but i had a special requirement for using this API
 during pd probe.
  I cannot use hierarchy to represent parent/child pd nodes as it will
 break the existing SoC's. In my case all the PD nodes are linear. The
 parent/child relationship are established in the second pass after all
 the PD entries are registered with the help of this API.
 Although there a way that i can always keep parent PD's before the
 child PD's in DT in linear order. Will check this approach.

I had some thinking around this, could the below approach work?

I just posted a patch[1] adding a new pm_genpd_lookup() API, which is
using a DT device node to fetch the genpd. The idea is to use that
API to get the genpd handle which is needed to configure a subdomain
through pm_genpd_add_subdomain() API.

In principle you will have to walk through the DT a couple of times,
initialize those domains (and subdomains) which either don't have a
parent domain or which parent domain already has been initialized. I
guess you need a somewhat clever loop to do that, but I think it's
doable.

Obviously we also need to have a generic binding for a parent
domain. I like Geert's proposal from the other patch, which means
using power-domains = pd_xyz.

Kind regards
Uffe

[1]
http://marc.info/?l=linux-pmm=141709766008458w=2
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH RFC v2 07/12] PM / Domains: export pm_genpd_lookup_name

2014-11-25 Thread amit daniel kachhap
On Tue, Nov 25, 2014 at 1:05 PM, Ulf Hansson  wrote:
> On 24 November 2014 at 14:04, Amit Daniel Kachhap
>  wrote:
>> This API may be needed to set the power domain parent/child relationship
>> in the power domain platform driver. The parent relationship is
>> generally set after the child power domain is registered with the power
>> domain subsystem. In this case, pm_genpd_lookup_name API might be
>> useful.
>
> I think this is a step in the wrong direction. Instead we should be
> working on removing the "name" based APIs from genpd.
>
> The proper way should be to pass the PM domain as a parameter to the
> APIs instead.
Yes i understand but i had a special requirement for using this API
during pd probe.
 I cannot use hierarchy to represent parent/child pd nodes as it will
break the existing SoC's. In my case all the PD nodes are linear. The
parent/child relationship are established in the second pass after all
the PD entries are registered with the help of this API.
Although there a way that i can always keep parent PD's before the
child PD's in DT in linear order. Will check this approach.

Regards,
Amit
>
> Kind regards
> Uffe
>
>>
>> Signed-off-by: Amit Daniel Kachhap 
>> ---
>>  drivers/base/power/domain.c |3 ++-
>>  include/linux/pm_domain.h   |7 +++
>>  2 files changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
>> index fb83d4a..b0e1c2f 100644
>> --- a/drivers/base/power/domain.c
>> +++ b/drivers/base/power/domain.c
>> @@ -49,7 +49,7 @@
>>  static LIST_HEAD(gpd_list);
>>  static DEFINE_MUTEX(gpd_list_lock);
>>
>> -static struct generic_pm_domain *pm_genpd_lookup_name(const char 
>> *domain_name)
>> +struct generic_pm_domain *pm_genpd_lookup_name(const char *domain_name)
>>  {
>> struct generic_pm_domain *genpd = NULL, *gpd;
>>
>> @@ -66,6 +66,7 @@ static struct generic_pm_domain 
>> *pm_genpd_lookup_name(const char *domain_name)
>> mutex_unlock(_list_lock);
>> return genpd;
>>  }
>> +EXPORT_SYMBOL_GPL(pm_genpd_lookup_name);
>>
>>  struct generic_pm_domain *dev_to_genpd(struct device *dev)
>>  {
>> diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
>> index 2e0e06d..aedcec3 100644
>> --- a/include/linux/pm_domain.h
>> +++ b/include/linux/pm_domain.h
>> @@ -150,6 +150,8 @@ extern int pm_genpd_name_poweron(const char 
>> *domain_name);
>>
>>  extern struct dev_power_governor simple_qos_governor;
>>  extern struct dev_power_governor pm_domain_always_on_gov;
>> +
>> +extern struct generic_pm_domain *pm_genpd_lookup_name(const char 
>> *domain_name);
>>  #else
>>
>>  static inline struct generic_pm_domain_data *dev_gpd_data(struct device 
>> *dev)
>> @@ -221,6 +223,11 @@ static inline int pm_genpd_name_poweron(const char 
>> *domain_name)
>>  {
>> return -ENOSYS;
>>  }
>> +static inline
>> +struct generic_pm_domain *pm_genpd_lookup_name(const char *domain_name)
>> +{
>> +   return NULL;
>> +}
>>  #define simple_qos_governor NULL
>>  #define pm_domain_always_on_gov NULL
>>  #endif
>> --
>> 1.7.9.5
>>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH RFC v2 07/12] PM / Domains: export pm_genpd_lookup_name

2014-11-25 Thread amit daniel kachhap
On Tue, Nov 25, 2014 at 1:05 PM, Ulf Hansson ulf.hans...@linaro.org wrote:
 On 24 November 2014 at 14:04, Amit Daniel Kachhap
 amit.dan...@samsung.com wrote:
 This API may be needed to set the power domain parent/child relationship
 in the power domain platform driver. The parent relationship is
 generally set after the child power domain is registered with the power
 domain subsystem. In this case, pm_genpd_lookup_name API might be
 useful.

 I think this is a step in the wrong direction. Instead we should be
 working on removing the name based APIs from genpd.

 The proper way should be to pass the PM domain as a parameter to the
 APIs instead.
Yes i understand but i had a special requirement for using this API
during pd probe.
 I cannot use hierarchy to represent parent/child pd nodes as it will
break the existing SoC's. In my case all the PD nodes are linear. The
parent/child relationship are established in the second pass after all
the PD entries are registered with the help of this API.
Although there a way that i can always keep parent PD's before the
child PD's in DT in linear order. Will check this approach.

Regards,
Amit

 Kind regards
 Uffe


 Signed-off-by: Amit Daniel Kachhap amit.dan...@samsung.com
 ---
  drivers/base/power/domain.c |3 ++-
  include/linux/pm_domain.h   |7 +++
  2 files changed, 9 insertions(+), 1 deletion(-)

 diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
 index fb83d4a..b0e1c2f 100644
 --- a/drivers/base/power/domain.c
 +++ b/drivers/base/power/domain.c
 @@ -49,7 +49,7 @@
  static LIST_HEAD(gpd_list);
  static DEFINE_MUTEX(gpd_list_lock);

 -static struct generic_pm_domain *pm_genpd_lookup_name(const char 
 *domain_name)
 +struct generic_pm_domain *pm_genpd_lookup_name(const char *domain_name)
  {
 struct generic_pm_domain *genpd = NULL, *gpd;

 @@ -66,6 +66,7 @@ static struct generic_pm_domain 
 *pm_genpd_lookup_name(const char *domain_name)
 mutex_unlock(gpd_list_lock);
 return genpd;
  }
 +EXPORT_SYMBOL_GPL(pm_genpd_lookup_name);

  struct generic_pm_domain *dev_to_genpd(struct device *dev)
  {
 diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
 index 2e0e06d..aedcec3 100644
 --- a/include/linux/pm_domain.h
 +++ b/include/linux/pm_domain.h
 @@ -150,6 +150,8 @@ extern int pm_genpd_name_poweron(const char 
 *domain_name);

  extern struct dev_power_governor simple_qos_governor;
  extern struct dev_power_governor pm_domain_always_on_gov;
 +
 +extern struct generic_pm_domain *pm_genpd_lookup_name(const char 
 *domain_name);
  #else

  static inline struct generic_pm_domain_data *dev_gpd_data(struct device 
 *dev)
 @@ -221,6 +223,11 @@ static inline int pm_genpd_name_poweron(const char 
 *domain_name)
  {
 return -ENOSYS;
  }
 +static inline
 +struct generic_pm_domain *pm_genpd_lookup_name(const char *domain_name)
 +{
 +   return NULL;
 +}
  #define simple_qos_governor NULL
  #define pm_domain_always_on_gov NULL
  #endif
 --
 1.7.9.5

 --
 To unsubscribe from this list: send the line unsubscribe linux-kernel in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
 Please read the FAQ at  http://www.tux.org/lkml/
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH RFC v2 07/12] PM / Domains: export pm_genpd_lookup_name

2014-11-24 Thread Ulf Hansson
On 24 November 2014 at 14:04, Amit Daniel Kachhap
 wrote:
> This API may be needed to set the power domain parent/child relationship
> in the power domain platform driver. The parent relationship is
> generally set after the child power domain is registered with the power
> domain subsystem. In this case, pm_genpd_lookup_name API might be
> useful.

I think this is a step in the wrong direction. Instead we should be
working on removing the "name" based APIs from genpd.

The proper way should be to pass the PM domain as a parameter to the
APIs instead.

Kind regards
Uffe

>
> Signed-off-by: Amit Daniel Kachhap 
> ---
>  drivers/base/power/domain.c |3 ++-
>  include/linux/pm_domain.h   |7 +++
>  2 files changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
> index fb83d4a..b0e1c2f 100644
> --- a/drivers/base/power/domain.c
> +++ b/drivers/base/power/domain.c
> @@ -49,7 +49,7 @@
>  static LIST_HEAD(gpd_list);
>  static DEFINE_MUTEX(gpd_list_lock);
>
> -static struct generic_pm_domain *pm_genpd_lookup_name(const char 
> *domain_name)
> +struct generic_pm_domain *pm_genpd_lookup_name(const char *domain_name)
>  {
> struct generic_pm_domain *genpd = NULL, *gpd;
>
> @@ -66,6 +66,7 @@ static struct generic_pm_domain *pm_genpd_lookup_name(const 
> char *domain_name)
> mutex_unlock(_list_lock);
> return genpd;
>  }
> +EXPORT_SYMBOL_GPL(pm_genpd_lookup_name);
>
>  struct generic_pm_domain *dev_to_genpd(struct device *dev)
>  {
> diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
> index 2e0e06d..aedcec3 100644
> --- a/include/linux/pm_domain.h
> +++ b/include/linux/pm_domain.h
> @@ -150,6 +150,8 @@ extern int pm_genpd_name_poweron(const char *domain_name);
>
>  extern struct dev_power_governor simple_qos_governor;
>  extern struct dev_power_governor pm_domain_always_on_gov;
> +
> +extern struct generic_pm_domain *pm_genpd_lookup_name(const char 
> *domain_name);
>  #else
>
>  static inline struct generic_pm_domain_data *dev_gpd_data(struct device *dev)
> @@ -221,6 +223,11 @@ static inline int pm_genpd_name_poweron(const char 
> *domain_name)
>  {
> return -ENOSYS;
>  }
> +static inline
> +struct generic_pm_domain *pm_genpd_lookup_name(const char *domain_name)
> +{
> +   return NULL;
> +}
>  #define simple_qos_governor NULL
>  #define pm_domain_always_on_gov NULL
>  #endif
> --
> 1.7.9.5
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH RFC v2 07/12] PM / Domains: export pm_genpd_lookup_name

2014-11-24 Thread Amit Daniel Kachhap
This API may be needed to set the power domain parent/child relationship
in the power domain platform driver. The parent relationship is
generally set after the child power domain is registered with the power
domain subsystem. In this case, pm_genpd_lookup_name API might be
useful.

Signed-off-by: Amit Daniel Kachhap 
---
 drivers/base/power/domain.c |3 ++-
 include/linux/pm_domain.h   |7 +++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
index fb83d4a..b0e1c2f 100644
--- a/drivers/base/power/domain.c
+++ b/drivers/base/power/domain.c
@@ -49,7 +49,7 @@
 static LIST_HEAD(gpd_list);
 static DEFINE_MUTEX(gpd_list_lock);
 
-static struct generic_pm_domain *pm_genpd_lookup_name(const char *domain_name)
+struct generic_pm_domain *pm_genpd_lookup_name(const char *domain_name)
 {
struct generic_pm_domain *genpd = NULL, *gpd;
 
@@ -66,6 +66,7 @@ static struct generic_pm_domain *pm_genpd_lookup_name(const 
char *domain_name)
mutex_unlock(_list_lock);
return genpd;
 }
+EXPORT_SYMBOL_GPL(pm_genpd_lookup_name);
 
 struct generic_pm_domain *dev_to_genpd(struct device *dev)
 {
diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
index 2e0e06d..aedcec3 100644
--- a/include/linux/pm_domain.h
+++ b/include/linux/pm_domain.h
@@ -150,6 +150,8 @@ extern int pm_genpd_name_poweron(const char *domain_name);
 
 extern struct dev_power_governor simple_qos_governor;
 extern struct dev_power_governor pm_domain_always_on_gov;
+
+extern struct generic_pm_domain *pm_genpd_lookup_name(const char *domain_name);
 #else
 
 static inline struct generic_pm_domain_data *dev_gpd_data(struct device *dev)
@@ -221,6 +223,11 @@ static inline int pm_genpd_name_poweron(const char 
*domain_name)
 {
return -ENOSYS;
 }
+static inline
+struct generic_pm_domain *pm_genpd_lookup_name(const char *domain_name)
+{
+   return NULL;
+}
 #define simple_qos_governor NULL
 #define pm_domain_always_on_gov NULL
 #endif
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH RFC v2 07/12] PM / Domains: export pm_genpd_lookup_name

2014-11-24 Thread Amit Daniel Kachhap
This API may be needed to set the power domain parent/child relationship
in the power domain platform driver. The parent relationship is
generally set after the child power domain is registered with the power
domain subsystem. In this case, pm_genpd_lookup_name API might be
useful.

Signed-off-by: Amit Daniel Kachhap amit.dan...@samsung.com
---
 drivers/base/power/domain.c |3 ++-
 include/linux/pm_domain.h   |7 +++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
index fb83d4a..b0e1c2f 100644
--- a/drivers/base/power/domain.c
+++ b/drivers/base/power/domain.c
@@ -49,7 +49,7 @@
 static LIST_HEAD(gpd_list);
 static DEFINE_MUTEX(gpd_list_lock);
 
-static struct generic_pm_domain *pm_genpd_lookup_name(const char *domain_name)
+struct generic_pm_domain *pm_genpd_lookup_name(const char *domain_name)
 {
struct generic_pm_domain *genpd = NULL, *gpd;
 
@@ -66,6 +66,7 @@ static struct generic_pm_domain *pm_genpd_lookup_name(const 
char *domain_name)
mutex_unlock(gpd_list_lock);
return genpd;
 }
+EXPORT_SYMBOL_GPL(pm_genpd_lookup_name);
 
 struct generic_pm_domain *dev_to_genpd(struct device *dev)
 {
diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
index 2e0e06d..aedcec3 100644
--- a/include/linux/pm_domain.h
+++ b/include/linux/pm_domain.h
@@ -150,6 +150,8 @@ extern int pm_genpd_name_poweron(const char *domain_name);
 
 extern struct dev_power_governor simple_qos_governor;
 extern struct dev_power_governor pm_domain_always_on_gov;
+
+extern struct generic_pm_domain *pm_genpd_lookup_name(const char *domain_name);
 #else
 
 static inline struct generic_pm_domain_data *dev_gpd_data(struct device *dev)
@@ -221,6 +223,11 @@ static inline int pm_genpd_name_poweron(const char 
*domain_name)
 {
return -ENOSYS;
 }
+static inline
+struct generic_pm_domain *pm_genpd_lookup_name(const char *domain_name)
+{
+   return NULL;
+}
 #define simple_qos_governor NULL
 #define pm_domain_always_on_gov NULL
 #endif
-- 
1.7.9.5

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH RFC v2 07/12] PM / Domains: export pm_genpd_lookup_name

2014-11-24 Thread Ulf Hansson
On 24 November 2014 at 14:04, Amit Daniel Kachhap
amit.dan...@samsung.com wrote:
 This API may be needed to set the power domain parent/child relationship
 in the power domain platform driver. The parent relationship is
 generally set after the child power domain is registered with the power
 domain subsystem. In this case, pm_genpd_lookup_name API might be
 useful.

I think this is a step in the wrong direction. Instead we should be
working on removing the name based APIs from genpd.

The proper way should be to pass the PM domain as a parameter to the
APIs instead.

Kind regards
Uffe


 Signed-off-by: Amit Daniel Kachhap amit.dan...@samsung.com
 ---
  drivers/base/power/domain.c |3 ++-
  include/linux/pm_domain.h   |7 +++
  2 files changed, 9 insertions(+), 1 deletion(-)

 diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
 index fb83d4a..b0e1c2f 100644
 --- a/drivers/base/power/domain.c
 +++ b/drivers/base/power/domain.c
 @@ -49,7 +49,7 @@
  static LIST_HEAD(gpd_list);
  static DEFINE_MUTEX(gpd_list_lock);

 -static struct generic_pm_domain *pm_genpd_lookup_name(const char 
 *domain_name)
 +struct generic_pm_domain *pm_genpd_lookup_name(const char *domain_name)
  {
 struct generic_pm_domain *genpd = NULL, *gpd;

 @@ -66,6 +66,7 @@ static struct generic_pm_domain *pm_genpd_lookup_name(const 
 char *domain_name)
 mutex_unlock(gpd_list_lock);
 return genpd;
  }
 +EXPORT_SYMBOL_GPL(pm_genpd_lookup_name);

  struct generic_pm_domain *dev_to_genpd(struct device *dev)
  {
 diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
 index 2e0e06d..aedcec3 100644
 --- a/include/linux/pm_domain.h
 +++ b/include/linux/pm_domain.h
 @@ -150,6 +150,8 @@ extern int pm_genpd_name_poweron(const char *domain_name);

  extern struct dev_power_governor simple_qos_governor;
  extern struct dev_power_governor pm_domain_always_on_gov;
 +
 +extern struct generic_pm_domain *pm_genpd_lookup_name(const char 
 *domain_name);
  #else

  static inline struct generic_pm_domain_data *dev_gpd_data(struct device *dev)
 @@ -221,6 +223,11 @@ static inline int pm_genpd_name_poweron(const char 
 *domain_name)
  {
 return -ENOSYS;
  }
 +static inline
 +struct generic_pm_domain *pm_genpd_lookup_name(const char *domain_name)
 +{
 +   return NULL;
 +}
  #define simple_qos_governor NULL
  #define pm_domain_always_on_gov NULL
  #endif
 --
 1.7.9.5

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/