高通平台关机闹钟设置

高通平台Andorid默认不支持关机闹钟,需要手动修改。Andorid O以前的Andorid版本可通过如下修改达到关机闹钟的功能。

1、修改设备树文件,将qcom,qpnp-rtc-alarm-pwrup值改为1。

    qcom,pm8941_rtc {
        spmi-dev-container;
        compatible = "qcom,qpnp-rtc";
        #address-cells = <1>;
        #size-cells = <1>;
        qcom,qpnp-rtc-write = <0>;
        qcom,qpnp-rtc-alarm-pwrup = <1>;

2、经过上诉修改之后设置闹钟,关机,闹钟时间到后,设备会开机,但是开机完成后,闹钟时间也就过了,所以闹钟不会响。这时候我们需要让设备提前开机,在设定闹钟时间到之前开机,我这里是设置提前两分钟开机。设置方法如下:

修改alarmtimer.c文件

Index: alarmtimer.c
===================================================================
--- alarmtimer.c	(revision 2721)
+++ alarmtimer.c	(revision 2722)
@@ -26,6 +26,10 @@
 #include <linux/workqueue.h>
 #include <linux/freezer.h>
 
+#define ALARM_DELTA 120
+
 #ifdef CONFIG_MSM_PM
 #include "lpm-levels.h"
 #endif
@@ -147,6 +151,19 @@
 	alarm_delta = wall_time.tv_sec - rtc_secs;
 	alarm_time = alarm_secs - alarm_delta;
 
+	/*
+	 * Substract ALARM_DELTA from actual alarm time
+	 * to powerup the device before actual alarm
+	 * expiration.
+	 */
+	if ((alarm_time - ALARM_DELTA) > rtc_secs)
+		alarm_time -= ALARM_DELTA;
+
+	if (alarm_time <= rtc_secs)
+		goto disable_alarm;
+
 	rtc_time_to_tm(alarm_time, &alarm.time);
 	alarm.enabled = 1;
 	rc = rtc_set_alarm(rtcdev, &alarm);

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值