search for: nv50_crtc_destroy

Displaying 8 results from an estimated 8 matches for "nv50_crtc_destroy".

2013 Mar 05
0
[PATCH] drm/nv50/disp: ignore encoder initialization failures
Nouveau does not support all encoder types, so failure to handle one should not stop module initialization. And because of other bug, it lead to oops in nv50_crtc_destroy (nv50_display_destroy sets nouveau_display->priv to NULL, which is used by nv50_crtc_destroy). Fixes regression from eb6313add6dddf07ea3e50c4caa33a9c3b2379f1 ("drm/nv50: initial kms support for off-chip TMDS/DP encoders"). Reported-by: Richard Yao <ryao at gentoo.org> Tested-by...
2013 Jul 02
0
[PATCH] drm/nouveau: handle framebuffer pinning correctly
...v50_crtc_gamma_set(struct drm_crtc *crtc, u16 *r, u16 *g, u16 *b, } static void +nv50_crtc_disable(struct drm_crtc *crtc) +{ + struct nouveau_framebuffer *nv_fb; + + if (!crtc->fb) + return; + + nv_fb = nouveau_framebuffer(crtc->fb); + nouveau_bo_unpin(nv_fb->nvbo); +} + +static void nv50_crtc_destroy(struct drm_crtc *crtc) { struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc); @@ -1294,6 +1306,7 @@ nv50_crtc_destroy(struct drm_crtc *crtc) } static const struct drm_crtc_helper_funcs nv50_crtc_hfunc = { + .disable = nv50_crtc_disable, .dpms = nv50_crtc_dpms, .prepare = nv50_crtc_prepare,...
2015 Jan 05
2
drm/nouveau: dont switch vt on suspend
Signed-off-by: Maarten Lankhorst <maarten.lankhorst at ubuntu.com> --- diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.c b/drivers/gpu/drm/nouveau/nouveau_fbcon.c index 3ed12a8cfc91..a4a586807903 100644 --- a/drivers/gpu/drm/nouveau/nouveau_fbcon.c +++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.c @@ -370,6 +370,7 @@ nouveau_fbcon_create(struct drm_fb_helper *helper, ret = -ENOMEM; goto
2010 Jan 30
1
[PATCH] nouveau: move dereferences after null checks
...iff --git a/drivers/gpu/drm/nouveau/nv50_crtc.c b/drivers/gpu/drm/nouveau/nv50_crtc.c index 40b7360..d1a651e 100644 --- a/drivers/gpu/drm/nouveau/nv50_crtc.c +++ b/drivers/gpu/drm/nouveau/nv50_crtc.c @@ -298,14 +298,17 @@ nv50_crtc_set_clock(struct drm_device *dev, int head, int pclk) static void nv50_crtc_destroy(struct drm_crtc *crtc) { - struct drm_device *dev = crtc->dev; - struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc); - - NV_DEBUG_KMS(dev, "\n"); + struct drm_device *dev; + struct nouveau_crtc *nv_crtc; if (!crtc) return; + dev = crtc->dev; + nv_crtc = nouveau_crtc(crtc);...
2012 Nov 25
0
[PATCH] drm/nouveau: unpin various bo's before destroying
...if (ret) nouveau_bo_ref(NULL, &priv->bo); } diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c index b252dbe..3587408 100644 --- a/drivers/gpu/drm/nouveau/nv50_display.c +++ b/drivers/gpu/drm/nouveau/nv50_display.c @@ -1228,8 +1228,12 @@ nv50_crtc_destroy(struct drm_crtc *crtc) nv50_dmac_destroy(disp->core, &head->sync.base); nv50_pioc_destroy(disp->core, &head->curs.base); nouveau_bo_unmap(nv_crtc->cursor.nvbo); + if (nv_crtc->cursor.nvbo) + nouveau_bo_unpin(nv_crtc->cursor.nvbo); nouveau_bo_ref(NULL, &nv_c...
2013 Aug 12
2
[PATCH] drm/nouveau: fix vblank deadlock
...@ #include <core/client.h> #include <core/gpuobj.h> #include <core/class.h> +#include <engine/disp.h> #include <subdev/timer.h> #include <subdev/bar.h> @@ -1280,15 +1281,21 @@ nv50_crtc_gamma_set(struct drm_crtc *crtc, u16 *r, u16 *g, u16 *b, static void nv50_crtc_destroy(struct drm_crtc *crtc) { + struct nouveau_event *event = nouveau_disp(nouveau_dev(crtc->dev))->vblank; struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc); struct nv50_disp *disp = nv50_disp(crtc->dev); struct nv50_head *head = nv50_head(crtc); + unsigned long flags; nv50_dmac_des...
2013 Aug 19
0
[PATCH] drm/nouveau: fix vblank deadlock
...<core/gpuobj.h> > #include <core/class.h> > +#include <engine/disp.h> > > #include <subdev/timer.h> > #include <subdev/bar.h> > @@ -1280,15 +1281,21 @@ nv50_crtc_gamma_set(struct drm_crtc *crtc, u16 *r, u16 *g, u16 *b, > static void > nv50_crtc_destroy(struct drm_crtc *crtc) > { > + struct nouveau_event *event = nouveau_disp(nouveau_dev(crtc->dev))->vblank; > struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc); > struct nv50_disp *disp = nv50_disp(crtc->dev); > struct nv50_head *head = nv50_head(crtc); > + unsi...
2009 Dec 13
3
[PATCH] drm/nouveau: use drm debug levels
...) { @@ -193,7 +193,7 @@ nv50_crtc_set_scale(struct nouveau_crtc *nv_crtc, int scaling_mode, bool update) uint32_t outX, outY, horiz, vert; int ret; - NV_DEBUG(dev, "\n"); + NV_DEBUG_KMS(dev, "\n"); switch (scaling_mode) { case DRM_MODE_SCALE_NONE: @@ -301,7 +301,7 @@ nv50_crtc_destroy(struct drm_crtc *crtc) struct drm_device *dev = crtc->dev; struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc); - NV_DEBUG(dev, "\n"); + NV_DEBUG_KMS(dev, "\n"); if (!crtc) return; @@ -433,7 +433,7 @@ nv50_crtc_prepare(struct drm_crtc *crtc) struct drm_device *de...