• Sean Paul's avatar
    drm/msm: dpu: Untangle frame_done timeout units · 70df9610
    Sean Paul authored
    There exists a bunch of confusion as to what the actual units of
    frame_done is:
    
    - The definition states it's in # of frames
    - CRTC treats it like it's ms
    - frame_done_timeout comment thinks it's Hz, but it stores ms
    - frame_done timer is setup such that it _should_ be in frames, but the
      timeout is super long
    
    So this patch tries to interpret what the driver really wants. I've
    de-centralized the #define since the consumers are expecting different
    units.
    
    For crtc, we just use 60ms since that's what it was doing before.
    Perhaps we could get fancy and scale with vrefresh, but that's for
    another time.
    
    For encoder, fix the comments and rename frame_done_timeout so it's
    obvious what the units are. In practice, frame_done_timeout is really
    just checked against 0 || !0, which I guess is why the units being wrong
    didn't matter. I've also dropped the timeout from the previous 60 frames
    to 5. That seems like more than enough time to give up on a frame, and
    my guess is that no one intended for the timeout to _actually_ be 60
    frames.
    Reviewed-by: default avatarFritz Koenig <frkoenig@google.com>
    Signed-off-by: default avatarSean Paul <seanpaul@chromium.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190128204306.95076-3-sean@poorly.runSigned-off-by: default avatarRob Clark <robdclark@chromium.org>
    70df9610
dpu_kms.h 7.4 KB