• Ayan Kumar Halder's avatar
    drm/arm/malidp: Set the AFBC register bits if the framebuffer has AFBC modifier · 54b4260a
    Ayan Kumar Halder authored
    Added the AFBC decoder registers for DP500 , DP550 and DP650.
    These registers control the processing of AFBC buffers. It controls various
    features like AFBC decoder enable, lossless transformation and block split
    as well as setting of the left, right, top and bottom cropping of AFBC
    buffers (in number of pixels).
    All the layers (except DE_SMART) support framebuffers with AFBC modifiers.
    One needs to set the pixel values of the top, left, bottom and right
    cropping for the AFBC framebuffer.
    Cropping an AFBC framebuffer is controlled by the AFBC crop registers.
    In that case, the layer input size registers should be configured with
    framebuffer's dimensions and not with drm_plane_state source width/height
    values (which is used for non AFBC framebuffer to denote cropping).
    
    Changes from v1:
     - Removed the "if (fb->modifier)" check from malidp_de_plane_update()
    and added it in malidp_de_set_plane_afbc(). This will consolidate all the
    AFBC specific register configurations in a single function ie
    malidp_de_set_plane_afbc().
    
    Changes from v2:
     - For AFBC framebuffer, layer input size register should be set to
    framebuffer's width and height.
    
    Changes from v3:
    - Rebased on top of latest drm-misc-next
    - Some cleanups/sanity changes based on Liviu's comments
    
    Changes from 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/291760/?series=57895&rev=1
    54b4260a
malidp_planes.c 24.7 KB