lkml.org 
[lkml]   [2014]   [Jul]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.14 26/94] drm/nouveau/kms: reference vblank for crtc during pageflip.
    Date
    3.14-stable review patch.  If anyone has any objections, please let me know.

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

    From: Mario Kleiner <mario.kleiner.de@gmail.com>

    commit ba124a41058b300a5464206d2d33803cc3dc82ec upstream.

    Need to drm_vblank_get/put() the crtc involved in a
    pending pageflip, or we might not get vblank irqs and
    updates of vblank counts and timestamps for pageflip
    events and flip completion.

    Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/gpu/drm/nouveau/nouveau_display.c | 7 +++++++
    1 file changed, 7 insertions(+)

    --- a/drivers/gpu/drm/nouveau/nouveau_display.c
    +++ b/drivers/gpu/drm/nouveau/nouveau_display.c
    @@ -734,6 +734,9 @@ nouveau_crtc_page_flip(struct drm_crtc *
    fb->bits_per_pixel, fb->pitches[0], crtc->x, crtc->y,
    new_bo->bo.offset };

    + /* Keep vblanks on during flip, for the target crtc of this flip */
    + drm_vblank_get(dev, nouveau_crtc(crtc)->index);
    +
    /* Emit a page flip */
    if (nv_device(drm->device)->card_type >= NV_50) {
    ret = nv50_display_flip_next(crtc, fb, chan, swap_interval);
    @@ -777,6 +780,7 @@ nouveau_crtc_page_flip(struct drm_crtc *
    return 0;

    fail_unreserve:
    + drm_vblank_put(dev, nouveau_crtc(crtc)->index);
    ttm_bo_unreserve(&old_bo->bo);
    fail_unpin:
    mutex_unlock(&chan->cli->mutex);
    @@ -815,6 +819,9 @@ nouveau_finish_page_flip(struct nouveau_
    drm_send_vblank_event(dev, crtcid, s->event);
    }

    + /* Give up ownership of vblank for page-flipped crtc */
    + drm_vblank_put(dev, s->crtc);
    +
    list_del(&s->head);
    if (ps)
    *ps = *s;



    \
     
     \ /
      Last update: 2014-07-08 03:22    [W:4.245 / U:0.408 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site