From: David Brownell <david-b@pacbell.net>
To: linux-pm@lists.linux-foundation.org
Cc: Andrew Morton <akpm@linux-foundation.org>,
Kernel development list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/3] PM: Make wakeup flags available whenever CONFIG_PM is set (ver 2)
Date: Wed, 19 Mar 2008 15:22:54 -0700 [thread overview]
Message-ID: <200803191522.54856.david-b@pacbell.net> (raw)
In-Reply-To: <200803192237.43123.rjw@sisk.pl>
On Wednesday 19 March 2008, Rafael J. Wysocki wrote:
> From: Alan Stern <stern@rowland.harvard.edu>
>
> The various wakeup flags and their accessor macros in struct
> dev_pm_info should be available whenever CONFIG_PM is enabled, not
> just when CONFIG_PM_SLEEP is on. Otherwise remote wakeup won't always
> be configurable for runtime power management. This patch (as1056b)
> fixes the oversight.
More accurately, fixes the "regression" ... as noted sometime
last summer, after 296699de6bdc717189a331ab6bbe90e05c94db06
introduced CONFIG_SUSPEND. But that didn't make the regression
list for that kernel, ergo the delay in fixing it.
- Dave
> [rjw: rebased]
>
> Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
> ---
> drivers/base/power/main.c | 2 --
> drivers/base/power/sysfs.c | 2 ++
> include/linux/pm.h | 36 +++++++++++++++++++++---------------
> 3 files changed, 23 insertions(+), 17 deletions(-)
>
> Index: linux-2.6/include/linux/pm.h
> ===================================================================
> --- linux-2.6.orig/include/linux/pm.h
> +++ linux-2.6/include/linux/pm.h
> @@ -183,9 +183,9 @@ typedef struct pm_message {
> struct dev_pm_info {
> pm_message_t power_state;
> unsigned can_wakeup:1;
> + unsigned should_wakeup:1;
> bool sleeping:1; /* Owned by the PM core */
> #ifdef CONFIG_PM_SLEEP
> - unsigned should_wakeup:1;
> struct list_head entry;
> #endif
> };
> @@ -198,11 +198,6 @@ extern void device_resume(void);
> extern int device_suspend(pm_message_t state);
> extern int device_prepare_suspend(pm_message_t state);
>
> -#define device_set_wakeup_enable(dev,val) \
> - ((dev)->power.should_wakeup = !!(val))
> -#define device_may_wakeup(dev) \
> - (device_can_wakeup(dev) && (dev)->power.should_wakeup)
> -
> extern void __suspend_report_result(const char *function, void *fn, int ret);
>
> #define suspend_report_result(fn, ret) \
> @@ -210,6 +205,24 @@ extern void __suspend_report_result(cons
> __suspend_report_result(__FUNCTION__, fn, ret); \
> } while (0)
>
> +#else /* !CONFIG_PM_SLEEP */
> +
> +static inline int device_suspend(pm_message_t state)
> +{
> + return 0;
> +}
> +
> +#define suspend_report_result(fn, ret) do { } while (0)
> +
> +#endif /* !CONFIG_PM_SLEEP */
> +
> +#ifdef CONFIG_PM
> +
> +#define device_set_wakeup_enable(dev,val) \
> + ((dev)->power.should_wakeup = !!(val))
> +#define device_may_wakeup(dev) \
> + (device_can_wakeup(dev) && (dev)->power.should_wakeup)
> +
> /*
> * Platform hook to activate device wakeup capability, if that's not already
> * handled by enable_irq_wake() etc.
> @@ -224,24 +237,17 @@ static inline int call_platform_enable_w
> return 0;
> }
>
> -#else /* !CONFIG_PM_SLEEP */
> -
> -static inline int device_suspend(pm_message_t state)
> -{
> - return 0;
> -}
> +#else /* !CONFIG_PM */
>
> #define device_set_wakeup_enable(dev,val) do{}while(0)
> #define device_may_wakeup(dev) (0)
>
> -#define suspend_report_result(fn, ret) do { } while (0)
> -
> static inline int call_platform_enable_wakeup(struct device *dev, int is_on)
> {
> return 0;
> }
>
> -#endif /* !CONFIG_PM_SLEEP */
> +#endif /* !CONFIG_PM */
>
> /* changes to device_may_wakeup take effect on the next pm state change.
> * by default, devices should wakeup if they can.
> Index: linux-2.6/drivers/base/power/main.c
> ===================================================================
> --- linux-2.6.orig/drivers/base/power/main.c
> +++ linux-2.6/drivers/base/power/main.c
> @@ -57,8 +57,6 @@ static DEFINE_MUTEX(dpm_list_mtx);
> /* 'true' if all devices have been suspended, protected by dpm_list_mtx */
> static bool all_sleeping;
>
> -int (*platform_enable_wakeup)(struct device *dev, int is_on);
> -
> /**
> * device_pm_add - add a device to the list of active devices
> * @dev: Device to be added to the list
> Index: linux-2.6/drivers/base/power/sysfs.c
> ===================================================================
> --- linux-2.6.orig/drivers/base/power/sysfs.c
> +++ linux-2.6/drivers/base/power/sysfs.c
> @@ -6,6 +6,8 @@
> #include <linux/string.h>
> #include "power.h"
>
> +int (*platform_enable_wakeup)(struct device *dev, int is_on);
> +
>
> /*
> * wakeup - Report/change current wakeup option for device
>
> _______________________________________________
> linux-pm mailing list
> linux-pm@lists.linux-foundation.org
> https://lists.linux-foundation.org/mailman/listinfo/linux-pm
>
WARNING: multiple messages have this Message-ID (diff)
From: David Brownell <david-b@pacbell.net>
To: linux-pm@lists.linux-foundation.org
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>, Greg KH <greg@kroah.com>,
Andrew Morton <akpm@linux-foundation.org>,
Kernel development list <linux-kernel@vger.kernel.org>
Subject: Re: [linux-pm] [PATCH 2/3] PM: Make wakeup flags available whenever CONFIG_PM is set (ver 2)
Date: Wed, 19 Mar 2008 15:22:54 -0700 [thread overview]
Message-ID: <200803191522.54856.david-b@pacbell.net> (raw)
In-Reply-To: <200803192237.43123.rjw@sisk.pl>
On Wednesday 19 March 2008, Rafael J. Wysocki wrote:
> From: Alan Stern <stern@rowland.harvard.edu>
>
> The various wakeup flags and their accessor macros in struct
> dev_pm_info should be available whenever CONFIG_PM is enabled, not
> just when CONFIG_PM_SLEEP is on. Otherwise remote wakeup won't always
> be configurable for runtime power management. This patch (as1056b)
> fixes the oversight.
More accurately, fixes the "regression" ... as noted sometime
last summer, after 296699de6bdc717189a331ab6bbe90e05c94db06
introduced CONFIG_SUSPEND. But that didn't make the regression
list for that kernel, ergo the delay in fixing it.
- Dave
> [rjw: rebased]
>
> Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
> ---
> drivers/base/power/main.c | 2 --
> drivers/base/power/sysfs.c | 2 ++
> include/linux/pm.h | 36 +++++++++++++++++++++---------------
> 3 files changed, 23 insertions(+), 17 deletions(-)
>
> Index: linux-2.6/include/linux/pm.h
> ===================================================================
> --- linux-2.6.orig/include/linux/pm.h
> +++ linux-2.6/include/linux/pm.h
> @@ -183,9 +183,9 @@ typedef struct pm_message {
> struct dev_pm_info {
> pm_message_t power_state;
> unsigned can_wakeup:1;
> + unsigned should_wakeup:1;
> bool sleeping:1; /* Owned by the PM core */
> #ifdef CONFIG_PM_SLEEP
> - unsigned should_wakeup:1;
> struct list_head entry;
> #endif
> };
> @@ -198,11 +198,6 @@ extern void device_resume(void);
> extern int device_suspend(pm_message_t state);
> extern int device_prepare_suspend(pm_message_t state);
>
> -#define device_set_wakeup_enable(dev,val) \
> - ((dev)->power.should_wakeup = !!(val))
> -#define device_may_wakeup(dev) \
> - (device_can_wakeup(dev) && (dev)->power.should_wakeup)
> -
> extern void __suspend_report_result(const char *function, void *fn, int ret);
>
> #define suspend_report_result(fn, ret) \
> @@ -210,6 +205,24 @@ extern void __suspend_report_result(cons
> __suspend_report_result(__FUNCTION__, fn, ret); \
> } while (0)
>
> +#else /* !CONFIG_PM_SLEEP */
> +
> +static inline int device_suspend(pm_message_t state)
> +{
> + return 0;
> +}
> +
> +#define suspend_report_result(fn, ret) do { } while (0)
> +
> +#endif /* !CONFIG_PM_SLEEP */
> +
> +#ifdef CONFIG_PM
> +
> +#define device_set_wakeup_enable(dev,val) \
> + ((dev)->power.should_wakeup = !!(val))
> +#define device_may_wakeup(dev) \
> + (device_can_wakeup(dev) && (dev)->power.should_wakeup)
> +
> /*
> * Platform hook to activate device wakeup capability, if that's not already
> * handled by enable_irq_wake() etc.
> @@ -224,24 +237,17 @@ static inline int call_platform_enable_w
> return 0;
> }
>
> -#else /* !CONFIG_PM_SLEEP */
> -
> -static inline int device_suspend(pm_message_t state)
> -{
> - return 0;
> -}
> +#else /* !CONFIG_PM */
>
> #define device_set_wakeup_enable(dev,val) do{}while(0)
> #define device_may_wakeup(dev) (0)
>
> -#define suspend_report_result(fn, ret) do { } while (0)
> -
> static inline int call_platform_enable_wakeup(struct device *dev, int is_on)
> {
> return 0;
> }
>
> -#endif /* !CONFIG_PM_SLEEP */
> +#endif /* !CONFIG_PM */
>
> /* changes to device_may_wakeup take effect on the next pm state change.
> * by default, devices should wakeup if they can.
> Index: linux-2.6/drivers/base/power/main.c
> ===================================================================
> --- linux-2.6.orig/drivers/base/power/main.c
> +++ linux-2.6/drivers/base/power/main.c
> @@ -57,8 +57,6 @@ static DEFINE_MUTEX(dpm_list_mtx);
> /* 'true' if all devices have been suspended, protected by dpm_list_mtx */
> static bool all_sleeping;
>
> -int (*platform_enable_wakeup)(struct device *dev, int is_on);
> -
> /**
> * device_pm_add - add a device to the list of active devices
> * @dev: Device to be added to the list
> Index: linux-2.6/drivers/base/power/sysfs.c
> ===================================================================
> --- linux-2.6.orig/drivers/base/power/sysfs.c
> +++ linux-2.6/drivers/base/power/sysfs.c
> @@ -6,6 +6,8 @@
> #include <linux/string.h>
> #include "power.h"
>
> +int (*platform_enable_wakeup)(struct device *dev, int is_on);
> +
>
> /*
> * wakeup - Report/change current wakeup option for device
>
> _______________________________________________
> linux-pm mailing list
> linux-pm@lists.linux-foundation.org
> https://lists.linux-foundation.org/mailman/listinfo/linux-pm
>
next prev parent reply other threads:[~2008-03-19 22:22 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-19 3:05 + pm-convert-wakeup-flag-accessors-to-inline-functions-fix.patch added to -mm tree akpm
2008-03-19 14:55 ` Alan Stern
2008-03-19 14:55 ` Alan Stern
2008-03-19 18:48 ` Andrew Morton
2008-03-19 18:48 ` Andrew Morton
2008-03-19 18:57 ` Greg KH
2008-03-19 18:57 ` Greg KH
2008-03-19 21:33 ` [PATCH 0/3] PM wakeup flags revisited (was: Re: + pm-convert-wakeup-flag-accessors-to-inline-functions-fix.patch added to -mm tree) Rafael J. Wysocki
2008-03-19 21:33 ` Rafael J. Wysocki
2008-03-19 21:35 ` [PATCH 1/3] Fix misuse of wakeup flag accessors in serial core Rafael J. Wysocki
2008-03-19 21:35 ` Rafael J. Wysocki
2008-03-20 23:23 ` patch pm-fix-misuse-of-wakeup-flag-accessors-in-serial-core.patch added to gregkh-2.6 tree gregkh
2008-03-20 23:23 ` gregkh
2008-03-19 21:37 ` [PATCH 2/3] PM: Make wakeup flags available whenever CONFIG_PM is set (ver 2) Rafael J. Wysocki
2008-03-19 21:37 ` Rafael J. Wysocki
2008-03-19 22:22 ` David Brownell [this message]
2008-03-19 22:22 ` [linux-pm] " David Brownell
2008-03-20 23:23 ` patch pm-make-wakeup-flags-available-whenever-config_pm-is-set.patch added to gregkh-2.6 tree gregkh
2008-03-20 23:23 ` gregkh
2008-03-19 21:39 ` [PATCH 3/3] PM: Convert wakeup flag accessors to inline functions Rafael J. Wysocki
2008-03-19 21:39 ` Rafael J. Wysocki
2008-03-20 23:23 ` patch pm-convert-wakeup-flag-accessors-to-inline-functions.patch added to gregkh-2.6 tree gregkh
2008-03-20 23:23 ` gregkh
2008-03-19 21:46 ` + pm-convert-wakeup-flag-accessors-to-inline-functions-fix.patch added to -mm tree Alan Stern
2008-03-19 21:46 ` Alan Stern
2008-03-19 21:55 ` Rafael J. Wysocki
2008-03-19 21:55 ` Rafael J. Wysocki
2008-03-19 22:04 ` Alan Stern
2008-03-19 22:04 ` Alan Stern
-- strict thread matches above, loose matches on Subject: below --
2008-03-14 22:37 linux-next20080314 build fails with !CONFIG_PM Rafael J. Wysocki
2008-03-15 21:53 ` [PATCH 2/3] PM: make wakeup flags available whenever CONFIG_PM is set (ver 2) Alan Stern
2008-03-15 21:53 ` Alan Stern
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200803191522.54856.david-b@pacbell.net \
--to=david-b@pacbell.net \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.