mirror of
https://github.com/PixelExperience-Devices/device_xiaomi_sm6250-common.git
synced 2025-05-03 04:27:16 +09:00
sm6250-common: power-libperfmgr: simply wait if idle state node is not present
Change-Id: I93dd97e5437761d2d969f93a5af0cae864fd0a65 Signed-off-by: Jesse Chan <jc@lineageos.org>
This commit is contained in:
parent
92e0ba3049
commit
ff37699a86
@ -65,15 +65,14 @@ bool InteractionHandler::Init() {
|
|||||||
if (mState != INTERACTION_STATE_UNINITIALIZED)
|
if (mState != INTERACTION_STATE_UNINITIALIZED)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
int fd = fb_idle_open();
|
mIdleFd = fb_idle_open();
|
||||||
if (fd < 0)
|
|
||||||
return false;
|
|
||||||
mIdleFd = fd;
|
|
||||||
|
|
||||||
mEventFd = eventfd(0, EFD_NONBLOCK);
|
mEventFd = eventfd(0, EFD_NONBLOCK);
|
||||||
if (mEventFd < 0) {
|
if (mEventFd < 0) {
|
||||||
ALOGE("Unable to create event fd (%d)", errno);
|
ALOGE("Unable to create event fd (%d)", errno);
|
||||||
close(mIdleFd);
|
if (mIdleFd >= 0) {
|
||||||
|
close(mIdleFd);
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,7 +95,9 @@ void InteractionHandler::Exit() {
|
|||||||
mThread->join();
|
mThread->join();
|
||||||
|
|
||||||
close(mEventFd);
|
close(mEventFd);
|
||||||
close(mIdleFd);
|
if (mIdleFd >= 0) {
|
||||||
|
close(mIdleFd);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void InteractionHandler::PerfLock() {
|
void InteractionHandler::PerfLock() {
|
||||||
@ -212,6 +213,18 @@ void InteractionHandler::WaitForIdle(int32_t wait_ms, int32_t timeout_ms) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mIdleFd < 0) {
|
||||||
|
ret = poll(pfd, 1, timeout_ms);
|
||||||
|
if (ret > 0) {
|
||||||
|
ALOGV("%s: wait for duration aborted", __func__);
|
||||||
|
return;
|
||||||
|
} else if (ret < 0) {
|
||||||
|
ALOGE("%s: Error on waiting for duration (%zd)", __func__, ret);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
ret = pread(mIdleFd, data, sizeof(data), 0);
|
ret = pread(mIdleFd, data, sizeof(data), 0);
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
ALOGE("%s: Unexpected EOF!", __func__);
|
ALOGE("%s: Unexpected EOF!", __func__);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user