Hi,
I'm still a bit stuck with trying to get button based resume to work on 6sl with 3.0.35. I had previously asked a related question here: imx-keypad wakeup from suspend on 6sl using linux 3.0.35
I have implemented the changes to make sure the imx-keypad row/col pins are kept as non-gpio pins when entering suspend. I can also see that after waking up from suspend, an interrupt was indeed generated and processed from the keypad pins. But it did not cause wakeup. I see during resume (using uart):
wl1271: down
udc suspend begins
USB Gadget suspend ends
add wake up source irq 58
add wake up source irq 51
PM: suspend of devices complete after 9.865 msecs
PM: late suspend of devices complete after 0.500 msecs
PM: early resume of devices complete after 0.343 msecs
remove wake up source irq 51
remove wake up source irq 58
From /proc/interrupts after resume:
114: 2 GIC imx-keypad
I believe the root cause for the problem is the wake up source irq 114 (for keypad) was not added during the suspend so even though the interrupt was generated, it was ignored.
I can see that mx6_gic_irq_set_wake is what generates that message about "add wake up source". But I haven't figured out what registers that irq and why that's missing for imx-keypad. imx-keypad.c calls device_init_wakeup so it seems like registration should work.
I would appreciate any suggestions/ideas.
Thanks!
Hi Jaya
one can look at patch below where keypad is implemented
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Igor,
Thanks for your reply. However, as you may know, that patchset is already included in the fsl 3.0.35 kernel.
/home/lucid/6sl/ltib/rpm/BUILD/linux-3.0.35/patches/1617-ENGR00213749-imx6sl-Add-keypad-support-on-EINK-DC3-b.patch
lucid@ubuntu:~/6sl/ltib/rpm/BUILD/linux-3.0.35$ egrep KEYBOARD_IMX .config
CONFIG_KEYBOARD_IMX=y
lucid@ubuntu:~/6sl/ltib/rpm/BUILD/linux-3.0.35$ egrep IMX_KEYPAD .config
CONFIG_IMX_HAVE_PLATFORM_IMX_KEYPAD=y
The problem I'm encountering is different and is specific to failure to resume because the imx-keypad doesn't get registered as a wakeup source. I'll have to figure out why that's happening.
Thanks.