Qualcomm LCD continuous clock modified to discontinuous clock

Generally, the default clock is a continuous clock, but in some cases it needs to be changed to a non-continuous clock.

Continuous clock:

Discontinuous clock:

LK modification:

  • Modify the value of hfp and increase it (try several times to see, modify until the screen display is normal, if the modification is incorrect, the screen will flicker)
    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       
     };
    
  • Modify the discontinuous mode 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
     };
    
  • When the hfp value changes, the timing timing also changes accordingly. Modify static const uint32_t xxx_video_timings[] and static struct panel_timing xxx_video_timing_info according to the modified timing table

kernel modification:

  • qcom,mdss-dsi-h-front-porch = <xxx>; //hfp is the same as lk
  • qcom,mdss-dsi-hfp-power-mode; //New non-continuous mode
  • qcom,mdss-dsi-panel-timings //Modify the timing to be the same as the lk value

  • Modify qcom,mdss-dsi-t-clk-post and qcom,mdss-dsi-t-clk-pre. Consistent with lk's xxx_video_timing_info

Guess you like

Origin blog.csdn.net/weixin_42432281/article/details/124747294