一般默认的时钟都是连续时钟,但是有些情况下需要改为非连续时钟。
连续时钟:
非连续时钟:
LK修改:
- 修改hfp的值,增大(多试几次看,修改到屏幕显示正常,修改不对会闪屏)
static struct panel_resolution xxx_video_panel_res = { 800, 1280, hfp, 40, 20, 0, 16, 12, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
- 修改非连续模式hfp-power-mode
static struct videopanel_info xxx_video_video_panel = { - 0, 0, 0, 0, 1, 1, 2, 0, 0x9 + 0, 1, 0, 0, 1, 1, 2, 0, 0x9 };
-
hfp值改变,时序 timing也要跟着改变,按照修改的时序表格修改static const uint32_t xxx_video_timings[] 和 static struct panel_timing xxx_video_timing_info
kernel修改:
- qcom,mdss-dsi-h-front-porch = <xxx>; //hfp 与 lk 值一样
- qcom,mdss-dsi-hfp-power-mode; //新增非连续模式
-
qcom,mdss-dsi-panel-timings //修改timing与 lk 值一样
-
修改 qcom,mdss-dsi-t-clk-post 和 qcom,mdss-dsi-t-clk-pre 。和 lk 的 xxx_video_timing_info 一致