Skip to contentSkip to conversation

+ pm-convert-wakeup-flag-accessors-to-inline-functions-fix.patch added to -mm tree

PATCH Applied [email protected] 6 participants 18 messages Mar 19, 2008 – Mar 20, 2008

Subsystems (4)
lore
Share & tools
lore

[email protected]

author tree notice
#0 lore raw

The patch titled
pm-convert-wakeup-flag-accessors-to-inline-functions fix
has been added to the -mm tree. Its filename is
pm-convert-wakeup-flag-accessors-to-inline-functions-fix.patch

Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's

*** Remember to use Documentation/SubmitChecklist when testing your code ***

See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this

The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/

------------------------------------------------------
Subject: pm-convert-wakeup-flag-accessors-to-inline-functions fix
From: Andrew Morton <[email protected]>

ia64 allmodconfig:

In file included from include/linux/device.h:381,

                 from include/linux/rtc.h:110,
                 from include/linux/efi.h:19,
                 from include/asm/sal.h:40,
                 from include/asm-ia64/mca.h:20,
                 from arch/ia64/kernel/asm-offsets.c:17:

include/linux/pm_wakeup.h: In function `device_init_wakeup':
include/linux/pm_wakeup.h:35: error: structure has no member named should_wakeup' include/linux/pm_wakeup.h: In function device_set_wakeup_enable':
include/linux/pm_wakeup.h:45: error: structure has no member named should_wakeup' include/linux/pm_wakeup.h: In function device_may_wakeup':
include/linux/pm_wakeup.h:50: error: structure has no member named `should_wakeup'

Cc Alan Stern <[email protected]>
Cc Greg KH <[email protected]>
Cc "Rafael J. Wysocki" <[email protected]>
Cc Len Brown <[email protected]>

---

 include/linux/pm_wakeup.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
include/linux/pm_wakeup.h renamed from include/linux/pm_wakeup.h~pm-convert-wakeup-flag-accessors-to-inline-functions-fix +1 -1
diff -puN include/linux/pm_wakeup.h~pm-convert-wakeup-flag-accessors-to-inline-functions-fix include/linux/pm_wakeup.h
@@ -25,7 +25,7 @@
 # error "please don't include this file directly"
 #endif
 
-#ifdef CONFIG_PM
+#ifdef CONFIG_PM_SLEEP
 
 /* changes to device_may_wakeup take effect on the next pm state change.
  * by default, devices should wakeup if they can.

_

Patches currently in -mm which might be from [email protected] are

origin.patch
zisofs-fix-readpage-outside-i_size-fix.patch
lib-swiotlbc-avoid-endless-loops-fix.patch
git-x86.patch
arch-x86-kernel-ptracec-fix-defined-but-unused-warnings.patch i386-arch-x86-math-emu-fpu_entryc-warning-fix.patch
git-kgdb-light.patch
git-acpi-fixup.patch
git-acpi-arch-x86-kernel-apm_32c-fix-warning.patch acpi-enable-c3-power-state-on-dell-inspiron-8200.patch
git-alsa-tiwai.patch
cifs-suppress-warning.patch
revert-gregkh-driver-video-add-the-go7007-driver.patch revert-gregkh-driver-pm-make-wakeup-flags-available-whenever-config_pm-is-set.patch pm-convert-wakeup-flag-accessors-to-inline-functions-fix.patch
git-drm.patch
git-drm-git-rejects.patch
git-drm-drivers-char-drm-ati_pcigartc-fix-printk-warning.patch
git-dvb.patch
git-dvb-drivers-media-video-bt8xx-bttv-cardsc-fix-warnings.patch drivers-media-video-pvrusb2-pvrusb2-sysfsc-fix-printk-warnings.patch
git-hwmon.patch
git-gfs2-nmw.patch
git-hrt.patch
arch-ia64-kernel-use-time_-macros-checkpatch-fixes.patch
git-ieee1394.patch
git-infiniband.patch git-infiniband-vs-gregkh-driver-ib-convert-struct-class_device-to-struct-device.patch maple-add-driver-for-sega-dreamcast-controller.patch
git-kvm.patch
kvm-warning-fix.patch
git-leds.patch
devres-implement-pcim_iomap_regions_request_all-fix.patch devres-implement-pcim_iomap_regions_request_all-fix-fix.patch
git-net.patch
git-net-drivers-net-wireless-rt2x00-rt2x00devc-remove-dead-code-fix-warning.patch drivers-atm-firestreamc-suppress-uninitialized-var-warning.patch wan-new-ppp-code-for-generic-hdlc-checkpatch-fixes.patch drivers-net-arcnet-arcnetc-use-time_-macros-checkpatch-fixes.patch drivers-net-tokenring-3c359c-use-time_-macros-checkpatch-fixes.patch update-smc91x-driver-with-arm-versatile-board-info.patch fs-nfs-callback_xdrc-suppress-uninitialiized-variable-warnings.patch
git-nfsd.patch
git-ocfs2.patch
arch-parisc-kernel-unalignedc-use-time_-macros-checkpatch-fixes.patch drivers-pcmcia-soc_commonc-convert-soc_pcmcia_sockets_lock-into-a-mutex-and-make-it-static.patch git-selinux.patch revert-sched-make-sure-jiffies-is-up-to-date-before-calling-__update_rq_clock.patch
git-sh.patch git-scsi-misc-vs-gregkh-driver-driver-core-remove-no-longer-used-struct-class_device.patch git-scsi-misc-vs-gregkh-driver-driver-core-remove-no-longer-used-struct-class_device-fix.patch git-scsi-rc-fixes-fixup.patch
scsi-aic94xx-cleanups.patch
scsi-fix-section-mismatch-in-aic94xx-fix.patch scsi-chc-fix-shadowed-variable-warnings-checkpatch-fixes.patch
ipsc-fix-build-warning.patch
drivers-scsi-initioc-suppress-compile-warning.patch
drivers-scsi-hptiopc-fix-build-warning.patch
drivers-scsi-mvsasc-fix-build-warnings.patch
git-block-git-rejects.patch
git-unionfs.patch
fix-gregkh-usb-usb-ohci-port-reset-paranoia-timeout.patch
git-v9fs.patch
git-watchdog.patch
git-semaphore-git-rejects.patch
x86-fix-aperture-vs-suspend-problem.patch
revert-pcie-utilize-pcie-transaction-pending-bit.patch revert-clocksource-make-clocksource-watchdog-cycle-through-online-cpus.patch netpoll-zap_completion_queue-adjust-skb-users-counter.patch remove-sparse-warning-for-mmzoneh-checkpatch-fixes.patch fix-invalidate_inode_pages2_range-to-not-clear-ret-checkpatch-fixes.patch mm-make-mem_map-allocation-continuous-checkpatch-fixes.patch vmscan-give-referenced-active-and-unmapped-pages-a-second-trip-around-the-lru.patch vm-dont-run-touch_buffer-during-buffercache-lookups.patch capabilities-implement-per-process-securebits-warning-fix.patch lsm-introduce-inode_getsecid-and-ipc_getsecid-hooks-checkpatch-fixes.patch lsm-audit-introduce-generic-audit-lsm-hooks-checkpatch-fixes.patch selinux-use-new-audit-hooks-remove-redundant-exports-checkpatch-fixes.patch audit-final-renamings-and-cleanup-checkpatch-fixes.patch arch-alpha-kernel-trapsc-use-time_-macros-fix.patch alpha-teach-the-compiler-that-bug-doesnt-return.patch
make-dev-kmem-a-config-option-fix.patch
misc-phantom-add-compat-ioctl-checkpatch-fixes.patch sysrq-add-show-backtrace-on-all-cpus-function-checkpatch-fixes.patch sysrq-add-show-backtrace-on-all-cpus-function-checkpatch-fixes-cleanup.patch codafs-fix-build-warning.patch
lib-swiotlbc-cleanups.patch
r-o-bind-mounts-elevate-write-count-for-callers-of-vfs_mkdir-fix.patch r-o-bind-mounts-elevate-write-count-for-xattr_permission-callers-fix.patch r-o-bind-mounts-get-write-access-for-vfs_rename-callers-fix.patch r-o-bind-mounts-check-mnt-instead-of-superblock-directly-fix.patch r-o-bind-mounts-check-mnt-instead-of-superblock-directly-fix-2.patch r-o-bind-mounts-get-callers-of-vfs_mknod-create-fix.patch fs-inodec-use-hlist_for_each_entry-checkpatch-fixes.patch add-rcu_assign_index-if-ever-needed-fix.patch
add-warn_on_secs-macro-simplification-fix.patch
uart_get_baud_rate-stop-mangling-termios-fix.patch oprofile-change-cpu_buffer-from-array-to-per_cpu-variable-checkpatch-fixes.patch vt-notifier-extension-for-accessibility-checkpatch-fixes.patch kprobes-prevent-probing-of-preempt_schedule-fix.patch kprobes-prevent-probing-of-preempt_schedule-checkpatch-fixes.patch quota-various-style-cleanups-checkpatch-fixes.patch quota-quota-core-changes-for-quotaon-on-remount-quota-ext3-make-ext3-handle-quotaon-on-remount-checkpatch-fixes.patch quota-quota-core-changes-for-quotaon-on-remount-quota-ext4-make-ext4-handle-quotaon-on-remount-checkpatch-fixes.patch rtc-isl1208-new-style-conversion-and-minor-bug-fixes-checkpatch-fixes.patch rtc-pcf8563-new-style-conversion-checkpatch-fixes.patch rtc-pcf8563-new-style-conversion-checkpatch-fixes-fix.patch rtc-x1205-new-style-conversion-checkpatch-fixes.patch
gpiochip_reserve-fix.patch
fb-add-support-for-foreign-endianness-force-it-on.patch fbcon-replace-mono_col-macro-with-static-inline-fix.patch pm-gxfb-add-hook-to-pm-console-layer-that-allows-disabling-of-suspend-vt-switch-fix.patch pnp-use-dev_printk-for-quirk-messages-fix.patch
fat_valid_media-remove-pointless-test.patch cgroup-api-files-update-cpusets-to-use-cgroup-structured-file-api-fix.patch add-a-document-describing-the-resource-counter-abstraction-v2-fix.patch memcgroup-implement-failcounter-reset-checkpatch-fixes.patch workqueues-shrink-cpu_populated_map-when-cpu-dies-fix.patch
ext4-is-broken.patch
ipc-use-ipc_buildid-directly-from-ipc_addid-cleanup.patch ipmi-run-to-completion-fixes-checkpatch-fixes.patch ipmi-style-fixes-in-the-system-interface-code-checkpatch-fixes.patch elf-fix-shadowed-variables-in-fs-binfmt_elfc.patch sgi-altix-mmtimer-allow-larger-number-of-timers-per-node-fix.patch sgi-altix-mmtimer-allow-larger-number-of-timers-per-node-fix-2.patch epcac-static-functions-and-integer-as-null-pointer-fixes-checkpatch-fixes.patch keys-add-keyctl-function-to-get-a-security-label-fix.patch keys-make-the-keyring-quotas-controllable-through-proc-sys-hack.patch procfs-task-exe-symlink-fix.patch edd-add-default-mode-config_edd_off=n-override-with-edd=onoff-fix.patch make-module_sect_attrs-private-to-kernel-modulec-checkpatch-fixes.patch mm-bdi-export-bdi-attributes-in-sysfs-ia64-fix.patch basic-braille-screen-reader-support-ppc-fix.patch
hfs-fix-warning-with-64k-page_size.patch
hfsplus-fix-warning-with-64k-page_size.patch
alloc_uid-cleanup.patch
add-macros-similar-to-min-max-min_t-max_t.patch
idr-create-idr_layer_cache-at-boot-time-fix.patch idr-create-idr_layer_cache-at-boot-time-fix-fix.patch
reiser4.patch
jens-broke-reiser4patch-added-to-mm-tree.patch
page-owner-tracking-leak-detector.patch
nr_blockdev_pages-in_interrupt-warning.patch
slab-leaks3-default-y.patch
profile-likely-unlikely-macros.patch
profile-likely-unlikely-macros-fix.patch
put_bh-debug.patch
shrink_slab-handle-bad-shrinkers.patch
getblk-handle-2tb-devices.patch
getblk-handle-2tb-devices-fix.patch
undeprecate-pci_find_device.patch
i386-arch-x86-math-emu-reg_ld_strc-fix-warning.patch
w1-build-fix.patch

#1 lore raw
Quoted 32 lines · On Tue, 18 Mar 2008 [email protected] wrote:

Subject: pm-convert-wakeup-flag-accessors-to-inline-functions fix
From: Andrew Morton <[email protected]>

ia64 allmodconfig:

In file included from include/linux/device.h:381,

                 from include/linux/rtc.h:110,
                 from include/linux/efi.h:19,
                 from include/asm/sal.h:40,
                 from include/asm-ia64/mca.h:20,
                 from arch/ia64/kernel/asm-offsets.c:17:

include/linux/pm_wakeup.h: In function `device_init_wakeup':
include/linux/pm_wakeup.h:35: error: structure has no member named should_wakeup' include/linux/pm_wakeup.h: In function device_set_wakeup_enable':
include/linux/pm_wakeup.h:45: error: structure has no member named should_wakeup' include/linux/pm_wakeup.h: In function device_may_wakeup':
include/linux/pm_wakeup.h:50: error: structure has no member named `should_wakeup'

Cc Alan Stern <[email protected]>
Cc Greg KH <[email protected]>
Cc "Rafael J. Wysocki" <[email protected]>
Cc Len Brown <[email protected]>

---

 include/linux/pm_wakeup.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff -puN include/linux/pm_wakeup.h~pm-convert-wakeup-flag-accessors-to-inline-functions-fix include/linux/pm_wakeup.h

include/linux/pm_wakeup.h line 31

Quoted 8 lines
include/linux/pm_wakeup.h renamed from include/linux/pm_wakeup.h~pm-convert-wakeup-flag-accessors-to-inline-functions-fix +1 -1
@@ -25,7 +25,7 @@
 # error "please don't include this file directly"
 #endif
 
-#ifdef CONFIG_PM
+#ifdef CONFIG_PM_SLEEP
 
 /* changes to device_may_wakeup take effect on the next pm state change.
  * by default, devices should wakeup if they can.

This is completely wrong.

Andrew, I don't know what happened. But if you go back and compare my original patch to the pm-make-wakeup-flags-available-whenever-config_pm-is-set patch you actually applied, you'll see that you managed to leave out a hunk. Possibly because of a conflict with one of Rafael's patches affecting the same area of code.

Here's a URL for that patch as rebased by Rafael:

	http://marc.info/?l=linux-kernel&m=120528034413861&w=2

The very first hunk in that patch makes the should_wakeup flag available always, not just when CONFIG_PM_SLEEP is set. If you go back and import it with that first hunk intact then there should be no need for this "fix" patch.

(In order to do this, you'll first have to revert pm-convert-wakeup-flag-accessors-to-inline-functions.patch and then re-apply it afterward, because it depends on this one.)

Alan Stern

#2 lore raw
Quoted 52 lines · On Wed, 19 Mar 2008 10:55:35 -0400 (EDT) Alan Stern…
Quoted 32 lines · On Tue, 18 Mar 2008 [email protected] wrote:

Subject: pm-convert-wakeup-flag-accessors-to-inline-functions fix
From: Andrew Morton <[email protected]>

ia64 allmodconfig:

In file included from include/linux/device.h:381,

                 from include/linux/rtc.h:110,
                 from include/linux/efi.h:19,
                 from include/asm/sal.h:40,
                 from include/asm-ia64/mca.h:20,
                 from arch/ia64/kernel/asm-offsets.c:17:

include/linux/pm_wakeup.h: In function `device_init_wakeup':
include/linux/pm_wakeup.h:35: error: structure has no member named should_wakeup' include/linux/pm_wakeup.h: In function device_set_wakeup_enable':
include/linux/pm_wakeup.h:45: error: structure has no member named should_wakeup' include/linux/pm_wakeup.h: In function device_may_wakeup':
include/linux/pm_wakeup.h:50: error: structure has no member named `should_wakeup'

Cc Alan Stern <[email protected]>
Cc Greg KH <[email protected]>
Cc "Rafael J. Wysocki" <[email protected]>
Cc Len Brown <[email protected]>

---

 include/linux/pm_wakeup.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff -puN include/linux/pm_wakeup.h~pm-convert-wakeup-flag-accessors-to-inline-functions-fix include/linux/pm_wakeup.h

include/linux/pm_wakeup.h line 31

Quoted 8 lines
include/linux/pm_wakeup.h renamed from include/linux/pm_wakeup.h~pm-convert-wakeup-flag-accessors-to-inline-functions-fix +1 -1
@@ -25,7 +25,7 @@
 # error "please don't include this file directly"
 #endif
 
-#ifdef CONFIG_PM
+#ifdef CONFIG_PM_SLEEP
 
 /* changes to device_may_wakeup take effect on the next pm state change.
  * by default, devices should wakeup if they can.

This is completely wrong.

Andrew, I don't know what happened. But if you go back and compare my original patch to the pm-make-wakeup-flags-available-whenever-config_pm-is-set patch you actually applied, you'll see that you managed to leave out a hunk. Possibly because of a conflict with one of Rafael's patches affecting the same area of code.

Quoted 3 lines

Here's a URL for that patch as rebased by Rafael:

	http://marc.info/?l=linux-kernel&m=120528034413861&w=2

But there was a patch with the same title from yourself sent four days later, which is what I merged.

Plus Greg has been merging and dropping older versions under our feet and maybe Len has too.

Quoted 8 lines

The very first hunk in that patch makes the should_wakeup flag available always, not just when CONFIG_PM_SLEEP is set. If you go back and import it with that first hunk intact then there should be no need for this "fix" patch.

(In order to do this, you'll first have to revert pm-convert-wakeup-flag-accessors-to-inline-functions.patch and then re-apply it afterward, because it depends on this one.)

<shudder>

I'll drop everything, let's start again.

Only how? umm, please review Greg's driver tree, let us know which patches shoudl be dropped from that then send new ones, I guess.

#3 lore raw
Quoted 4 lines · Andrew Morton

I'll drop everything, let's start again.

Only how? umm, please review Greg's driver tree, let us know which patches shoudl be dropped from that then send new ones, I guess.

Yes, please do, I'm confused as well :)

thanks,

greg k-h

#4 lore raw

cover PM wakeup flags revisited (was: Re: + pm-convert-wakeup-flag-accessors-to-inline-functions-fix.patch added to -mm tree)

Quoted 7 lines · Greg KH
Quoted 4 lines · Andrew Morton

I'll drop everything, let's start again.

Only how? umm, please review Greg's driver tree, let us know which patches shoudl be dropped from that then send new ones, I guess.

Yes, please do, I'm confused as well :)

Please drop pm-make-wakeup-flags-available-whenever-config_pm-is-set.patch and apply the following three patches instead.

Thanks,
Rafael

#5 lore raw

PATCH 1/3 Fix misuse of wakeup flag accessors in serial core

From: Alan Stern <[email protected]>

This patch (as1059) fixes a mistake in the way the serial core initializes a device's wakeup settings. It should use the accessor routine instead of relying on a macro producing an lvalue.

---

drivers/serial/serial_core.c +1 -1
Index: usb-2.6/drivers/serial/serial_core.c
===================================================================
@@ -2356,7 +2356,7 @@ int uart_add_one_port(struct uart_driver
 	 */
 	tty_dev = tty_register_device(drv->tty_driver, port->line, port->dev);
 	if (likely(!IS_ERR(tty_dev))) {
-		device_can_wakeup(tty_dev) = 1;
+		device_init_wakeup(tty_dev, 1);
 		device_set_wakeup_enable(tty_dev, 0);
 	} else
 		printk(KERN_ERR "Cannot register tty device on line %d\n",
#6 lore raw

patch pm-fix-misuse-of-wakeup-flag-accessors-in-serial-core.patch added to gregkh-2.6 tree

This is a note to let you know that I've just added the patch titled

Subject: PM: Fix misuse of wakeup flag accessors in serial core

to my gregkh-2.6 tree. Its filename is

pm-fix-misuse-of-wakeup-flag-accessors-in-serial-core.patch

This tree can be found at
http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/patches/

Quoted 1 line

From [email protected] Thu Mar 20 16:20:16 2008

From: Alan Stern <[email protected]>
Date: Wed, 19 Mar 2008 22:35:13 +0100
Subject: PM: Fix misuse of wakeup flag accessors in serial core
To: Greg KH <[email protected]>
Cc: Andrew Morton <[email protected]>, Alan Stern <[email protected]>, Linux-pm mailing list <[email protected]>, Kernel development list <[email protected]>, [email protected]
Message-ID: <[email protected]>
Content-Disposition: inline

From: Alan Stern <[email protected]>

This patch (as1059) fixes a mistake in the way the serial core initializes a device's wakeup settings. It should use the accessor routine instead of relying on a macro producing an lvalue.

---
 drivers/serial/serial_core.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/serial/serial_core.c +1 -1
@@ -2356,7 +2356,7 @@ int uart_add_one_port(struct uart_driver
 	 */
 	tty_dev = tty_register_device(drv->tty_driver, port->line, port->dev);
 	if (likely(!IS_ERR(tty_dev))) {
-		device_can_wakeup(tty_dev) = 1;
+		device_init_wakeup(tty_dev, 1);
 		device_set_wakeup_enable(tty_dev, 0);
 	} else
 		printk(KERN_ERR "Cannot register tty device on line %d\n",

Patches currently in gregkh-2.6 which might be from [email protected] are

usb/usb-convert-usb.h-struct-usb_device-to-kernel-doc.patch usb/usb-make-usb_storage_onetouch-available-with-pm.patch usb/usb-usb-ohci-sm501-driver-use-the-conventional-convention-for-suspend-and-resume.patch usb/usb-reorganize-code-in-hub.c.patch usb/usb-ehci-carry-out-port-handover-during-each-root-hub-resume.patch usb/usb-new-quirk-flag-to-avoid-set-interface.patch usb/drivers-usb-core-devio.c-suppress-warning-with-64k-page_size.patch usb/usb-make-usb-persist-work-after-every-system-sleep.patch usb/usb-remove-config_usb_persist-setting.patch usb/usb-check-serial-number-string-after-device-reset.patch usb/usb-enable-usb-persist-by-default.patch usb/usb-remove-dev-power.power_state.patch usb/usb-isd200-fix-memory-leak-in-isd200_get_inquiry_data.patch usb/usb-remove-experimental-tags-from-some-usb-gadget-kconfig-entries.patch driver-core/pm-handle-device-registrations-during-suspend-resume.patch driver-core/pm-convert-wakeup-flag-accessors-to-inline-functions.patch driver-core/driver-core-call-device_pm_add-after-bus_add_device-in-device_add.patch driver-core/pm-fix-misuse-of-wakeup-flag-accessors-in-serial-core.patch driver-core/pm-make-wakeup-flags-available-whenever-config_pm-is-set.patch

#7 lore raw

patch pm-fix-misuse-of-wakeup-flag-accessors-in-serial-core.patch added to gregkh-2.6 tree

In reply to Rafael J. Wysocki

This is a note to let you know that I've just added the patch titled

Subject: PM: Fix misuse of wakeup flag accessors in serial core

to my gregkh-2.6 tree. Its filename is

pm-fix-misuse-of-wakeup-flag-accessors-in-serial-core.patch

This tree can be found at
http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/patches/

Quoted 1 line

From [email protected] Thu Mar 20 16:20:16 2008

From: Alan Stern <[email protected]>
Date: Wed, 19 Mar 2008 22:35:13 +0100
Subject: PM: Fix misuse of wakeup flag accessors in serial core
To: Greg KH <[email protected]>
Cc: Andrew Morton <[email protected]>, Alan Stern <[email protected]>, Linux-pm mailing list <[email protected]>, Kernel development list <[email protected]>, [email protected]
Message-ID: <[email protected]>
Content-Disposition: inline

From: Alan Stern <[email protected]>

This patch (as1059) fixes a mistake in the way the serial core initializes a device's wakeup settings. It should use the accessor routine instead of relying on a macro producing an lvalue.

---
 drivers/serial/serial_core.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/serial/serial_core.c +1 -1
@@ -2356,7 +2356,7 @@ int uart_add_one_port(struct uart_driver
 	 */
 	tty_dev = tty_register_device(drv->tty_driver, port->line, port->dev);
 	if (likely(!IS_ERR(tty_dev))) {
-		device_can_wakeup(tty_dev) = 1;
+		device_init_wakeup(tty_dev, 1);
 		device_set_wakeup_enable(tty_dev, 0);
 	} else
 		printk(KERN_ERR "Cannot register tty device on line %d\n",

Patches currently in gregkh-2.6 which might be from [email protected] are

usb/usb-convert-usb.h-struct-usb_device-to-kernel-doc.patch usb/usb-make-usb_storage_onetouch-available-with-pm.patch usb/usb-usb-ohci-sm501-driver-use-the-conventional-convention-for-suspend-and-resume.patch usb/usb-reorganize-code-in-hub.c.patch usb/usb-ehci-carry-out-port-handover-during-each-root-hub-resume.patch usb/usb-new-quirk-flag-to-avoid-set-interface.patch usb/drivers-usb-core-devio.c-suppress-warning-with-64k-page_size.patch usb/usb-make-usb-persist-work-after-every-system-sleep.patch usb/usb-remove-config_usb_persist-setting.patch usb/usb-check-serial-number-string-after-device-reset.patch usb/usb-enable-usb-persist-by-default.patch usb/usb-remove-dev-power.power_state.patch usb/usb-isd200-fix-memory-leak-in-isd200_get_inquiry_data.patch usb/usb-remove-experimental-tags-from-some-usb-gadget-kconfig-entries.patch driver-core/pm-handle-device-registrations-during-suspend-resume.patch driver-core/pm-convert-wakeup-flag-accessors-to-inline-functions.patch driver-core/driver-core-call-device_pm_add-after-bus_add_device-in-device_add.patch driver-core/pm-fix-misuse-of-wakeup-flag-accessors-in-serial-core.patch driver-core/pm-make-wakeup-flags-available-whenever-config_pm-is-set.patch

#8 lore raw

PATCH 2/3 PM: Make wakeup flags available whenever CONFIG_PM is set (ver 2)

In reply to Rafael J. Wysocki

From: Alan Stern <[email protected]>

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]

---
 drivers/base/power/main.c  |    2 --
 drivers/base/power/sysfs.c |    2 ++
 include/linux/pm.h         |   36 +++++++++++++++++++++---------------
 3 files changed, 23 insertions(+), 17 deletions(-)
include/linux/pm.h +21 -15
Index: 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.
drivers/base/power/main.c +0 -2
Index: 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
drivers/base/power/sysfs.c +2 -0
Index: 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
#9 lore raw

Re: [linux-pm] [PATCH 2/3] PM: Make wakeup flags available whenever CONFIG_PM is set (ver 2)

Quoted 7 lines · Rafael J. Wysocki

From: Alan Stern <[email protected]>

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

Quoted 121 lines

[rjw: rebased]

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

include/linux/pm.h +21 -15
@@ -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
===================================================================

drivers/base/power/main.c +0 -2
@@ -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
===================================================================

drivers/base/power/sysfs.c +2 -0
@@ -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
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/linux-pm

#10 lore raw

patch pm-make-wakeup-flags-available-whenever-config_pm-is-set.patch added to gregkh-2.6 tree

In reply to Rafael J. Wysocki

This is a note to let you know that I've just added the patch titled

Subject: PM: Make wakeup flags available whenever CONFIG_PM is set

to my gregkh-2.6 tree. Its filename is

pm-make-wakeup-flags-available-whenever-config_pm-is-set.patch

This tree can be found at
http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/patches/

Quoted 1 line

From [email protected] Thu Mar 20 16:20:59 2008

From: Alan Stern <[email protected]>
Date: Wed, 19 Mar 2008 22:37:42 +0100
Subject: PM: Make wakeup flags available whenever CONFIG_PM is set
To: Greg KH <[email protected]>
Cc: Andrew Morton <[email protected]>, Alan Stern <[email protected]>, Linux-pm mailing list <[email protected]>, Kernel development list <[email protected]>, [email protected]
Message-ID: <[email protected]>
Content-Disposition: inline

From: Alan Stern <[email protected]>

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.

David Brownell adds:
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.

[rjw: rebased]

---
 drivers/base/power/main.c  |    2 --
 drivers/base/power/sysfs.c |    2 ++
 include/linux/pm.h         |   36 +++++++++++++++++++++---------------
 3 files changed, 23 insertions(+), 17 deletions(-)
drivers/base/power/main.c +0 -2
@@ -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
drivers/base/power/sysfs.c +2 -0
@@ -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
include/linux/pm.h +21 -15
@@ -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.

Patches currently in gregkh-2.6 which might be from [email protected] are

usb/usb-convert-usb.h-struct-usb_device-to-kernel-doc.patch usb/usb-make-usb_storage_onetouch-available-with-pm.patch usb/usb-usb-ohci-sm501-driver-use-the-conventional-convention-for-suspend-and-resume.patch usb/usb-reorganize-code-in-hub.c.patch usb/usb-ehci-carry-out-port-handover-during-each-root-hub-resume.patch usb/usb-new-quirk-flag-to-avoid-set-interface.patch usb/drivers-usb-core-devio.c-suppress-warning-with-64k-page_size.patch usb/usb-make-usb-persist-work-after-every-system-sleep.patch usb/usb-remove-config_usb_persist-setting.patch usb/usb-check-serial-number-string-after-device-reset.patch usb/usb-enable-usb-persist-by-default.patch usb/usb-remove-dev-power.power_state.patch usb/usb-isd200-fix-memory-leak-in-isd200_get_inquiry_data.patch usb/usb-remove-experimental-tags-from-some-usb-gadget-kconfig-entries.patch driver-core/pm-handle-device-registrations-during-suspend-resume.patch driver-core/pm-convert-wakeup-flag-accessors-to-inline-functions.patch driver-core/driver-core-call-device_pm_add-after-bus_add_device-in-device_add.patch driver-core/pm-fix-misuse-of-wakeup-flag-accessors-in-serial-core.patch driver-core/pm-make-wakeup-flags-available-whenever-config_pm-is-set.patch

#11 lore raw

patch pm-make-wakeup-flags-available-whenever-config_pm-is-set.patch added to gregkh-2.6 tree

In reply to Rafael J. Wysocki

This is a note to let you know that I've just added the patch titled

Subject: PM: Make wakeup flags available whenever CONFIG_PM is set

to my gregkh-2.6 tree. Its filename is

pm-make-wakeup-flags-available-whenever-config_pm-is-set.patch

This tree can be found at
http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/patches/

Quoted 1 line

From [email protected] Thu Mar 20 16:20:59 2008

From: Alan Stern <[email protected]>
Date: Wed, 19 Mar 2008 22:37:42 +0100
Subject: PM: Make wakeup flags available whenever CONFIG_PM is set
To: Greg KH <[email protected]>
Cc: Andrew Morton <[email protected]>, Alan Stern <[email protected]>, Linux-pm mailing list <[email protected]>, Kernel development list <[email protected]>, [email protected]
Message-ID: <[email protected]>
Content-Disposition: inline

From: Alan Stern <[email protected]>

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.

David Brownell adds:
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.

[rjw: rebased]

---
 drivers/base/power/main.c  |    2 --
 drivers/base/power/sysfs.c |    2 ++
 include/linux/pm.h         |   36 +++++++++++++++++++++---------------
 3 files changed, 23 insertions(+), 17 deletions(-)
drivers/base/power/main.c +0 -2
@@ -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
drivers/base/power/sysfs.c +2 -0
@@ -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
include/linux/pm.h +21 -15
@@ -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.

Patches currently in gregkh-2.6 which might be from [email protected] are

usb/usb-convert-usb.h-struct-usb_device-to-kernel-doc.patch usb/usb-make-usb_storage_onetouch-available-with-pm.patch usb/usb-usb-ohci-sm501-driver-use-the-conventional-convention-for-suspend-and-resume.patch usb/usb-reorganize-code-in-hub.c.patch usb/usb-ehci-carry-out-port-handover-during-each-root-hub-resume.patch usb/usb-new-quirk-flag-to-avoid-set-interface.patch usb/drivers-usb-core-devio.c-suppress-warning-with-64k-page_size.patch usb/usb-make-usb-persist-work-after-every-system-sleep.patch usb/usb-remove-config_usb_persist-setting.patch usb/usb-check-serial-number-string-after-device-reset.patch usb/usb-enable-usb-persist-by-default.patch usb/usb-remove-dev-power.power_state.patch usb/usb-isd200-fix-memory-leak-in-isd200_get_inquiry_data.patch usb/usb-remove-experimental-tags-from-some-usb-gadget-kconfig-entries.patch driver-core/pm-handle-device-registrations-during-suspend-resume.patch driver-core/pm-convert-wakeup-flag-accessors-to-inline-functions.patch driver-core/driver-core-call-device_pm_add-after-bus_add_device-in-device_add.patch driver-core/pm-fix-misuse-of-wakeup-flag-accessors-in-serial-core.patch driver-core/pm-make-wakeup-flags-available-whenever-config_pm-is-set.patch

#12 lore raw

PATCH 3/3 PM: Convert wakeup flag accessors to inline functions

In reply to Rafael J. Wysocki

From: Alan Stern <[email protected]>

This patch (as1058) improves the wakeup macros in include/linux/pm.h. All but the trivial ones are converted to inline routines, which requires moving them to a separate header file since they depend on the definition of struct device.

---
 include/linux/device.h    |    3 +
 include/linux/pm.h        |   46 -----------------------
 include/linux/pm_wakeup.h |   90 ++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 94 insertions(+), 45 deletions(-)
include/linux/pm.h +1 -45
Index: linux-2.6/include/linux/pm.h
===================================================================
@@ -212,54 +212,10 @@ static inline int device_suspend(pm_mess
 	return 0;
 }
 
-#define suspend_report_result(fn, ret) do { } while (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.
- * Returns zero on success, else negative errno
- */
-extern int (*platform_enable_wakeup)(struct device *dev, int is_on);
-
-static inline int call_platform_enable_wakeup(struct device *dev, int is_on)
-{
-	if (platform_enable_wakeup)
-		return (*platform_enable_wakeup)(dev, is_on);
-	return 0;
-}
-
-#else /* !CONFIG_PM */
-
-#define device_set_wakeup_enable(dev,val)	do{}while(0)
-#define device_may_wakeup(dev)			(0)
-
-static inline int call_platform_enable_wakeup(struct device *dev, int is_on)
-{
-	return 0;
-}
-
-#endif /* !CONFIG_PM */
-
-/* changes to device_may_wakeup take effect on the next pm state change.
- * by default, devices should wakeup if they can.
- */
-#define device_can_wakeup(dev) \
-	((dev)->power.can_wakeup)
-#define device_init_wakeup(dev,val) \
-	do { \
-		device_can_wakeup(dev) = !!(val); \
-		device_set_wakeup_enable(dev,val); \
-	} while(0)
-
 /*
  * Global Power Management flags
  * Used to keep APM and ACPI from both being active
include/linux/device.h +3 -0
Index: linux-2.6/include/linux/device.h
===================================================================
@@ -475,6 +475,9 @@ struct device {
 	void	(*release)(struct device *dev);
 };
 
+/* Get the wakeup routines, which depend on struct device */
+#include <linux/pm_wakeup.h>
+
 #ifdef CONFIG_NUMA
 static inline int dev_to_node(struct device *dev)
 {
include/linux/pm_wakeup.h new file +90 -0

90 lines not on this page · raw message

#13 lore raw

patch pm-convert-wakeup-flag-accessors-to-inline-functions.patch added to gregkh-2.6 tree

This is a note to let you know that I've just added the patch titled

Subject: PM: Convert wakeup flag accessors to inline functions

to my gregkh-2.6 tree. Its filename is

pm-convert-wakeup-flag-accessors-to-inline-functions.patch

This tree can be found at
http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/patches/

Quoted 1 line

From [email protected] Thu Mar 20 16:21:39 2008

From: Alan Stern <[email protected]>
Date: Wed, 19 Mar 2008 22:39:13 +0100
Subject: PM: Convert wakeup flag accessors to inline functions
To: Greg KH <[email protected]>
Cc: Andrew Morton <[email protected]>, Alan Stern <[email protected]>, Linux-pm mailing list <[email protected]>, Kernel development list <[email protected]>, [email protected]
Message-ID: <[email protected]>
Content-Disposition: inline

From: Alan Stern <[email protected]>

This patch (as1058) improves the wakeup macros in include/linux/pm.h. All but the trivial ones are converted to inline routines, which requires moving them to a separate header file since they depend on the definition of struct device.

---
 include/linux/device.h    |    3 +
 include/linux/pm.h        |   46 -----------------------
 include/linux/pm_wakeup.h |   90 ++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 94 insertions(+), 45 deletions(-)
include/linux/device.h +3 -0
@@ -475,6 +475,9 @@ struct device {
 	void	(*release)(struct device *dev);
 };
 
+/* Get the wakeup routines, which depend on struct device */
+#include <linux/pm_wakeup.h>
+
 #ifdef CONFIG_NUMA
 static inline int dev_to_node(struct device *dev)
 {
include/linux/pm.h +1 -45

55 lines not on this page · raw message

include/linux/pm_wakeup.h new file +90 -0

90 lines not on this page · raw message

Patches currently in gregkh-2.6 which might be from [email protected] are

usb/usb-convert-usb.h-struct-usb_device-to-kernel-doc.patch usb/usb-make-usb_storage_onetouch-available-with-pm.patch usb/usb-usb-ohci-sm501-driver-use-the-conventional-convention-for-suspend-and-resume.patch usb/usb-reorganize-code-in-hub.c.patch usb/usb-ehci-carry-out-port-handover-during-each-root-hub-resume.patch usb/usb-new-quirk-flag-to-avoid-set-interface.patch usb/drivers-usb-core-devio.c-suppress-warning-with-64k-page_size.patch usb/usb-make-usb-persist-work-after-every-system-sleep.patch usb/usb-remove-config_usb_persist-setting.patch usb/usb-check-serial-number-string-after-device-reset.patch usb/usb-enable-usb-persist-by-default.patch usb/usb-remove-dev-power.power_state.patch usb/usb-isd200-fix-memory-leak-in-isd200_get_inquiry_data.patch usb/usb-remove-experimental-tags-from-some-usb-gadget-kconfig-entries.patch driver-core/pm-handle-device-registrations-during-suspend-resume.patch driver-core/pm-convert-wakeup-flag-accessors-to-inline-functions.patch driver-core/driver-core-call-device_pm_add-after-bus_add_device-in-device_add.patch driver-core/pm-fix-misuse-of-wakeup-flag-accessors-in-serial-core.patch driver-core/pm-make-wakeup-flags-available-whenever-config_pm-is-set.patch

#14 lore raw

patch pm-convert-wakeup-flag-accessors-to-inline-functions.patch added to gregkh-2.6 tree

In reply to Rafael J. Wysocki

This is a note to let you know that I've just added the patch titled

Subject: PM: Convert wakeup flag accessors to inline functions

to my gregkh-2.6 tree. Its filename is

pm-convert-wakeup-flag-accessors-to-inline-functions.patch

This tree can be found at
http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/patches/

Quoted 1 line

From [email protected] Thu Mar 20 16:21:39 2008

From: Alan Stern <[email protected]>
Date: Wed, 19 Mar 2008 22:39:13 +0100
Subject: PM: Convert wakeup flag accessors to inline functions
To: Greg KH <[email protected]>
Cc: Andrew Morton <[email protected]>, Alan Stern <[email protected]>, Linux-pm mailing list <[email protected]>, Kernel development list <[email protected]>, [email protected]
Message-ID: <[email protected]>
Content-Disposition: inline

From: Alan Stern <[email protected]>

This patch (as1058) improves the wakeup macros in include/linux/pm.h. All but the trivial ones are converted to inline routines, which requires moving them to a separate header file since they depend on the definition of struct device.

---
 include/linux/device.h    |    3 +
 include/linux/pm.h        |   46 -----------------------
 include/linux/pm_wakeup.h |   90 ++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 94 insertions(+), 45 deletions(-)
include/linux/device.h +3 -0
@@ -475,6 +475,9 @@ struct device {
 	void	(*release)(struct device *dev);
 };
 
+/* Get the wakeup routines, which depend on struct device */
+#include <linux/pm_wakeup.h>
+
 #ifdef CONFIG_NUMA
 static inline int dev_to_node(struct device *dev)
 {
include/linux/pm.h +1 -45

55 lines not on this page · raw message

include/linux/pm_wakeup.h new file +90 -0

90 lines not on this page · raw message

Patches currently in gregkh-2.6 which might be from [email protected] are

usb/usb-convert-usb.h-struct-usb_device-to-kernel-doc.patch usb/usb-make-usb_storage_onetouch-available-with-pm.patch usb/usb-usb-ohci-sm501-driver-use-the-conventional-convention-for-suspend-and-resume.patch usb/usb-reorganize-code-in-hub.c.patch usb/usb-ehci-carry-out-port-handover-during-each-root-hub-resume.patch usb/usb-new-quirk-flag-to-avoid-set-interface.patch usb/drivers-usb-core-devio.c-suppress-warning-with-64k-page_size.patch usb/usb-make-usb-persist-work-after-every-system-sleep.patch usb/usb-remove-config_usb_persist-setting.patch usb/usb-check-serial-number-string-after-device-reset.patch usb/usb-enable-usb-persist-by-default.patch usb/usb-remove-dev-power.power_state.patch usb/usb-isd200-fix-memory-leak-in-isd200_get_inquiry_data.patch usb/usb-remove-experimental-tags-from-some-usb-gadget-kconfig-entries.patch driver-core/pm-handle-device-registrations-during-suspend-resume.patch driver-core/pm-convert-wakeup-flag-accessors-to-inline-functions.patch driver-core/driver-core-call-device_pm_add-after-bus_add_device-in-device_add.patch driver-core/pm-fix-misuse-of-wakeup-flag-accessors-in-serial-core.patch driver-core/pm-make-wakeup-flags-available-whenever-config_pm-is-set.patch

#15 lore raw
In reply to Greg KH
Quoted 7 lines · Greg KH
Quoted 4 lines · Andrew Morton

I'll drop everything, let's start again.

Only how? umm, please review Greg's driver tree, let us know which patches shoudl be dropped from that then send new ones, I guess.

Yes, please do, I'm confused as well :)

Okay. No doubt Rafael will correct me if I get something wrong.

Greg's tree still contains the original, wrong version of pm-make-wakeup-flags-available-whenever-config_pm-is-set.patch. It should be reverted. In its place should be substituted this series of patches (URLs for 0/3 ... 3/3):

	http://marc.info/?l=linux-kernel&m=120561808422302&w=2
	http://marc.info/?l=linux-kernel&m=120561808522316&w=2
	http://marc.info/?l=linux-kernel&m=120561808522322&w=2
	http://marc.info/?l=linux-kernel&m=120561808622328&w=2

There is likely to be a conflict in applying the 2/3 patch, because its first hunk touches a region of code also affected by work Rafael has been doing. The important aspect of that hunk is that it moves the should_wakeup flag definition outside the region protected by "#ifdef CONFIG_PM_SLEEP".

Alan Stern

#16 lore raw
Quoted 22 lines · Alan Stern
Quoted 7 lines · Greg KH
Quoted 4 lines · Andrew Morton

I'll drop everything, let's start again.

Only how? umm, please review Greg's driver tree, let us know which patches shoudl be dropped from that then send new ones, I guess.

Yes, please do, I'm confused as well :)

Okay. No doubt Rafael will correct me if I get something wrong.

Greg's tree still contains the original, wrong version of pm-make-wakeup-flags-available-whenever-config_pm-is-set.patch. It should be reverted. In its place should be substituted this series of patches (URLs for 0/3 ... 3/3):

	http://marc.info/?l=linux-kernel&m=120561808422302&w=2
	http://marc.info/?l=linux-kernel&m=120561808522316&w=2
	http://marc.info/?l=linux-kernel&m=120561808522322&w=2
	http://marc.info/?l=linux-kernel&m=120561808622328&w=2
Quoted 5 lines

There is likely to be a conflict in applying the 2/3 patch, because its first hunk touches a region of code also affected by work Rafael has been doing. The important aspect of that hunk is that it moves the should_wakeup flag definition outside the region protected by "#ifdef CONFIG_PM_SLEEP".

I've just resent the three patches, rebased on top of the current tree.

Please double check if everytning is right.

Thanks,
Rafael

#17 lore raw
Quoted 1 line · Rafael J. Wysocki

I've just resent the three patches, rebased on top of the current tree.

Yep, our messages crossed each other.

Quoted 1 line

Please double check if everytning is right.

It is.

Alan Stern