Re: [PATCH RFC 07/10] PM / wakeup : Introduce device_child_may_wakeup

2013-11-12 Thread srinivas kandagatla
On 12/11/13 14:20, Rafael J. Wysocki wrote:
>>  
>> > +/* callback for device_child_may_wakeup */
>> > +static int __device_child_may_wakeup(struct device *dev, void *c)
>> > +{
>> > +  return device_may_wakeup(dev);
>> > +}
> This doesn't have anything to do with children in principle, so please call
> it differently.  Something like device_may_wakeup_cb() would work for me (and
> then you may not need the comment even).

Thanks Rafael, I will fix this in next version.
> 
> Thanks!
> 
>> > +
>> > +/**

--
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 07/10] PM / wakeup : Introduce device_child_may_wakeup

2013-11-12 Thread Rafael J. Wysocki
On Tuesday, November 12, 2013 01:52:57 PM srinivas.kandaga...@st.com wrote:
> From: Srinivas Kandagatla 
> 
> This patch introduces device_child_may_wakeup function, which will be
> useful for wrapper or SoC level driver power management code.
> Without this patch each driver has to write this same code to get the
> functionality.
> 
> Signed-off-by: Srinivas Kandagatla 
> ---
>  drivers/base/power/wakeup.c |   23 +++
>  include/linux/pm_wakeup.h   |1 +
>  2 files changed, 24 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c
> index 2d56f41..270f000 100644
> --- a/drivers/base/power/wakeup.c
> +++ b/drivers/base/power/wakeup.c
> @@ -342,6 +342,29 @@ int device_set_wakeup_enable(struct device *dev, bool 
> enable)
>  }
>  EXPORT_SYMBOL_GPL(device_set_wakeup_enable);
>  
> +/* callback for device_child_may_wakeup */
> +static int __device_child_may_wakeup(struct device *dev, void *c)
> +{
> + return device_may_wakeup(dev);
> +}

This doesn't have anything to do with children in principle, so please call
it differently.  Something like device_may_wakeup_cb() would work for me (and
then you may not need the comment even).

Thanks!

> +
> +/**
> + * device_child_may_wakeup - Check if any of the child devices are wakeup
> + * sources.
> + * @dev: parent device to handle.
> + *
> + * Function to check if any of the children of a given parent are wakeup
> + * sources.
> + *
> + * This function will return true if any one of the children of given parent
> + * are wakeup sources, else it returns false.
> + */
> +bool device_child_may_wakeup(struct device *parent)
> +{
> + return device_for_each_child(parent, NULL, __device_child_may_wakeup);
> +}
> +EXPORT_SYMBOL_GPL(device_child_may_wakeup);
> +
>  /*
>   * The functions below use the observation that each wakeup event starts a
>   * period in which the system should not be suspended.  The moment this 
> period
> diff --git a/include/linux/pm_wakeup.h b/include/linux/pm_wakeup.h
> index a0f7080..b376584 100644
> --- a/include/linux/pm_wakeup.h
> +++ b/include/linux/pm_wakeup.h
> @@ -93,6 +93,7 @@ extern int device_wakeup_disable(struct device *dev);
>  extern void device_set_wakeup_capable(struct device *dev, bool capable);
>  extern int device_init_wakeup(struct device *dev, bool val);
>  extern int device_set_wakeup_enable(struct device *dev, bool enable);
> +bool device_child_may_wakeup(struct device *parent);
>  extern void __pm_stay_awake(struct wakeup_source *ws);
>  extern void pm_stay_awake(struct device *dev);
>  extern void __pm_relax(struct wakeup_source *ws);
> 
-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
--
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 07/10] PM / wakeup : Introduce device_child_may_wakeup

2013-11-12 Thread srinivas.kandagatla
From: Srinivas Kandagatla 

This patch introduces device_child_may_wakeup function, which will be
useful for wrapper or SoC level driver power management code.
Without this patch each driver has to write this same code to get the
functionality.

Signed-off-by: Srinivas Kandagatla 
---
 drivers/base/power/wakeup.c |   23 +++
 include/linux/pm_wakeup.h   |1 +
 2 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c
index 2d56f41..270f000 100644
--- a/drivers/base/power/wakeup.c
+++ b/drivers/base/power/wakeup.c
@@ -342,6 +342,29 @@ int device_set_wakeup_enable(struct device *dev, bool 
enable)
 }
 EXPORT_SYMBOL_GPL(device_set_wakeup_enable);
 
+/* callback for device_child_may_wakeup */
+static int __device_child_may_wakeup(struct device *dev, void *c)
+{
+   return device_may_wakeup(dev);
+}
+
+/**
+ * device_child_may_wakeup - Check if any of the child devices are wakeup
+ * sources.
+ * @dev: parent device to handle.
+ *
+ * Function to check if any of the children of a given parent are wakeup
+ * sources.
+ *
+ * This function will return true if any one of the children of given parent
+ * are wakeup sources, else it returns false.
+ */
+bool device_child_may_wakeup(struct device *parent)
+{
+   return device_for_each_child(parent, NULL, __device_child_may_wakeup);
+}
+EXPORT_SYMBOL_GPL(device_child_may_wakeup);
+
 /*
  * The functions below use the observation that each wakeup event starts a
  * period in which the system should not be suspended.  The moment this period
diff --git a/include/linux/pm_wakeup.h b/include/linux/pm_wakeup.h
index a0f7080..b376584 100644
--- a/include/linux/pm_wakeup.h
+++ b/include/linux/pm_wakeup.h
@@ -93,6 +93,7 @@ extern int device_wakeup_disable(struct device *dev);
 extern void device_set_wakeup_capable(struct device *dev, bool capable);
 extern int device_init_wakeup(struct device *dev, bool val);
 extern int device_set_wakeup_enable(struct device *dev, bool enable);
+bool device_child_may_wakeup(struct device *parent);
 extern void __pm_stay_awake(struct wakeup_source *ws);
 extern void pm_stay_awake(struct device *dev);
 extern void __pm_relax(struct wakeup_source *ws);
-- 
1.7.6.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 07/10] PM / wakeup : Introduce device_child_may_wakeup

2013-11-12 Thread srinivas.kandagatla
From: Srinivas Kandagatla srinivas.kandaga...@st.com

This patch introduces device_child_may_wakeup function, which will be
useful for wrapper or SoC level driver power management code.
Without this patch each driver has to write this same code to get the
functionality.

Signed-off-by: Srinivas Kandagatla srinivas.kandaga...@st.com
---
 drivers/base/power/wakeup.c |   23 +++
 include/linux/pm_wakeup.h   |1 +
 2 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c
index 2d56f41..270f000 100644
--- a/drivers/base/power/wakeup.c
+++ b/drivers/base/power/wakeup.c
@@ -342,6 +342,29 @@ int device_set_wakeup_enable(struct device *dev, bool 
enable)
 }
 EXPORT_SYMBOL_GPL(device_set_wakeup_enable);
 
+/* callback for device_child_may_wakeup */
+static int __device_child_may_wakeup(struct device *dev, void *c)
+{
+   return device_may_wakeup(dev);
+}
+
+/**
+ * device_child_may_wakeup - Check if any of the child devices are wakeup
+ * sources.
+ * @dev: parent device to handle.
+ *
+ * Function to check if any of the children of a given parent are wakeup
+ * sources.
+ *
+ * This function will return true if any one of the children of given parent
+ * are wakeup sources, else it returns false.
+ */
+bool device_child_may_wakeup(struct device *parent)
+{
+   return device_for_each_child(parent, NULL, __device_child_may_wakeup);
+}
+EXPORT_SYMBOL_GPL(device_child_may_wakeup);
+
 /*
  * The functions below use the observation that each wakeup event starts a
  * period in which the system should not be suspended.  The moment this period
diff --git a/include/linux/pm_wakeup.h b/include/linux/pm_wakeup.h
index a0f7080..b376584 100644
--- a/include/linux/pm_wakeup.h
+++ b/include/linux/pm_wakeup.h
@@ -93,6 +93,7 @@ extern int device_wakeup_disable(struct device *dev);
 extern void device_set_wakeup_capable(struct device *dev, bool capable);
 extern int device_init_wakeup(struct device *dev, bool val);
 extern int device_set_wakeup_enable(struct device *dev, bool enable);
+bool device_child_may_wakeup(struct device *parent);
 extern void __pm_stay_awake(struct wakeup_source *ws);
 extern void pm_stay_awake(struct device *dev);
 extern void __pm_relax(struct wakeup_source *ws);
-- 
1.7.6.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 07/10] PM / wakeup : Introduce device_child_may_wakeup

2013-11-12 Thread Rafael J. Wysocki
On Tuesday, November 12, 2013 01:52:57 PM srinivas.kandaga...@st.com wrote:
 From: Srinivas Kandagatla srinivas.kandaga...@st.com
 
 This patch introduces device_child_may_wakeup function, which will be
 useful for wrapper or SoC level driver power management code.
 Without this patch each driver has to write this same code to get the
 functionality.
 
 Signed-off-by: Srinivas Kandagatla srinivas.kandaga...@st.com
 ---
  drivers/base/power/wakeup.c |   23 +++
  include/linux/pm_wakeup.h   |1 +
  2 files changed, 24 insertions(+), 0 deletions(-)
 
 diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c
 index 2d56f41..270f000 100644
 --- a/drivers/base/power/wakeup.c
 +++ b/drivers/base/power/wakeup.c
 @@ -342,6 +342,29 @@ int device_set_wakeup_enable(struct device *dev, bool 
 enable)
  }
  EXPORT_SYMBOL_GPL(device_set_wakeup_enable);
  
 +/* callback for device_child_may_wakeup */
 +static int __device_child_may_wakeup(struct device *dev, void *c)
 +{
 + return device_may_wakeup(dev);
 +}

This doesn't have anything to do with children in principle, so please call
it differently.  Something like device_may_wakeup_cb() would work for me (and
then you may not need the comment even).

Thanks!

 +
 +/**
 + * device_child_may_wakeup - Check if any of the child devices are wakeup
 + * sources.
 + * @dev: parent device to handle.
 + *
 + * Function to check if any of the children of a given parent are wakeup
 + * sources.
 + *
 + * This function will return true if any one of the children of given parent
 + * are wakeup sources, else it returns false.
 + */
 +bool device_child_may_wakeup(struct device *parent)
 +{
 + return device_for_each_child(parent, NULL, __device_child_may_wakeup);
 +}
 +EXPORT_SYMBOL_GPL(device_child_may_wakeup);
 +
  /*
   * The functions below use the observation that each wakeup event starts a
   * period in which the system should not be suspended.  The moment this 
 period
 diff --git a/include/linux/pm_wakeup.h b/include/linux/pm_wakeup.h
 index a0f7080..b376584 100644
 --- a/include/linux/pm_wakeup.h
 +++ b/include/linux/pm_wakeup.h
 @@ -93,6 +93,7 @@ extern int device_wakeup_disable(struct device *dev);
  extern void device_set_wakeup_capable(struct device *dev, bool capable);
  extern int device_init_wakeup(struct device *dev, bool val);
  extern int device_set_wakeup_enable(struct device *dev, bool enable);
 +bool device_child_may_wakeup(struct device *parent);
  extern void __pm_stay_awake(struct wakeup_source *ws);
  extern void pm_stay_awake(struct device *dev);
  extern void __pm_relax(struct wakeup_source *ws);
 
-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
--
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 07/10] PM / wakeup : Introduce device_child_may_wakeup

2013-11-12 Thread srinivas kandagatla
On 12/11/13 14:20, Rafael J. Wysocki wrote:
  
  +/* callback for device_child_may_wakeup */
  +static int __device_child_may_wakeup(struct device *dev, void *c)
  +{
  +  return device_may_wakeup(dev);
  +}
 This doesn't have anything to do with children in principle, so please call
 it differently.  Something like device_may_wakeup_cb() would work for me (and
 then you may not need the comment even).

Thanks Rafael, I will fix this in next version.
 
 Thanks!
 
  +
  +/**

--
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/