• Ayan Kumar Halder's avatar
    drm/arm/malidp:- Define a common list of AFBC format modifiers supported for DP500, DP550 and DP650 · 5e290226
    Ayan Kumar Halder authored
    We need to define a common list of format modifiers supported by each of
    the Mali display processors.
    
    The following are the constraints with AFBC:-
    
    1. AFBC is not supported for the formats defined in
    malidp_hw_format_is_linear_only()
    
    2. Some of the formats are supported only with AFBC modifiers. Thus we have
    introduced a new function 'malidp_hw_format_is_afbc_only()' which verifies
    the same.
    
    3. AFBC_FORMAT_MOD_YTR needs to be provided for any RGB format.
    
    4. Formats <= 16bpp cannot support AFBC_FORMAT_MOD_SPLIT.
    
    5. CBR should not be set for non-subsampled formats.
    
    6. SMART layer does not support framebuffer with AFBC modifiers.
    Return -EINVAL for such a scenario.
    
    7. AFBC_FORMAT_MOD_YTR is not supported for any YUV formats.
    
    8. Formats which are subsampled cannot support AFBC_FORMAT_MOD_SPLIT.
    However in DP550, YUV_420_10BIT is supported with AFBC_FORMAT_MOD_SPLIT.
    This feature has been identified with
    MALIDP_DEVICE_AFBC_YUV_420_10_SUPPORT_SPLIT.
    
    9. In DP550 and DP650, for YUYV, the hardware supports different
    format-ids to be used with and without AFBC modifier. We have used the
    feature 'MALIDP_DEVICE_AFBC_YUYV_USE_422_P2' to identify this
    characteristic.
    
    10. DP500 does not support split mode (ie AFBC_FORMAT_MOD_SPLIT). We have
    used the feature 'MALIDP_DEVICE_AFBC_SUPPORT_SPLIT' to identify the DPs
    which support SPLIT mode.
    
    11. DP550 supports YUV420 with split mode. We have defined the feature
    'AFBC_SUPPORT_SPLIT_WITH_YUV_420_10' to identify this characteristic.
    
    Changes since v1:-
    - Merged https://patchwork.freedesktop.org/patch/265215/ into this patch
    - As Liviu pointed out in the last patch, we can pull the checks outside
    of the 'while (*modifiers != DRM_FORMAT_MOD_INVALID)' loop
    - Rebased
    
    Changes since v3 (series):
    - Added the ack
    - Rebased on the latest drm-misc-next
    Signed-off-by: default avatarAyan Kumar halder <ayan.halder@arm.com>
    Reviewed-by: default avatarLiviu Dudau <liviu.dudau@arm.com>
    Acked-by: default avatarAlyssa Rosenzweig <alyssa@rosenzweig.io>
    Link: https://patchwork.freedesktop.org/patch/291762/?series=57895&rev=1
    5e290226
malidp_drv.c 27.8 KB