search for: nouveau_page_flip_state

Displaying 20 results from an estimated 24 matches for "nouveau_page_flip_state".

2016 Jun 06
4
[PATCH 01/14] drm/nouveau: use drm_crtc_send_vblank_event() v2
From: Gustavo Padovan <gustavo.padovan at collabora.co.uk> Replace the legacy drm_send_vblank_event() with the new helper function. v2: add crtc to nouveau_page_flip_state (comment from Mario Kleiner) Cc: Mario Kleiner <mario.kleiner.de at gmail.com> Signed-off-by: Gustavo Padovan <gustavo.padovan at collabora.co.uk> --- drivers/gpu/drm/nouveau/nouveau_display.c | 19 ++++++++++--------- drivers/gpu/drm/nouveau/nouveau_display.h | 3 ++- 2 files change...
2016 Jun 06
4
[PATCH 01/14] drm/nouveau: use drm_crtc_send_vblank_event() v2
From: Gustavo Padovan <gustavo.padovan at collabora.co.uk> Replace the legacy drm_send_vblank_event() with the new helper function. v2: add crtc to nouveau_page_flip_state (comment from Mario Kleiner) Cc: Mario Kleiner <mario.kleiner.de at gmail.com> Signed-off-by: Gustavo Padovan <gustavo.padovan at collabora.co.uk> --- drivers/gpu/drm/nouveau/nouveau_display.c | 19 ++++++++++--------- drivers/gpu/drm/nouveau/nouveau_display.h | 3 ++- 2 files change...
2016 Jun 06
4
[PATCH 01/14] drm/nouveau: use drm_crtc_send_vblank_event() v2
From: Gustavo Padovan <gustavo.padovan at collabora.co.uk> Replace the legacy drm_send_vblank_event() with the new helper function. v2: add crtc to nouveau_page_flip_state (comment from Mario Kleiner) Cc: Mario Kleiner <mario.kleiner.de at gmail.com> Signed-off-by: Gustavo Padovan <gustavo.padovan at collabora.co.uk> --- drivers/gpu/drm/nouveau/nouveau_display.c | 19 ++++++++++--------- drivers/gpu/drm/nouveau/nouveau_display.h | 3 ++- 2 files change...
2012 Feb 16
5
[Patches][nouveau/kms]: Precise Vblank and pageflip timestamping v2
Just updated versions of the patches send by Mario Kleiner. This ones are rebased on top of the nouveau tree and updated according to the review feedback. Regards, Lucas
2016 Jun 07
0
[PATCH 01/10] drm/nouveau: replace legacy vblank helpers
From: Gustavo Padovan <gustavo.padovan at collabora.co.uk> Replace the legacy drm_send_vblank_event(), drm_arm_vblank_event() and drm_vblank_{get,put}() with the new helper functions. v2: add crtc to nouveau_page_flip_state (comment from Mario Kleiner) Signed-off-by: Gustavo Padovan <gustavo.padovan at collabora.co.uk> Signed-off-by: Gustavo Padovan <gustavo.padovan at collabora.co.uk> --- drivers/gpu/drm/nouveau/nouveau_display.c | 22 +++++++++++----------- drivers/gpu/drm/nouveau/nouveau_display.h |...
2016 Jun 06
0
[PATCH 01/14] drm/nouveau: use drm_crtc_send_vblank_event() v2
On Mon, Jun 06, 2016 at 11:41:32AM -0300, Gustavo Padovan wrote: > From: Gustavo Padovan <gustavo.padovan at collabora.co.uk> > > Replace the legacy drm_send_vblank_event() with the new helper function. > > v2: add crtc to nouveau_page_flip_state (comment from Mario Kleiner) > > Cc: Mario Kleiner <mario.kleiner.de at gmail.com> > Signed-off-by: Gustavo Padovan <gustavo.padovan at collabora.co.uk> Forgot to squash this into the main nouveau patch as fixup? -Daniel > --- > drivers/gpu/drm/nouveau/nouveau_display...
2012 Feb 15
2
[Patches][nouveau/kms]: Precise Vblank and pageflip timestamping
Hi, these are two patches against the nouveau kms driver. The first patch makes sure that pageflip completion events get their vblank count and timestamp from the drm. The second patch from Lucas Stach, here included with his permission, makes sure that the timestamps of vblanks are calculated with high precision and robustness. Both patches together make sure that all timestamps returned by the
2012 Apr 25
2
[PATCH 1/2] drm/nouveau: Use drm_vblank_count_and_time() for pageflip completion events.
...au/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c index 71379f8..2c0f415 100644 --- a/drivers/gpu/drm/nouveau/nouveau_display.c +++ b/drivers/gpu/drm/nouveau/nouveau_display.c @@ -504,7 +504,7 @@ nouveau_crtc_page_flip(struct drm_crtc *crtc, struct drm_framebuffer *fb, *s = (struct nouveau_page_flip_state) { { }, event, nouveau_crtc(crtc)->index, fb->bits_per_pixel, fb->pitches[0], crtc->x, crtc->y, - new_bo->bo.offset }; + new_bo->bo.offset, crtc->framedur_ns }; /* Choose the channel the flip will be handled in */ chan = nouveau_fence_channel(new_bo->b...
2013 Mar 28
1
mesa vdpau regression with "dri2: Fix potential race and crash for swap at next vblank."
...@@ nouveau_crtc_page_flip(struct drm_crtc *crtc, struct drm_framebuffer *fb, if (!s) return -ENOMEM; - /* Don't let the buffers go away while we flip */ - ret = nouveau_page_flip_reserve(old_bo, new_bo); - if (ret) - goto fail_free; - /* Initialize a page flip struct */ *s = (struct nouveau_page_flip_state) { { }, event, nouveau_crtc(crtc)->index, fb->bits_per_pixel, fb->pitches[0], crtc->x, crtc->y, new_bo->bo.offset }; + ret = drm_vblank_get(dev, s->crtc); + if (ret) + goto fail_free; + + /* Don't let the buffers go away while we flip */ + ret = nouveau_page...
2015 Oct 30
5
[PATCH] drm/nouveau: Fix pre-nv50 pageflip events
...ivers/gpu/drm/nouveau/nouveau_display.c index 184445d4abbf..041e5f84538c 100644 --- a/drivers/gpu/drm/nouveau/nouveau_display.c +++ b/drivers/gpu/drm/nouveau/nouveau_display.c @@ -826,7 +826,6 @@ nouveau_finish_page_flip(struct nouveau_channel *chan, struct drm_device *dev = drm->dev; struct nouveau_page_flip_state *s; unsigned long flags; - int crtcid = -1; spin_lock_irqsave(&dev->event_lock, flags); @@ -838,16 +837,15 @@ nouveau_finish_page_flip(struct nouveau_channel *chan, s = list_first_entry(&fctx->flip, struct nouveau_page_flip_state, head); if (s->event) { - /* Vblank t...
2015 Nov 06
0
[PATCH] drm/nouveau: Fix pre-nv50 pageflip events
...display.c > index 184445d4abbf..041e5f84538c 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_display.c > +++ b/drivers/gpu/drm/nouveau/nouveau_display.c > @@ -826,7 +826,6 @@ nouveau_finish_page_flip(struct nouveau_channel *chan, > struct drm_device *dev = drm->dev; > struct nouveau_page_flip_state *s; > unsigned long flags; > - int crtcid = -1; > > spin_lock_irqsave(&dev->event_lock, flags); > > @@ -838,16 +837,15 @@ nouveau_finish_page_flip(struct nouveau_channel *chan, > > s = list_first_entry(&fctx->flip, struct nouveau_page_flip_state, he...
2014 May 14
0
[RFC PATCH v1 04/16] drm/nouveau: require reservations for nouveau_fence_sync and nouveau_bo_fence
...o->bo, true, false, false, NULL); - if (ret) - goto fail_unpin; + if (new_bo != old_bo) { + ttm_bo_unreserve(&new_bo->bo); + + ret = ttm_bo_reserve(&old_bo->bo, true, false, false, NULL); + if (ret) + goto fail_unpin; + } /* Initialize a page flip struct */ *s = (struct nouveau_page_flip_state)
2015 Nov 09
2
[PATCH] drm/nouveau: Fix pre-nv50 pageflip events (v2)
...lay.c b/drivers/gpu/drm/nouveau/nouveau_display.c index db6bc67..64c8d93 100644 --- a/drivers/gpu/drm/nouveau/nouveau_display.c +++ b/drivers/gpu/drm/nouveau/nouveau_display.c @@ -829,7 +829,6 @@ nouveau_finish_page_flip(struct nouveau_channel *chan, struct drm_device *dev = drm->dev; struct nouveau_page_flip_state *s; unsigned long flags; - int crtcid = -1; spin_lock_irqsave(&dev->event_lock, flags); @@ -841,15 +840,19 @@ nouveau_finish_page_flip(struct nouveau_channel *chan, s = list_first_entry(&fctx->flip, struct nouveau_page_flip_state, head); if (s->event) { - /* Vblank t...
2015 Nov 10
2
[PATCH] drm/nouveau: Fix pre-nv50 pageflip events (v3)
...lay.c b/drivers/gpu/drm/nouveau/nouveau_display.c index db6bc67..64c8d93 100644 --- a/drivers/gpu/drm/nouveau/nouveau_display.c +++ b/drivers/gpu/drm/nouveau/nouveau_display.c @@ -829,7 +829,6 @@ nouveau_finish_page_flip(struct nouveau_channel *chan, struct drm_device *dev = drm->dev; struct nouveau_page_flip_state *s; unsigned long flags; - int crtcid = -1; spin_lock_irqsave(&dev->event_lock, flags); @@ -841,15 +840,19 @@ nouveau_finish_page_flip(struct nouveau_channel *chan, s = list_first_entry(&fctx->flip, struct nouveau_page_flip_state, head); if (s->event) { - /* Vblank t...
2011 Nov 24
1
[PATCH] nouveau: implement precise vblank timestamping
...vers/gpu/drm/nouveau/nouveau_drv.h +++ b/drivers/gpu/drm/nouveau/nouveau_drv.h @@ -1465,6 +1465,11 @@ int nouveau_crtc_page_flip(struct drm_crtc *crtc, struct drm_framebuffer *fb, struct drm_pending_vblank_event *event); int nouveau_finish_page_flip(struct nouveau_channel *, struct nouveau_page_flip_state *); +int nouveau_get_scanoutpos(struct drm_device *dev, int crtc, + int *vpos, int *hpos); +int nouveau_get_vblank_timestamp(struct drm_device *dev, int crtc, + int *max_error, struct timeval *vblank_time, + unsigned flags); int nouveau_display_dumb_create(struct...
2017 Jul 29
0
[PATCH] nouveau: Fix declarations with incorrect variables.
...nouveau_crtc_page_flip(struct drm_crtc *crtc, struct drm_framebuffer *fb, struct drm_pending_vblank_event *event, - uint32_t page_flip_flags, + uint32_t flags, struct drm_modeset_acquire_ctx *ctx); int nouveau_finish_page_flip(struct nouveau_channel *, struct nouveau_page_flip_state *); @@ -82,7 +82,7 @@ int nouveau_finish_page_flip(struct nouveau_channel *, int nouveau_display_dumb_create(struct drm_file *, struct drm_device *, struct drm_mode_create_dumb *args); int nouveau_display_dumb_map_offset(struct drm_file *, struct drm_device *, - u32 handle, u64 *...
2012 Jul 27
0
[PATCH 3/3] nouveau: add vblank methods on newer cards
...ivers/gpu/drm/nouveau/nouveau_drv.h +++ b/drivers/gpu/drm/nouveau/nouveau_drv.h @@ -1374,6 +1374,7 @@ int nouveau_crtc_page_flip(struct drm_crtc *crtc, struct drm_framebuffer *fb, struct drm_pending_vblank_event *event); int nouveau_finish_page_flip(struct nouveau_channel *, struct nouveau_page_flip_state *); +void nv50_display_vblank_crtc_handler(struct drm_device *dev, int crtc); int nouveau_display_dumb_create(struct drm_file *, struct drm_device *, struct drm_mode_create_dumb *args); int nouveau_display_dumb_map_offset(struct drm_file *, struct drm_device *, diff --git a/drivers/gpu/drm/n...
2013 Aug 12
0
[RFC PATCH] drm/nv50-nvd0: implement precise vblank timing support on nv50/nvc0.
...gt;card_type >= NV_50) { - ret = nv50_display_flip_next(crtc, fb, chan, 0); + ret = nv50_display_flip_next(crtc, fb, chan, 1); if (ret) goto fail_unreserve; } @@ -634,7 +634,7 @@ nouveau_finish_page_flip(struct nouveau_channel *chan, s = list_first_entry(&fctx->flip, struct nouveau_page_flip_state, head); if (s->event) - drm_send_vblank_event(dev, -1, s->event); + drm_send_vblank_event(dev, s->crtc, s->event); list_del(&s->head); if (ps) diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c index bd301f4..9a73aa2 100644 --- a/...
2017 Aug 08
5
[PATCH libdrm] drm: Remove create_handle() drm_framebuffer "virtual".
...*old_bo = nouveau_framebuffer(crtc->primary->fb)->nvbo; - struct nouveau_bo *new_bo = nouveau_framebuffer(fb)->nvbo; + struct nouveau_bo *old_bo = nouveau_gem_object(crtc->primary->fb->gem_objs[0]); + struct nouveau_bo *new_bo = nouveau_gem_object(fb->gem_objs[0]); struct nouveau_page_flip_state *s; struct nouveau_channel *chan; struct nouveau_cli *cli; diff --git a/drivers/gpu/drm/nouveau/nouveau_display.h b/drivers/gpu/drm/nouveau/nouveau_display.h index 201aec2ea5b8..a6ae824bb6e1 100644 --- a/drivers/gpu/drm/nouveau/nouveau_display.h +++ b/drivers/gpu/drm/nouveau/nouveau_display.h @...
2017 Aug 08
5
[PATCH libdrm] drm: Remove create_handle() drm_framebuffer "virtual".
...*old_bo = nouveau_framebuffer(crtc->primary->fb)->nvbo; - struct nouveau_bo *new_bo = nouveau_framebuffer(fb)->nvbo; + struct nouveau_bo *old_bo = nouveau_gem_object(crtc->primary->fb->gem_objs[0]); + struct nouveau_bo *new_bo = nouveau_gem_object(fb->gem_objs[0]); struct nouveau_page_flip_state *s; struct nouveau_channel *chan; struct nouveau_cli *cli; diff --git a/drivers/gpu/drm/nouveau/nouveau_display.h b/drivers/gpu/drm/nouveau/nouveau_display.h index 201aec2ea5b8..a6ae824bb6e1 100644 --- a/drivers/gpu/drm/nouveau/nouveau_display.h +++ b/drivers/gpu/drm/nouveau/nouveau_display.h @...