mirror of
https://github.com/PixelExperience-Devices/device_xiaomi_sm6250-common.git
synced 2025-05-02 20:17:16 +09:00
Revert "sm6250-common: power-libperfmgr: remove Google-specific display LPM control"
This reverts commit 0d73bffba1c8ce97ce466976f0ad8e42e11ba4f5. Signed-off-by: Volodymyr Zhdanov <wight554@gmail.com> Conflicts: power-libperfmgr/Power.cpp
This commit is contained in:
parent
ecba31cbdb
commit
bc8039f973
@ -24,7 +24,8 @@ cc_binary {
|
||||
relative_install_path: "hw",
|
||||
vintf_fragments: ["android.hardware.power@1.3-service.xiaomi_sm6250.xml"],
|
||||
init_rc: ["android.hardware.power@1.3-service.xiaomi_sm6250-libperfmgr.rc"],
|
||||
srcs: ["service.cpp", "Power.cpp", "InteractionHandler.cpp"],
|
||||
srcs: ["service.cpp", "Power.cpp", "InteractionHandler.cpp",
|
||||
"display-helper.cpp"],
|
||||
cflags: [
|
||||
"-Wall",
|
||||
"-Werror",
|
||||
|
@ -27,6 +27,8 @@
|
||||
#include <utils/Trace.h>
|
||||
|
||||
#include "Power.h"
|
||||
#include "display-helper.h"
|
||||
|
||||
#include <linux/input.h>
|
||||
|
||||
constexpr int kWakeupModeOff = 4;
|
||||
@ -131,6 +133,13 @@ Return<void> Power::powerHint(PowerHint_1_0 hint, int32_t data) {
|
||||
}
|
||||
break;
|
||||
case PowerHint_1_0::LOW_POWER:
|
||||
if (data) {
|
||||
// Device in battery saver mode, enable display low power mode
|
||||
set_display_lpm(true);
|
||||
} else {
|
||||
// Device exiting battery saver mode, disable display low power mode
|
||||
set_display_lpm(false);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
74
power-libperfmgr/display-helper.cpp
Normal file
74
power-libperfmgr/display-helper.cpp
Normal file
@ -0,0 +1,74 @@
|
||||
/*
|
||||
* Copyright (C) 2018 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#define LOG_NIDEBUG 0
|
||||
#define LOG_TAG "android.hardware.power@1.3-service.xiaomi_sm6250-libperfmgr"
|
||||
|
||||
#include <dlfcn.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <inttypes.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <cutils/sockets.h>
|
||||
#include <log/log.h>
|
||||
|
||||
#include "display-helper.h"
|
||||
|
||||
#define DAEMON_SOCKET "pps"
|
||||
|
||||
static int daemon_socket = -1;
|
||||
|
||||
static int connectPPDaemon() {
|
||||
// Setup socket connection, if not already done.
|
||||
if (daemon_socket < 0)
|
||||
daemon_socket =
|
||||
socket_local_client(DAEMON_SOCKET, ANDROID_SOCKET_NAMESPACE_RESERVED, SOCK_STREAM);
|
||||
|
||||
if (daemon_socket < 0) {
|
||||
ALOGE("Connecting to socket failed: %s", strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ppdComm(const char *cmd) {
|
||||
int ret = -1;
|
||||
|
||||
ret = connectPPDaemon();
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
ret = write(daemon_socket, cmd, strlen(cmd));
|
||||
if (ret < 0) {
|
||||
ALOGE("Failed to send data over socket, %s", strerror(errno));
|
||||
return ret;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void set_display_lpm(int enable) {
|
||||
ALOGI("set_display_lpm state: %d", enable);
|
||||
if (enable) {
|
||||
ppdComm("foss:on");
|
||||
} else {
|
||||
ppdComm("foss:off");
|
||||
}
|
||||
}
|
28
power-libperfmgr/display-helper.h
Normal file
28
power-libperfmgr/display-helper.h
Normal file
@ -0,0 +1,28 @@
|
||||
/*
|
||||
* Copyright (C) 2018 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef POWER_LIBPERFMGR_DISPLAY_HELPER_H_
|
||||
#define POWER_LIBPERFMGR_DISPLAY_HELPER_H_
|
||||
|
||||
enum display_lpm_state {
|
||||
DISPLAY_LPM_OFF = 0,
|
||||
DISPLAY_LPM_ON,
|
||||
DISPLAY_LPM_UNKNOWN,
|
||||
};
|
||||
|
||||
void set_display_lpm(int enable);
|
||||
|
||||
#endif // POWER_LIBPERFMGR_DISPLAY_HELPER_H_
|
Loading…
x
Reference in New Issue
Block a user