短按power键切换suspend/resume

找到比较好的对于android内核wakelock的分析:
http://blog.csdn.net/lizhiguo0532/article/details/6453581
http://blog.csdn.net/lizhiguo0532/article/details/6453587
http://blog.csdn.net/lizhiguo0532/article/details/6453595

需要长按power键才能亮屏,短按则是只到一半就又suspend了。
解决办法是在keyboard的resume中上报一个power按键事件。

drivers/input/keyboard/s3c-keypad.c 
static int s3c_keypad_resume(struct platform_device *dev)
{

#ifdef CONFIG_ANDROID
#include <mach/regs-clock.h>
#define KEYCODE_UNKNOWN 26 //jeff 10
        mask = readl(S5P_WAKEUP_STAT);
        //printk("%s: S5P_WAKEUP_STAT = 0x%x\n",__func__,mask);
        /* send power key when waked up by keypad or external interrupt */
        if (mask & 0x21)
        {
                input_report_key(idev, KEYCODE_UNKNOWN, 1);
                udelay(5);
                input_report_key(idev, KEYCODE_UNKNOWN, 0);
        }
#endif

}

原本的上报值为10,必须改成和power键上报值26.  然后短按power键就可以切换
suspend/resume模式了。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值