Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 981b18db authored by Mao Jinlong's avatar Mao Jinlong
Browse files

alarmtimer : Remove power_on_alarm_init



power_on_alarm_init is for some special mode like power off charging
mode. It is to read the rtc alarm value when boot-up. When resume
happens, set the value back to rtc register.

But now qtimer is used to wake-up from suspend state instead of RTC_ALARM.
Rtc alarm will not be canceled after suspend and resume for all kind of
modes.

So remove power_on_alarm_init and set power off alarm work in alarmtimer
resume.

CRs-Fixed: 2070501
Change-Id: I2aaf0a56b7bf5cf66b1f554d09d8e11b84cba58f
Signed-off-by: default avatarMao Jinlong <c_jmao@codeaurora.org>
parent 5052aadf
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -20,7 +20,6 @@
#include <linux/spmi.h>
#include <linux/spinlock.h>
#include <linux/spmi.h>
#include <linux/alarmtimer.h>

/* RTC/ALARM Register offsets */
#define REG_OFFSET_ALARM_RW	0x40
@@ -605,9 +604,6 @@ static int qpnp_rtc_probe(struct spmi_device *spmi)
		goto fail_rtc_enable;
	}

	/* Init power_on_alarm after adding rtc device */
	power_on_alarm_init();

	/* Request the alarm IRQ */
	rc = request_any_context_irq(rtc_dd->rtc_alarm_irq,
				 qpnp_alarm_trigger, IRQF_TRIGGER_RISING,
+0 −1
Original line number Diff line number Diff line
@@ -51,7 +51,6 @@ void alarm_restart(struct alarm *alarm);
int alarm_try_to_cancel(struct alarm *alarm);
int alarm_cancel(struct alarm *alarm);
void set_power_on_alarm(void);
void power_on_alarm_init(void);
enum alarmtimer_type clock2alarm(clockid_t clockid);

u64 alarm_forward(struct alarm *alarm, ktime_t now, ktime_t interval);
+0 −33
Original line number Diff line number Diff line
@@ -60,38 +60,6 @@ static struct rtc_timer rtctimer;
static struct rtc_device	*rtcdev;
static DEFINE_SPINLOCK(rtcdev_lock);
static struct mutex power_on_alarm_lock;
static struct alarm init_alarm;

/**
 * power_on_alarm_init - Init power on alarm value
 *
 * Read rtc alarm value after device booting up and add this alarm
 * into alarm queue.
 */
void power_on_alarm_init(void)
{
	struct rtc_wkalrm rtc_alarm;
	struct rtc_time rt;
	unsigned long alarm_time;
	struct rtc_device *rtc;
	ktime_t alarm_ktime;

	rtc = alarmtimer_get_rtcdev();

	if (!rtc)
		return;

	rtc_read_alarm(rtc, &rtc_alarm);
	rt = rtc_alarm.time;

	rtc_tm_to_time(&rt, &alarm_time);

	if (alarm_time) {
		alarm_ktime = ktime_set(alarm_time, 0);
		alarm_init(&init_alarm, ALARM_POWEROFF_REALTIME, NULL);
		alarm_start(&init_alarm, alarm_ktime);
	}
}

/**
 * set_power_on_alarm - set power on alarm value into rtc register
@@ -496,7 +464,6 @@ static int alarmtimer_resume(struct device *dev)
		return 0;
	rtc_timer_cancel(rtc, &rtctimer);

	queue_delayed_work(power_off_alarm_workqueue, &work, 0);
	return 0;
}