• Kuogee Hsieh's avatar
    drm/msm/dpu: improve DSC allocation · 858ddb64
    Kuogee Hsieh authored
    At DSC V1.1 DCE (Display Compression Engine) contains a DSC encoder.
    However, at DSC V1.2 DCE consists of two DSC encoders, one has an odd
    index and another one has an even index. Each encoder can work
    independently. But only two DSC encoders from same DCE can be paired
    to work together to support DSC merge mode at DSC V1.2. For DSC V1.1
    two consecutive DSC encoders (start with even index) have to be paired
    to support DSC merge mode.  In addition, the DSC with even index have
    to be mapped to even PINGPONG index and DSC with odd index have to be
    mapped to odd PINGPONG index at its data path in regardless of DSC
    V1.1 or V1.2. This patch improves DSC allocation mechanism with
    consideration of those factors.
    
    Changes in V6:
    -- rename _dpu_rm_reserve_dsc_single to _dpu_rm_dsc_alloc
    -- rename _dpu_rm_reserve_dsc_pair to _dpu_rm_dsc_alloc_pair
    -- pass global_state to _dpu_rm_pingpong_next_index()
    -- remove pp_max
    -- fix for loop condition check at _dpu_rm_dsc_alloc()
    
    Changes in V5:
    -- delete dsc_id[]
    -- update to global_state->dsc_to_enc_id[] directly
    -- replace ndx with idx
    -- fix indentation at function declaration
    -- only one for loop at _dpu_rm_reserve_dsc_single()
    
    Changes in V4:
    -- rework commit message
    -- use reserved_by_other()
    -- add _dpu_rm_pingpong_next_index()
    -- revise _dpu_rm_pingpong_dsc_check()
    
    Changes in V3:
    -- add dpu_rm_pingpong_dsc_check()
    -- for pair allocation use i += 2 at for loop
    
    Changes in V2:
        -- split _dpu_rm_reserve_dsc() into _dpu_rm_reserve_dsc_single() and
           _dpu_rm_reserve_dsc_pair()
    
    Fixes: f2803ee9 ("drm/msm/disp/dpu1: Add DSC support in RM")
    Signed-off-by: default avatarKuogee Hsieh <quic_khsieh@quicinc.com>
    Reviewed-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Patchwork: https://patchwork.freedesktop.org/patch/572144/
    Link: https://lore.kernel.org/r/1702580172-30606-1-git-send-email-quic_khsieh@quicinc.comSigned-off-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
    858ddb64
dpu_rm.c 18.9 KB