• Animesh Manna's avatar
    drm/i915/dsb: Pre allocate and late cleanup of cmd buffer · afeda4f3
    Animesh Manna authored
    Pre-allocate command buffer in atomic_commit using intel_dsb_prepare
    function which also includes pinning and map in cpu domain.
    
    No functional change is dsb write/commit functions.
    
    Now dsb get/put function is removed and ref-count mechanism is
    not needed. Below dsb api added to do respective job mentioned
    below.
    
    intel_dsb_prepare - Allocate, pin and map the buffer.
    intel_dsb_cleanup - Unpin and release the gem object.
    
    RFC: Initial patch for design review.
    v2: included _init() part in _prepare(). [Daniel, Ville]
    v3: dsb_cleanup called after cleanup_planes. [Daniel]
    v4: dsb structure is moved to intel_crtc_state from intel_crtc. [Maarten]
    v5: dsb get/put/ref-count mechanism removed. [Maarten]
    v6: Based on review feedback following changes are added,
    - replaced intel_dsb structure by pointer in intel_crtc_state. [Maarten]
    - passing intel_crtc_state to dsp-api to simplify the code. [Maarten]
    - few dsb functions prototype modified to simplify code.
    v7: added few cosmetic changes suggested by Jani and null check for
    crtc_state in dsb_cleanup removed as suggested by Maarten.
    v8: changed the function parameter to intel_crtc_state* of
    ivb_load_lut_ext_max() from intel_crtc. [Maarten]
    v9: error handling improved in _write() and prepare(). [Maarten]
    
    Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Cc: Jani Nikula <jani.nikula@intel.com>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Acked-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Reviewed-by: default avatarMaarten Lankhorst <maarten.lankhorst@intel.com>
    Signed-off-by: default avatarAnimesh Manna <animesh.manna@intel.com>
    Signed-off-by: default avatarUma Shankar <uma.shankar@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20200520130737.11240-1-animesh.manna@intel.com
    afeda4f3
intel_atomic.c 17.3 KB