All of lore.kernel.org
 help / color / mirror / Atom feed
* 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
@ 2009-09-30 20:07 ` Pavel Machek
  0 siblings, 0 replies; 32+ messages in thread
From: Pavel Machek @ 2009-09-30 20:07 UTC (permalink / raw)
  To: rpurdie, lenz, kernel list, Dirk, arminlitzel, Cyril Hrubis,
	thommycheck, linux-arm-kernel, dbaryshkov, omegamoon,
	eric.y.miao, utx
  Cc: linux-input

Hi!

It complains about unbalanced irq 113 wake disable. That one belongs
to matrix-keypad...
								Pavel

spend
leds spitz:green:hddactivity: legacy class suspend
leds spitz:amber:charge: legacy class suspend
input input1: type suspend
input input0: type suspend
mtd mtd2ro: legacy class suspend
mtd mtd2: legacy class suspend
mtd mtd1ro: legacy class suspend
mtd mtd1: legacy class suspend
mtd mtd0ro: legacy class suspend
mtd mtd0: legacy class suspend
serial8250 serial8250: suspend
backlight corgi_bl: legacy class suspend
sharpsl-pm sharpsl-pm: suspend
pxa2xx-pcmcia pxa2xx-pcmcia: suspend
platform regulatory.0: suspend
i2c i2c-0: legacy suspend
max1111 spi2.2: legacy suspend
corgi-lcd spi2.1: legacy suspend
ads7846 spi2.0: legacy suspend
sharp-scoop sharp-scoop.1: suspend
pxa2xx-i2c pxa2xx-i2c.0: suspend
pxa2xx-fb pxa2xx-fb: suspend
platform pxa2xx-ir: suspend
platform pxa27x-ohci: suspend
pxa2xx-mci pxa2xx-mci.0: suspend
platform physmap-flash: suspend
sharpsl-nand sharpsl-nand: suspend
leds-gpio leds-gpio: suspend
matrix-keypad matrix-keypad: suspend, may wakeup
sharp-scoop sharp-scoop.0: suspend
pxa2xx-spi pxa2xx-spi.2: suspend
platform pxa27x-pwm.1: suspend
platform pxa27x-pwm.0: suspend
pxa27x-ssp pxa27x-ssp.2: suspend
pxa27x-ssp pxa27x-ssp.1: suspend
pxa27x-ssp pxa27x-ssp.0: suspend
platform pxa-rtc: suspend
platform sa1100-rtc: suspend
platform pxa2xx-i2s: suspend
platform pxa2xx-uart.2: suspend
platform pxa2xx-uart.1: suspend
platform pxa2xx-uart.0: suspend
platform pxa27x-udc: suspend
serial8250 serial8250: LATE suspend
sharpsl-pm sharpsl-pm: LATE suspend
pxa2xx-pcmcia pxa2xx-pcmcia: LATE suspend
platform regulatory.0: LATE suspend
sharp-scoop sharp-scoop.1: LATE suspend
pxa2xx-i2c pxa2xx-i2c.0: LATE suspend
pxa2xx-fb pxa2xx-fb: LATE suspend
platform pxa2xx-ir: LATE suspend
platform pxa27x-ohci: LATE suspend
pxa2xx-mci pxa2xx-mci.0: LATE suspend
platform physmap-flash: LATE suspend
sharpsl-nand sharpsl-nand: LATE suspend
leds-gpio leds-gpio: LATE suspend
matrix-keypad matrix-keypad: LATE suspend, may wakeup
sharp-scoop sharp-scoop.0: LATE suspend
pxa2xx-spi pxa2xx-spi.2: LATE suspend
platform pxa27x-pwm.1: LATE suspend
platform pxa27x-pwm.0: LATE suspend
pxa27x-ssp pxa27x-ssp.2: LATE suspend
pxa27x-ssp pxa27x-ssp.1: LATE suspend
pxa27x-ssp pxa27x-ssp.0: LATE suspend
platform pxa-rtc: LATE suspend
platform sa1100-rtc: LATE suspend
platform pxa2xx-i2s: LATE suspend
platform pxa2xx-uart.2: LATE suspend
platform pxa2xx-uart.1: LATE suspend
platform pxa2xx-uart.0: LATE suspend
platform pxa27x-udc: LATE suspend
suspend debug: Waiting for 5 seconds.
platform pxa27x-udc: EARLY resume
platform pxa2xx-uart.0: EARLY resume
platform pxa2xx-uart.1: EARLY resume
platform pxa2xx-uart.2: EARLY resume
platform pxa2xx-i2s: EARLY resume
platform sa1100-rtc: EARLY resume
platform pxa-rtc: EARLY resume
pxa27x-ssp pxa27x-ssp.0: EARLY resume
pxa27x-ssp pxa27x-ssp.1: EARLY resume
pxa27x-ssp pxa27x-ssp.2: EARLY resume
platform pxa27x-pwm.0: EARLY resume
platform pxa27x-pwm.1: EARLY resume
pxa2xx-spi pxa2xx-spi.2: EARLY resume
sharp-scoop sharp-scoop.0: EARLY resume
matrix-keypad matrix-keypad: EARLY resume
leds-gpio leds-gpio: EARLY resume
sharpsl-nand sharpsl-nand: EARLY resume
platform physmap-flash: EARLY resume
pxa2xx-mci pxa2xx-mci.0: EARLY resume
platform pxa27x-ohci: EARLY resume
platform pxa2xx-ir: EARLY resume
pxa2xx-fb pxa2xx-fb: EARLY resume
pxa2xx-i2c pxa2xx-i2c.0: EARLY resume
sharp-scoop sharp-scoop.1: EARLY resume
platform regulatory.0: EARLY resume
pxa2xx-pcmcia pxa2xx-pcmcia: EARLY resume
sharpsl-pm sharpsl-pm: EARLY resume
serial8250 serial8250: EARLY resume
platform pxa27x-udc: resume
platform pxa2xx-uart.0: resume
platform pxa2xx-uart.1: resume
platform pxa2xx-uart.2: resume
platform pxa2xx-i2s: resume
platform sa1100-rtc: resume
platform pxa-rtc: resume
pxa27x-ssp pxa27x-ssp.0: resume
pxa27x-ssp pxa27x-ssp.1: resume
pxa27x-ssp pxa27x-ssp.2: resume
platform pxa27x-pwm.0: resume
platform pxa27x-pwm.1: resume
pxa2xx-spi pxa2xx-spi.2: resume
sharp-scoop sharp-scoop.0: resume
matrix-keypad matrix-keypad: resume
------------[ cut here ]------------
WARNING: at kernel/irq/manage.c:361 set_irq_wake+0x7c/0x138()
Unbalanced IRQ 113 wake disable
Modules linked in:
[<c00248f8>] (unwind_backtrace+0x0/0xe4) from [<c003520c>] (warn_slowpath_common+0x4c/0x80)
[<c003520c>] (warn_slowpath_common+0x4c/0x80) from [<c003527c>] (warn_slowpath_fmt+0x28/0x38)
[<c003527c>] (warn_slowpath_fmt+0x28/0x38) from [<c0060b88>] (set_irq_wake+0x7c/0x138)
[<c0060b88>] (set_irq_wake+0x7c/0x138) from [<c01d0484>] (matrix_keypad_resume+0x6c/0x8c)
[<c01d0484>] (matrix_keypad_resume+0x6c/0x8c) from [<c0190d3c>] (platform_pm_resume+0x30/0x54)
[<c0190d3c>] (platform_pm_resume+0x30/0x54) from [<c019302c>] (pm_op+0x6c/0x8c)
[<c019302c>] (pm_op+0x6c/0x8c) from [<c0193af4>] (dpm_resume_end+0xf0/0x47c)
[<c0193af4>] (dpm_resume_end+0xf0/0x47c) from [<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc)
[<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc) from [<c005dbb8>] (enter_state+0xe8/0x120)
[<c005dbb8>] (enter_state+0xe8/0x120) from [<c005d2bc>] (state_store+0x90/0xc4)
[<c005d2bc>] (state_store+0x90/0xc4) from [<c01459bc>] (kobj_attr_store+0x1c/0x24)
[<c01459bc>] (kobj_attr_store+0x1c/0x24) from [<c00d80d8>] (sysfs_write_file+0x104/0x18c)
[<c00d80d8>] (sysfs_write_file+0x104/0x18c) from [<c008ffe8>] (vfs_write+0xb0/0x164)
[<c008ffe8>] (vfs_write+0xb0/0x164) from [<c009016c>] (sys_write+0x40/0x70)
[<c009016c>] (sys_write+0x40/0x70) from [<c001fec0>] (ret_fast_syscall+0x0/0x28)
---[ end trace e1f70a99626339f7 ]---
------------[ cut here ]------------
WARNING: at kernel/irq/manage.c:361 set_irq_wake+0x7c/0x138()
Unbalanced IRQ 187 wake disable
Modules linked in:
[<c00248f8>] (unwind_backtrace+0x0/0xe4) from [<c003520c>] (warn_slowpath_common+0x4c/0x80)
[<c003520c>] (warn_slowpath_common+0x4c/0x80) from [<c003527c>] (warn_slowpath_fmt+0x28/0x38)
[<c003527c>] (warn_slowpath_fmt+0x28/0x38) from [<c0060b88>] (set_irq_wake+0x7c/0x138)
[<c0060b88>] (set_irq_wake+0x7c/0x138) from [<c01d0484>] (matrix_keypad_resume+0x6c/0x8c)
[<c01d0484>] (matrix_keypad_resume+0x6c/0x8c) from [<c0190d3c>] (platform_pm_resume+0x30/0x54)
[<c0190d3c>] (platform_pm_resume+0x30/0x54) from [<c019302c>] (pm_op+0x6c/0x8c)
[<c019302c>] (pm_op+0x6c/0x8c) from [<c0193af4>] (dpm_resume_end+0xf0/0x47c)
[<c0193af4>] (dpm_resume_end+0xf0/0x47c) from [<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc)
[<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc) from [<c005dbb8>] (enter_state+0xe8/0x120)
[<c005dbb8>] (enter_state+0xe8/0x120) from [<c005d2bc>] (state_store+0x90/0xc4)
[<c005d2bc>] (state_store+0x90/0xc4) from [<c01459bc>] (kobj_attr_store+0x1c/0x24)
[<c01459bc>] (kobj_attr_store+0x1c/0x24) from [<c00d80d8>] (sysfs_write_file+0x104/0x18c)
[<c00d80d8>] (sysfs_write_file+0x104/0x18c) from [<c008ffe8>] (vfs_write+0xb0/0x164)
[<c008ffe8>] (vfs_write+0xb0/0x164) from [<c009016c>] (sys_write+0x40/0x70)
[<c009016c>] (sys_write+0x40/0x70) from [<c001fec0>] (ret_fast_syscall+0x0/0x28)
---[ end trace e1f70a99626339f8 ]---
------------[ cut here ]------------
WARNING: at kernel/irq/manage.c:361 set_irq_wake+0x7c/0x138()
Unbalanced IRQ 130 wake disable
Modules linked in:
[<c00248f8>] (unwind_backtrace+0x0/0xe4) from [<c003520c>] (warn_slowpath_common+0x4c/0x80)
[<c003520c>] (warn_slowpath_common+0x4c/0x80) from [<c003527c>] (warn_slowpath_fmt+0x28/0x38)
[<c003527c>] (warn_slowpath_fmt+0x28/0x38) from [<c0060b88>] (set_irq_wake+0x7c/0x138)
[<c0060b88>] (set_irq_wake+0x7c/0x138) from [<c01d0484>] (matrix_keypad_resume+0x6c/0x8c)
[<c01d0484>] (matrix_keypad_resume+0x6c/0x8c) from [<c0190d3c>] (platform_pm_resume+0x30/0x54)
[<c0190d3c>] (platform_pm_resume+0x30/0x54) from [<c019302c>] (pm_op+0x6c/0x8c)
[<c019302c>] (pm_op+0x6c/0x8c) from [<c0193af4>] (dpm_resume_end+0xf0/0x47c)
[<c0193af4>] (dpm_resume_end+0xf0/0x47c) from [<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc)
[<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc) from [<c005dbb8>] (enter_state+0xe8/0x120)
[<c005dbb8>] (enter_state+0xe8/0x120) from [<c005d2bc>] (state_store+0x90/0xc4)
[<c005d2bc>] (state_store+0x90/0xc4) from [<c01459bc>] (kobj_attr_store+0x1c/0x24)
[<c01459bc>] (kobj_attr_store+0x1c/0x24) from [<c00d80d8>] (sysfs_write_file+0x104/0x18c)
[<c00d80d8>] (sysfs_write_file+0x104/0x18c) from [<c008ffe8>] (vfs_write+0xb0/0x164)
[<c008ffe8>] (vfs_write+0xb0/0x164) from [<c009016c>] (sys_write+0x40/0x70)
[<c009016c>] (sys_write+0x40/0x70) from [<c001fec0>] (ret_fast_syscall+0x0/0x28)
---[ end trace e1f70a99626339f9 ]---
------------[ cut here ]------------
WARNING: at kernel/irq/manage.c:361 set_irq_wake+0x7c/0x138()
Unbalanced IRQ 132 wake disable
Modules linked in:
[<c00248f8>] (unwind_backtrace+0x0/0xe4) from [<c003520c>] (warn_slowpath_common+0x4c/0x80)
[<c003520c>] (warn_slowpath_common+0x4c/0x80) from [<c003527c>] (warn_slowpath_fmt+0x28/0x38)
[<c003527c>] (warn_slowpath_fmt+0x28/0x38) from [<c0060b88>] (set_irq_wake+0x7c/0x138)
[<c0060b88>] (set_irq_wake+0x7c/0x138) from [<c01d0484>] (matrix_keypad_resume+0x6c/0x8c)
[<c01d0484>] (matrix_keypad_resume+0x6c/0x8c) from [<c0190d3c>] (platform_pm_resume+0x30/0x54)
[<c0190d3c>] (platform_pm_resume+0x30/0x54) from [<c019302c>] (pm_op+0x6c/0x8c)
[<c019302c>] (pm_op+0x6c/0x8c) from [<c0193af4>] (dpm_resume_end+0xf0/0x47c)
[<c0193af4>] (dpm_resume_end+0xf0/0x47c) from [<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc)
[<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc) from [<c005dbb8>] (enter_state+0xe8/0x120)
[<c005dbb8>] (enter_state+0xe8/0x120) from [<c005d2bc>] (state_store+0x90/0xc4)
[<c005d2bc>] (state_store+0x90/0xc4) from [<c01459bc>] (kobj_attr_store+0x1c/0x24)
[<c01459bc>] (kobj_attr_store+0x1c/0x24) from [<c00d80d8>] (sysfs_write_file+0x104/0x18c)
[<c00d80d8>] (sysfs_write_file+0x104/0x18c) from [<c008ffe8>] (vfs_write+0xb0/0x164)
[<c008ffe8>] (vfs_write+0xb0/0x164) from [<c009016c>] (sys_write+0x40/0x70)
[<c009016c>] (sys_write+0x40/0x70) from [<c001fec0>] (ret_fast_syscall+0x0/0x28)
---[ end trace e1f70a99626339fa ]---
------------[ cut here ]------------
WARNING: at kernel/irq/manage.c:361 set_irq_wake+0x7c/0x138()
Unbalanced IRQ 134 wake disable
Modules linked in:
[<c00248f8>] (unwind_backtrace+0x0/0xe4) from [<c003520c>] (warn_slowpath_common+0x4c/0x80)
[<c003520c>] (warn_slowpath_common+0x4c/0x80) from [<c003527c>] (warn_slowpath_fmt+0x28/0x38)
[<c003527c>] (warn_slowpath_fmt+0x28/0x38) from [<c0060b88>] (set_irq_wake+0x7c/0x138)
[<c0060b88>] (set_irq_wake+0x7c/0x138) from [<c01d0484>] (matrix_keypad_resume+0x6c/0x8c)
[<c01d0484>] (matrix_keypad_resume+0x6c/0x8c) from [<c0190d3c>] (platform_pm_resume+0x30/0x54)
[<c0190d3c>] (platform_pm_resume+0x30/0x54) from [<c019302c>] (pm_op+0x6c/0x8c)
[<c019302c>] (pm_op+0x6c/0x8c) from [<c0193af4>] (dpm_resume_end+0xf0/0x47c)
[<c0193af4>] (dpm_resume_end+0xf0/0x47c) from [<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc)
[<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc) from [<c005dbb8>] (enter_state+0xe8/0x120)
[<c005dbb8>] (enter_state+0xe8/0x120) from [<c005d2bc>] (state_store+0x90/0xc4)
[<c005d2bc>] (state_store+0x90/0xc4) from [<c01459bc>] (kobj_attr_store+0x1c/0x24)
[<c01459bc>] (kobj_attr_store+0x1c/0x24) from [<c00d80d8>] (sysfs_write_file+0x104/0x18c)
[<c00d80d8>] (sysfs_write_file+0x104/0x18c) from [<c008ffe8>] (vfs_write+0xb0/0x164)
[<c008ffe8>] (vfs_write+0xb0/0x164) from [<c009016c>] (sys_write+0x40/0x70)
[<c009016c>] (sys_write+0x40/0x70) from [<c001fec0>] (ret_fast_syscall+0x0/0x28)
---[ end trace e1f70a99626339fb ]---
------------[ cut here ]------------
WARNING: at kernel/irq/manage.c:361 set_irq_wake+0x7c/0x138()
Unbalanced IRQ 135 wake disable
Modules linked in:
[<c00248f8>] (unwind_backtrace+0x0/0xe4) from [<c003520c>] (warn_slowpath_common+0x4c/0x80)
[<c003520c>] (warn_slowpath_common+0x4c/0x80) from [<c003527c>] (warn_slowpath_fmt+0x28/0x38)
[<c003527c>] (warn_slowpath_fmt+0x28/0x38) from [<c0060b88>] (set_irq_wake+0x7c/0x138)
[<c0060b88>] (set_irq_wake+0x7c/0x138) from [<c01d0484>] (matrix_keypad_resume+0x6c/0x8c)
[<c01d0484>] (matrix_keypad_resume+0x6c/0x8c) from [<c0190d3c>] (platform_pm_resume+0x30/0x54)
[<c0190d3c>] (platform_pm_resume+0x30/0x54) from [<c019302c>] (pm_op+0x6c/0x8c)
[<c019302c>] (pm_op+0x6c/0x8c) from [<c0193af4>] (dpm_resume_end+0xf0/0x47c)
[<c0193af4>] (dpm_resume_end+0xf0/0x47c) from [<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc)
[<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc) from [<c005dbb8>] (enter_state+0xe8/0x120)
[<c005dbb8>] (enter_state+0xe8/0x120) from [<c005d2bc>] (state_store+0x90/0xc4)
[<c005d2bc>] (state_store+0x90/0xc4) from [<c01459bc>] (kobj_attr_store+0x1c/0x24)
[<c01459bc>] (kobj_attr_store+0x1c/0x24) from [<c00d80d8>] (sysfs_write_file+0x104/0x18c)
[<c00d80d8>] (sysfs_write_file+0x104/0x18c) from [<c008ffe8>] (vfs_write+0xb0/0x164)
[<c008ffe8>] (vfs_write+0xb0/0x164) from [<c009016c>] (sys_write+0x40/0x70)
[<c009016c>] (sys_write+0x40/0x70) from [<c001fec0>] (ret_fast_syscall+0x0/0x28)
---[ end trace e1f70a99626339fc ]---
leds-gpio leds-gpio: resume
sharpsl-nand sharpsl-nand: resume
platform physmap-flash: resume
pxa2xx-mci pxa2xx-mci.0: resume
platform pxa27x-ohci: resume
platform pxa2xx-ir: resume
pxa2xx-fb pxa2xx-fb: resume
pxa2xx-i2c pxa2xx-i2c.0: resume
sharp-scoop sharp-scoop.1: resume
ads7846 spi2.0: legacy resume
corgi-lcd spi2.1: legacy resume
max1111 spi2.2: legacy resume
i2c i2c-0: legacy resume
platform regulatory.0: resume
pxa2xx-pcmcia pxa2xx-pcmcia: resume
sharpsl-pm sharpsl-pm: resume
backlight corgi_bl: legacy class resume
serial8250 serial8250: resume
mtd mtd0: legacy class resume
mtd mtd0ro: legacy class resume
mtd mtd1: legacy class resume
mtd mtd1ro: legacy class resume
mtd mtd2: legacy class resume
mtd mtd2ro: legacy class resume
input input0: type resume
input input1: type resume
leds spitz:amber:charge: legacy class resume
leds spitz:green:hddactivity: legacy class resume
ide-cs 1.0: legacy resume
ide-gd 0.0: legacy resume
serial8250 serial8250: completing resume
sharpsl-pm sharpsl-pm: completing resume
pxa2xx-pcmcia pxa2xx-pcmcia: completing resume
platform regulatory.0: completing resume
sharp-scoop sharp-scoop.1: completing resume
pxa2xx-i2c pxa2xx-i2c.0: completing resume
pxa2xx-fb pxa2xx-fb: completing resume
platform pxa2xx-ir: completing resume
platform pxa27x-ohci: completing resume
pxa2xx-mci pxa2xx-mci.0: completing resume
platform physmap-flash: completing resume
sharpsl-nand sharpsl-nand: completing resume
leds-gpio leds-gpio: completing resume
matrix-keypad matrix-keypad: completing resume
sharp-scoop sharp-scoop.0: completing resume
pxa2xx-spi pxa2xx-spi.2: completing resume
platform pxa27x-pwm.1: completing resume
platform pxa27x-pwm.0: completing resume
pxa27x-ssp pxa27x-ssp.2: completing resume
pxa27x-ssp pxa27x-ssp.1: completing resume
pxa27x-ssp pxa27x-ssp.0: completing resume
platform pxa-rtc: completing resume
platform sa1100-rtc: completing resume
platform pxa2xx-i2s: completing resume
platform pxa2xx-uart.2: completing resume
platform pxa2xx-uart.1: completing resume
platform pxa2xx-uart.0: completing resume
platform pxa27x-udc: completing resume
PM: Finishing wakeup.
Restarting tasks ... done.
hda: status error: status=0x59 { DriveReady SeekComplete DataRequest Error }
hda: status error: error=0x04 { DriveStatusError }
hda: possibly failed opcode: 0xc5
hda: no DRQ after issuing MULTWRITE
ide0: reset: success
sharpsl-pm sharpsl-pm: Error: AC check failed.
sharpsl-pm sharpsl-pm: Charging Error!
sharpsl-pm sharpsl-pm: Error: AC check failed.
sharpsl-pm sharpsl-pm: Charging Error!


-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

^ permalink raw reply	[flat|nested] 32+ messages in thread

* 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
@ 2009-09-30 20:07 ` Pavel Machek
  0 siblings, 0 replies; 32+ messages in thread
From: Pavel Machek @ 2009-09-30 20:07 UTC (permalink / raw)
  To: rpurdie, lenz, kernel list, Dirk, arminlitzel, Cyril Hrubis,
	thommycheck, linux-a
  Cc: linux-input

Hi!

It complains about unbalanced irq 113 wake disable. That one belongs
to matrix-keypad...
								Pavel

spend
leds spitz:green:hddactivity: legacy class suspend
leds spitz:amber:charge: legacy class suspend
input input1: type suspend
input input0: type suspend
mtd mtd2ro: legacy class suspend
mtd mtd2: legacy class suspend
mtd mtd1ro: legacy class suspend
mtd mtd1: legacy class suspend
mtd mtd0ro: legacy class suspend
mtd mtd0: legacy class suspend
serial8250 serial8250: suspend
backlight corgi_bl: legacy class suspend
sharpsl-pm sharpsl-pm: suspend
pxa2xx-pcmcia pxa2xx-pcmcia: suspend
platform regulatory.0: suspend
i2c i2c-0: legacy suspend
max1111 spi2.2: legacy suspend
corgi-lcd spi2.1: legacy suspend
ads7846 spi2.0: legacy suspend
sharp-scoop sharp-scoop.1: suspend
pxa2xx-i2c pxa2xx-i2c.0: suspend
pxa2xx-fb pxa2xx-fb: suspend
platform pxa2xx-ir: suspend
platform pxa27x-ohci: suspend
pxa2xx-mci pxa2xx-mci.0: suspend
platform physmap-flash: suspend
sharpsl-nand sharpsl-nand: suspend
leds-gpio leds-gpio: suspend
matrix-keypad matrix-keypad: suspend, may wakeup
sharp-scoop sharp-scoop.0: suspend
pxa2xx-spi pxa2xx-spi.2: suspend
platform pxa27x-pwm.1: suspend
platform pxa27x-pwm.0: suspend
pxa27x-ssp pxa27x-ssp.2: suspend
pxa27x-ssp pxa27x-ssp.1: suspend
pxa27x-ssp pxa27x-ssp.0: suspend
platform pxa-rtc: suspend
platform sa1100-rtc: suspend
platform pxa2xx-i2s: suspend
platform pxa2xx-uart.2: suspend
platform pxa2xx-uart.1: suspend
platform pxa2xx-uart.0: suspend
platform pxa27x-udc: suspend
serial8250 serial8250: LATE suspend
sharpsl-pm sharpsl-pm: LATE suspend
pxa2xx-pcmcia pxa2xx-pcmcia: LATE suspend
platform regulatory.0: LATE suspend
sharp-scoop sharp-scoop.1: LATE suspend
pxa2xx-i2c pxa2xx-i2c.0: LATE suspend
pxa2xx-fb pxa2xx-fb: LATE suspend
platform pxa2xx-ir: LATE suspend
platform pxa27x-ohci: LATE suspend
pxa2xx-mci pxa2xx-mci.0: LATE suspend
platform physmap-flash: LATE suspend
sharpsl-nand sharpsl-nand: LATE suspend
leds-gpio leds-gpio: LATE suspend
matrix-keypad matrix-keypad: LATE suspend, may wakeup
sharp-scoop sharp-scoop.0: LATE suspend
pxa2xx-spi pxa2xx-spi.2: LATE suspend
platform pxa27x-pwm.1: LATE suspend
platform pxa27x-pwm.0: LATE suspend
pxa27x-ssp pxa27x-ssp.2: LATE suspend
pxa27x-ssp pxa27x-ssp.1: LATE suspend
pxa27x-ssp pxa27x-ssp.0: LATE suspend
platform pxa-rtc: LATE suspend
platform sa1100-rtc: LATE suspend
platform pxa2xx-i2s: LATE suspend
platform pxa2xx-uart.2: LATE suspend
platform pxa2xx-uart.1: LATE suspend
platform pxa2xx-uart.0: LATE suspend
platform pxa27x-udc: LATE suspend
suspend debug: Waiting for 5 seconds.
platform pxa27x-udc: EARLY resume
platform pxa2xx-uart.0: EARLY resume
platform pxa2xx-uart.1: EARLY resume
platform pxa2xx-uart.2: EARLY resume
platform pxa2xx-i2s: EARLY resume
platform sa1100-rtc: EARLY resume
platform pxa-rtc: EARLY resume
pxa27x-ssp pxa27x-ssp.0: EARLY resume
pxa27x-ssp pxa27x-ssp.1: EARLY resume
pxa27x-ssp pxa27x-ssp.2: EARLY resume
platform pxa27x-pwm.0: EARLY resume
platform pxa27x-pwm.1: EARLY resume
pxa2xx-spi pxa2xx-spi.2: EARLY resume
sharp-scoop sharp-scoop.0: EARLY resume
matrix-keypad matrix-keypad: EARLY resume
leds-gpio leds-gpio: EARLY resume
sharpsl-nand sharpsl-nand: EARLY resume
platform physmap-flash: EARLY resume
pxa2xx-mci pxa2xx-mci.0: EARLY resume
platform pxa27x-ohci: EARLY resume
platform pxa2xx-ir: EARLY resume
pxa2xx-fb pxa2xx-fb: EARLY resume
pxa2xx-i2c pxa2xx-i2c.0: EARLY resume
sharp-scoop sharp-scoop.1: EARLY resume
platform regulatory.0: EARLY resume
pxa2xx-pcmcia pxa2xx-pcmcia: EARLY resume
sharpsl-pm sharpsl-pm: EARLY resume
serial8250 serial8250: EARLY resume
platform pxa27x-udc: resume
platform pxa2xx-uart.0: resume
platform pxa2xx-uart.1: resume
platform pxa2xx-uart.2: resume
platform pxa2xx-i2s: resume
platform sa1100-rtc: resume
platform pxa-rtc: resume
pxa27x-ssp pxa27x-ssp.0: resume
pxa27x-ssp pxa27x-ssp.1: resume
pxa27x-ssp pxa27x-ssp.2: resume
platform pxa27x-pwm.0: resume
platform pxa27x-pwm.1: resume
pxa2xx-spi pxa2xx-spi.2: resume
sharp-scoop sharp-scoop.0: resume
matrix-keypad matrix-keypad: resume
------------[ cut here ]------------
WARNING: at kernel/irq/manage.c:361 set_irq_wake+0x7c/0x138()
Unbalanced IRQ 113 wake disable
Modules linked in:
[<c00248f8>] (unwind_backtrace+0x0/0xe4) from [<c003520c>] (warn_slowpath_common+0x4c/0x80)
[<c003520c>] (warn_slowpath_common+0x4c/0x80) from [<c003527c>] (warn_slowpath_fmt+0x28/0x38)
[<c003527c>] (warn_slowpath_fmt+0x28/0x38) from [<c0060b88>] (set_irq_wake+0x7c/0x138)
[<c0060b88>] (set_irq_wake+0x7c/0x138) from [<c01d0484>] (matrix_keypad_resume+0x6c/0x8c)
[<c01d0484>] (matrix_keypad_resume+0x6c/0x8c) from [<c0190d3c>] (platform_pm_resume+0x30/0x54)
[<c0190d3c>] (platform_pm_resume+0x30/0x54) from [<c019302c>] (pm_op+0x6c/0x8c)
[<c019302c>] (pm_op+0x6c/0x8c) from [<c0193af4>] (dpm_resume_end+0xf0/0x47c)
[<c0193af4>] (dpm_resume_end+0xf0/0x47c) from [<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc)
[<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc) from [<c005dbb8>] (enter_state+0xe8/0x120)
[<c005dbb8>] (enter_state+0xe8/0x120) from [<c005d2bc>] (state_store+0x90/0xc4)
[<c005d2bc>] (state_store+0x90/0xc4) from [<c01459bc>] (kobj_attr_store+0x1c/0x24)
[<c01459bc>] (kobj_attr_store+0x1c/0x24) from [<c00d80d8>] (sysfs_write_file+0x104/0x18c)
[<c00d80d8>] (sysfs_write_file+0x104/0x18c) from [<c008ffe8>] (vfs_write+0xb0/0x164)
[<c008ffe8>] (vfs_write+0xb0/0x164) from [<c009016c>] (sys_write+0x40/0x70)
[<c009016c>] (sys_write+0x40/0x70) from [<c001fec0>] (ret_fast_syscall+0x0/0x28)
---[ end trace e1f70a99626339f7 ]---
------------[ cut here ]------------
WARNING: at kernel/irq/manage.c:361 set_irq_wake+0x7c/0x138()
Unbalanced IRQ 187 wake disable
Modules linked in:
[<c00248f8>] (unwind_backtrace+0x0/0xe4) from [<c003520c>] (warn_slowpath_common+0x4c/0x80)
[<c003520c>] (warn_slowpath_common+0x4c/0x80) from [<c003527c>] (warn_slowpath_fmt+0x28/0x38)
[<c003527c>] (warn_slowpath_fmt+0x28/0x38) from [<c0060b88>] (set_irq_wake+0x7c/0x138)
[<c0060b88>] (set_irq_wake+0x7c/0x138) from [<c01d0484>] (matrix_keypad_resume+0x6c/0x8c)
[<c01d0484>] (matrix_keypad_resume+0x6c/0x8c) from [<c0190d3c>] (platform_pm_resume+0x30/0x54)
[<c0190d3c>] (platform_pm_resume+0x30/0x54) from [<c019302c>] (pm_op+0x6c/0x8c)
[<c019302c>] (pm_op+0x6c/0x8c) from [<c0193af4>] (dpm_resume_end+0xf0/0x47c)
[<c0193af4>] (dpm_resume_end+0xf0/0x47c) from [<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc)
[<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc) from [<c005dbb8>] (enter_state+0xe8/0x120)
[<c005dbb8>] (enter_state+0xe8/0x120) from [<c005d2bc>] (state_store+0x90/0xc4)
[<c005d2bc>] (state_store+0x90/0xc4) from [<c01459bc>] (kobj_attr_store+0x1c/0x24)
[<c01459bc>] (kobj_attr_store+0x1c/0x24) from [<c00d80d8>] (sysfs_write_file+0x104/0x18c)
[<c00d80d8>] (sysfs_write_file+0x104/0x18c) from [<c008ffe8>] (vfs_write+0xb0/0x164)
[<c008ffe8>] (vfs_write+0xb0/0x164) from [<c009016c>] (sys_write+0x40/0x70)
[<c009016c>] (sys_write+0x40/0x70) from [<c001fec0>] (ret_fast_syscall+0x0/0x28)
---[ end trace e1f70a99626339f8 ]---
------------[ cut here ]------------
WARNING: at kernel/irq/manage.c:361 set_irq_wake+0x7c/0x138()
Unbalanced IRQ 130 wake disable
Modules linked in:
[<c00248f8>] (unwind_backtrace+0x0/0xe4) from [<c003520c>] (warn_slowpath_common+0x4c/0x80)
[<c003520c>] (warn_slowpath_common+0x4c/0x80) from [<c003527c>] (warn_slowpath_fmt+0x28/0x38)
[<c003527c>] (warn_slowpath_fmt+0x28/0x38) from [<c0060b88>] (set_irq_wake+0x7c/0x138)
[<c0060b88>] (set_irq_wake+0x7c/0x138) from [<c01d0484>] (matrix_keypad_resume+0x6c/0x8c)
[<c01d0484>] (matrix_keypad_resume+0x6c/0x8c) from [<c0190d3c>] (platform_pm_resume+0x30/0x54)
[<c0190d3c>] (platform_pm_resume+0x30/0x54) from [<c019302c>] (pm_op+0x6c/0x8c)
[<c019302c>] (pm_op+0x6c/0x8c) from [<c0193af4>] (dpm_resume_end+0xf0/0x47c)
[<c0193af4>] (dpm_resume_end+0xf0/0x47c) from [<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc)
[<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc) from [<c005dbb8>] (enter_state+0xe8/0x120)
[<c005dbb8>] (enter_state+0xe8/0x120) from [<c005d2bc>] (state_store+0x90/0xc4)
[<c005d2bc>] (state_store+0x90/0xc4) from [<c01459bc>] (kobj_attr_store+0x1c/0x24)
[<c01459bc>] (kobj_attr_store+0x1c/0x24) from [<c00d80d8>] (sysfs_write_file+0x104/0x18c)
[<c00d80d8>] (sysfs_write_file+0x104/0x18c) from [<c008ffe8>] (vfs_write+0xb0/0x164)
[<c008ffe8>] (vfs_write+0xb0/0x164) from [<c009016c>] (sys_write+0x40/0x70)
[<c009016c>] (sys_write+0x40/0x70) from [<c001fec0>] (ret_fast_syscall+0x0/0x28)
---[ end trace e1f70a99626339f9 ]---
------------[ cut here ]------------
WARNING: at kernel/irq/manage.c:361 set_irq_wake+0x7c/0x138()
Unbalanced IRQ 132 wake disable
Modules linked in:
[<c00248f8>] (unwind_backtrace+0x0/0xe4) from [<c003520c>] (warn_slowpath_common+0x4c/0x80)
[<c003520c>] (warn_slowpath_common+0x4c/0x80) from [<c003527c>] (warn_slowpath_fmt+0x28/0x38)
[<c003527c>] (warn_slowpath_fmt+0x28/0x38) from [<c0060b88>] (set_irq_wake+0x7c/0x138)
[<c0060b88>] (set_irq_wake+0x7c/0x138) from [<c01d0484>] (matrix_keypad_resume+0x6c/0x8c)
[<c01d0484>] (matrix_keypad_resume+0x6c/0x8c) from [<c0190d3c>] (platform_pm_resume+0x30/0x54)
[<c0190d3c>] (platform_pm_resume+0x30/0x54) from [<c019302c>] (pm_op+0x6c/0x8c)
[<c019302c>] (pm_op+0x6c/0x8c) from [<c0193af4>] (dpm_resume_end+0xf0/0x47c)
[<c0193af4>] (dpm_resume_end+0xf0/0x47c) from [<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc)
[<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc) from [<c005dbb8>] (enter_state+0xe8/0x120)
[<c005dbb8>] (enter_state+0xe8/0x120) from [<c005d2bc>] (state_store+0x90/0xc4)
[<c005d2bc>] (state_store+0x90/0xc4) from [<c01459bc>] (kobj_attr_store+0x1c/0x24)
[<c01459bc>] (kobj_attr_store+0x1c/0x24) from [<c00d80d8>] (sysfs_write_file+0x104/0x18c)
[<c00d80d8>] (sysfs_write_file+0x104/0x18c) from [<c008ffe8>] (vfs_write+0xb0/0x164)
[<c008ffe8>] (vfs_write+0xb0/0x164) from [<c009016c>] (sys_write+0x40/0x70)
[<c009016c>] (sys_write+0x40/0x70) from [<c001fec0>] (ret_fast_syscall+0x0/0x28)
---[ end trace e1f70a99626339fa ]---
------------[ cut here ]------------
WARNING: at kernel/irq/manage.c:361 set_irq_wake+0x7c/0x138()
Unbalanced IRQ 134 wake disable
Modules linked in:
[<c00248f8>] (unwind_backtrace+0x0/0xe4) from [<c003520c>] (warn_slowpath_common+0x4c/0x80)
[<c003520c>] (warn_slowpath_common+0x4c/0x80) from [<c003527c>] (warn_slowpath_fmt+0x28/0x38)
[<c003527c>] (warn_slowpath_fmt+0x28/0x38) from [<c0060b88>] (set_irq_wake+0x7c/0x138)
[<c0060b88>] (set_irq_wake+0x7c/0x138) from [<c01d0484>] (matrix_keypad_resume+0x6c/0x8c)
[<c01d0484>] (matrix_keypad_resume+0x6c/0x8c) from [<c0190d3c>] (platform_pm_resume+0x30/0x54)
[<c0190d3c>] (platform_pm_resume+0x30/0x54) from [<c019302c>] (pm_op+0x6c/0x8c)
[<c019302c>] (pm_op+0x6c/0x8c) from [<c0193af4>] (dpm_resume_end+0xf0/0x47c)
[<c0193af4>] (dpm_resume_end+0xf0/0x47c) from [<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc)
[<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc) from [<c005dbb8>] (enter_state+0xe8/0x120)
[<c005dbb8>] (enter_state+0xe8/0x120) from [<c005d2bc>] (state_store+0x90/0xc4)
[<c005d2bc>] (state_store+0x90/0xc4) from [<c01459bc>] (kobj_attr_store+0x1c/0x24)
[<c01459bc>] (kobj_attr_store+0x1c/0x24) from [<c00d80d8>] (sysfs_write_file+0x104/0x18c)
[<c00d80d8>] (sysfs_write_file+0x104/0x18c) from [<c008ffe8>] (vfs_write+0xb0/0x164)
[<c008ffe8>] (vfs_write+0xb0/0x164) from [<c009016c>] (sys_write+0x40/0x70)
[<c009016c>] (sys_write+0x40/0x70) from [<c001fec0>] (ret_fast_syscall+0x0/0x28)
---[ end trace e1f70a99626339fb ]---
------------[ cut here ]------------
WARNING: at kernel/irq/manage.c:361 set_irq_wake+0x7c/0x138()
Unbalanced IRQ 135 wake disable
Modules linked in:
[<c00248f8>] (unwind_backtrace+0x0/0xe4) from [<c003520c>] (warn_slowpath_common+0x4c/0x80)
[<c003520c>] (warn_slowpath_common+0x4c/0x80) from [<c003527c>] (warn_slowpath_fmt+0x28/0x38)
[<c003527c>] (warn_slowpath_fmt+0x28/0x38) from [<c0060b88>] (set_irq_wake+0x7c/0x138)
[<c0060b88>] (set_irq_wake+0x7c/0x138) from [<c01d0484>] (matrix_keypad_resume+0x6c/0x8c)
[<c01d0484>] (matrix_keypad_resume+0x6c/0x8c) from [<c0190d3c>] (platform_pm_resume+0x30/0x54)
[<c0190d3c>] (platform_pm_resume+0x30/0x54) from [<c019302c>] (pm_op+0x6c/0x8c)
[<c019302c>] (pm_op+0x6c/0x8c) from [<c0193af4>] (dpm_resume_end+0xf0/0x47c)
[<c0193af4>] (dpm_resume_end+0xf0/0x47c) from [<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc)
[<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc) from [<c005dbb8>] (enter_state+0xe8/0x120)
[<c005dbb8>] (enter_state+0xe8/0x120) from [<c005d2bc>] (state_store+0x90/0xc4)
[<c005d2bc>] (state_store+0x90/0xc4) from [<c01459bc>] (kobj_attr_store+0x1c/0x24)
[<c01459bc>] (kobj_attr_store+0x1c/0x24) from [<c00d80d8>] (sysfs_write_file+0x104/0x18c)
[<c00d80d8>] (sysfs_write_file+0x104/0x18c) from [<c008ffe8>] (vfs_write+0xb0/0x164)
[<c008ffe8>] (vfs_write+0xb0/0x164) from [<c009016c>] (sys_write+0x40/0x70)
[<c009016c>] (sys_write+0x40/0x70) from [<c001fec0>] (ret_fast_syscall+0x0/0x28)
---[ end trace e1f70a99626339fc ]---
leds-gpio leds-gpio: resume
sharpsl-nand sharpsl-nand: resume
platform physmap-flash: resume
pxa2xx-mci pxa2xx-mci.0: resume
platform pxa27x-ohci: resume
platform pxa2xx-ir: resume
pxa2xx-fb pxa2xx-fb: resume
pxa2xx-i2c pxa2xx-i2c.0: resume
sharp-scoop sharp-scoop.1: resume
ads7846 spi2.0: legacy resume
corgi-lcd spi2.1: legacy resume
max1111 spi2.2: legacy resume
i2c i2c-0: legacy resume
platform regulatory.0: resume
pxa2xx-pcmcia pxa2xx-pcmcia: resume
sharpsl-pm sharpsl-pm: resume
backlight corgi_bl: legacy class resume
serial8250 serial8250: resume
mtd mtd0: legacy class resume
mtd mtd0ro: legacy class resume
mtd mtd1: legacy class resume
mtd mtd1ro: legacy class resume
mtd mtd2: legacy class resume
mtd mtd2ro: legacy class resume
input input0: type resume
input input1: type resume
leds spitz:amber:charge: legacy class resume
leds spitz:green:hddactivity: legacy class resume
ide-cs 1.0: legacy resume
ide-gd 0.0: legacy resume
serial8250 serial8250: completing resume
sharpsl-pm sharpsl-pm: completing resume
pxa2xx-pcmcia pxa2xx-pcmcia: completing resume
platform regulatory.0: completing resume
sharp-scoop sharp-scoop.1: completing resume
pxa2xx-i2c pxa2xx-i2c.0: completing resume
pxa2xx-fb pxa2xx-fb: completing resume
platform pxa2xx-ir: completing resume
platform pxa27x-ohci: completing resume
pxa2xx-mci pxa2xx-mci.0: completing resume
platform physmap-flash: completing resume
sharpsl-nand sharpsl-nand: completing resume
leds-gpio leds-gpio: completing resume
matrix-keypad matrix-keypad: completing resume
sharp-scoop sharp-scoop.0: completing resume
pxa2xx-spi pxa2xx-spi.2: completing resume
platform pxa27x-pwm.1: completing resume
platform pxa27x-pwm.0: completing resume
pxa27x-ssp pxa27x-ssp.2: completing resume
pxa27x-ssp pxa27x-ssp.1: completing resume
pxa27x-ssp pxa27x-ssp.0: completing resume
platform pxa-rtc: completing resume
platform sa1100-rtc: completing resume
platform pxa2xx-i2s: completing resume
platform pxa2xx-uart.2: completing resume
platform pxa2xx-uart.1: completing resume
platform pxa2xx-uart.0: completing resume
platform pxa27x-udc: completing resume
PM: Finishing wakeup.
Restarting tasks ... done.
hda: status error: status=0x59 { DriveReady SeekComplete DataRequest Error }
hda: status error: error=0x04 { DriveStatusError }
hda: possibly failed opcode: 0xc5
hda: no DRQ after issuing MULTWRITE
ide0: reset: success
sharpsl-pm sharpsl-pm: Error: AC check failed.
sharpsl-pm sharpsl-pm: Charging Error!
sharpsl-pm sharpsl-pm: Error: AC check failed.
sharpsl-pm sharpsl-pm: Charging Error!


-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

^ permalink raw reply	[flat|nested] 32+ messages in thread

* 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
@ 2009-09-30 20:07 ` Pavel Machek
  0 siblings, 0 replies; 32+ messages in thread
From: Pavel Machek @ 2009-09-30 20:07 UTC (permalink / raw)
  To: linux-arm-kernel

Hi!

It complains about unbalanced irq 113 wake disable. That one belongs
to matrix-keypad...
								Pavel

spend
leds spitz:green:hddactivity: legacy class suspend
leds spitz:amber:charge: legacy class suspend
input input1: type suspend
input input0: type suspend
mtd mtd2ro: legacy class suspend
mtd mtd2: legacy class suspend
mtd mtd1ro: legacy class suspend
mtd mtd1: legacy class suspend
mtd mtd0ro: legacy class suspend
mtd mtd0: legacy class suspend
serial8250 serial8250: suspend
backlight corgi_bl: legacy class suspend
sharpsl-pm sharpsl-pm: suspend
pxa2xx-pcmcia pxa2xx-pcmcia: suspend
platform regulatory.0: suspend
i2c i2c-0: legacy suspend
max1111 spi2.2: legacy suspend
corgi-lcd spi2.1: legacy suspend
ads7846 spi2.0: legacy suspend
sharp-scoop sharp-scoop.1: suspend
pxa2xx-i2c pxa2xx-i2c.0: suspend
pxa2xx-fb pxa2xx-fb: suspend
platform pxa2xx-ir: suspend
platform pxa27x-ohci: suspend
pxa2xx-mci pxa2xx-mci.0: suspend
platform physmap-flash: suspend
sharpsl-nand sharpsl-nand: suspend
leds-gpio leds-gpio: suspend
matrix-keypad matrix-keypad: suspend, may wakeup
sharp-scoop sharp-scoop.0: suspend
pxa2xx-spi pxa2xx-spi.2: suspend
platform pxa27x-pwm.1: suspend
platform pxa27x-pwm.0: suspend
pxa27x-ssp pxa27x-ssp.2: suspend
pxa27x-ssp pxa27x-ssp.1: suspend
pxa27x-ssp pxa27x-ssp.0: suspend
platform pxa-rtc: suspend
platform sa1100-rtc: suspend
platform pxa2xx-i2s: suspend
platform pxa2xx-uart.2: suspend
platform pxa2xx-uart.1: suspend
platform pxa2xx-uart.0: suspend
platform pxa27x-udc: suspend
serial8250 serial8250: LATE suspend
sharpsl-pm sharpsl-pm: LATE suspend
pxa2xx-pcmcia pxa2xx-pcmcia: LATE suspend
platform regulatory.0: LATE suspend
sharp-scoop sharp-scoop.1: LATE suspend
pxa2xx-i2c pxa2xx-i2c.0: LATE suspend
pxa2xx-fb pxa2xx-fb: LATE suspend
platform pxa2xx-ir: LATE suspend
platform pxa27x-ohci: LATE suspend
pxa2xx-mci pxa2xx-mci.0: LATE suspend
platform physmap-flash: LATE suspend
sharpsl-nand sharpsl-nand: LATE suspend
leds-gpio leds-gpio: LATE suspend
matrix-keypad matrix-keypad: LATE suspend, may wakeup
sharp-scoop sharp-scoop.0: LATE suspend
pxa2xx-spi pxa2xx-spi.2: LATE suspend
platform pxa27x-pwm.1: LATE suspend
platform pxa27x-pwm.0: LATE suspend
pxa27x-ssp pxa27x-ssp.2: LATE suspend
pxa27x-ssp pxa27x-ssp.1: LATE suspend
pxa27x-ssp pxa27x-ssp.0: LATE suspend
platform pxa-rtc: LATE suspend
platform sa1100-rtc: LATE suspend
platform pxa2xx-i2s: LATE suspend
platform pxa2xx-uart.2: LATE suspend
platform pxa2xx-uart.1: LATE suspend
platform pxa2xx-uart.0: LATE suspend
platform pxa27x-udc: LATE suspend
suspend debug: Waiting for 5 seconds.
platform pxa27x-udc: EARLY resume
platform pxa2xx-uart.0: EARLY resume
platform pxa2xx-uart.1: EARLY resume
platform pxa2xx-uart.2: EARLY resume
platform pxa2xx-i2s: EARLY resume
platform sa1100-rtc: EARLY resume
platform pxa-rtc: EARLY resume
pxa27x-ssp pxa27x-ssp.0: EARLY resume
pxa27x-ssp pxa27x-ssp.1: EARLY resume
pxa27x-ssp pxa27x-ssp.2: EARLY resume
platform pxa27x-pwm.0: EARLY resume
platform pxa27x-pwm.1: EARLY resume
pxa2xx-spi pxa2xx-spi.2: EARLY resume
sharp-scoop sharp-scoop.0: EARLY resume
matrix-keypad matrix-keypad: EARLY resume
leds-gpio leds-gpio: EARLY resume
sharpsl-nand sharpsl-nand: EARLY resume
platform physmap-flash: EARLY resume
pxa2xx-mci pxa2xx-mci.0: EARLY resume
platform pxa27x-ohci: EARLY resume
platform pxa2xx-ir: EARLY resume
pxa2xx-fb pxa2xx-fb: EARLY resume
pxa2xx-i2c pxa2xx-i2c.0: EARLY resume
sharp-scoop sharp-scoop.1: EARLY resume
platform regulatory.0: EARLY resume
pxa2xx-pcmcia pxa2xx-pcmcia: EARLY resume
sharpsl-pm sharpsl-pm: EARLY resume
serial8250 serial8250: EARLY resume
platform pxa27x-udc: resume
platform pxa2xx-uart.0: resume
platform pxa2xx-uart.1: resume
platform pxa2xx-uart.2: resume
platform pxa2xx-i2s: resume
platform sa1100-rtc: resume
platform pxa-rtc: resume
pxa27x-ssp pxa27x-ssp.0: resume
pxa27x-ssp pxa27x-ssp.1: resume
pxa27x-ssp pxa27x-ssp.2: resume
platform pxa27x-pwm.0: resume
platform pxa27x-pwm.1: resume
pxa2xx-spi pxa2xx-spi.2: resume
sharp-scoop sharp-scoop.0: resume
matrix-keypad matrix-keypad: resume
------------[ cut here ]------------
WARNING: at kernel/irq/manage.c:361 set_irq_wake+0x7c/0x138()
Unbalanced IRQ 113 wake disable
Modules linked in:
[<c00248f8>] (unwind_backtrace+0x0/0xe4) from [<c003520c>] (warn_slowpath_common+0x4c/0x80)
[<c003520c>] (warn_slowpath_common+0x4c/0x80) from [<c003527c>] (warn_slowpath_fmt+0x28/0x38)
[<c003527c>] (warn_slowpath_fmt+0x28/0x38) from [<c0060b88>] (set_irq_wake+0x7c/0x138)
[<c0060b88>] (set_irq_wake+0x7c/0x138) from [<c01d0484>] (matrix_keypad_resume+0x6c/0x8c)
[<c01d0484>] (matrix_keypad_resume+0x6c/0x8c) from [<c0190d3c>] (platform_pm_resume+0x30/0x54)
[<c0190d3c>] (platform_pm_resume+0x30/0x54) from [<c019302c>] (pm_op+0x6c/0x8c)
[<c019302c>] (pm_op+0x6c/0x8c) from [<c0193af4>] (dpm_resume_end+0xf0/0x47c)
[<c0193af4>] (dpm_resume_end+0xf0/0x47c) from [<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc)
[<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc) from [<c005dbb8>] (enter_state+0xe8/0x120)
[<c005dbb8>] (enter_state+0xe8/0x120) from [<c005d2bc>] (state_store+0x90/0xc4)
[<c005d2bc>] (state_store+0x90/0xc4) from [<c01459bc>] (kobj_attr_store+0x1c/0x24)
[<c01459bc>] (kobj_attr_store+0x1c/0x24) from [<c00d80d8>] (sysfs_write_file+0x104/0x18c)
[<c00d80d8>] (sysfs_write_file+0x104/0x18c) from [<c008ffe8>] (vfs_write+0xb0/0x164)
[<c008ffe8>] (vfs_write+0xb0/0x164) from [<c009016c>] (sys_write+0x40/0x70)
[<c009016c>] (sys_write+0x40/0x70) from [<c001fec0>] (ret_fast_syscall+0x0/0x28)
---[ end trace e1f70a99626339f7 ]---
------------[ cut here ]------------
WARNING: at kernel/irq/manage.c:361 set_irq_wake+0x7c/0x138()
Unbalanced IRQ 187 wake disable
Modules linked in:
[<c00248f8>] (unwind_backtrace+0x0/0xe4) from [<c003520c>] (warn_slowpath_common+0x4c/0x80)
[<c003520c>] (warn_slowpath_common+0x4c/0x80) from [<c003527c>] (warn_slowpath_fmt+0x28/0x38)
[<c003527c>] (warn_slowpath_fmt+0x28/0x38) from [<c0060b88>] (set_irq_wake+0x7c/0x138)
[<c0060b88>] (set_irq_wake+0x7c/0x138) from [<c01d0484>] (matrix_keypad_resume+0x6c/0x8c)
[<c01d0484>] (matrix_keypad_resume+0x6c/0x8c) from [<c0190d3c>] (platform_pm_resume+0x30/0x54)
[<c0190d3c>] (platform_pm_resume+0x30/0x54) from [<c019302c>] (pm_op+0x6c/0x8c)
[<c019302c>] (pm_op+0x6c/0x8c) from [<c0193af4>] (dpm_resume_end+0xf0/0x47c)
[<c0193af4>] (dpm_resume_end+0xf0/0x47c) from [<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc)
[<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc) from [<c005dbb8>] (enter_state+0xe8/0x120)
[<c005dbb8>] (enter_state+0xe8/0x120) from [<c005d2bc>] (state_store+0x90/0xc4)
[<c005d2bc>] (state_store+0x90/0xc4) from [<c01459bc>] (kobj_attr_store+0x1c/0x24)
[<c01459bc>] (kobj_attr_store+0x1c/0x24) from [<c00d80d8>] (sysfs_write_file+0x104/0x18c)
[<c00d80d8>] (sysfs_write_file+0x104/0x18c) from [<c008ffe8>] (vfs_write+0xb0/0x164)
[<c008ffe8>] (vfs_write+0xb0/0x164) from [<c009016c>] (sys_write+0x40/0x70)
[<c009016c>] (sys_write+0x40/0x70) from [<c001fec0>] (ret_fast_syscall+0x0/0x28)
---[ end trace e1f70a99626339f8 ]---
------------[ cut here ]------------
WARNING: at kernel/irq/manage.c:361 set_irq_wake+0x7c/0x138()
Unbalanced IRQ 130 wake disable
Modules linked in:
[<c00248f8>] (unwind_backtrace+0x0/0xe4) from [<c003520c>] (warn_slowpath_common+0x4c/0x80)
[<c003520c>] (warn_slowpath_common+0x4c/0x80) from [<c003527c>] (warn_slowpath_fmt+0x28/0x38)
[<c003527c>] (warn_slowpath_fmt+0x28/0x38) from [<c0060b88>] (set_irq_wake+0x7c/0x138)
[<c0060b88>] (set_irq_wake+0x7c/0x138) from [<c01d0484>] (matrix_keypad_resume+0x6c/0x8c)
[<c01d0484>] (matrix_keypad_resume+0x6c/0x8c) from [<c0190d3c>] (platform_pm_resume+0x30/0x54)
[<c0190d3c>] (platform_pm_resume+0x30/0x54) from [<c019302c>] (pm_op+0x6c/0x8c)
[<c019302c>] (pm_op+0x6c/0x8c) from [<c0193af4>] (dpm_resume_end+0xf0/0x47c)
[<c0193af4>] (dpm_resume_end+0xf0/0x47c) from [<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc)
[<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc) from [<c005dbb8>] (enter_state+0xe8/0x120)
[<c005dbb8>] (enter_state+0xe8/0x120) from [<c005d2bc>] (state_store+0x90/0xc4)
[<c005d2bc>] (state_store+0x90/0xc4) from [<c01459bc>] (kobj_attr_store+0x1c/0x24)
[<c01459bc>] (kobj_attr_store+0x1c/0x24) from [<c00d80d8>] (sysfs_write_file+0x104/0x18c)
[<c00d80d8>] (sysfs_write_file+0x104/0x18c) from [<c008ffe8>] (vfs_write+0xb0/0x164)
[<c008ffe8>] (vfs_write+0xb0/0x164) from [<c009016c>] (sys_write+0x40/0x70)
[<c009016c>] (sys_write+0x40/0x70) from [<c001fec0>] (ret_fast_syscall+0x0/0x28)
---[ end trace e1f70a99626339f9 ]---
------------[ cut here ]------------
WARNING: at kernel/irq/manage.c:361 set_irq_wake+0x7c/0x138()
Unbalanced IRQ 132 wake disable
Modules linked in:
[<c00248f8>] (unwind_backtrace+0x0/0xe4) from [<c003520c>] (warn_slowpath_common+0x4c/0x80)
[<c003520c>] (warn_slowpath_common+0x4c/0x80) from [<c003527c>] (warn_slowpath_fmt+0x28/0x38)
[<c003527c>] (warn_slowpath_fmt+0x28/0x38) from [<c0060b88>] (set_irq_wake+0x7c/0x138)
[<c0060b88>] (set_irq_wake+0x7c/0x138) from [<c01d0484>] (matrix_keypad_resume+0x6c/0x8c)
[<c01d0484>] (matrix_keypad_resume+0x6c/0x8c) from [<c0190d3c>] (platform_pm_resume+0x30/0x54)
[<c0190d3c>] (platform_pm_resume+0x30/0x54) from [<c019302c>] (pm_op+0x6c/0x8c)
[<c019302c>] (pm_op+0x6c/0x8c) from [<c0193af4>] (dpm_resume_end+0xf0/0x47c)
[<c0193af4>] (dpm_resume_end+0xf0/0x47c) from [<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc)
[<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc) from [<c005dbb8>] (enter_state+0xe8/0x120)
[<c005dbb8>] (enter_state+0xe8/0x120) from [<c005d2bc>] (state_store+0x90/0xc4)
[<c005d2bc>] (state_store+0x90/0xc4) from [<c01459bc>] (kobj_attr_store+0x1c/0x24)
[<c01459bc>] (kobj_attr_store+0x1c/0x24) from [<c00d80d8>] (sysfs_write_file+0x104/0x18c)
[<c00d80d8>] (sysfs_write_file+0x104/0x18c) from [<c008ffe8>] (vfs_write+0xb0/0x164)
[<c008ffe8>] (vfs_write+0xb0/0x164) from [<c009016c>] (sys_write+0x40/0x70)
[<c009016c>] (sys_write+0x40/0x70) from [<c001fec0>] (ret_fast_syscall+0x0/0x28)
---[ end trace e1f70a99626339fa ]---
------------[ cut here ]------------
WARNING: at kernel/irq/manage.c:361 set_irq_wake+0x7c/0x138()
Unbalanced IRQ 134 wake disable
Modules linked in:
[<c00248f8>] (unwind_backtrace+0x0/0xe4) from [<c003520c>] (warn_slowpath_common+0x4c/0x80)
[<c003520c>] (warn_slowpath_common+0x4c/0x80) from [<c003527c>] (warn_slowpath_fmt+0x28/0x38)
[<c003527c>] (warn_slowpath_fmt+0x28/0x38) from [<c0060b88>] (set_irq_wake+0x7c/0x138)
[<c0060b88>] (set_irq_wake+0x7c/0x138) from [<c01d0484>] (matrix_keypad_resume+0x6c/0x8c)
[<c01d0484>] (matrix_keypad_resume+0x6c/0x8c) from [<c0190d3c>] (platform_pm_resume+0x30/0x54)
[<c0190d3c>] (platform_pm_resume+0x30/0x54) from [<c019302c>] (pm_op+0x6c/0x8c)
[<c019302c>] (pm_op+0x6c/0x8c) from [<c0193af4>] (dpm_resume_end+0xf0/0x47c)
[<c0193af4>] (dpm_resume_end+0xf0/0x47c) from [<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc)
[<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc) from [<c005dbb8>] (enter_state+0xe8/0x120)
[<c005dbb8>] (enter_state+0xe8/0x120) from [<c005d2bc>] (state_store+0x90/0xc4)
[<c005d2bc>] (state_store+0x90/0xc4) from [<c01459bc>] (kobj_attr_store+0x1c/0x24)
[<c01459bc>] (kobj_attr_store+0x1c/0x24) from [<c00d80d8>] (sysfs_write_file+0x104/0x18c)
[<c00d80d8>] (sysfs_write_file+0x104/0x18c) from [<c008ffe8>] (vfs_write+0xb0/0x164)
[<c008ffe8>] (vfs_write+0xb0/0x164) from [<c009016c>] (sys_write+0x40/0x70)
[<c009016c>] (sys_write+0x40/0x70) from [<c001fec0>] (ret_fast_syscall+0x0/0x28)
---[ end trace e1f70a99626339fb ]---
------------[ cut here ]------------
WARNING: at kernel/irq/manage.c:361 set_irq_wake+0x7c/0x138()
Unbalanced IRQ 135 wake disable
Modules linked in:
[<c00248f8>] (unwind_backtrace+0x0/0xe4) from [<c003520c>] (warn_slowpath_common+0x4c/0x80)
[<c003520c>] (warn_slowpath_common+0x4c/0x80) from [<c003527c>] (warn_slowpath_fmt+0x28/0x38)
[<c003527c>] (warn_slowpath_fmt+0x28/0x38) from [<c0060b88>] (set_irq_wake+0x7c/0x138)
[<c0060b88>] (set_irq_wake+0x7c/0x138) from [<c01d0484>] (matrix_keypad_resume+0x6c/0x8c)
[<c01d0484>] (matrix_keypad_resume+0x6c/0x8c) from [<c0190d3c>] (platform_pm_resume+0x30/0x54)
[<c0190d3c>] (platform_pm_resume+0x30/0x54) from [<c019302c>] (pm_op+0x6c/0x8c)
[<c019302c>] (pm_op+0x6c/0x8c) from [<c0193af4>] (dpm_resume_end+0xf0/0x47c)
[<c0193af4>] (dpm_resume_end+0xf0/0x47c) from [<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc)
[<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc) from [<c005dbb8>] (enter_state+0xe8/0x120)
[<c005dbb8>] (enter_state+0xe8/0x120) from [<c005d2bc>] (state_store+0x90/0xc4)
[<c005d2bc>] (state_store+0x90/0xc4) from [<c01459bc>] (kobj_attr_store+0x1c/0x24)
[<c01459bc>] (kobj_attr_store+0x1c/0x24) from [<c00d80d8>] (sysfs_write_file+0x104/0x18c)
[<c00d80d8>] (sysfs_write_file+0x104/0x18c) from [<c008ffe8>] (vfs_write+0xb0/0x164)
[<c008ffe8>] (vfs_write+0xb0/0x164) from [<c009016c>] (sys_write+0x40/0x70)
[<c009016c>] (sys_write+0x40/0x70) from [<c001fec0>] (ret_fast_syscall+0x0/0x28)
---[ end trace e1f70a99626339fc ]---
leds-gpio leds-gpio: resume
sharpsl-nand sharpsl-nand: resume
platform physmap-flash: resume
pxa2xx-mci pxa2xx-mci.0: resume
platform pxa27x-ohci: resume
platform pxa2xx-ir: resume
pxa2xx-fb pxa2xx-fb: resume
pxa2xx-i2c pxa2xx-i2c.0: resume
sharp-scoop sharp-scoop.1: resume
ads7846 spi2.0: legacy resume
corgi-lcd spi2.1: legacy resume
max1111 spi2.2: legacy resume
i2c i2c-0: legacy resume
platform regulatory.0: resume
pxa2xx-pcmcia pxa2xx-pcmcia: resume
sharpsl-pm sharpsl-pm: resume
backlight corgi_bl: legacy class resume
serial8250 serial8250: resume
mtd mtd0: legacy class resume
mtd mtd0ro: legacy class resume
mtd mtd1: legacy class resume
mtd mtd1ro: legacy class resume
mtd mtd2: legacy class resume
mtd mtd2ro: legacy class resume
input input0: type resume
input input1: type resume
leds spitz:amber:charge: legacy class resume
leds spitz:green:hddactivity: legacy class resume
ide-cs 1.0: legacy resume
ide-gd 0.0: legacy resume
serial8250 serial8250: completing resume
sharpsl-pm sharpsl-pm: completing resume
pxa2xx-pcmcia pxa2xx-pcmcia: completing resume
platform regulatory.0: completing resume
sharp-scoop sharp-scoop.1: completing resume
pxa2xx-i2c pxa2xx-i2c.0: completing resume
pxa2xx-fb pxa2xx-fb: completing resume
platform pxa2xx-ir: completing resume
platform pxa27x-ohci: completing resume
pxa2xx-mci pxa2xx-mci.0: completing resume
platform physmap-flash: completing resume
sharpsl-nand sharpsl-nand: completing resume
leds-gpio leds-gpio: completing resume
matrix-keypad matrix-keypad: completing resume
sharp-scoop sharp-scoop.0: completing resume
pxa2xx-spi pxa2xx-spi.2: completing resume
platform pxa27x-pwm.1: completing resume
platform pxa27x-pwm.0: completing resume
pxa27x-ssp pxa27x-ssp.2: completing resume
pxa27x-ssp pxa27x-ssp.1: completing resume
pxa27x-ssp pxa27x-ssp.0: completing resume
platform pxa-rtc: completing resume
platform sa1100-rtc: completing resume
platform pxa2xx-i2s: completing resume
platform pxa2xx-uart.2: completing resume
platform pxa2xx-uart.1: completing resume
platform pxa2xx-uart.0: completing resume
platform pxa27x-udc: completing resume
PM: Finishing wakeup.
Restarting tasks ... done.
hda: status error: status=0x59 { DriveReady SeekComplete DataRequest Error }
hda: status error: error=0x04 { DriveStatusError }
hda: possibly failed opcode: 0xc5
hda: no DRQ after issuing MULTWRITE
ide0: reset: success
sharpsl-pm sharpsl-pm: Error: AC check failed.
sharpsl-pm sharpsl-pm: Charging Error!
sharpsl-pm sharpsl-pm: Error: AC check failed.
sharpsl-pm sharpsl-pm: Charging Error!


-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
  2009-09-30 20:07 ` Pavel Machek
  (?)
@ 2009-10-06  5:06   ` Dmitry Torokhov
  -1 siblings, 0 replies; 32+ messages in thread
From: Dmitry Torokhov @ 2009-10-06  5:06 UTC (permalink / raw)
  To: Pavel Machek
  Cc: rpurdie, lenz, kernel list, Dirk, arminlitzel, Cyril Hrubis,
	thommycheck, linux-arm-kernel, dbaryshkov, omegamoon,
	eric.y.miao, utx, linux-input

Hi Pavel,

On Wed, Sep 30, 2009 at 10:07:46PM +0200, Pavel Machek wrote:
> Hi!
> 
> It complains about unbalanced irq 113 wake disable. That one belongs
> to matrix-keypad...

I guess some of enable_irq_wake()s fail on your box. Do you see it if
you apply the patch below?

Thanks.

-- 
Dmitry


Input: matrix-keypad - report errors from enable_irq_wake()

From: Dmitry Torokhov <dmitry.torokhov@gmail.com>

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
---

 drivers/input/keyboard/matrix_keypad.c |   21 ++++++++++++++++++---
 1 files changed, 18 insertions(+), 3 deletions(-)


diff --git a/drivers/input/keyboard/matrix_keypad.c b/drivers/input/keyboard/matrix_keypad.c
index 91cfe51..488171c 100644
--- a/drivers/input/keyboard/matrix_keypad.c
+++ b/drivers/input/keyboard/matrix_keypad.c
@@ -218,14 +218,29 @@ static int matrix_keypad_suspend(struct platform_device *pdev, pm_message_t stat
 	struct matrix_keypad *keypad = platform_get_drvdata(pdev);
 	const struct matrix_keypad_platform_data *pdata = keypad->pdata;
 	int i;
+	int err;
 
 	matrix_keypad_stop(keypad->input_dev);
 
-	if (device_may_wakeup(&pdev->dev))
-		for (i = 0; i < pdata->num_row_gpios; i++)
-			enable_irq_wake(gpio_to_irq(pdata->row_gpios[i]));
+	if (device_may_wakeup(&pdev->dev)) {
+		for (i = 0; i < pdata->num_row_gpios; i++) {
+			err = enable_irq_wake(gpio_to_irq(pdata->row_gpios[i]));
+			if (err) {
+				dev_err(&pdev->dev,
+					"Failed to setup GPIO %d as "
+					"wakeup source, err: %d\n",
+					pdata->row_gpios[i], err);
+				goto err_out;
+			}
+		}
+	}
 
 	return 0;
+
+ err_out:
+	while (--i >= 0)
+		disable_irq_wake(gpio_to_irq(pdata->row_gpios[i]));
+	return err;
 }
 
 static int matrix_keypad_resume(struct platform_device *pdev)

^ permalink raw reply related	[flat|nested] 32+ messages in thread

* Re: 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
@ 2009-10-06  5:06   ` Dmitry Torokhov
  0 siblings, 0 replies; 32+ messages in thread
From: Dmitry Torokhov @ 2009-10-06  5:06 UTC (permalink / raw)
  To: Pavel Machek
  Cc: thommycheck, dbaryshkov, Cyril Hrubis, arminlitzel, kernel list,
	Dirk, utx, lenz, rpurdie, omegamoon, linux-input, eric.y.miao,
	linux-arm-kernel

Hi Pavel,

On Wed, Sep 30, 2009 at 10:07:46PM +0200, Pavel Machek wrote:
> Hi!
> 
> It complains about unbalanced irq 113 wake disable. That one belongs
> to matrix-keypad...

I guess some of enable_irq_wake()s fail on your box. Do you see it if
you apply the patch below?

Thanks.

-- 
Dmitry


Input: matrix-keypad - report errors from enable_irq_wake()

From: Dmitry Torokhov <dmitry.torokhov@gmail.com>

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
---

 drivers/input/keyboard/matrix_keypad.c |   21 ++++++++++++++++++---
 1 files changed, 18 insertions(+), 3 deletions(-)


diff --git a/drivers/input/keyboard/matrix_keypad.c b/drivers/input/keyboard/matrix_keypad.c
index 91cfe51..488171c 100644
--- a/drivers/input/keyboard/matrix_keypad.c
+++ b/drivers/input/keyboard/matrix_keypad.c
@@ -218,14 +218,29 @@ static int matrix_keypad_suspend(struct platform_device *pdev, pm_message_t stat
 	struct matrix_keypad *keypad = platform_get_drvdata(pdev);
 	const struct matrix_keypad_platform_data *pdata = keypad->pdata;
 	int i;
+	int err;
 
 	matrix_keypad_stop(keypad->input_dev);
 
-	if (device_may_wakeup(&pdev->dev))
-		for (i = 0; i < pdata->num_row_gpios; i++)
-			enable_irq_wake(gpio_to_irq(pdata->row_gpios[i]));
+	if (device_may_wakeup(&pdev->dev)) {
+		for (i = 0; i < pdata->num_row_gpios; i++) {
+			err = enable_irq_wake(gpio_to_irq(pdata->row_gpios[i]));
+			if (err) {
+				dev_err(&pdev->dev,
+					"Failed to setup GPIO %d as "
+					"wakeup source, err: %d\n",
+					pdata->row_gpios[i], err);
+				goto err_out;
+			}
+		}
+	}
 
 	return 0;
+
+ err_out:
+	while (--i >= 0)
+		disable_irq_wake(gpio_to_irq(pdata->row_gpios[i]));
+	return err;
 }
 
 static int matrix_keypad_resume(struct platform_device *pdev)

^ permalink raw reply related	[flat|nested] 32+ messages in thread

* 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
@ 2009-10-06  5:06   ` Dmitry Torokhov
  0 siblings, 0 replies; 32+ messages in thread
From: Dmitry Torokhov @ 2009-10-06  5:06 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Pavel,

On Wed, Sep 30, 2009 at 10:07:46PM +0200, Pavel Machek wrote:
> Hi!
> 
> It complains about unbalanced irq 113 wake disable. That one belongs
> to matrix-keypad...

I guess some of enable_irq_wake()s fail on your box. Do you see it if
you apply the patch below?

Thanks.

-- 
Dmitry


Input: matrix-keypad - report errors from enable_irq_wake()

From: Dmitry Torokhov <dmitry.torokhov@gmail.com>

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
---

 drivers/input/keyboard/matrix_keypad.c |   21 ++++++++++++++++++---
 1 files changed, 18 insertions(+), 3 deletions(-)


diff --git a/drivers/input/keyboard/matrix_keypad.c b/drivers/input/keyboard/matrix_keypad.c
index 91cfe51..488171c 100644
--- a/drivers/input/keyboard/matrix_keypad.c
+++ b/drivers/input/keyboard/matrix_keypad.c
@@ -218,14 +218,29 @@ static int matrix_keypad_suspend(struct platform_device *pdev, pm_message_t stat
 	struct matrix_keypad *keypad = platform_get_drvdata(pdev);
 	const struct matrix_keypad_platform_data *pdata = keypad->pdata;
 	int i;
+	int err;
 
 	matrix_keypad_stop(keypad->input_dev);
 
-	if (device_may_wakeup(&pdev->dev))
-		for (i = 0; i < pdata->num_row_gpios; i++)
-			enable_irq_wake(gpio_to_irq(pdata->row_gpios[i]));
+	if (device_may_wakeup(&pdev->dev)) {
+		for (i = 0; i < pdata->num_row_gpios; i++) {
+			err = enable_irq_wake(gpio_to_irq(pdata->row_gpios[i]));
+			if (err) {
+				dev_err(&pdev->dev,
+					"Failed to setup GPIO %d as "
+					"wakeup source, err: %d\n",
+					pdata->row_gpios[i], err);
+				goto err_out;
+			}
+		}
+	}
 
 	return 0;
+
+ err_out:
+	while (--i >= 0)
+		disable_irq_wake(gpio_to_irq(pdata->row_gpios[i]));
+	return err;
 }
 
 static int matrix_keypad_resume(struct platform_device *pdev)

^ permalink raw reply related	[flat|nested] 32+ messages in thread

* Re: 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
  2009-10-06  5:06   ` Dmitry Torokhov
@ 2009-10-06  7:58     ` Pavel Machek
  -1 siblings, 0 replies; 32+ messages in thread
From: Pavel Machek @ 2009-10-06  7:58 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: rpurdie, lenz, kernel list, Dirk, arminlitzel, Cyril Hrubis,
	thommycheck, linux-arm-kernel, dbaryshkov, omegamoon,
	eric.y.miao, utx, linux-input, Rafael J. Wysocki

[-- Attachment #1: Type: text/plain, Size: 921 bytes --]

Hi!

On Mon 2009-10-05 22:06:50, Dmitry Torokhov wrote:
> On Wed, Sep 30, 2009 at 10:07:46PM +0200, Pavel Machek wrote:
> > 
> > It complains about unbalanced irq 113 wake disable. That one belongs
> > to matrix-keypad...
> 
> I guess some of enable_irq_wake()s fail on your box. Do you see it if
> you apply the patch below?

I'll do short test. But... if you are right, your patch will just make
your machine refuse to suspend... right?

Ungood.

Actually, it seems to break suspend (returns  -EINVAL while refusing
to suspend), warnings are still there, and keyboard is dead after
failed suspend... double plus ungood.

Aha, so warning is solved: the one in the log is from gpio_buttons.

(I wonder if the 'unbalanced irq_wake' warning is useful... who added it?)
 
									Pavel

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

[-- Attachment #2: 1.msg --]
[-- Type: text/plain, Size: 15253 bytes --]

info for No Bus:vcs
PM: Adding info for No Bus:vcsa
PM: Adding info for No Bus:vcs1
PM: Adding info for No Bus:vcsa1
PM: Adding info for No Bus:tty1
PM: Adding info for No Bus:tty2
PM: Adding info for No Bus:tty3
PM: Adding info for No Bus:tty4
PM: Adding info for No Bus:tty5
PM: Adding info for No Bus:tty6
PM: Adding info for No Bus:tty7
PM: Adding info for No Bus:tty8
PM: Adding info for No Bus:tty9
PM: Adding info for No Bus:tty10
PM: Adding info for No Bus:tty11
PM: Adding info for No Bus:tty12
PM: Adding info for No Bus:tty13
PM: Adding info for No Bus:tty14
PM: Adding info for No Bus:tty15
PM: Adding info for No Bus:tty16
PM: Adding info for No Bus:tty17
PM: Adding info for No Bus:tty18
PM: Adding info for No Bus:tty19
PM: Adding info for No Bus:tty20
PM: Adding info for No Bus:tty21
PM: Adding info for No Bus:tty22
PM: Adding info for No Bus:tty23
PM: Adding info for No Bus:tty24
PM: Adding info for No Bus:tty25
PM: Adding info for No Bus:tty26
PM: Adding info for No Bus:tty27
PM: Adding info for No Bus:tty28
PM: Adding info for No Bus:tty29
PM: Adding info for No Bus:tty30
PM: Adding info for No Bus:tty31
PM: Adding info for No Bus:tty32
PM: Adding info for No Bus:tty33
PM: Adding info for No Bus:tty34
PM: Adding info for No Bus:tty35
PM: Adding info for No Bus:tty36
PM: Adding info for No Bus:tty37
PM: Adding info for No Bus:tty38
PM: Adding info for No Bus:tty39
PM: Adding info for No Bus:tty40
PM: Adding info for No Bus:tty41
PM: Adding info for No Bus:tty42
PM: Adding info for No Bus:tty43
PM: Adding info for No Bus:tty44
PM: Adding info for No Bus:tty45
PM: Adding info for No Bus:tty46
PM: Adding info for No Bus:tty47
PM: Adding info for No Bus:tty48
PM: Adding info for No Bus:tty49
PM: Adding info for No Bus:tty50
PM: Adding info for No Bus:tty51
PM: Adding info for No Bus:tty52
PM: Adding info for No Bus:tty53
PM: Adding info for No Bus:tty54
PM: Adding info for No Bus:tty55
PM: Adding info for No Bus:tty56
PM: Adding info for No Bus:tty57
PM: Adding info for No Bus:tty58
PM: Adding info for No Bus:tty59
PM: Adding info for No Bus:tty60
PM: Adding info for No Bus:tty61
PM: Adding info for No Bus:tty62
PM: Adding info for No Bus:tty63
PM: Adding info for No Bus:ptmx
PM: Adding info for No Bus:apm_bios
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
PM: Adding info for platform:serial8250
platform serial8250: __pm_runtime_idle()!
platform serial8250: __pm_runtime_idle() returns -11!
PM: Adding info for No Bus:ttyS0
PM: Adding info for No Bus:ttyS1
PM: Adding info for No Bus:ttyS2
PM: Adding info for No Bus:ttyS3
serial8250 serial8250: __pm_runtime_idle()!
serial8250 serial8250: __pm_runtime_idle() returns -11!
Uniform Multi-Platform E-IDE driver
ide-gd driver 1.18
NAND device: Manufacturer ID: 0xec, Chip ID: 0x73 (Samsung NAND 16MiB 3,3V 8-bit)
Scanning device for bad blocks
Creating 3 MTD partitions on "sharpsl-nand":
0x000000000000-0x000000700000 : "System Area"
PM: Adding info for No Bus:mtd0
PM: Adding info for No Bus:mtd0ro
PM: Adding info for No Bus:mtdblock0
PM: Adding info for No Bus:31:0
0x000000700000-0x000000c00000 : "Root Filesystem"
PM: Adding info for No Bus:mtd1
PM: Adding info for No Bus:mtd1ro
PM: Adding info for No Bus:mtdblock1
0x000000c00000-0x000001000000 : "Home Filesystem"
PM: Adding info for No Bus:mtd2
PM: Adding info for No Bus:mtd2ro
PM: Adding info for No Bus:mtdblock2
sharpsl-nand sharpsl-nand: __pm_runtime_idle()!
sharpsl-nand sharpsl-nand: __pm_runtime_idle() returns -11!
PPP generic driver version 2.4.2
PM: Adding info for No Bus:ppp
orinoco 0.15 (David Gibson <hermes@gibson.dropbear.id.au>, Pavel Roskin <proski@gnu.org>, et al)
orinoco_cs 0.15 (David Gibson <hermes@gibson.dropbear.id.au>, Pavel Roskin <proski@gnu.org>, et al)
PM: Adding info for No Bus:mice
mice: PS/2 mouse device common for all mice
PM: Adding info for No Bus:input0
input: gpio-keys as /class/input/input0
PM: Adding info for No Bus:event0
gpio-keys gpio-keys: __pm_runtime_idle()!
gpio-keys gpio-keys: __pm_runtime_idle() returns -11!
PM: Adding info for No Bus:input1
input: matrix-keypad as /class/input/input1
PM: Adding info for No Bus:event1
matrix-keypad matrix-keypad: __pm_runtime_idle()!
matrix-keypad matrix-keypad: __pm_runtime_idle() returns -11!
PM: Adding info for No Bus:hwmon0
ads7846 spi2.0: touchscreen, irq 107
PM: Adding info for No Bus:input2
input: ADS7846 Touchscreen as /class/input/input2
PM: Adding info for No Bus:mouse0
PM: Adding info for No Bus:event2
ads7846 spi2.0: __pm_runtime_idle()!
ads7846 spi2.0: __pm_runtime_idle() returns -11!
APM Battery Driver
PM: Adding info for No Bus:hwmon1
max1111 spi2.2: __pm_runtime_idle()!
max1111 spi2.2: __pm_runtime_idle() returns -11!
Bluetooth: HCI UART driver ver 2.2
Bluetooth: HCI H4 protocol initialized
Bluetooth: HCI BCSP protocol initialized
cpuidle: using governor ladder
PM: Adding info for No Bus:mmc0
pxa2xx-mci pxa2xx-mci.0: __pm_runtime_idle()!
pxa2xx-mci pxa2xx-mci.0: __pm_runtime_idle() returns -11!
PM: Adding info for No Bus:spitz:amber:charge
Registered led device: spitz:amber:charge
PM: Adding info for No Bus:spitz:green:hddactivity
Registered led device: spitz:green:hddactivity
leds-gpio leds-gpio: __pm_runtime_idle()!
leds-gpio leds-gpio: __pm_runtime_idle() returns -11!
wacom driver registered
TCP cubic registered
NET: Registered protocol family 17
Bluetooth: L2CAP ver 2.14
Bluetooth: L2CAP socket layer initialized
Bluetooth: RFCOMM TTY layer initialized
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM ver 1.11
Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Bluetooth: BNEP filters: protocol multicast
Bluetooth: HIDP (Human Interface Emulation) ver 1.2
lib80211: common routines for IEEE802.11 drivers
lib80211_crypt: registered algorithm 'NULL'
XScale iWMMXt coprocessor detected.
sharpsl-pm sharpsl-pm: __pm_runtime_idle()!
sharpsl-pm sharpsl-pm: __pm_runtime_idle() returns -11!
PM: Adding info for No Bus:cpu_dma_latency
PM: Adding info for No Bus:network_latency
PM: Adding info for No Bus:network_throughput
Waiting 3sec before mounting root device...
pcmcia_socket pcmcia_socket1: pccard: PCMCIA card inserted into slot 1
pcmcia 1.0: pcmcia: registering new device pcmcia1.0
PM: Adding info for pcmcia:1.0
Probing IDE interface ide0...
hda: HMS360404D5CF00, CFA DISK drive
PM: Adding info for No Bus:ide0
PM: Adding info for No Bus:ide0
ide0 at 0xc4840000-0xc4840007,0xc484000e on irq 202
PM: Adding info for ide:0.0
PM: Adding info for No Bus:0.0
hda: max request size: 128KiB
hda: 7999488 sectors (4095 MB) w/128KiB Cache, CHS=7936/16/63
hda: cache flushes supported
PM: Adding info for No Bus:hda
 hda: hda1 hda2 hda3
PM: Adding info for No Bus:hda1
PM: Adding info for No Bus:hda2
PM: Adding info for No Bus:hda3
PM: Adding info for No Bus:3:0
ide-gd 0.0: __pm_runtime_idle()!
ide-gd 0.0: __pm_runtime_idle() returns -11!
ide-cs: hda: Vpp = 0.0
ide-cs 1.0: __pm_runtime_idle()!
ide-cs 1.0: __pm_runtime_idle() returns -11!
EXT3-fs: INFO: recovery required on readonly filesystem.
EXT3-fs: write access will be enabled during recovery.
kjournald starting.  Commit interval 5 seconds
EXT3-fs: recovery complete.
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem) readonly on device 3:3.
Freeing init memory: 92K
EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
EXT3 FS on hda3, internal journal
kjournald starting.  Commit interval 5 seconds
EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
EXT3 FS on hda2, internal journal
EXT3-fs: recovery complete.
EXT3-fs: mounted filesystem with ordered data mode.
Adding 55160k swap on /SWAP.  Priority:-1 extents:15 across:55220k 
PM: Adding info for No Bus:vcs2
PM: Adding info for No Bus:vcsa2
PM: Adding info for No Bus:vcs3
PM: Adding info for No Bus:vcsa3
PM: Adding info for No Bus:vcs4
PM: Adding info for No Bus:vcsa4
PM: Adding info for No Bus:vcs6
PM: Adding info for No Bus:vcsa6
PM: Adding info for No Bus:vcs5
PM: Adding info for No Bus:vcsa5
PM: Syncing filesystems ... done.
PM: Preparing system for mem sleep
PM: Adding info for No Bus:vcs63
PM: Adding info for No Bus:vcsa63
Freezing user space processes ... (elapsed 0.00 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
PM: Entering mem sleep
platform pxa27x-udc: preparing suspend
platform pxa2xx-uart.0: preparing suspend
platform pxa2xx-uart.1: preparing suspend
platform pxa2xx-uart.2: preparing suspend
platform pxa2xx-i2s: preparing suspend
platform sa1100-rtc: preparing suspend
platform pxa-rtc: preparing suspend
pxa27x-ssp pxa27x-ssp.0: preparing suspend
pxa27x-ssp pxa27x-ssp.1: preparing suspend
pxa27x-ssp pxa27x-ssp.2: preparing suspend
platform pxa27x-pwm.0: preparing suspend
platform pxa27x-pwm.1: preparing suspend
pxa2xx-spi pxa2xx-spi.2: preparing suspend
sharp-scoop sharp-scoop.0: preparing suspend
matrix-keypad matrix-keypad: preparing suspend, may wakeup
gpio-keys gpio-keys: preparing suspend, may wakeup
leds-gpio leds-gpio: preparing suspend
sharpsl-nand sharpsl-nand: preparing suspend
platform physmap-flash: preparing suspend
pxa2xx-mci pxa2xx-mci.0: preparing suspend
platform pxa27x-ohci: preparing suspend
platform pxa2xx-ir: preparing suspend
pxa2xx-fb pxa2xx-fb: preparing suspend
pxa2xx-i2c pxa2xx-i2c.0: preparing suspend
sharp-scoop sharp-scoop.1: preparing suspend
platform regulatory.0: preparing suspend
pxa2xx-pcmcia pxa2xx-pcmcia: preparing suspend
sharpsl-pm sharpsl-pm: preparing suspend
serial8250 serial8250: preparing suspend
ide-gd 0.0: legacy suspend
ide-cs 1.0: legacy suspend
leds spitz:green:hddactivity: legacy class suspend
leds spitz:amber:charge: legacy class suspend
input input2: type suspend
input input1: type suspend
input input0: type suspend
mtd mtd2ro: legacy class suspend
mtd mtd2: legacy class suspend
mtd mtd1ro: legacy class suspend
mtd mtd1: legacy class suspend
mtd mtd0ro: legacy class suspend
mtd mtd0: legacy class suspend
serial8250 serial8250: suspend
backlight corgi_bl: legacy class suspend
sharpsl-pm sharpsl-pm: suspend
pxa2xx-pcmcia pxa2xx-pcmcia: suspend
platform regulatory.0: suspend
i2c i2c-0: legacy suspend
max1111 spi2.2: legacy suspend
corgi-lcd spi2.1: legacy suspend
ads7846 spi2.0: legacy suspend
sharp-scoop sharp-scoop.1: suspend
pxa2xx-i2c pxa2xx-i2c.0: suspend
pxa2xx-fb pxa2xx-fb: suspend
platform pxa2xx-ir: suspend
platform pxa27x-ohci: suspend
pxa2xx-mci pxa2xx-mci.0: suspend
platform physmap-flash: suspend
sharpsl-nand sharpsl-nand: suspend
leds-gpio leds-gpio: suspend
gpio-keys gpio-keys: suspend, may wakeup
matrix-keypad matrix-keypad: suspend, may wakeup
matrix-keypad matrix-keypad: Failed to setup GPIO 17 as wakeup source, err: -22
pm_op(): platform_pm_suspend+0x0/0x5c returns -22
PM: Device matrix-keypad failed to suspend: error -22
PM: Some devices failed to suspend
gpio-keys gpio-keys: resume
------------[ cut here ]------------
WARNING: at kernel/irq/manage.c:361 set_irq_wake+0x7c/0x138()
Unbalanced IRQ 191 wake disable
Modules linked in:
[<c00248f8>] (unwind_backtrace+0x0/0xe4) from [<c003520c>] (warn_slowpath_common+0x4c/0x80)
[<c003520c>] (warn_slowpath_common+0x4c/0x80) from [<c003527c>] (warn_slowpath_fmt+0x28/0x38)
[<c003527c>] (warn_slowpath_fmt+0x28/0x38) from [<c0060b88>] (set_irq_wake+0x7c/0x138)
[<c0060b88>] (set_irq_wake+0x7c/0x138) from [<c01d0274>] (gpio_keys_resume+0x64/0x80)
[<c01d0274>] (gpio_keys_resume+0x64/0x80) from [<c0190d3c>] (platform_pm_resume+0x30/0x54)
[<c0190d3c>] (platform_pm_resume+0x30/0x54) from [<c019302c>] (pm_op+0x6c/0x8c)
[<c019302c>] (pm_op+0x6c/0x8c) from [<c0193af4>] (dpm_resume_end+0xf0/0x47c)
[<c0193af4>] (dpm_resume_end+0xf0/0x47c) from [<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc)
[<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc) from [<c005dbb8>] (enter_state+0xe8/0x120)
[<c005dbb8>] (enter_state+0xe8/0x120) from [<c005d2bc>] (state_store+0x90/0xc4)
[<c005d2bc>] (state_store+0x90/0xc4) from [<c01459bc>] (kobj_attr_store+0x1c/0x24)
[<c01459bc>] (kobj_attr_store+0x1c/0x24) from [<c00d80d8>] (sysfs_write_file+0x104/0x18c)
[<c00d80d8>] (sysfs_write_file+0x104/0x18c) from [<c008ffe8>] (vfs_write+0xb0/0x164)
[<c008ffe8>] (vfs_write+0xb0/0x164) from [<c009016c>] (sys_write+0x40/0x70)
[<c009016c>] (sys_write+0x40/0x70) from [<c001fec0>] (ret_fast_syscall+0x0/0x28)
---[ end trace 974713f34f14652d ]---
leds-gpio leds-gpio: resume
sharpsl-nand sharpsl-nand: resume
platform physmap-flash: resume
pxa2xx-mci pxa2xx-mci.0: resume
platform pxa27x-ohci: resume
platform pxa2xx-ir: resume
pxa2xx-fb pxa2xx-fb: resume
pxa2xx-i2c pxa2xx-i2c.0: resume
sharp-scoop sharp-scoop.1: resume
ads7846 spi2.0: legacy resume
corgi-lcd spi2.1: legacy resume
max1111 spi2.2: legacy resume
i2c i2c-0: legacy resume
platform regulatory.0: resume
pxa2xx-pcmcia pxa2xx-pcmcia: resume
sharpsl-pm sharpsl-pm: resume
backlight corgi_bl: legacy class resume
serial8250 serial8250: resume
mtd mtd0: legacy class resume
mtd mtd0ro: legacy class resume
mtd mtd1: legacy class resume
mtd mtd1ro: legacy class resume
mtd mtd2: legacy class resume
mtd mtd2ro: legacy class resume
input input0: type resume
input input1: type resume
input input2: type resume
leds spitz:amber:charge: legacy class resume
leds spitz:green:hddactivity: legacy class resume
ide-cs 1.0: legacy resume
ide-gd 0.0: legacy resume
serial8250 serial8250: completing resume
sharpsl-pm sharpsl-pm: completing resume
pxa2xx-pcmcia pxa2xx-pcmcia: completing resume
platform regulatory.0: completing resume
sharp-scoop sharp-scoop.1: completing resume
pxa2xx-i2c pxa2xx-i2c.0: completing resume
pxa2xx-fb pxa2xx-fb: completing resume
platform pxa2xx-ir: completing resume
platform pxa27x-ohci: completing resume
pxa2xx-mci pxa2xx-mci.0: completing resume
platform physmap-flash: completing resume
sharpsl-nand sharpsl-nand: completing resume
leds-gpio leds-gpio: completing resume
gpio-keys gpio-keys: completing resume
matrix-keypad matrix-keypad: completing resume
sharp-scoop sharp-scoop.0: completing resume
pxa2xx-spi pxa2xx-spi.2: completing resume
platform pxa27x-pwm.1: completing resume
platform pxa27x-pwm.0: completing resume
pxa27x-ssp pxa27x-ssp.2: completing resume
pxa27x-ssp pxa27x-ssp.1: completing resume
pxa27x-ssp pxa27x-ssp.0: completing resume
platform pxa-rtc: completing resume
platform sa1100-rtc: completing resume
platform pxa2xx-i2s: completing resume
platform pxa2xx-uart.2: completing resume
platform pxa2xx-uart.1: completing resume
platform pxa2xx-uart.0: completing resume
platform pxa27x-udc: completing resume
PM: Finishing wakeup.
Restarting tasks ... done.
hda: task_pio_intr: status=0x59 { DriveReady SeekComplete DataRequest Error }
hda: task_pio_intr: error=0x04 { DriveStatusError }
hda: possibly failed opcode: 0xc4
hda: task_pio_intr: status=0x59 { DriveReady SeekComplete DataRequest Error }
hda: task_pio_intr: error=0x04 { DriveStatusError }
hda: possibly failed opcode: 0xc4
hda: task_pio_intr: status=0x59 { DriveReady SeekComplete DataRequest Error }
hda: task_pio_intr: error=0x04 { DriveStatusError }
hda: possibly failed opcode: 0xc4
hda: task_pio_intr: status=0x59 { DriveReady SeekComplete DataRequest Error }
hda: task_pio_intr: error=0x04 { DriveStatusError }
hda: possibly failed opcode: 0xc4
ide0: reset: success

^ permalink raw reply	[flat|nested] 32+ messages in thread

* 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
@ 2009-10-06  7:58     ` Pavel Machek
  0 siblings, 0 replies; 32+ messages in thread
From: Pavel Machek @ 2009-10-06  7:58 UTC (permalink / raw)
  To: linux-arm-kernel

Hi!

On Mon 2009-10-05 22:06:50, Dmitry Torokhov wrote:
> On Wed, Sep 30, 2009 at 10:07:46PM +0200, Pavel Machek wrote:
> > 
> > It complains about unbalanced irq 113 wake disable. That one belongs
> > to matrix-keypad...
> 
> I guess some of enable_irq_wake()s fail on your box. Do you see it if
> you apply the patch below?

I'll do short test. But... if you are right, your patch will just make
your machine refuse to suspend... right?

Ungood.

Actually, it seems to break suspend (returns  -EINVAL while refusing
to suspend), warnings are still there, and keyboard is dead after
failed suspend... double plus ungood.

Aha, so warning is solved: the one in the log is from gpio_buttons.

(I wonder if the 'unbalanced irq_wake' warning is useful... who added it?)
 
									Pavel

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
-------------- next part --------------
info for No Bus:vcs
PM: Adding info for No Bus:vcsa
PM: Adding info for No Bus:vcs1
PM: Adding info for No Bus:vcsa1
PM: Adding info for No Bus:tty1
PM: Adding info for No Bus:tty2
PM: Adding info for No Bus:tty3
PM: Adding info for No Bus:tty4
PM: Adding info for No Bus:tty5
PM: Adding info for No Bus:tty6
PM: Adding info for No Bus:tty7
PM: Adding info for No Bus:tty8
PM: Adding info for No Bus:tty9
PM: Adding info for No Bus:tty10
PM: Adding info for No Bus:tty11
PM: Adding info for No Bus:tty12
PM: Adding info for No Bus:tty13
PM: Adding info for No Bus:tty14
PM: Adding info for No Bus:tty15
PM: Adding info for No Bus:tty16
PM: Adding info for No Bus:tty17
PM: Adding info for No Bus:tty18
PM: Adding info for No Bus:tty19
PM: Adding info for No Bus:tty20
PM: Adding info for No Bus:tty21
PM: Adding info for No Bus:tty22
PM: Adding info for No Bus:tty23
PM: Adding info for No Bus:tty24
PM: Adding info for No Bus:tty25
PM: Adding info for No Bus:tty26
PM: Adding info for No Bus:tty27
PM: Adding info for No Bus:tty28
PM: Adding info for No Bus:tty29
PM: Adding info for No Bus:tty30
PM: Adding info for No Bus:tty31
PM: Adding info for No Bus:tty32
PM: Adding info for No Bus:tty33
PM: Adding info for No Bus:tty34
PM: Adding info for No Bus:tty35
PM: Adding info for No Bus:tty36
PM: Adding info for No Bus:tty37
PM: Adding info for No Bus:tty38
PM: Adding info for No Bus:tty39
PM: Adding info for No Bus:tty40
PM: Adding info for No Bus:tty41
PM: Adding info for No Bus:tty42
PM: Adding info for No Bus:tty43
PM: Adding info for No Bus:tty44
PM: Adding info for No Bus:tty45
PM: Adding info for No Bus:tty46
PM: Adding info for No Bus:tty47
PM: Adding info for No Bus:tty48
PM: Adding info for No Bus:tty49
PM: Adding info for No Bus:tty50
PM: Adding info for No Bus:tty51
PM: Adding info for No Bus:tty52
PM: Adding info for No Bus:tty53
PM: Adding info for No Bus:tty54
PM: Adding info for No Bus:tty55
PM: Adding info for No Bus:tty56
PM: Adding info for No Bus:tty57
PM: Adding info for No Bus:tty58
PM: Adding info for No Bus:tty59
PM: Adding info for No Bus:tty60
PM: Adding info for No Bus:tty61
PM: Adding info for No Bus:tty62
PM: Adding info for No Bus:tty63
PM: Adding info for No Bus:ptmx
PM: Adding info for No Bus:apm_bios
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
PM: Adding info for platform:serial8250
platform serial8250: __pm_runtime_idle()!
platform serial8250: __pm_runtime_idle() returns -11!
PM: Adding info for No Bus:ttyS0
PM: Adding info for No Bus:ttyS1
PM: Adding info for No Bus:ttyS2
PM: Adding info for No Bus:ttyS3
serial8250 serial8250: __pm_runtime_idle()!
serial8250 serial8250: __pm_runtime_idle() returns -11!
Uniform Multi-Platform E-IDE driver
ide-gd driver 1.18
NAND device: Manufacturer ID: 0xec, Chip ID: 0x73 (Samsung NAND 16MiB 3,3V 8-bit)
Scanning device for bad blocks
Creating 3 MTD partitions on "sharpsl-nand":
0x000000000000-0x000000700000 : "System Area"
PM: Adding info for No Bus:mtd0
PM: Adding info for No Bus:mtd0ro
PM: Adding info for No Bus:mtdblock0
PM: Adding info for No Bus:31:0
0x000000700000-0x000000c00000 : "Root Filesystem"
PM: Adding info for No Bus:mtd1
PM: Adding info for No Bus:mtd1ro
PM: Adding info for No Bus:mtdblock1
0x000000c00000-0x000001000000 : "Home Filesystem"
PM: Adding info for No Bus:mtd2
PM: Adding info for No Bus:mtd2ro
PM: Adding info for No Bus:mtdblock2
sharpsl-nand sharpsl-nand: __pm_runtime_idle()!
sharpsl-nand sharpsl-nand: __pm_runtime_idle() returns -11!
PPP generic driver version 2.4.2
PM: Adding info for No Bus:ppp
orinoco 0.15 (David Gibson <hermes@gibson.dropbear.id.au>, Pavel Roskin <proski@gnu.org>, et al)
orinoco_cs 0.15 (David Gibson <hermes@gibson.dropbear.id.au>, Pavel Roskin <proski@gnu.org>, et al)
PM: Adding info for No Bus:mice
mice: PS/2 mouse device common for all mice
PM: Adding info for No Bus:input0
input: gpio-keys as /class/input/input0
PM: Adding info for No Bus:event0
gpio-keys gpio-keys: __pm_runtime_idle()!
gpio-keys gpio-keys: __pm_runtime_idle() returns -11!
PM: Adding info for No Bus:input1
input: matrix-keypad as /class/input/input1
PM: Adding info for No Bus:event1
matrix-keypad matrix-keypad: __pm_runtime_idle()!
matrix-keypad matrix-keypad: __pm_runtime_idle() returns -11!
PM: Adding info for No Bus:hwmon0
ads7846 spi2.0: touchscreen, irq 107
PM: Adding info for No Bus:input2
input: ADS7846 Touchscreen as /class/input/input2
PM: Adding info for No Bus:mouse0
PM: Adding info for No Bus:event2
ads7846 spi2.0: __pm_runtime_idle()!
ads7846 spi2.0: __pm_runtime_idle() returns -11!
APM Battery Driver
PM: Adding info for No Bus:hwmon1
max1111 spi2.2: __pm_runtime_idle()!
max1111 spi2.2: __pm_runtime_idle() returns -11!
Bluetooth: HCI UART driver ver 2.2
Bluetooth: HCI H4 protocol initialized
Bluetooth: HCI BCSP protocol initialized
cpuidle: using governor ladder
PM: Adding info for No Bus:mmc0
pxa2xx-mci pxa2xx-mci.0: __pm_runtime_idle()!
pxa2xx-mci pxa2xx-mci.0: __pm_runtime_idle() returns -11!
PM: Adding info for No Bus:spitz:amber:charge
Registered led device: spitz:amber:charge
PM: Adding info for No Bus:spitz:green:hddactivity
Registered led device: spitz:green:hddactivity
leds-gpio leds-gpio: __pm_runtime_idle()!
leds-gpio leds-gpio: __pm_runtime_idle() returns -11!
wacom driver registered
TCP cubic registered
NET: Registered protocol family 17
Bluetooth: L2CAP ver 2.14
Bluetooth: L2CAP socket layer initialized
Bluetooth: RFCOMM TTY layer initialized
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM ver 1.11
Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Bluetooth: BNEP filters: protocol multicast
Bluetooth: HIDP (Human Interface Emulation) ver 1.2
lib80211: common routines for IEEE802.11 drivers
lib80211_crypt: registered algorithm 'NULL'
XScale iWMMXt coprocessor detected.
sharpsl-pm sharpsl-pm: __pm_runtime_idle()!
sharpsl-pm sharpsl-pm: __pm_runtime_idle() returns -11!
PM: Adding info for No Bus:cpu_dma_latency
PM: Adding info for No Bus:network_latency
PM: Adding info for No Bus:network_throughput
Waiting 3sec before mounting root device...
pcmcia_socket pcmcia_socket1: pccard: PCMCIA card inserted into slot 1
pcmcia 1.0: pcmcia: registering new device pcmcia1.0
PM: Adding info for pcmcia:1.0
Probing IDE interface ide0...
hda: HMS360404D5CF00, CFA DISK drive
PM: Adding info for No Bus:ide0
PM: Adding info for No Bus:ide0
ide0 at 0xc4840000-0xc4840007,0xc484000e on irq 202
PM: Adding info for ide:0.0
PM: Adding info for No Bus:0.0
hda: max request size: 128KiB
hda: 7999488 sectors (4095 MB) w/128KiB Cache, CHS=7936/16/63
hda: cache flushes supported
PM: Adding info for No Bus:hda
 hda: hda1 hda2 hda3
PM: Adding info for No Bus:hda1
PM: Adding info for No Bus:hda2
PM: Adding info for No Bus:hda3
PM: Adding info for No Bus:3:0
ide-gd 0.0: __pm_runtime_idle()!
ide-gd 0.0: __pm_runtime_idle() returns -11!
ide-cs: hda: Vpp = 0.0
ide-cs 1.0: __pm_runtime_idle()!
ide-cs 1.0: __pm_runtime_idle() returns -11!
EXT3-fs: INFO: recovery required on readonly filesystem.
EXT3-fs: write access will be enabled during recovery.
kjournald starting.  Commit interval 5 seconds
EXT3-fs: recovery complete.
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem) readonly on device 3:3.
Freeing init memory: 92K
EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
EXT3 FS on hda3, internal journal
kjournald starting.  Commit interval 5 seconds
EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
EXT3 FS on hda2, internal journal
EXT3-fs: recovery complete.
EXT3-fs: mounted filesystem with ordered data mode.
Adding 55160k swap on /SWAP.  Priority:-1 extents:15 across:55220k 
PM: Adding info for No Bus:vcs2
PM: Adding info for No Bus:vcsa2
PM: Adding info for No Bus:vcs3
PM: Adding info for No Bus:vcsa3
PM: Adding info for No Bus:vcs4
PM: Adding info for No Bus:vcsa4
PM: Adding info for No Bus:vcs6
PM: Adding info for No Bus:vcsa6
PM: Adding info for No Bus:vcs5
PM: Adding info for No Bus:vcsa5
PM: Syncing filesystems ... done.
PM: Preparing system for mem sleep
PM: Adding info for No Bus:vcs63
PM: Adding info for No Bus:vcsa63
Freezing user space processes ... (elapsed 0.00 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
PM: Entering mem sleep
platform pxa27x-udc: preparing suspend
platform pxa2xx-uart.0: preparing suspend
platform pxa2xx-uart.1: preparing suspend
platform pxa2xx-uart.2: preparing suspend
platform pxa2xx-i2s: preparing suspend
platform sa1100-rtc: preparing suspend
platform pxa-rtc: preparing suspend
pxa27x-ssp pxa27x-ssp.0: preparing suspend
pxa27x-ssp pxa27x-ssp.1: preparing suspend
pxa27x-ssp pxa27x-ssp.2: preparing suspend
platform pxa27x-pwm.0: preparing suspend
platform pxa27x-pwm.1: preparing suspend
pxa2xx-spi pxa2xx-spi.2: preparing suspend
sharp-scoop sharp-scoop.0: preparing suspend
matrix-keypad matrix-keypad: preparing suspend, may wakeup
gpio-keys gpio-keys: preparing suspend, may wakeup
leds-gpio leds-gpio: preparing suspend
sharpsl-nand sharpsl-nand: preparing suspend
platform physmap-flash: preparing suspend
pxa2xx-mci pxa2xx-mci.0: preparing suspend
platform pxa27x-ohci: preparing suspend
platform pxa2xx-ir: preparing suspend
pxa2xx-fb pxa2xx-fb: preparing suspend
pxa2xx-i2c pxa2xx-i2c.0: preparing suspend
sharp-scoop sharp-scoop.1: preparing suspend
platform regulatory.0: preparing suspend
pxa2xx-pcmcia pxa2xx-pcmcia: preparing suspend
sharpsl-pm sharpsl-pm: preparing suspend
serial8250 serial8250: preparing suspend
ide-gd 0.0: legacy suspend
ide-cs 1.0: legacy suspend
leds spitz:green:hddactivity: legacy class suspend
leds spitz:amber:charge: legacy class suspend
input input2: type suspend
input input1: type suspend
input input0: type suspend
mtd mtd2ro: legacy class suspend
mtd mtd2: legacy class suspend
mtd mtd1ro: legacy class suspend
mtd mtd1: legacy class suspend
mtd mtd0ro: legacy class suspend
mtd mtd0: legacy class suspend
serial8250 serial8250: suspend
backlight corgi_bl: legacy class suspend
sharpsl-pm sharpsl-pm: suspend
pxa2xx-pcmcia pxa2xx-pcmcia: suspend
platform regulatory.0: suspend
i2c i2c-0: legacy suspend
max1111 spi2.2: legacy suspend
corgi-lcd spi2.1: legacy suspend
ads7846 spi2.0: legacy suspend
sharp-scoop sharp-scoop.1: suspend
pxa2xx-i2c pxa2xx-i2c.0: suspend
pxa2xx-fb pxa2xx-fb: suspend
platform pxa2xx-ir: suspend
platform pxa27x-ohci: suspend
pxa2xx-mci pxa2xx-mci.0: suspend
platform physmap-flash: suspend
sharpsl-nand sharpsl-nand: suspend
leds-gpio leds-gpio: suspend
gpio-keys gpio-keys: suspend, may wakeup
matrix-keypad matrix-keypad: suspend, may wakeup
matrix-keypad matrix-keypad: Failed to setup GPIO 17 as wakeup source, err: -22
pm_op(): platform_pm_suspend+0x0/0x5c returns -22
PM: Device matrix-keypad failed to suspend: error -22
PM: Some devices failed to suspend
gpio-keys gpio-keys: resume
------------[ cut here ]------------
WARNING: at kernel/irq/manage.c:361 set_irq_wake+0x7c/0x138()
Unbalanced IRQ 191 wake disable
Modules linked in:
[<c00248f8>] (unwind_backtrace+0x0/0xe4) from [<c003520c>] (warn_slowpath_common+0x4c/0x80)
[<c003520c>] (warn_slowpath_common+0x4c/0x80) from [<c003527c>] (warn_slowpath_fmt+0x28/0x38)
[<c003527c>] (warn_slowpath_fmt+0x28/0x38) from [<c0060b88>] (set_irq_wake+0x7c/0x138)
[<c0060b88>] (set_irq_wake+0x7c/0x138) from [<c01d0274>] (gpio_keys_resume+0x64/0x80)
[<c01d0274>] (gpio_keys_resume+0x64/0x80) from [<c0190d3c>] (platform_pm_resume+0x30/0x54)
[<c0190d3c>] (platform_pm_resume+0x30/0x54) from [<c019302c>] (pm_op+0x6c/0x8c)
[<c019302c>] (pm_op+0x6c/0x8c) from [<c0193af4>] (dpm_resume_end+0xf0/0x47c)
[<c0193af4>] (dpm_resume_end+0xf0/0x47c) from [<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc)
[<c005d980>] (suspend_devices_and_enter+0x8c/0x1dc) from [<c005dbb8>] (enter_state+0xe8/0x120)
[<c005dbb8>] (enter_state+0xe8/0x120) from [<c005d2bc>] (state_store+0x90/0xc4)
[<c005d2bc>] (state_store+0x90/0xc4) from [<c01459bc>] (kobj_attr_store+0x1c/0x24)
[<c01459bc>] (kobj_attr_store+0x1c/0x24) from [<c00d80d8>] (sysfs_write_file+0x104/0x18c)
[<c00d80d8>] (sysfs_write_file+0x104/0x18c) from [<c008ffe8>] (vfs_write+0xb0/0x164)
[<c008ffe8>] (vfs_write+0xb0/0x164) from [<c009016c>] (sys_write+0x40/0x70)
[<c009016c>] (sys_write+0x40/0x70) from [<c001fec0>] (ret_fast_syscall+0x0/0x28)
---[ end trace 974713f34f14652d ]---
leds-gpio leds-gpio: resume
sharpsl-nand sharpsl-nand: resume
platform physmap-flash: resume
pxa2xx-mci pxa2xx-mci.0: resume
platform pxa27x-ohci: resume
platform pxa2xx-ir: resume
pxa2xx-fb pxa2xx-fb: resume
pxa2xx-i2c pxa2xx-i2c.0: resume
sharp-scoop sharp-scoop.1: resume
ads7846 spi2.0: legacy resume
corgi-lcd spi2.1: legacy resume
max1111 spi2.2: legacy resume
i2c i2c-0: legacy resume
platform regulatory.0: resume
pxa2xx-pcmcia pxa2xx-pcmcia: resume
sharpsl-pm sharpsl-pm: resume
backlight corgi_bl: legacy class resume
serial8250 serial8250: resume
mtd mtd0: legacy class resume
mtd mtd0ro: legacy class resume
mtd mtd1: legacy class resume
mtd mtd1ro: legacy class resume
mtd mtd2: legacy class resume
mtd mtd2ro: legacy class resume
input input0: type resume
input input1: type resume
input input2: type resume
leds spitz:amber:charge: legacy class resume
leds spitz:green:hddactivity: legacy class resume
ide-cs 1.0: legacy resume
ide-gd 0.0: legacy resume
serial8250 serial8250: completing resume
sharpsl-pm sharpsl-pm: completing resume
pxa2xx-pcmcia pxa2xx-pcmcia: completing resume
platform regulatory.0: completing resume
sharp-scoop sharp-scoop.1: completing resume
pxa2xx-i2c pxa2xx-i2c.0: completing resume
pxa2xx-fb pxa2xx-fb: completing resume
platform pxa2xx-ir: completing resume
platform pxa27x-ohci: completing resume
pxa2xx-mci pxa2xx-mci.0: completing resume
platform physmap-flash: completing resume
sharpsl-nand sharpsl-nand: completing resume
leds-gpio leds-gpio: completing resume
gpio-keys gpio-keys: completing resume
matrix-keypad matrix-keypad: completing resume
sharp-scoop sharp-scoop.0: completing resume
pxa2xx-spi pxa2xx-spi.2: completing resume
platform pxa27x-pwm.1: completing resume
platform pxa27x-pwm.0: completing resume
pxa27x-ssp pxa27x-ssp.2: completing resume
pxa27x-ssp pxa27x-ssp.1: completing resume
pxa27x-ssp pxa27x-ssp.0: completing resume
platform pxa-rtc: completing resume
platform sa1100-rtc: completing resume
platform pxa2xx-i2s: completing resume
platform pxa2xx-uart.2: completing resume
platform pxa2xx-uart.1: completing resume
platform pxa2xx-uart.0: completing resume
platform pxa27x-udc: completing resume
PM: Finishing wakeup.
Restarting tasks ... done.
hda: task_pio_intr: status=0x59 { DriveReady SeekComplete DataRequest Error }
hda: task_pio_intr: error=0x04 { DriveStatusError }
hda: possibly failed opcode: 0xc4
hda: task_pio_intr: status=0x59 { DriveReady SeekComplete DataRequest Error }
hda: task_pio_intr: error=0x04 { DriveStatusError }
hda: possibly failed opcode: 0xc4
hda: task_pio_intr: status=0x59 { DriveReady SeekComplete DataRequest Error }
hda: task_pio_intr: error=0x04 { DriveStatusError }
hda: possibly failed opcode: 0xc4
hda: task_pio_intr: status=0x59 { DriveReady SeekComplete DataRequest Error }
hda: task_pio_intr: error=0x04 { DriveStatusError }
hda: possibly failed opcode: 0xc4
ide0: reset: success

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
  2009-10-06  7:58     ` Pavel Machek
  (?)
@ 2009-10-07  4:36       ` Dmitry Torokhov
  -1 siblings, 0 replies; 32+ messages in thread
From: Dmitry Torokhov @ 2009-10-07  4:36 UTC (permalink / raw)
  To: Pavel Machek
  Cc: rpurdie, lenz, kernel list, Dirk, arminlitzel, Cyril Hrubis,
	thommycheck, linux-arm-kernel, dbaryshkov, omegamoon,
	eric.y.miao, utx, linux-input, Rafael J. Wysocki

On Tue, Oct 06, 2009 at 09:58:17AM +0200, Pavel Machek wrote:
> Hi!
> 
> On Mon 2009-10-05 22:06:50, Dmitry Torokhov wrote:
> > On Wed, Sep 30, 2009 at 10:07:46PM +0200, Pavel Machek wrote:
> > > 
> > > It complains about unbalanced irq 113 wake disable. That one belongs
> > > to matrix-keypad...
> > 
> > I guess some of enable_irq_wake()s fail on your box. Do you see it if
> > you apply the patch below?
> 
> I'll do short test. But... if you are right, your patch will just make
> your machine refuse to suspend... right?
> 
> Ungood.

It was just a debug patch.

> 
> Actually, it seems to break suspend (returns  -EINVAL while refusing
> to suspend), warnings are still there, and keyboard is dead after
> failed suspend... double plus ungood.
> 
> Aha, so warning is solved: the one in the log is from gpio_buttons.
> 

OK, so it looks like your box refuses to set up one of the GPIOs as a
wakeup source... Hmm, either your box is wrong ;) or matrix_keypad
driver needs to maintain a separate list of wakeup GPIOs.

-- 
Dmitry

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
@ 2009-10-07  4:36       ` Dmitry Torokhov
  0 siblings, 0 replies; 32+ messages in thread
From: Dmitry Torokhov @ 2009-10-07  4:36 UTC (permalink / raw)
  To: Pavel Machek
  Cc: Rafael J. Wysocki, thommycheck, dbaryshkov, Cyril Hrubis,
	arminlitzel, kernel list, Dirk, utx, lenz, rpurdie, omegamoon,
	linux-input, eric.y.miao, linux-arm-kernel

On Tue, Oct 06, 2009 at 09:58:17AM +0200, Pavel Machek wrote:
> Hi!
> 
> On Mon 2009-10-05 22:06:50, Dmitry Torokhov wrote:
> > On Wed, Sep 30, 2009 at 10:07:46PM +0200, Pavel Machek wrote:
> > > 
> > > It complains about unbalanced irq 113 wake disable. That one belongs
> > > to matrix-keypad...
> > 
> > I guess some of enable_irq_wake()s fail on your box. Do you see it if
> > you apply the patch below?
> 
> I'll do short test. But... if you are right, your patch will just make
> your machine refuse to suspend... right?
> 
> Ungood.

It was just a debug patch.

> 
> Actually, it seems to break suspend (returns  -EINVAL while refusing
> to suspend), warnings are still there, and keyboard is dead after
> failed suspend... double plus ungood.
> 
> Aha, so warning is solved: the one in the log is from gpio_buttons.
> 

OK, so it looks like your box refuses to set up one of the GPIOs as a
wakeup source... Hmm, either your box is wrong ;) or matrix_keypad
driver needs to maintain a separate list of wakeup GPIOs.

-- 
Dmitry

^ permalink raw reply	[flat|nested] 32+ messages in thread

* 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
@ 2009-10-07  4:36       ` Dmitry Torokhov
  0 siblings, 0 replies; 32+ messages in thread
From: Dmitry Torokhov @ 2009-10-07  4:36 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Oct 06, 2009 at 09:58:17AM +0200, Pavel Machek wrote:
> Hi!
> 
> On Mon 2009-10-05 22:06:50, Dmitry Torokhov wrote:
> > On Wed, Sep 30, 2009 at 10:07:46PM +0200, Pavel Machek wrote:
> > > 
> > > It complains about unbalanced irq 113 wake disable. That one belongs
> > > to matrix-keypad...
> > 
> > I guess some of enable_irq_wake()s fail on your box. Do you see it if
> > you apply the patch below?
> 
> I'll do short test. But... if you are right, your patch will just make
> your machine refuse to suspend... right?
> 
> Ungood.

It was just a debug patch.

> 
> Actually, it seems to break suspend (returns  -EINVAL while refusing
> to suspend), warnings are still there, and keyboard is dead after
> failed suspend... double plus ungood.
> 
> Aha, so warning is solved: the one in the log is from gpio_buttons.
> 

OK, so it looks like your box refuses to set up one of the GPIOs as a
wakeup source... Hmm, either your box is wrong ;) or matrix_keypad
driver needs to maintain a separate list of wakeup GPIOs.

-- 
Dmitry

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake),  matrix-keypad related?
  2009-10-07  4:36       ` Dmitry Torokhov
  (?)
@ 2009-10-07 14:42         ` Eric Miao
  -1 siblings, 0 replies; 32+ messages in thread
From: Eric Miao @ 2009-10-07 14:42 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Pavel Machek, rpurdie, lenz, kernel list, Dirk, arminlitzel,
	Cyril Hrubis, thommycheck, linux-arm-kernel, dbaryshkov,
	omegamoon, utx, linux-input, Rafael J. Wysocki

On Wed, Oct 7, 2009 at 12:36 PM, Dmitry Torokhov
<dmitry.torokhov@gmail.com> wrote:
> On Tue, Oct 06, 2009 at 09:58:17AM +0200, Pavel Machek wrote:
>> Hi!
>>
>> On Mon 2009-10-05 22:06:50, Dmitry Torokhov wrote:
>> > On Wed, Sep 30, 2009 at 10:07:46PM +0200, Pavel Machek wrote:
>> > >
>> > > It complains about unbalanced irq 113 wake disable. That one belongs
>> > > to matrix-keypad...
>> >
>> > I guess some of enable_irq_wake()s fail on your box. Do you see it if
>> > you apply the patch below?
>>
>> I'll do short test. But... if you are right, your patch will just make
>> your machine refuse to suspend... right?
>>
>> Ungood.
>
> It was just a debug patch.
>
>>
>> Actually, it seems to break suspend (returns  -EINVAL while refusing
>> to suspend), warnings are still there, and keyboard is dead after
>> failed suspend... double plus ungood.
>>
>> Aha, so warning is solved: the one in the log is from gpio_buttons.
>>
>
> OK, so it looks like your box refuses to set up one of the GPIOs as a
> wakeup source... Hmm, either your box is wrong ;) or matrix_keypad
> driver needs to maintain a separate list of wakeup GPIOs.
>

This is due to the nature of PXA processor, where not every GPIO can
be configured as a wakeup source. Mmm.... we can either return a
pseudo value indicating setting wakeup on that GPIO is OK (which
doesn't sound like a good idea), or we can just ignore the failure of
enable_irq_wake() in matrix_keypad?

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
@ 2009-10-07 14:42         ` Eric Miao
  0 siblings, 0 replies; 32+ messages in thread
From: Eric Miao @ 2009-10-07 14:42 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Rafael J. Wysocki, thommycheck, dbaryshkov, Cyril Hrubis,
	arminlitzel, kernel list, Dirk, utx, lenz, rpurdie, omegamoon,
	Pavel Machek, linux-input, linux-arm-kernel

On Wed, Oct 7, 2009 at 12:36 PM, Dmitry Torokhov
<dmitry.torokhov@gmail.com> wrote:
> On Tue, Oct 06, 2009 at 09:58:17AM +0200, Pavel Machek wrote:
>> Hi!
>>
>> On Mon 2009-10-05 22:06:50, Dmitry Torokhov wrote:
>> > On Wed, Sep 30, 2009 at 10:07:46PM +0200, Pavel Machek wrote:
>> > >
>> > > It complains about unbalanced irq 113 wake disable. That one belongs
>> > > to matrix-keypad...
>> >
>> > I guess some of enable_irq_wake()s fail on your box. Do you see it if
>> > you apply the patch below?
>>
>> I'll do short test. But... if you are right, your patch will just make
>> your machine refuse to suspend... right?
>>
>> Ungood.
>
> It was just a debug patch.
>
>>
>> Actually, it seems to break suspend (returns  -EINVAL while refusing
>> to suspend), warnings are still there, and keyboard is dead after
>> failed suspend... double plus ungood.
>>
>> Aha, so warning is solved: the one in the log is from gpio_buttons.
>>
>
> OK, so it looks like your box refuses to set up one of the GPIOs as a
> wakeup source... Hmm, either your box is wrong ;) or matrix_keypad
> driver needs to maintain a separate list of wakeup GPIOs.
>

This is due to the nature of PXA processor, where not every GPIO can
be configured as a wakeup source. Mmm.... we can either return a
pseudo value indicating setting wakeup on that GPIO is OK (which
doesn't sound like a good idea), or we can just ignore the failure of
enable_irq_wake() in matrix_keypad?

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 32+ messages in thread

* 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
@ 2009-10-07 14:42         ` Eric Miao
  0 siblings, 0 replies; 32+ messages in thread
From: Eric Miao @ 2009-10-07 14:42 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Oct 7, 2009 at 12:36 PM, Dmitry Torokhov
<dmitry.torokhov@gmail.com> wrote:
> On Tue, Oct 06, 2009 at 09:58:17AM +0200, Pavel Machek wrote:
>> Hi!
>>
>> On Mon 2009-10-05 22:06:50, Dmitry Torokhov wrote:
>> > On Wed, Sep 30, 2009 at 10:07:46PM +0200, Pavel Machek wrote:
>> > >
>> > > It complains about unbalanced irq 113 wake disable. That one belongs
>> > > to matrix-keypad...
>> >
>> > I guess some of enable_irq_wake()s fail on your box. Do you see it if
>> > you apply the patch below?
>>
>> I'll do short test. But... if you are right, your patch will just make
>> your machine refuse to suspend... right?
>>
>> Ungood.
>
> It was just a debug patch.
>
>>
>> Actually, it seems to break suspend (returns ?-EINVAL while refusing
>> to suspend), warnings are still there, and keyboard is dead after
>> failed suspend... double plus ungood.
>>
>> Aha, so warning is solved: the one in the log is from gpio_buttons.
>>
>
> OK, so it looks like your box refuses to set up one of the GPIOs as a
> wakeup source... Hmm, either your box is wrong ;) or matrix_keypad
> driver needs to maintain a separate list of wakeup GPIOs.
>

This is due to the nature of PXA processor, where not every GPIO can
be configured as a wakeup source. Mmm.... we can either return a
pseudo value indicating setting wakeup on that GPIO is OK (which
doesn't sound like a good idea), or we can just ignore the failure of
enable_irq_wake() in matrix_keypad?

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
  2009-10-07 14:42         ` Eric Miao
  (?)
@ 2009-10-07 16:33           ` Dmitry Torokhov
  -1 siblings, 0 replies; 32+ messages in thread
From: Dmitry Torokhov @ 2009-10-07 16:33 UTC (permalink / raw)
  To: Eric Miao
  Cc: Pavel Machek, rpurdie, lenz, kernel list, Dirk, arminlitzel,
	Cyril Hrubis, thommycheck, linux-arm-kernel, dbaryshkov,
	omegamoon, utx, linux-input, Rafael J. Wysocki

On Wed, Oct 07, 2009 at 10:42:08PM +0800, Eric Miao wrote:
> On Wed, Oct 7, 2009 at 12:36 PM, Dmitry Torokhov
> <dmitry.torokhov@gmail.com> wrote:
> > On Tue, Oct 06, 2009 at 09:58:17AM +0200, Pavel Machek wrote:
> >> Hi!
> >>
> >> On Mon 2009-10-05 22:06:50, Dmitry Torokhov wrote:
> >> > On Wed, Sep 30, 2009 at 10:07:46PM +0200, Pavel Machek wrote:
> >> > >
> >> > > It complains about unbalanced irq 113 wake disable. That one belongs
> >> > > to matrix-keypad...
> >> >
> >> > I guess some of enable_irq_wake()s fail on your box. Do you see it if
> >> > you apply the patch below?
> >>
> >> I'll do short test. But... if you are right, your patch will just make
> >> your machine refuse to suspend... right?
> >>
> >> Ungood.
> >
> > It was just a debug patch.
> >
> >>
> >> Actually, it seems to break suspend (returns  -EINVAL while refusing
> >> to suspend), warnings are still there, and keyboard is dead after
> >> failed suspend... double plus ungood.
> >>
> >> Aha, so warning is solved: the one in the log is from gpio_buttons.
> >>
> >
> > OK, so it looks like your box refuses to set up one of the GPIOs as a
> > wakeup source... Hmm, either your box is wrong ;) or matrix_keypad
> > driver needs to maintain a separate list of wakeup GPIOs.
> >
> 
> This is due to the nature of PXA processor, where not every GPIO can
> be configured as a wakeup source. Mmm.... we can either return a
> pseudo value indicating setting wakeup on that GPIO is OK (which
> doesn't sound like a good idea), or we can just ignore the failure of
> enable_irq_wake() in matrix_keypad?

We ignore the failure right now in the mainline but that causes stack
traces on resume as we trying to disable not enabled wakeup GPIOs. That
was original Pavel's complaint.

-- 
Dmitry

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
@ 2009-10-07 16:33           ` Dmitry Torokhov
  0 siblings, 0 replies; 32+ messages in thread
From: Dmitry Torokhov @ 2009-10-07 16:33 UTC (permalink / raw)
  To: Eric Miao
  Cc: Rafael J. Wysocki, thommycheck, dbaryshkov, Cyril Hrubis,
	arminlitzel, kernel list, Dirk, utx, lenz, rpurdie, omegamoon,
	Pavel Machek, linux-input, linux-arm-kernel

On Wed, Oct 07, 2009 at 10:42:08PM +0800, Eric Miao wrote:
> On Wed, Oct 7, 2009 at 12:36 PM, Dmitry Torokhov
> <dmitry.torokhov@gmail.com> wrote:
> > On Tue, Oct 06, 2009 at 09:58:17AM +0200, Pavel Machek wrote:
> >> Hi!
> >>
> >> On Mon 2009-10-05 22:06:50, Dmitry Torokhov wrote:
> >> > On Wed, Sep 30, 2009 at 10:07:46PM +0200, Pavel Machek wrote:
> >> > >
> >> > > It complains about unbalanced irq 113 wake disable. That one belongs
> >> > > to matrix-keypad...
> >> >
> >> > I guess some of enable_irq_wake()s fail on your box. Do you see it if
> >> > you apply the patch below?
> >>
> >> I'll do short test. But... if you are right, your patch will just make
> >> your machine refuse to suspend... right?
> >>
> >> Ungood.
> >
> > It was just a debug patch.
> >
> >>
> >> Actually, it seems to break suspend (returns  -EINVAL while refusing
> >> to suspend), warnings are still there, and keyboard is dead after
> >> failed suspend... double plus ungood.
> >>
> >> Aha, so warning is solved: the one in the log is from gpio_buttons.
> >>
> >
> > OK, so it looks like your box refuses to set up one of the GPIOs as a
> > wakeup source... Hmm, either your box is wrong ;) or matrix_keypad
> > driver needs to maintain a separate list of wakeup GPIOs.
> >
> 
> This is due to the nature of PXA processor, where not every GPIO can
> be configured as a wakeup source. Mmm.... we can either return a
> pseudo value indicating setting wakeup on that GPIO is OK (which
> doesn't sound like a good idea), or we can just ignore the failure of
> enable_irq_wake() in matrix_keypad?

We ignore the failure right now in the mainline but that causes stack
traces on resume as we trying to disable not enabled wakeup GPIOs. That
was original Pavel's complaint.

-- 
Dmitry

^ permalink raw reply	[flat|nested] 32+ messages in thread

* 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
@ 2009-10-07 16:33           ` Dmitry Torokhov
  0 siblings, 0 replies; 32+ messages in thread
From: Dmitry Torokhov @ 2009-10-07 16:33 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Oct 07, 2009 at 10:42:08PM +0800, Eric Miao wrote:
> On Wed, Oct 7, 2009 at 12:36 PM, Dmitry Torokhov
> <dmitry.torokhov@gmail.com> wrote:
> > On Tue, Oct 06, 2009 at 09:58:17AM +0200, Pavel Machek wrote:
> >> Hi!
> >>
> >> On Mon 2009-10-05 22:06:50, Dmitry Torokhov wrote:
> >> > On Wed, Sep 30, 2009 at 10:07:46PM +0200, Pavel Machek wrote:
> >> > >
> >> > > It complains about unbalanced irq 113 wake disable. That one belongs
> >> > > to matrix-keypad...
> >> >
> >> > I guess some of enable_irq_wake()s fail on your box. Do you see it if
> >> > you apply the patch below?
> >>
> >> I'll do short test. But... if you are right, your patch will just make
> >> your machine refuse to suspend... right?
> >>
> >> Ungood.
> >
> > It was just a debug patch.
> >
> >>
> >> Actually, it seems to break suspend (returns ?-EINVAL while refusing
> >> to suspend), warnings are still there, and keyboard is dead after
> >> failed suspend... double plus ungood.
> >>
> >> Aha, so warning is solved: the one in the log is from gpio_buttons.
> >>
> >
> > OK, so it looks like your box refuses to set up one of the GPIOs as a
> > wakeup source... Hmm, either your box is wrong ;) or matrix_keypad
> > driver needs to maintain a separate list of wakeup GPIOs.
> >
> 
> This is due to the nature of PXA processor, where not every GPIO can
> be configured as a wakeup source. Mmm.... we can either return a
> pseudo value indicating setting wakeup on that GPIO is OK (which
> doesn't sound like a good idea), or we can just ignore the failure of
> enable_irq_wake() in matrix_keypad?

We ignore the failure right now in the mainline but that causes stack
traces on resume as we trying to disable not enabled wakeup GPIOs. That
was original Pavel's complaint.

-- 
Dmitry

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
  2009-10-07 16:33           ` Dmitry Torokhov
  (?)
@ 2009-10-07 21:12             ` Pavel Machek
  -1 siblings, 0 replies; 32+ messages in thread
From: Pavel Machek @ 2009-10-07 21:12 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Eric Miao, rpurdie, lenz, kernel list, Dirk, arminlitzel,
	Cyril Hrubis, thommycheck, linux-arm-kernel, dbaryshkov,
	omegamoon, utx, linux-input, Rafael J. Wysocki


> > > OK, so it looks like your box refuses to set up one of the GPIOs as a
> > > wakeup source... Hmm, either your box is wrong ;) or matrix_keypad
> > > driver needs to maintain a separate list of wakeup GPIOs.
> > >
> > 
> > This is due to the nature of PXA processor, where not every GPIO can
> > be configured as a wakeup source. Mmm.... we can either return a
> > pseudo value indicating setting wakeup on that GPIO is OK (which
> > doesn't sound like a good idea), or we can just ignore the failure of
> > enable_irq_wake() in matrix_keypad?
> 
> We ignore the failure right now in the mainline but that causes stack
> traces on resume as we trying to disable not enabled wakeup GPIOs. That
> was original Pavel's complaint.

Yep...

I'd say that BUG() simply should not trigger if wakeup can not be
enabled/disabled for particular source...?
									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
@ 2009-10-07 21:12             ` Pavel Machek
  0 siblings, 0 replies; 32+ messages in thread
From: Pavel Machek @ 2009-10-07 21:12 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Rafael J. Wysocki, Eric Miao, dbaryshkov, Cyril Hrubis,
	arminlitzel, kernel list, Dirk, utx, lenz, rpurdie, omegamoon,
	linux-input, thommycheck, linux-arm-kernel


> > > OK, so it looks like your box refuses to set up one of the GPIOs as a
> > > wakeup source... Hmm, either your box is wrong ;) or matrix_keypad
> > > driver needs to maintain a separate list of wakeup GPIOs.
> > >
> > 
> > This is due to the nature of PXA processor, where not every GPIO can
> > be configured as a wakeup source. Mmm.... we can either return a
> > pseudo value indicating setting wakeup on that GPIO is OK (which
> > doesn't sound like a good idea), or we can just ignore the failure of
> > enable_irq_wake() in matrix_keypad?
> 
> We ignore the failure right now in the mainline but that causes stack
> traces on resume as we trying to disable not enabled wakeup GPIOs. That
> was original Pavel's complaint.

Yep...

I'd say that BUG() simply should not trigger if wakeup can not be
enabled/disabled for particular source...?
									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

^ permalink raw reply	[flat|nested] 32+ messages in thread

* 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
@ 2009-10-07 21:12             ` Pavel Machek
  0 siblings, 0 replies; 32+ messages in thread
From: Pavel Machek @ 2009-10-07 21:12 UTC (permalink / raw)
  To: linux-arm-kernel


> > > OK, so it looks like your box refuses to set up one of the GPIOs as a
> > > wakeup source... Hmm, either your box is wrong ;) or matrix_keypad
> > > driver needs to maintain a separate list of wakeup GPIOs.
> > >
> > 
> > This is due to the nature of PXA processor, where not every GPIO can
> > be configured as a wakeup source. Mmm.... we can either return a
> > pseudo value indicating setting wakeup on that GPIO is OK (which
> > doesn't sound like a good idea), or we can just ignore the failure of
> > enable_irq_wake() in matrix_keypad?
> 
> We ignore the failure right now in the mainline but that causes stack
> traces on resume as we trying to disable not enabled wakeup GPIOs. That
> was original Pavel's complaint.

Yep...

I'd say that BUG() simply should not trigger if wakeup can not be
enabled/disabled for particular source...?
									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
  2009-10-07 21:12             ` Pavel Machek
@ 2009-12-03  3:17               ` Dmitry Torokhov
  -1 siblings, 0 replies; 32+ messages in thread
From: Dmitry Torokhov @ 2009-12-03  3:17 UTC (permalink / raw)
  To: Pavel Machek
  Cc: Eric Miao, rpurdie, lenz, kernel list, Dirk, arminlitzel,
	Cyril Hrubis, thommycheck, linux-arm-kernel, dbaryshkov,
	omegamoon, utx, linux-input, Rafael J. Wysocki

On Wed, Oct 07, 2009 at 11:12:26PM +0200, Pavel Machek wrote:
> 
> > > > OK, so it looks like your box refuses to set up one of the GPIOs as a
> > > > wakeup source... Hmm, either your box is wrong ;) or matrix_keypad
> > > > driver needs to maintain a separate list of wakeup GPIOs.
> > > >
> > > 
> > > This is due to the nature of PXA processor, where not every GPIO can
> > > be configured as a wakeup source. Mmm.... we can either return a
> > > pseudo value indicating setting wakeup on that GPIO is OK (which
> > > doesn't sound like a good idea), or we can just ignore the failure of
> > > enable_irq_wake() in matrix_keypad?
> > 
> > We ignore the failure right now in the mainline but that causes stack
> > traces on resume as we trying to disable not enabled wakeup GPIOs. That
> > was original Pavel's complaint.
> 
> Yep...
> 
> I'd say that BUG() simply should not trigger if wakeup can not be
> enabled/disabled for particular source...?

Pavel,

Could you please try the patch below and let me know if it fixes the
problem for you?

Thanks.

-- 
Dmitry

Input: matrix-keypad - handle cases when GPIOs can't be wakeup sources

From: Dmitry Torokhov <dmitry.torokhov@gmail.com>

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
---

 drivers/input/keyboard/matrix_keypad.c |   29 ++++++++++++++++++++++-------
 1 files changed, 22 insertions(+), 7 deletions(-)


diff --git a/drivers/input/keyboard/matrix_keypad.c b/drivers/input/keyboard/matrix_keypad.c
index 91cfe51..a1152ba 100644
--- a/drivers/input/keyboard/matrix_keypad.c
+++ b/drivers/input/keyboard/matrix_keypad.c
@@ -29,11 +29,13 @@ struct matrix_keypad {
 	unsigned short *keycodes;
 	unsigned int row_shift;
 
+	DECLARE_BITMAP(disabled_gpios, MATRIX_MAX_ROWS);
+
 	uint32_t last_key_state[MATRIX_MAX_COLS];
 	struct delayed_work work;
+	spinlock_t lock;
 	bool scan_pending;
 	bool stopped;
-	spinlock_t lock;
 };
 
 /*
@@ -221,9 +223,16 @@ static int matrix_keypad_suspend(struct platform_device *pdev, pm_message_t stat
 
 	matrix_keypad_stop(keypad->input_dev);
 
-	if (device_may_wakeup(&pdev->dev))
-		for (i = 0; i < pdata->num_row_gpios; i++)
-			enable_irq_wake(gpio_to_irq(pdata->row_gpios[i]));
+	if (device_may_wakeup(&pdev->dev)) {
+		for (i = 0; i < pdata->num_row_gpios; i++) {
+			if (!test_bit(i, keypad->disabled_gpios)) {
+				unsigned int gpio = pdata->row_gpios[i];
+
+				if (enable_irq_wake(gpio_to_irq(gpio)) == 0)
+					__set_bit(i, keypad->disabled_gpios);
+			}
+		}
+	}
 
 	return 0;
 }
@@ -234,9 +243,15 @@ static int matrix_keypad_resume(struct platform_device *pdev)
 	const struct matrix_keypad_platform_data *pdata = keypad->pdata;
 	int i;
 
-	if (device_may_wakeup(&pdev->dev))
-		for (i = 0; i < pdata->num_row_gpios; i++)
-			disable_irq_wake(gpio_to_irq(pdata->row_gpios[i]));
+	if (device_may_wakeup(&pdev->dev)) {
+		for (i = 0; i < pdata->num_row_gpios; i++) {
+			if (test_and_clear_bit(i, keypad->disabled_gpios)) {
+				unsigned int gpio = pdata->row_gpios[i];
+
+				disable_irq_wake(gpio_to_irq(gpio));
+			}
+		}
+	}
 
 	matrix_keypad_start(keypad->input_dev);
 

^ permalink raw reply related	[flat|nested] 32+ messages in thread

* 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
@ 2009-12-03  3:17               ` Dmitry Torokhov
  0 siblings, 0 replies; 32+ messages in thread
From: Dmitry Torokhov @ 2009-12-03  3:17 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Oct 07, 2009 at 11:12:26PM +0200, Pavel Machek wrote:
> 
> > > > OK, so it looks like your box refuses to set up one of the GPIOs as a
> > > > wakeup source... Hmm, either your box is wrong ;) or matrix_keypad
> > > > driver needs to maintain a separate list of wakeup GPIOs.
> > > >
> > > 
> > > This is due to the nature of PXA processor, where not every GPIO can
> > > be configured as a wakeup source. Mmm.... we can either return a
> > > pseudo value indicating setting wakeup on that GPIO is OK (which
> > > doesn't sound like a good idea), or we can just ignore the failure of
> > > enable_irq_wake() in matrix_keypad?
> > 
> > We ignore the failure right now in the mainline but that causes stack
> > traces on resume as we trying to disable not enabled wakeup GPIOs. That
> > was original Pavel's complaint.
> 
> Yep...
> 
> I'd say that BUG() simply should not trigger if wakeup can not be
> enabled/disabled for particular source...?

Pavel,

Could you please try the patch below and let me know if it fixes the
problem for you?

Thanks.

-- 
Dmitry

Input: matrix-keypad - handle cases when GPIOs can't be wakeup sources

From: Dmitry Torokhov <dmitry.torokhov@gmail.com>

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
---

 drivers/input/keyboard/matrix_keypad.c |   29 ++++++++++++++++++++++-------
 1 files changed, 22 insertions(+), 7 deletions(-)


diff --git a/drivers/input/keyboard/matrix_keypad.c b/drivers/input/keyboard/matrix_keypad.c
index 91cfe51..a1152ba 100644
--- a/drivers/input/keyboard/matrix_keypad.c
+++ b/drivers/input/keyboard/matrix_keypad.c
@@ -29,11 +29,13 @@ struct matrix_keypad {
 	unsigned short *keycodes;
 	unsigned int row_shift;
 
+	DECLARE_BITMAP(disabled_gpios, MATRIX_MAX_ROWS);
+
 	uint32_t last_key_state[MATRIX_MAX_COLS];
 	struct delayed_work work;
+	spinlock_t lock;
 	bool scan_pending;
 	bool stopped;
-	spinlock_t lock;
 };
 
 /*
@@ -221,9 +223,16 @@ static int matrix_keypad_suspend(struct platform_device *pdev, pm_message_t stat
 
 	matrix_keypad_stop(keypad->input_dev);
 
-	if (device_may_wakeup(&pdev->dev))
-		for (i = 0; i < pdata->num_row_gpios; i++)
-			enable_irq_wake(gpio_to_irq(pdata->row_gpios[i]));
+	if (device_may_wakeup(&pdev->dev)) {
+		for (i = 0; i < pdata->num_row_gpios; i++) {
+			if (!test_bit(i, keypad->disabled_gpios)) {
+				unsigned int gpio = pdata->row_gpios[i];
+
+				if (enable_irq_wake(gpio_to_irq(gpio)) == 0)
+					__set_bit(i, keypad->disabled_gpios);
+			}
+		}
+	}
 
 	return 0;
 }
@@ -234,9 +243,15 @@ static int matrix_keypad_resume(struct platform_device *pdev)
 	const struct matrix_keypad_platform_data *pdata = keypad->pdata;
 	int i;
 
-	if (device_may_wakeup(&pdev->dev))
-		for (i = 0; i < pdata->num_row_gpios; i++)
-			disable_irq_wake(gpio_to_irq(pdata->row_gpios[i]));
+	if (device_may_wakeup(&pdev->dev)) {
+		for (i = 0; i < pdata->num_row_gpios; i++) {
+			if (test_and_clear_bit(i, keypad->disabled_gpios)) {
+				unsigned int gpio = pdata->row_gpios[i];
+
+				disable_irq_wake(gpio_to_irq(gpio));
+			}
+		}
+	}
 
 	matrix_keypad_start(keypad->input_dev);
 

^ permalink raw reply related	[flat|nested] 32+ messages in thread

* Re: 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
  2009-12-03  3:17               ` Dmitry Torokhov
@ 2010-01-02 13:56                 ` Pavel Machek
  -1 siblings, 0 replies; 32+ messages in thread
From: Pavel Machek @ 2010-01-02 13:56 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Eric Miao, rpurdie, lenz, kernel list, Dirk, arminlitzel,
	Cyril Hrubis, thommycheck, linux-arm-kernel, dbaryshkov,
	omegamoon, utx, linux-input, Rafael J. Wysocki

Hi!

> > > We ignore the failure right now in the mainline but that causes stack
> > > traces on resume as we trying to disable not enabled wakeup GPIOs. That
> > > was original Pavel's complaint.
> > 
> > Yep...
> > 
> > I'd say that BUG() simply should not trigger if wakeup can not be
> > enabled/disabled for particular source...?
> 
> Pavel,
> 
> Could you please try the patch below and let me know if it fixes the
> problem for you?

(sorry for long delay).

With 33-rc1+your patch, warnings are no longer there. 

I still have one on irq191, but that's gpio button driver.

But please, hold the patch for few more days. I may have cleaner/nicer
solution. It seems that zaurus is doing something very stupid in low layers.

Thanks,
								Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

^ permalink raw reply	[flat|nested] 32+ messages in thread

* 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
@ 2010-01-02 13:56                 ` Pavel Machek
  0 siblings, 0 replies; 32+ messages in thread
From: Pavel Machek @ 2010-01-02 13:56 UTC (permalink / raw)
  To: linux-arm-kernel

Hi!

> > > We ignore the failure right now in the mainline but that causes stack
> > > traces on resume as we trying to disable not enabled wakeup GPIOs. That
> > > was original Pavel's complaint.
> > 
> > Yep...
> > 
> > I'd say that BUG() simply should not trigger if wakeup can not be
> > enabled/disabled for particular source...?
> 
> Pavel,
> 
> Could you please try the patch below and let me know if it fixes the
> problem for you?

(sorry for long delay).

With 33-rc1+your patch, warnings are no longer there. 

I still have one on irq191, but that's gpio button driver.

But please, hold the patch for few more days. I may have cleaner/nicer
solution. It seems that zaurus is doing something very stupid in low layers.

Thanks,
								Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
  2010-01-02 13:56                 ` Pavel Machek
@ 2010-01-02 15:27                   ` Pavel Machek
  -1 siblings, 0 replies; 32+ messages in thread
From: Pavel Machek @ 2010-01-02 15:27 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Eric Miao, rpurdie, lenz, kernel list, Dirk, arminlitzel,
	Cyril Hrubis, thommycheck, linux-arm-kernel, dbaryshkov,
	omegamoon, utx, linux-input, Rafael J. Wysocki

On Sat 2010-01-02 14:56:09, Pavel Machek wrote:
> Hi!
> 
> > > > We ignore the failure right now in the mainline but that causes stack
> > > > traces on resume as we trying to disable not enabled wakeup GPIOs. That
> > > > was original Pavel's complaint.
> > > 
> > > Yep...
> > > 
> > > I'd say that BUG() simply should not trigger if wakeup can not be
> > > enabled/disabled for particular source...?
> > 
> > Pavel,
> > 
> > Could you please try the patch below and let me know if it fixes the
> > problem for you?
> 
> (sorry for long delay).
> 
> With 33-rc1+your patch, warnings are no longer there. 
> 
> I still have one on irq191, but that's gpio button driver.
> 
> But please, hold the patch for few more days. I may have cleaner/nicer
> solution. It seems that zaurus is doing something very stupid in low
> layers.

I'm thinking that maybe something like this should do the trick.

--- ./arch/arm.ofic/mach-pxa/mfp-pxa2xx.c	2009-09-10 00:13:59.000000000 +0200
+++ ./arch/arm/mach-pxa/mfp-pxa2xx.c	2009-12-29 03:16:40.000000000 +0100
@@ -34,7 +34,6 @@
 struct gpio_desc {
 	unsigned	valid		: 1;
 	unsigned	can_wakeup	: 1;
-	unsigned	keypad_gpio	: 1;
 	unsigned	dir_inverted	: 1;
 	unsigned int	mask; /* bit mask in PWER or PKWR */
 	unsigned int	mux_mask; /* bit mask of muxed gpio bits, 0 if no mux */
@@ -178,9 +177,6 @@
 	if (!d->valid)
 		return -EINVAL;
 
-	if (d->keypad_gpio)
-		return -EINVAL;
-
 	mux_taken = (PWER & d->mux_mask) & (~d->mask);
 	if (on && mux_taken)
 		return -EBUSY;
@@ -231,32 +227,6 @@
 #endif /* CONFIG_PXA25x */
 
 #ifdef CONFIG_PXA27x
-static int pxa27x_pkwr_gpio[] = {
-	13, 16, 17, 34, 36, 37, 38, 39, 90, 91, 93, 94,
-	95, 96, 97, 98, 99, 100, 101, 102
-};
-
-int keypad_set_wake(unsigned int on)
-{
-	unsigned int i, gpio, mask = 0;
-
-	if (!on) {
-		PKWR = 0;
-		return 0;
-	}
-
-	for (i = 0; i < ARRAY_SIZE(pxa27x_pkwr_gpio); i++) {
-
-		gpio = pxa27x_pkwr_gpio[i];
-
-		if (gpio_desc[gpio].config & MFP_LPM_CAN_WAKEUP)
-			mask |= gpio_desc[gpio].mask;
-	}
-
-	PKWR = mask;
-	return 0;
-}
-
 #define PWER_WEMUX2_GPIO38	(1 << 16)
 #define PWER_WEMUX2_GPIO53	(2 << 16)
 #define PWER_WEMUX2_GPIO40	(3 << 16)
@@ -273,6 +243,12 @@
 	gpio_desc[(gpio)].mux_mask = PWER_ ## mux ## _MASK;	\
 } while (0)
 
+
+static int pxa27x_pkwr_gpio[] = {
+	13, 16, 17, 34, 36, 37, 38, 39, 90, 91, 93, 94,
+	95, 96, 97, 98, 99, 100, 101, 102
+};
+
 static void __init pxa27x_mfp_init(void)
 {
 	int i, gpio;
@@ -291,7 +267,6 @@
 	for (i = 0; i < ARRAY_SIZE(pxa27x_pkwr_gpio); i++) {
 		gpio = pxa27x_pkwr_gpio[i];
 		gpio_desc[gpio].can_wakeup = 1;
-		gpio_desc[gpio].keypad_gpio = 1;
 		gpio_desc[gpio].mask = 1 << i;
 	}
 
--- ./arch/arm.ofic/mach-pxa/pxa27x.c	2009-09-10 00:13:59.000000000 +0200
+++ ./arch/arm/mach-pxa/pxa27x.c	2009-12-29 03:13:00.000000000 +0100
@@ -323,9 +323,6 @@
 	if (gpio >= 0 && gpio < 128)
 		return gpio_set_wake(gpio, on);
 
-	if (irq == IRQ_KEYPAD)
-		return keypad_set_wake(on);
-
 	switch (irq) {
 	case IRQ_RTCAlrm:
 		mask = PWER_RTC;



-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

^ permalink raw reply	[flat|nested] 32+ messages in thread

* 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
@ 2010-01-02 15:27                   ` Pavel Machek
  0 siblings, 0 replies; 32+ messages in thread
From: Pavel Machek @ 2010-01-02 15:27 UTC (permalink / raw)
  To: linux-arm-kernel

On Sat 2010-01-02 14:56:09, Pavel Machek wrote:
> Hi!
> 
> > > > We ignore the failure right now in the mainline but that causes stack
> > > > traces on resume as we trying to disable not enabled wakeup GPIOs. That
> > > > was original Pavel's complaint.
> > > 
> > > Yep...
> > > 
> > > I'd say that BUG() simply should not trigger if wakeup can not be
> > > enabled/disabled for particular source...?
> > 
> > Pavel,
> > 
> > Could you please try the patch below and let me know if it fixes the
> > problem for you?
> 
> (sorry for long delay).
> 
> With 33-rc1+your patch, warnings are no longer there. 
> 
> I still have one on irq191, but that's gpio button driver.
> 
> But please, hold the patch for few more days. I may have cleaner/nicer
> solution. It seems that zaurus is doing something very stupid in low
> layers.

I'm thinking that maybe something like this should do the trick.

--- ./arch/arm.ofic/mach-pxa/mfp-pxa2xx.c	2009-09-10 00:13:59.000000000 +0200
+++ ./arch/arm/mach-pxa/mfp-pxa2xx.c	2009-12-29 03:16:40.000000000 +0100
@@ -34,7 +34,6 @@
 struct gpio_desc {
 	unsigned	valid		: 1;
 	unsigned	can_wakeup	: 1;
-	unsigned	keypad_gpio	: 1;
 	unsigned	dir_inverted	: 1;
 	unsigned int	mask; /* bit mask in PWER or PKWR */
 	unsigned int	mux_mask; /* bit mask of muxed gpio bits, 0 if no mux */
@@ -178,9 +177,6 @@
 	if (!d->valid)
 		return -EINVAL;
 
-	if (d->keypad_gpio)
-		return -EINVAL;
-
 	mux_taken = (PWER & d->mux_mask) & (~d->mask);
 	if (on && mux_taken)
 		return -EBUSY;
@@ -231,32 +227,6 @@
 #endif /* CONFIG_PXA25x */
 
 #ifdef CONFIG_PXA27x
-static int pxa27x_pkwr_gpio[] = {
-	13, 16, 17, 34, 36, 37, 38, 39, 90, 91, 93, 94,
-	95, 96, 97, 98, 99, 100, 101, 102
-};
-
-int keypad_set_wake(unsigned int on)
-{
-	unsigned int i, gpio, mask = 0;
-
-	if (!on) {
-		PKWR = 0;
-		return 0;
-	}
-
-	for (i = 0; i < ARRAY_SIZE(pxa27x_pkwr_gpio); i++) {
-
-		gpio = pxa27x_pkwr_gpio[i];
-
-		if (gpio_desc[gpio].config & MFP_LPM_CAN_WAKEUP)
-			mask |= gpio_desc[gpio].mask;
-	}
-
-	PKWR = mask;
-	return 0;
-}
-
 #define PWER_WEMUX2_GPIO38	(1 << 16)
 #define PWER_WEMUX2_GPIO53	(2 << 16)
 #define PWER_WEMUX2_GPIO40	(3 << 16)
@@ -273,6 +243,12 @@
 	gpio_desc[(gpio)].mux_mask = PWER_ ## mux ## _MASK;	\
 } while (0)
 
+
+static int pxa27x_pkwr_gpio[] = {
+	13, 16, 17, 34, 36, 37, 38, 39, 90, 91, 93, 94,
+	95, 96, 97, 98, 99, 100, 101, 102
+};
+
 static void __init pxa27x_mfp_init(void)
 {
 	int i, gpio;
@@ -291,7 +267,6 @@
 	for (i = 0; i < ARRAY_SIZE(pxa27x_pkwr_gpio); i++) {
 		gpio = pxa27x_pkwr_gpio[i];
 		gpio_desc[gpio].can_wakeup = 1;
-		gpio_desc[gpio].keypad_gpio = 1;
 		gpio_desc[gpio].mask = 1 << i;
 	}
 
--- ./arch/arm.ofic/mach-pxa/pxa27x.c	2009-09-10 00:13:59.000000000 +0200
+++ ./arch/arm/mach-pxa/pxa27x.c	2009-12-29 03:13:00.000000000 +0100
@@ -323,9 +323,6 @@
 	if (gpio >= 0 && gpio < 128)
 		return gpio_set_wake(gpio, on);
 
-	if (irq == IRQ_KEYPAD)
-		return keypad_set_wake(on);
-
 	switch (irq) {
 	case IRQ_RTCAlrm:
 		mask = PWER_RTC;



-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
  2010-01-02 15:27                   ` Pavel Machek
@ 2010-01-02 21:06                     ` Pavel Machek
  -1 siblings, 0 replies; 32+ messages in thread
From: Pavel Machek @ 2010-01-02 21:06 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Eric Miao, rpurdie, lenz, kernel list, Dirk, arminlitzel,
	Cyril Hrubis, thommycheck, linux-arm-kernel, dbaryshkov,
	omegamoon, utx, linux-input, Rafael J. Wysocki

On Sat 2010-01-02 16:27:24, Pavel Machek wrote:
> On Sat 2010-01-02 14:56:09, Pavel Machek wrote:
> > Hi!
> > 
> > > > > We ignore the failure right now in the mainline but that causes stack
> > > > > traces on resume as we trying to disable not enabled wakeup GPIOs. That
> > > > > was original Pavel's complaint.
> > > > 
> > > > Yep...
> > > > 
> > > > I'd say that BUG() simply should not trigger if wakeup can not be
> > > > enabled/disabled for particular source...?
> > > 
> > > Pavel,
> > > 
> > > Could you please try the patch below and let me know if it fixes the
> > > problem for you?
> > 
> > (sorry for long delay).
> > 
> > With 33-rc1+your patch, warnings are no longer there. 
> > 
> > I still have one on irq191, but that's gpio button driver.
> > 
> > But please, hold the patch for few more days. I may have cleaner/nicer
> > solution. It seems that zaurus is doing something very stupid in low
> > layers.
> 
> I'm thinking that maybe something like this should do the trick.

And it does, simplyfing pxa-specific code. More testing would be nice,
but I guess simplifying pxa is preferable to adding workarounds in
input.

Signed-off-by: Pavel Machek <pavel@ucw.cz>

> --- ./arch/arm.ofic/mach-pxa/mfp-pxa2xx.c	2009-09-10 00:13:59.000000000 +0200
> +++ ./arch/arm/mach-pxa/mfp-pxa2xx.c	2009-12-29 03:16:40.000000000 +0100
> @@ -34,7 +34,6 @@
>  struct gpio_desc {
>  	unsigned	valid		: 1;
>  	unsigned	can_wakeup	: 1;
> -	unsigned	keypad_gpio	: 1;
>  	unsigned	dir_inverted	: 1;
>  	unsigned int	mask; /* bit mask in PWER or PKWR */
>  	unsigned int	mux_mask; /* bit mask of muxed gpio bits, 0 if no mux */
> @@ -178,9 +177,6 @@
>  	if (!d->valid)
>  		return -EINVAL;
>  
> -	if (d->keypad_gpio)
> -		return -EINVAL;
> -
>  	mux_taken = (PWER & d->mux_mask) & (~d->mask);
>  	if (on && mux_taken)
>  		return -EBUSY;
> @@ -231,32 +227,6 @@
>  #endif /* CONFIG_PXA25x */
>  
>  #ifdef CONFIG_PXA27x
> -static int pxa27x_pkwr_gpio[] = {
> -	13, 16, 17, 34, 36, 37, 38, 39, 90, 91, 93, 94,
> -	95, 96, 97, 98, 99, 100, 101, 102
> -};
> -
> -int keypad_set_wake(unsigned int on)
> -{
> -	unsigned int i, gpio, mask = 0;
> -
> -	if (!on) {
> -		PKWR = 0;
> -		return 0;
> -	}
> -
> -	for (i = 0; i < ARRAY_SIZE(pxa27x_pkwr_gpio); i++) {
> -
> -		gpio = pxa27x_pkwr_gpio[i];
> -
> -		if (gpio_desc[gpio].config & MFP_LPM_CAN_WAKEUP)
> -			mask |= gpio_desc[gpio].mask;
> -	}
> -
> -	PKWR = mask;
> -	return 0;
> -}
> -
>  #define PWER_WEMUX2_GPIO38	(1 << 16)
>  #define PWER_WEMUX2_GPIO53	(2 << 16)
>  #define PWER_WEMUX2_GPIO40	(3 << 16)
> @@ -273,6 +243,12 @@
>  	gpio_desc[(gpio)].mux_mask = PWER_ ## mux ## _MASK;	\
>  } while (0)
>  
> +
> +static int pxa27x_pkwr_gpio[] = {
> +	13, 16, 17, 34, 36, 37, 38, 39, 90, 91, 93, 94,
> +	95, 96, 97, 98, 99, 100, 101, 102
> +};
> +
>  static void __init pxa27x_mfp_init(void)
>  {
>  	int i, gpio;
> @@ -291,7 +267,6 @@
>  	for (i = 0; i < ARRAY_SIZE(pxa27x_pkwr_gpio); i++) {
>  		gpio = pxa27x_pkwr_gpio[i];
>  		gpio_desc[gpio].can_wakeup = 1;
> -		gpio_desc[gpio].keypad_gpio = 1;
>  		gpio_desc[gpio].mask = 1 << i;
>  	}
>  
> --- ./arch/arm.ofic/mach-pxa/pxa27x.c	2009-09-10 00:13:59.000000000 +0200
> +++ ./arch/arm/mach-pxa/pxa27x.c	2009-12-29 03:13:00.000000000 +0100
> @@ -323,9 +323,6 @@
>  	if (gpio >= 0 && gpio < 128)
>  		return gpio_set_wake(gpio, on);
>  
> -	if (irq == IRQ_KEYPAD)
> -		return keypad_set_wake(on);
> -
>  	switch (irq) {
>  	case IRQ_RTCAlrm:
>  		mask = PWER_RTC;
> 
> 
> 

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

^ permalink raw reply	[flat|nested] 32+ messages in thread

* 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
@ 2010-01-02 21:06                     ` Pavel Machek
  0 siblings, 0 replies; 32+ messages in thread
From: Pavel Machek @ 2010-01-02 21:06 UTC (permalink / raw)
  To: linux-arm-kernel

On Sat 2010-01-02 16:27:24, Pavel Machek wrote:
> On Sat 2010-01-02 14:56:09, Pavel Machek wrote:
> > Hi!
> > 
> > > > > We ignore the failure right now in the mainline but that causes stack
> > > > > traces on resume as we trying to disable not enabled wakeup GPIOs. That
> > > > > was original Pavel's complaint.
> > > > 
> > > > Yep...
> > > > 
> > > > I'd say that BUG() simply should not trigger if wakeup can not be
> > > > enabled/disabled for particular source...?
> > > 
> > > Pavel,
> > > 
> > > Could you please try the patch below and let me know if it fixes the
> > > problem for you?
> > 
> > (sorry for long delay).
> > 
> > With 33-rc1+your patch, warnings are no longer there. 
> > 
> > I still have one on irq191, but that's gpio button driver.
> > 
> > But please, hold the patch for few more days. I may have cleaner/nicer
> > solution. It seems that zaurus is doing something very stupid in low
> > layers.
> 
> I'm thinking that maybe something like this should do the trick.

And it does, simplyfing pxa-specific code. More testing would be nice,
but I guess simplifying pxa is preferable to adding workarounds in
input.

Signed-off-by: Pavel Machek <pavel@ucw.cz>

> --- ./arch/arm.ofic/mach-pxa/mfp-pxa2xx.c	2009-09-10 00:13:59.000000000 +0200
> +++ ./arch/arm/mach-pxa/mfp-pxa2xx.c	2009-12-29 03:16:40.000000000 +0100
> @@ -34,7 +34,6 @@
>  struct gpio_desc {
>  	unsigned	valid		: 1;
>  	unsigned	can_wakeup	: 1;
> -	unsigned	keypad_gpio	: 1;
>  	unsigned	dir_inverted	: 1;
>  	unsigned int	mask; /* bit mask in PWER or PKWR */
>  	unsigned int	mux_mask; /* bit mask of muxed gpio bits, 0 if no mux */
> @@ -178,9 +177,6 @@
>  	if (!d->valid)
>  		return -EINVAL;
>  
> -	if (d->keypad_gpio)
> -		return -EINVAL;
> -
>  	mux_taken = (PWER & d->mux_mask) & (~d->mask);
>  	if (on && mux_taken)
>  		return -EBUSY;
> @@ -231,32 +227,6 @@
>  #endif /* CONFIG_PXA25x */
>  
>  #ifdef CONFIG_PXA27x
> -static int pxa27x_pkwr_gpio[] = {
> -	13, 16, 17, 34, 36, 37, 38, 39, 90, 91, 93, 94,
> -	95, 96, 97, 98, 99, 100, 101, 102
> -};
> -
> -int keypad_set_wake(unsigned int on)
> -{
> -	unsigned int i, gpio, mask = 0;
> -
> -	if (!on) {
> -		PKWR = 0;
> -		return 0;
> -	}
> -
> -	for (i = 0; i < ARRAY_SIZE(pxa27x_pkwr_gpio); i++) {
> -
> -		gpio = pxa27x_pkwr_gpio[i];
> -
> -		if (gpio_desc[gpio].config & MFP_LPM_CAN_WAKEUP)
> -			mask |= gpio_desc[gpio].mask;
> -	}
> -
> -	PKWR = mask;
> -	return 0;
> -}
> -
>  #define PWER_WEMUX2_GPIO38	(1 << 16)
>  #define PWER_WEMUX2_GPIO53	(2 << 16)
>  #define PWER_WEMUX2_GPIO40	(3 << 16)
> @@ -273,6 +243,12 @@
>  	gpio_desc[(gpio)].mux_mask = PWER_ ## mux ## _MASK;	\
>  } while (0)
>  
> +
> +static int pxa27x_pkwr_gpio[] = {
> +	13, 16, 17, 34, 36, 37, 38, 39, 90, 91, 93, 94,
> +	95, 96, 97, 98, 99, 100, 101, 102
> +};
> +
>  static void __init pxa27x_mfp_init(void)
>  {
>  	int i, gpio;
> @@ -291,7 +267,6 @@
>  	for (i = 0; i < ARRAY_SIZE(pxa27x_pkwr_gpio); i++) {
>  		gpio = pxa27x_pkwr_gpio[i];
>  		gpio_desc[gpio].can_wakeup = 1;
> -		gpio_desc[gpio].keypad_gpio = 1;
>  		gpio_desc[gpio].mask = 1 << i;
>  	}
>  
> --- ./arch/arm.ofic/mach-pxa/pxa27x.c	2009-09-10 00:13:59.000000000 +0200
> +++ ./arch/arm/mach-pxa/pxa27x.c	2009-12-29 03:13:00.000000000 +0100
> @@ -323,9 +323,6 @@
>  	if (gpio >= 0 && gpio < 128)
>  		return gpio_set_wake(gpio, on);
>  
> -	if (irq == IRQ_KEYPAD)
> -		return keypad_set_wake(on);
> -
>  	switch (irq) {
>  	case IRQ_RTCAlrm:
>  		mask = PWER_RTC;
> 
> 
> 

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
  2010-01-02 13:56                 ` Pavel Machek
@ 2010-01-03  7:57                   ` Dmitry Torokhov
  -1 siblings, 0 replies; 32+ messages in thread
From: Dmitry Torokhov @ 2010-01-03  7:57 UTC (permalink / raw)
  To: Pavel Machek
  Cc: Eric Miao, rpurdie, lenz, kernel list, Dirk, arminlitzel,
	Cyril Hrubis, thommycheck, linux-arm-kernel, dbaryshkov,
	omegamoon, utx, linux-input, Rafael J. Wysocki

On Sat, Jan 02, 2010 at 02:56:09PM +0100, Pavel Machek wrote:
> Hi!
> 
> > > > We ignore the failure right now in the mainline but that causes stack
> > > > traces on resume as we trying to disable not enabled wakeup GPIOs. That
> > > > was original Pavel's complaint.
> > > 
> > > Yep...
> > > 
> > > I'd say that BUG() simply should not trigger if wakeup can not be
> > > enabled/disabled for particular source...?
> > 
> > Pavel,
> > 
> > Could you please try the patch below and let me know if it fixes the
> > problem for you?
> 
> (sorry for long delay).
> 
> With 33-rc1+your patch, warnings are no longer there. 
> 

Thank you for testing.

> I still have one on irq191, but that's gpio button driver.
> 
> But please, hold the patch for few more days. I may have cleaner/nicer
> solution. It seems that zaurus is doing something very stupid in low layers.

Sorry, it is already upstream. However I do think that the change is
needed. As long as set_irq_wake() may return an error the driver should
handle such error. Especially matrix_keypad that operates with large
number of GPIOs but has only one knob for enabling wakeup.

-- 
Dmitry

^ permalink raw reply	[flat|nested] 32+ messages in thread

* 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
@ 2010-01-03  7:57                   ` Dmitry Torokhov
  0 siblings, 0 replies; 32+ messages in thread
From: Dmitry Torokhov @ 2010-01-03  7:57 UTC (permalink / raw)
  To: linux-arm-kernel

On Sat, Jan 02, 2010 at 02:56:09PM +0100, Pavel Machek wrote:
> Hi!
> 
> > > > We ignore the failure right now in the mainline but that causes stack
> > > > traces on resume as we trying to disable not enabled wakeup GPIOs. That
> > > > was original Pavel's complaint.
> > > 
> > > Yep...
> > > 
> > > I'd say that BUG() simply should not trigger if wakeup can not be
> > > enabled/disabled for particular source...?
> > 
> > Pavel,
> > 
> > Could you please try the patch below and let me know if it fixes the
> > problem for you?
> 
> (sorry for long delay).
> 
> With 33-rc1+your patch, warnings are no longer there. 
> 

Thank you for testing.

> I still have one on irq191, but that's gpio button driver.
> 
> But please, hold the patch for few more days. I may have cleaner/nicer
> solution. It seems that zaurus is doing something very stupid in low layers.

Sorry, it is already upstream. However I do think that the change is
needed. As long as set_irq_wake() may return an error the driver should
handle such error. Especially matrix_keypad that operates with large
number of GPIOs but has only one knob for enabling wakeup.

-- 
Dmitry

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
  2010-01-03  7:57                   ` Dmitry Torokhov
@ 2010-01-03  8:00                     ` Pavel Machek
  -1 siblings, 0 replies; 32+ messages in thread
From: Pavel Machek @ 2010-01-03  8:00 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Eric Miao, rpurdie, lenz, kernel list, Dirk, arminlitzel,
	Cyril Hrubis, thommycheck, linux-arm-kernel, dbaryshkov,
	omegamoon, utx, linux-input, Rafael J. Wysocki

On Sat 2010-01-02 23:57:33, Dmitry Torokhov wrote:
> On Sat, Jan 02, 2010 at 02:56:09PM +0100, Pavel Machek wrote:
> > Hi!
> > 
> > > > > We ignore the failure right now in the mainline but that causes stack
> > > > > traces on resume as we trying to disable not enabled wakeup GPIOs. That
> > > > > was original Pavel's complaint.
> > > > 
> > > > Yep...
> > > > 
> > > > I'd say that BUG() simply should not trigger if wakeup can not be
> > > > enabled/disabled for particular source...?
> > > 
> > > Pavel,
> > > 
> > > Could you please try the patch below and let me know if it fixes the
> > > problem for you?
> > 
> > (sorry for long delay).
> > 
> > With 33-rc1+your patch, warnings are no longer there. 
> > 
> 
> Thank you for testing.
> 
> > I still have one on irq191, but that's gpio button driver.
> > 
> > But please, hold the patch for few more days. I may have cleaner/nicer
> > solution. It seems that zaurus is doing something very stupid in low layers.
> 
> Sorry, it is already upstream. However I do think that the change is
> needed. As long as set_irq_wake() may return an error the driver should
> handle such error. Especially matrix_keypad that operates with large
> number of GPIOs but has only one knob for enabling wakeup.

Ok, no problem. I still get problems with gpio-button driver, but
there wakeup is per-button so... I'll just fix the wakeup handling on
zaurus.
									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

^ permalink raw reply	[flat|nested] 32+ messages in thread

* 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related?
@ 2010-01-03  8:00                     ` Pavel Machek
  0 siblings, 0 replies; 32+ messages in thread
From: Pavel Machek @ 2010-01-03  8:00 UTC (permalink / raw)
  To: linux-arm-kernel

On Sat 2010-01-02 23:57:33, Dmitry Torokhov wrote:
> On Sat, Jan 02, 2010 at 02:56:09PM +0100, Pavel Machek wrote:
> > Hi!
> > 
> > > > > We ignore the failure right now in the mainline but that causes stack
> > > > > traces on resume as we trying to disable not enabled wakeup GPIOs. That
> > > > > was original Pavel's complaint.
> > > > 
> > > > Yep...
> > > > 
> > > > I'd say that BUG() simply should not trigger if wakeup can not be
> > > > enabled/disabled for particular source...?
> > > 
> > > Pavel,
> > > 
> > > Could you please try the patch below and let me know if it fixes the
> > > problem for you?
> > 
> > (sorry for long delay).
> > 
> > With 33-rc1+your patch, warnings are no longer there. 
> > 
> 
> Thank you for testing.
> 
> > I still have one on irq191, but that's gpio button driver.
> > 
> > But please, hold the patch for few more days. I may have cleaner/nicer
> > solution. It seems that zaurus is doing something very stupid in low layers.
> 
> Sorry, it is already upstream. However I do think that the change is
> needed. As long as set_irq_wake() may return an error the driver should
> handle such error. Especially matrix_keypad that operates with large
> number of GPIOs but has only one knob for enabling wakeup.

Ok, no problem. I still get problems with gpio-button driver, but
there wakeup is per-button so... I'll just fix the wakeup handling on
zaurus.
									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

^ permalink raw reply	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2010-01-03  8:00 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-09-30 20:07 32-rc1 aka 32-rc2: warning at manage.c:361 (set_irq_wake), matrix-keypad related? Pavel Machek
2009-09-30 20:07 ` Pavel Machek
2009-09-30 20:07 ` Pavel Machek
2009-10-06  5:06 ` Dmitry Torokhov
2009-10-06  5:06   ` Dmitry Torokhov
2009-10-06  5:06   ` Dmitry Torokhov
2009-10-06  7:58   ` Pavel Machek
2009-10-06  7:58     ` Pavel Machek
2009-10-07  4:36     ` Dmitry Torokhov
2009-10-07  4:36       ` Dmitry Torokhov
2009-10-07  4:36       ` Dmitry Torokhov
2009-10-07 14:42       ` Eric Miao
2009-10-07 14:42         ` Eric Miao
2009-10-07 14:42         ` Eric Miao
2009-10-07 16:33         ` Dmitry Torokhov
2009-10-07 16:33           ` Dmitry Torokhov
2009-10-07 16:33           ` Dmitry Torokhov
2009-10-07 21:12           ` Pavel Machek
2009-10-07 21:12             ` Pavel Machek
2009-10-07 21:12             ` Pavel Machek
2009-12-03  3:17             ` Dmitry Torokhov
2009-12-03  3:17               ` Dmitry Torokhov
2010-01-02 13:56               ` Pavel Machek
2010-01-02 13:56                 ` Pavel Machek
2010-01-02 15:27                 ` Pavel Machek
2010-01-02 15:27                   ` Pavel Machek
2010-01-02 21:06                   ` Pavel Machek
2010-01-02 21:06                     ` Pavel Machek
2010-01-03  7:57                 ` Dmitry Torokhov
2010-01-03  7:57                   ` Dmitry Torokhov
2010-01-03  8:00                   ` Pavel Machek
2010-01-03  8:00                     ` Pavel Machek

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.