(dayu200)rk3568 5.1.0 release版本,无法进入休眠

环境:DAYU200
系统:OpenHarmony 5.1.0 release
通过zh-cn/release-notes/OpenHarmony-v5.1.0-release.md · OpenHarmony/docs - Gitee.com自己拉取编译或者使用release的镜像
系统放置一会出现如下log:
[ 167.430650] PM: suspend entry (deep)
[ 169.432321] PM: suspend entry (deep)
[ 173.433558] PM: suspend entry (deep)
[ 181.434807] PM: suspend entry (deep)
[ 197.436030] PM: suspend entry (deep)
根据log分析,kernel拒绝deep sleep模式
[ 197.436030] PM: suspend entry (deep)
[ 197.436069] PM: reject deep sleep
分析3568 6.6内核,发现suspend接口新增strcmp(mem_sleep_labels[state], "deep")判断(5.10内核没有这段逻辑),按照内核接口要求,应该是拒绝deep sleep,
int pm_suspend(suspend_state_t state)
{
int error;
if (state <= PM_SUSPEND_ON || state >= PM_SUSPEND_MAX)
return -EINVAL;
pr_info("suspend entry (%s)\n", mem_sleep_labels[state]);
if (strcmp(mem_sleep_labels[state], "deep") == 0) {
pr_info("reject deep sleep");
return -EINVAL;
}
error = enter_state(state);
if (error) {
suspend_stats.fail++;
dpm_save_failed_errno(error);
} else {
suspend_stats.success++;
}
pr_info("suspend exit\n");
return error;
}
EXPORT_SYMBOL(pm_suspend);
您需要先 登录 才能评论/回答

全部评论(4)
看了下6.6主线上没有这部分判断
通过patch打上去的,6.6内核的patch相比5.10内核的patch只多了一条打印:
你可以对比下这两个patch看看有什么别的改动:

2025-05-09 19:06:50
引用:“其他版本是什么意思,kernel5.10和kernel6.6的kernel.patch,对pm_suspend这个函数打的patch唯一的不同是kernel6.6多了一句 + pr_info("reject deep sleep"); 没有实质性改动,应该不是这里的问题。”
用dayu200,烧录的这个版本“RK3568标准系统解决方案(二进制) 5.1.0 Release 站点 SHA256校验码 9.7 GB(https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-v5.1.0-release.md)”,就会有reject deep sleep

引用:“我表达有误,我说的kernel 5.10指的是其他版本,目前openharmony 5.1使用的6.6的内核,openharmony4.0/4.1/5.0使用的都是5.10的内核,这几个版本也都没问题,这个修改应该是5.1 release新增的patch,我在dayu200上直接使用社区release的镜像,也是同样的问题,reject deep sleep ”
其他版本是什么意思,kernel5.10和kernel6.6的kernel.patch,对pm_suspend这个函数打的patch唯一的不同是kernel6.6多了一句 + pr_info("reject deep sleep"); 没有实质性改动,应该不是这里的问题。

我表达有误,我说的kernel 5.10指的是其他版本,目前openharmony 5.1使用的6.6的内核,openharmony4.0/4.1/5.0使用的都是5.10的内核,这几个版本也都没问题,这个修改应该是5.1 release新增的patch,我在dayu200上直接使用社区release的镜像,也是同样的问题,reject deep sleep

