mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
chore: remove all echo shell out in kobo resume routine
This commit is contained in:
@@ -355,21 +355,20 @@ function Kobo:suspend()
|
||||
|
||||
-]]
|
||||
|
||||
-- NOTE: Sets gSleep_Mode_Suspend to 1. Used as a flag throughout the
|
||||
-- kernel to suspend/resume various subsystems
|
||||
-- cf. kernel/power/main.c @ L#207
|
||||
f = io.open("/sys/power/state-extended", "w")
|
||||
if not f then
|
||||
logger.err("Cannot open /sys/power/state-extended for writing!")
|
||||
return false
|
||||
end
|
||||
-- NOTE: Sets gSleep_Mode_Suspend to 1. Used as a flag throughout the
|
||||
-- kernel to suspend/resume various subsystems
|
||||
-- cf. kernel/power/main.c @ L#207
|
||||
re, err_msg, err_code = f:write("1\n")
|
||||
logger.info("Write syscall returned: ", re)
|
||||
io.close(f)
|
||||
logger.info("Kobo Suspend: Asked the kernel to put subsystems to sleep, ret:", re)
|
||||
if not re then
|
||||
logger.err('write error: ', err_msg, err_code)
|
||||
end
|
||||
io.close(f)
|
||||
logger.info("Kobo Suspend: Asked the kernel to put subsystems to sleep")
|
||||
|
||||
util.sleep(2)
|
||||
logger.info("Kobo Suspend: Waited for 2s because of reasons...")
|
||||
@@ -400,7 +399,14 @@ function Kobo:suspend()
|
||||
logger.info("Kobo Suspend: Asking for a suspend to RAM . . .")
|
||||
f = io.open("/sys/power/state", "w")
|
||||
if not f then
|
||||
-- TODO: update state-extended?
|
||||
-- reset state-extend back to 0 since we are giving up
|
||||
local ext_fd = io.open("/sys/power/state-extended", "w")
|
||||
if not ext_fd then
|
||||
logger.err("Cannot open /sys/power/state-extended for writing!")
|
||||
else
|
||||
ext_fd:write("0\n")
|
||||
io.close(ext_fd)
|
||||
end
|
||||
return false
|
||||
end
|
||||
re, err_msg, err_code = f:write("mem\n")
|
||||
@@ -441,17 +447,29 @@ end
|
||||
|
||||
function Kobo:resume()
|
||||
-- Now that we're up, unflag subsystems for suspend...
|
||||
os.execute("echo 0 > /sys/power/state-extended")
|
||||
logger.info("Kobo Suspend: Unflagged kernel subsystems for suspend")
|
||||
-- NOTE: Sets gSleep_Mode_Suspend to 0. Used as a flag throughout the
|
||||
-- kernel to suspend/resume various subsystems
|
||||
-- cf. kernel/power/main.c @ L#207
|
||||
local f = io.open("/sys/power/state-extended", "w")
|
||||
if not f then
|
||||
logger.err("Cannot open /sys/power/state-extended for writing!")
|
||||
return false
|
||||
end
|
||||
local re, err_msg, err_code = f:write("0\n")
|
||||
io.close(f)
|
||||
logger.info("Kobo Suspend: Unflagged kernel subsystems for suspend, ret:", re)
|
||||
if not re then
|
||||
logger.err('write error: ', err_msg, err_code)
|
||||
end
|
||||
|
||||
-- HACK: wait a bit (0.1 sec) for the kernel to catch up
|
||||
util.usleep(100000)
|
||||
-- cf. #1862, I can reliably break IR touch input on resume...
|
||||
-- cf. also #1943 for the rationale behind applying this workaorund in every case...
|
||||
local f = io.open("/sys/devices/virtual/input/input1/neocmd", "r")
|
||||
f = io.open("/sys/devices/virtual/input/input1/neocmd", "r")
|
||||
if f ~= nil then
|
||||
f:write("a\n")
|
||||
io.close(f)
|
||||
os.execute("echo 'a' > /sys/devices/virtual/input/input1/neocmd")
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user