LKML Archive on lore.kernel.org help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <rjw@sisk.pl> To: Greg KH <greg@kroah.com> Cc: Andrew Morton <akpm@linux-foundation.org>, Alan Stern <stern@rowland.harvard.edu>, Linux-pm mailing list <linux-pm@lists.linux-foundation.org>, Kernel development list <linux-kernel@vger.kernel.org>, lenb@kernel.org Subject: [PATCH 2/3] PM: Make wakeup flags available whenever CONFIG_PM is set (ver 2) Date: Wed, 19 Mar 2008 22:37:42 +0100 [thread overview] Message-ID: <200803192237.43123.rjw@sisk.pl> (raw) In-Reply-To: <200803192233.55313.rjw@sisk.pl> 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. [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
next prev parent reply other threads:[~2008-03-19 23:14 UTC|newest] Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top [not found] <200803190315.m2J3FXnK029022@imap1.linux-foundation.org> 2008-03-19 14:55 ` + pm-convert-wakeup-flag-accessors-to-inline-functions-fix.patch added to -mm tree Alan Stern 2008-03-19 18:48 ` Andrew Morton 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:35 ` [PATCH 1/3] Fix misuse of wakeup flag accessors in serial core 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-19 21:37 ` Rafael J. Wysocki [this message] 2008-03-19 22:22 ` [linux-pm] [PATCH 2/3] PM: Make wakeup flags available whenever CONFIG_PM is set (ver 2) 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-19 21:39 ` [PATCH 3/3] PM: Convert wakeup flag accessors to inline functions 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-19 21:46 ` + pm-convert-wakeup-flag-accessors-to-inline-functions-fix.patch added to -mm tree Alan Stern 2008-03-19 21:55 ` Rafael J. Wysocki 2008-03-19 22:04 ` Alan Stern 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
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=200803192237.43123.rjw@sisk.pl \ --to=rjw@sisk.pl \ --cc=akpm@linux-foundation.org \ --cc=greg@kroah.com \ --cc=lenb@kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pm@lists.linux-foundation.org \ --cc=stern@rowland.harvard.edu \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).