• Boris Brezillon's avatar
    drm/atmel-hlcdc: Simplify the HLCDC layer logic · 9a45d33c
    Boris Brezillon authored
    An HLCDC layers in Atmel's nomenclature is either a DRM plane or a 'Post
    Processing Layer' which can be used to output the results of the HLCDC
    composition in a memory buffer.
    
    atmel_hlcdc_layer.c was designed to be generic enough to be re-usable in
    both cases, but we're not exposing the post-processing layer yet, and
    even if we were, I'm not sure the code would provide the necessary tools
    to manipulate this kind of layer.
    
    Moreover, the code in atmel_hlcdc_{plane,layer}.c was designed before the
    atomic modesetting API, and was trying solve the
    check-setting/commit-if-ok/rollback-otherwise problem, which is now
    entirely solved by the existing core infrastructure.
    
    And finally, the code in atmel_hlcdc_layer.c is over-complicated compared
    to what we really need. This rework is a good excuse to simplify it. Note
    that this rework solves an existing resource leak (leading to a -EBUSY
    error) which I failed to clearly identify.
    Signed-off-by: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
    Acked-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Reviewed-by: default avatarEric Anholt <eric@anholt.net>
    Tested-by: default avatarNicolas Ferre <nicolas.ferre@microchip.com>
    9a45d33c
atmel_hlcdc_plane.c 28.7 KB