• Kalyan Thota's avatar
    drm/msm/disp/dpu1: turn off vblank irqs aggressively in dpu driver · 73743e72
    Kalyan Thota authored
    Set the flag vblank_disable_immediate = true to turn off vblank irqs
    immediately as soon as drm_vblank_put is requested so that there are
    no irqs triggered during idle state. This will reduce cpu wakeups
    and help in power saving.
    
    To enable vblank_disable_immediate flag the underlying KMS driver
    needs to support high precision vblank timestamping and also a
    reliable way of providing vblank counter which is incrementing
    at the leading edge of vblank.
    
    This patch also brings in changes to support vblank_disable_immediate
    requirement in dpu driver.
    
    Changes in v1:
     - Specify reason to add vblank timestamp support. (Rob).
     - Add changes to provide vblank counter from dpu driver.
    
    Changes in v2:
     - Fix warn stack reported by Rob Clark with v2 patch.
    
    Changes in v3:
     - Move back to HW frame counter (Rob).
    
    Changes in v4:
     - Frame count mismatch was causing a DRM WARN stack spew.
       DPU HW will increment the frame count at the end of
       the sync, where as vblank will be triggered at the
       fetch_start counter which is calculated as v_total - vfp.
       This is to start fetching early for panels with low
       vbp w.r.t hw latency lines.
    
       Add logic to detect the line count if it falls between
       vactive and v_total then return incremented frame count value.
    Signed-off-by: default avatarKalyan Thota <kalyan_t@codeaurora.org>
    Link: https://lore.kernel.org/r/1613651746-12783-1-git-send-email-kalyan_t@codeaurora.orgSigned-off-by: default avatarRob Clark <robdclark@chromium.org>
    73743e72
dpu_encoder.h 5.81 KB