问题描述
1.MIPI上电时有时会延迟很久才出图
2.MIPI频繁的上下电导致偶发的延迟出图
3.双MIPI-上电时dsi1出图比dsi0晚
解决方案:
1.kernel-5.10\drivers\gpu\drm\drm_probe_helper.c
if (dev->mode_config.poll_enabled) {
//schedule_delayed_work执行前,对应的线程就再执行,那你就得等1~10s
-- //schedule_delayed_work(&dev->mode_config.output_poll_work,0);
++ mod_delayed_work(system_wq,&dev->mode_config.output_poll_work,0);
}
schedule_delayed_work是将工作推迟插入工作队列,然后等待指定的时间后执行。在执行前,如果对应的工作已经在队列中,那么会取消原有的工作重新插入。
mod_delayed_work则是修改现有工作项的执行时间。如果工作已经在队列中,那么就会更新工作的执行时间为指定的时间。
2.hardware\rockchip\hwcomposer\drmhwc2\drm\invalidateworker.cpp
void InvalidateWorker::InvalidateControl(uint64_t refresh, int refresh_cnt) {
if(refresh_ == refresh &&
refresh_cnt_ == refresh_cnt)
return;
-- //Lock();
refresh_ = refresh;
refresh_cnt_ = refresh_cnt;
-- //Unlock();
Signal();
}
我屏幕的供电皆由外部提供,如果是由3588提供,这个修改是否有作用暂未验证。
3.我这由于是外部供电,直接将dsi中的几个delay配置去除了就可以了。