Hi! > Next in our series of wakeup patches: a consumer electronics maker asked > for a userspace interface to inquire what woke the system up, in order > to present different behaviors depending on the wakeup source. This is > to be encouraged, as it places these kinds of policy decisions into the > power policy application and out of the kernel. > > So here's a quick try at adding a /sys/power/waker attribute and a > pm_add_waker() kernel function that either drivers or board PM code can > use to add (so far format-free) strings useful for telling what woke the > system up. The idea is that a buffer of these strings is cleared at > each suspend and added to by the platform's resume path and/or driver > resume methods. > > I'll send a patch or two for embedded boards showing how > this could be used for SoC-specific wakeup sources. > > Any interest in this or something like it for Linux in general, or any > other suggestions? Thanks -- Todd Well, idea may be okay but patch is ugly. > Index: linux-2.6.15-rc4/kernel/power/main.c > =================================================================== > --- linux-2.6.15-rc4.orig/kernel/power/main.c > +++ linux-2.6.15-rc4/kernel/power/main.c > @@ -103,11 +103,18 @@ static int suspend_prepare(suspend_state > } > > > +#define WAKERINFO_LEN 1024 > + > +static char *wakerinfo; Can you just allocate it statically? And use some reasonable length. > +void pm_add_waker(char * buf) char *buf > +{ > + if (! wakerinfo) { Please don't use space between "!" and variable. Pavel -- Thanks, Sharp!