lkml.org 
[lkml]   [2017]   [Jun]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.11 092/150] drm/msm: Expose our reservation object when exporting a dmabuf.
    Date
    4.11-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Eric Anholt <eric@anholt.net>

    commit 43523eba79bda8f5b4c27f8ffe20ea078d20113a upstream.

    Without this, polling on the dma-buf (and presumably other devices
    synchronizing against our rendering) would return immediately, even
    while the BO was busy.

    Signed-off-by: Eric Anholt <eric@anholt.net>
    Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: Rob Clark <robdclark@gmail.com>
    Cc: linux-arm-msm@vger.kernel.org
    Cc: freedreno@lists.freedesktop.org
    Reviewed-by: Rob Clark <robdclark@gmail.com>
    Signed-off-by: Rob Clark <robdclark@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/gpu/drm/msm/msm_drv.c | 1 +
    drivers/gpu/drm/msm/msm_drv.h | 1 +
    drivers/gpu/drm/msm/msm_gem_prime.c | 7 +++++++
    3 files changed, 9 insertions(+)

    --- a/drivers/gpu/drm/msm/msm_drv.c
    +++ b/drivers/gpu/drm/msm/msm_drv.c
    @@ -828,6 +828,7 @@ static struct drm_driver msm_driver = {
    .prime_fd_to_handle = drm_gem_prime_fd_to_handle,
    .gem_prime_export = drm_gem_prime_export,
    .gem_prime_import = drm_gem_prime_import,
    + .gem_prime_res_obj = msm_gem_prime_res_obj,
    .gem_prime_pin = msm_gem_prime_pin,
    .gem_prime_unpin = msm_gem_prime_unpin,
    .gem_prime_get_sg_table = msm_gem_prime_get_sg_table,
    --- a/drivers/gpu/drm/msm/msm_drv.h
    +++ b/drivers/gpu/drm/msm/msm_drv.h
    @@ -223,6 +223,7 @@ struct sg_table *msm_gem_prime_get_sg_ta
    void *msm_gem_prime_vmap(struct drm_gem_object *obj);
    void msm_gem_prime_vunmap(struct drm_gem_object *obj, void *vaddr);
    int msm_gem_prime_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma);
    +struct reservation_object *msm_gem_prime_res_obj(struct drm_gem_object *obj);
    struct drm_gem_object *msm_gem_prime_import_sg_table(struct drm_device *dev,
    struct dma_buf_attachment *attach, struct sg_table *sg);
    int msm_gem_prime_pin(struct drm_gem_object *obj);
    --- a/drivers/gpu/drm/msm/msm_gem_prime.c
    +++ b/drivers/gpu/drm/msm/msm_gem_prime.c
    @@ -70,3 +70,10 @@ void msm_gem_prime_unpin(struct drm_gem_
    if (!obj->import_attach)
    msm_gem_put_pages(obj);
    }
    +
    +struct reservation_object *msm_gem_prime_res_obj(struct drm_gem_object *obj)
    +{
    + struct msm_gem_object *msm_obj = to_msm_bo(obj);
    +
    + return msm_obj->resv;
    +}

    \
     
     \ /
      Last update: 2017-06-12 20:55    [W:3.724 / U:0.084 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site