• Animesh Manna's avatar
    drm/i915/dsb: DSB context creation. · 67f3b58f
    Animesh Manna authored
    This patch adds a function, which will internally get the gem buffer
    for DSB engine. The GEM buffer is from global GTT, and is mapped into
    CPU domain, contains the data + opcode to be feed to DSB engine.
    
    v1: Initial version.
    
    v2:
    - removed some unwanted code. (Chris)
    - Used i915_gem_object_create_internal instead of _shmem. (Chris)
    - cmd_buf_tail removed and can be derived through vma object. (Chris)
    
    v3: vma realeased if i915_gem_object_pin_map() failed. (Shashank)
    
    v4: for simplification and based on current usage added single dsb
    object in intel_crtc. (Shashank)
    
    v5: seting NULL to cmd_buf moved outside of mutex in dsb-put(). (Shashank)
    
    v6:
    - refcount machanism added.
    - Used atomic_add_return and atomic_dec_and_test instead of
    atomic_inc and atomic_dec. (Jani)
    
    Cc: Imre Deak <imre.deak@intel.com>
    Cc: Michel Thierry <michel.thierry@intel.com>
    Cc: Jani Nikula <jani.nikula@intel.com>
    Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Cc: Shashank Sharma <shashank.sharma@intel.com>
    Signed-off-by: default avatarAnimesh Manna <animesh.manna@intel.com>
    [Jani: added #include <linux/types.h> while pushing]
    Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190920115930.27829-3-animesh.manna@intel.com
    67f3b58f
intel_dsb.c 1.83 KB