aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/rtc/alarm-dev.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/rtc/alarm-dev.c')
-rw-r--r--drivers/rtc/alarm-dev.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/rtc/alarm-dev.c b/drivers/rtc/alarm-dev.c
index 78d80d7..55f4896 100644
--- a/drivers/rtc/alarm-dev.c
+++ b/drivers/rtc/alarm-dev.c
@@ -68,8 +68,9 @@ static long alarm_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
uint32_t alarm_type_mask = 1U << alarm_type;
#if defined(CONFIG_RTC_ALARM_BOOT)
char bootalarm_data[14];
+#elif defined(CONFIG_RTC_POWER_OFF)
+ char pwroffalarm_data[14];
#endif
-
if (alarm_type >= ANDROID_ALARM_TYPE_COUNT)
return -EINVAL;
@@ -171,6 +172,14 @@ from_old_alarm_set:
}
rv = alarm_set_alarm_boot(bootalarm_data);
break;
+#elif defined(CONFIG_RTC_POWER_OFF)
+ case ANDROID_ALARM_SET_ALARM_POWEROFF:
+ if (copy_from_user(pwroffalarm_data, (void __user *)arg, 14)) {
+ rv = -EFAULT;
+ goto err1;
+ }
+ rv = alarm_set_alarm_poweroff(pwroffalarm_data);
+ break;
#endif
case ANDROID_ALARM_GET_TIME(0):
switch (alarm_type) {