mirror of
https://github.com/PixelExperience-Devices/device_xiaomi_sm6250-common.git
synced 2025-05-03 04:27: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",
|
relative_install_path: "hw",
|
||||||
vintf_fragments: ["android.hardware.power@1.3-service.xiaomi_sm6250.xml"],
|
vintf_fragments: ["android.hardware.power@1.3-service.xiaomi_sm6250.xml"],
|
||||||
init_rc: ["android.hardware.power@1.3-service.xiaomi_sm6250-libperfmgr.rc"],
|
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: [
|
cflags: [
|
||||||
"-Wall",
|
"-Wall",
|
||||||
"-Werror",
|
"-Werror",
|
||||||
|
@ -27,6 +27,8 @@
|
|||||||
#include <utils/Trace.h>
|
#include <utils/Trace.h>
|
||||||
|
|
||||||
#include "Power.h"
|
#include "Power.h"
|
||||||
|
#include "display-helper.h"
|
||||||
|
|
||||||
#include <linux/input.h>
|
#include <linux/input.h>
|
||||||
|
|
||||||
constexpr int kWakeupModeOff = 4;
|
constexpr int kWakeupModeOff = 4;
|
||||||
@ -131,6 +133,13 @@ Return<void> Power::powerHint(PowerHint_1_0 hint, int32_t data) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case PowerHint_1_0::LOW_POWER:
|
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;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
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