sm6250-common: Add support for event-based tap to wake gesture control

Change-Id: Id963e3c7302a7ee46a5a6b6d1b743a5718d71f4c
This commit is contained in:
AbhiShek Aggarwal 2019-01-30 20:51:44 +00:00 committed by Volodymyr Zhdanov
parent 74c8ed136b
commit be94045ad9
4 changed files with 27 additions and 3 deletions

View File

@ -41,6 +41,10 @@ cc_binary {
"android.hardware.power@1.2", "android.hardware.power@1.2",
"android.hardware.power@1.3", "android.hardware.power@1.3",
"libperfmgr", "libperfmgr",
],
header_libs: [
"libhardware_headers",
"generated_kernel_headers",
], ],
proprietary: true, proprietary: true,
} }

View File

@ -28,6 +28,11 @@
#include <utils/Trace.h> #include <utils/Trace.h>
#include "Power.h" #include "Power.h"
#include <linux/input.h>
constexpr char kWakeupEventNode[] = "/dev/input/event2";
constexpr int kWakeupModeOff = 4;
constexpr int kWakeupModeOn = 5;
namespace android { namespace android {
namespace hardware { namespace hardware {
@ -136,8 +141,20 @@ Return<void> Power::powerHint(PowerHint_1_0 hint, int32_t data) {
return Void(); return Void();
} }
Return<void> Power::setFeature(Feature /*feature*/, bool /*activate*/) { Return<void> Power::setFeature(Feature feature, bool activate) {
// Nothing to do switch (feature) {
case Feature::POWER_FEATURE_DOUBLE_TAP_TO_WAKE: {
int fd = open(kWakeupEventNode, O_RDWR);
struct input_event ev;
ev.type = EV_SYN;
ev.code = SYN_CONFIG;
ev.value = activate ? kWakeupModeOn : kWakeupModeOff;
write(fd, &ev, sizeof(ev));
close(fd);
} break;
default:
break;
}
return Void(); return Void();
} }

View File

@ -1,7 +1,7 @@
service vendor.power-hal-1-3 /vendor/bin/hw/android.hardware.power@1.3-service.xiaomi_sm6250-libperfmgr service vendor.power-hal-1-3 /vendor/bin/hw/android.hardware.power@1.3-service.xiaomi_sm6250-libperfmgr
class hal class hal
user root user root
group system group system input
priority -20 priority -20
interface android.hardware.power@1.0::IPower default interface android.hardware.power@1.0::IPower default
interface android.hardware.power@1.1::IPower default interface android.hardware.power@1.1::IPower default

3
sepolicy/vendor/hal_power_default.te vendored Normal file
View File

@ -0,0 +1,3 @@
# Allow hal_power_default to write to dt2w nodes
allow hal_power_default input_device:dir search;
allow hal_power_default input_device:chr_file rw_file_perms;