diff --git a/src/lynq/lib/libpoweralarm/libpoweralarm.c b/src/lynq/lib/libpoweralarm/libpoweralarm.c
old mode 100644
new mode 100755
index 0cc3eb8..b63d663
--- a/src/lynq/lib/libpoweralarm/libpoweralarm.c
+++ b/src/lynq/lib/libpoweralarm/libpoweralarm.c
@@ -19,6 +19,9 @@
 ssize_t poweralarm(char *buffer);
 
 ssize_t wakealarm(char *buffer);
+
+int cancel_wakealarm(void);
+
 /*****************************************************************************
 * 
 *   Prototype    : poweralarm
@@ -56,7 +59,7 @@
 /*****************************************************************************
 *   Prototype    : wakealarm
 *   Description  : set the wake-up alarm clock in low power mode
-*   Input        : char *buffer ;  input format : 04-23-15-30-00 ( Mon-Day-Hour-Min-Sec ) Or  1200 ( seconds )              
+*   Input        : char *buffer ;  input format : 04-23-15-30-00 ( Mon-Day-Hour-Min-Sec ) Or  1200 ( seconds )
 *   Output       : None
 *   Return Value : -1: error ; >0: set to wake up the devices after seconds
 *
@@ -65,14 +68,15 @@
 {
     ssize_t sec;
     char *time_buff = NULL;
-
+    int ret;
     sec = format_change(buffer); //computing seconds for lowpower alarm
     if(sec < 60)
     {
         ALOGI("No Mattch\n");
         return -1;
     }
-    
+    ret = system("echo +0 > /sys/class/rtc/rtc0/wakealarm");
+    RLOGD("close wakealarm ret= %d\n", ret);
     time_buff = (char*)malloc(100);
     bzero(time_buff,100);
 
@@ -84,3 +88,45 @@
 
     return sec; // wake-up devices after sec seconds
 }
+
+
+/*****************************************************************************
+*   Prototype    : cancel wakealarm
+*   Description  : cancel the wake-up alarm clock in low power mode
+*   Input        : void
+*   Output       : int
+*   Return Value : -1: error ; 0: cannel wakealarm success
+*
+*****************************************************************************/
+
+int cancel_wakealarm(void)
+{
+     int ret;
+    ret = system("echo +0 > /sys/class/rtc/rtc0/wakealarm");
+    RLOGD("close wakealarm ret= %d\n", ret);
+    return ret;
+
+}
+
+/*****************************************************************************
+*   Prototype    : check wake up by rtc
+*   Description  : check weather AP is waked up by RTC
+*   Input        : void
+*   Output       : int
+*   Return Value : 1: AP is waked up by rtc ; 0: AP is not waked up by rtc
+*
+*****************************************************************************/
+
+int check_wakeupbydtr(void)
+{
+    FILE *fp;
+    char buf[4];
+    int ret;
+    fp = popen("cat /proc/driver/rtc_wakeup","r");
+    fgets(buf, sizeof(buf), fp);
+    RLOGD("buf=%s\n", buf);
+    ret=atoi(buf);
+    pclose(fp);
+    return ret;
+
+}
