aboutsummaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
Diffstat (limited to 'main')
-rw-r--r--main/enigma.cpp23
1 files changed, 22 insertions, 1 deletions
diff --git a/main/enigma.cpp b/main/enigma.cpp
index 307edd5a..0893b035 100644
--- a/main/enigma.cpp
+++ b/main/enigma.cpp
@@ -1,5 +1,8 @@
-#include <stdio.h>
#include <unistd.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/ioctl.h>
#include <libsig_comp.h>
#include <lib/actions/action.h>
@@ -277,6 +280,24 @@ void runMainloop()
void quitMainloop(int exitCode)
{
+ FILE *f = fopen("/proc/stb/fp/was_timer_wakeup", "w");
+ if (f)
+ {
+ fprintf(f, "%d", 0);
+ fclose(f);
+ }
+ else
+ {
+ int fd = open("/dev/dbox/fp0", O_WRONLY);
+ if (fd >= 0)
+ {
+ if (ioctl(fd, 10 /*FP_CLEAR_WAKEUP_TIMER*/) < 0)
+ eDebug("FP_CLEAR_WAKEUP_TIMER failed (%m)");
+ close(fd);
+ }
+ else
+ eDebug("open /dev/dbox/fp0 for wakeup timer clear failed!(%m)");
+ }
exit_code = exitCode;
eApp->quit(0);
}