search for: nv50_wndw_prepare_fb

Displaying 20 results from an estimated 26 matches for "nv50_wndw_prepare_fb".

2020 Feb 10
2
[PATCH] drm/nouveau: Fix NULL ptr access in nv50_wndw_prepare_fb()
This fixes a kernel oops when loading the nouveau module with fb console enabled after the change: drm/nouveau: Remove field nvbo from struct nouveau_framebuffer state->fb may be NULL in nv50_wndw_prepare_fb(), so defer initializing nvbo from its obj[] array until after the NULL check. Signed-off-by: James Jones <jajones at nvidia.com> --- drivers/gpu/drm/nouveau/dispnv50/wndw.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/nouveau/dispnv50/wndw.c b/drive...
2020 Feb 11
0
[PATCH] drm/nouveau: Fix NULL ptr access in nv50_wndw_prepare_fb()
...suse.de> Thanks for the fix. Am 11.02.20 um 00:09 schrieb James Jones: > This fixes a kernel oops when loading the nouveau > module with fb console enabled after the change: > > drm/nouveau: Remove field nvbo from struct nouveau_framebuffer > > state->fb may be NULL in nv50_wndw_prepare_fb(), > so defer initializing nvbo from its obj[] array > until after the NULL check. > > Signed-off-by: James Jones <jajones at nvidia.com> > --- > drivers/gpu/drm/nouveau/dispnv50/wndw.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/dr...
2024 Sep 06
3
[PATCH v2 0/3] drm/nouveau: Add drm_panic support for nv50+
This series adds basic drm_panic support for nouveau. Patches 1-2 Add missing bits in drm_panic (ABGR2101010, private data for set_pixel()) Patch 3 registers nouveau to drm_panic, and handle tiling. I've tested on a GTX1650, while running Gnome/Wayland desktop. It should work on other nv50+ cards, but I didn't test them. To test it, you need to build your kernel with CONFIG_DRM_PANIC=y,
2024 Sep 13
3
[PATCH v3 0/2] drm/nouveau: Add drm_panic support for nv50+
This series adds basic drm_panic support for nouveau. Patches 1 Add ABGR2101010 support in drm_panic. Patch 2 registers nouveau to drm_panic, and handle tiling. I've tested on a GTX1650 (Turing) and GF 8800 GT (Tesla), while running Gnome/Wayland desktop, and in VT. It should work on other nv50+ cards, but I didn't test them. To test it, you need to build your kernel with
2020 Feb 06
5
[PATCH 4/4] drm/nouveau: Remove struct nouveau_framebuffer
...asyw->image.pitch[0] = fb->base.pitches[0]; > + asyw->image.pitch[0] = fb->pitches[0]; > } > > if (!asyh->state.async_flip) > @@ -486,16 +486,16 @@ nv50_wndw_cleanup_fb(struct drm_plane *plane, struct drm_plane_state *old_state) > static int > nv50_wndw_prepare_fb(struct drm_plane *plane, struct drm_plane_state *state) > { > - struct nouveau_framebuffer *fb = nouveau_framebuffer(state->fb); > + struct drm_framebuffer *fb = state->fb; > struct nouveau_drm *drm = nouveau_drm(plane->dev); > struct nv50_wndw *wndw = nv50_wndw(plan...
2019 Jun 28
0
[PATCH v3 15/18] drm/nouveau: switch driver from bo->resv to bo->base.resv
...- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/nouveau/dispnv50/wndw.c b/drivers/gpu/drm/nouveau/dispnv50/wndw.c index 283ff690350e..89f8e76a2d7d 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/wndw.c +++ b/drivers/gpu/drm/nouveau/dispnv50/wndw.c @@ -457,7 +457,7 @@ nv50_wndw_prepare_fb(struct drm_plane *plane, struct drm_plane_state *state) asyw->image.handle[0] = ctxdma->object.handle; } - asyw->state.fence = reservation_object_get_excl_rcu(fb->nvbo->bo.resv); + asyw->state.fence = reservation_object_get_excl_rcu(fb->nvbo->bo.base.resv); asyw-&gt...
2019 Aug 02
0
[PATCH v4 14/17] drm/nouveau: switch driver from bo->resv to bo->base.resv
...- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/nouveau/dispnv50/wndw.c b/drivers/gpu/drm/nouveau/dispnv50/wndw.c index 283ff690350e..89f8e76a2d7d 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/wndw.c +++ b/drivers/gpu/drm/nouveau/dispnv50/wndw.c @@ -457,7 +457,7 @@ nv50_wndw_prepare_fb(struct drm_plane *plane, struct drm_plane_state *state) asyw->image.handle[0] = ctxdma->object.handle; } - asyw->state.fence = reservation_object_get_excl_rcu(fb->nvbo->bo.resv); + asyw->state.fence = reservation_object_get_excl_rcu(fb->nvbo->bo.base.resv); asyw-&gt...
2019 Aug 05
0
[PATCH v5 15/18] drm/nouveau: switch driver from bo->resv to bo->base.resv
...- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/nouveau/dispnv50/wndw.c b/drivers/gpu/drm/nouveau/dispnv50/wndw.c index 283ff690350e..89f8e76a2d7d 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/wndw.c +++ b/drivers/gpu/drm/nouveau/dispnv50/wndw.c @@ -457,7 +457,7 @@ nv50_wndw_prepare_fb(struct drm_plane *plane, struct drm_plane_state *state) asyw->image.handle[0] = ctxdma->object.handle; } - asyw->state.fence = reservation_object_get_excl_rcu(fb->nvbo->bo.resv); + asyw->state.fence = reservation_object_get_excl_rcu(fb->nvbo->bo.base.resv); asyw-&gt...
2019 Aug 05
0
[PATCH v6 14/17] drm/nouveau: switch driver from bo->resv to bo->base.resv
...- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/nouveau/dispnv50/wndw.c b/drivers/gpu/drm/nouveau/dispnv50/wndw.c index 283ff690350e..89f8e76a2d7d 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/wndw.c +++ b/drivers/gpu/drm/nouveau/dispnv50/wndw.c @@ -457,7 +457,7 @@ nv50_wndw_prepare_fb(struct drm_plane *plane, struct drm_plane_state *state) asyw->image.handle[0] = ctxdma->object.handle; } - asyw->state.fence = reservation_object_get_excl_rcu(fb->nvbo->bo.resv); + asyw->state.fence = reservation_object_get_excl_rcu(fb->nvbo->bo.base.resv); asyw-&gt...
2019 Jun 21
0
[PATCH v2 15/18] drm/nouveau: switch driver from bo->resv to bo->base.resv
...- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/nouveau/dispnv50/wndw.c b/drivers/gpu/drm/nouveau/dispnv50/wndw.c index 283ff690350e..89f8e76a2d7d 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/wndw.c +++ b/drivers/gpu/drm/nouveau/dispnv50/wndw.c @@ -457,7 +457,7 @@ nv50_wndw_prepare_fb(struct drm_plane *plane, struct drm_plane_state *state) asyw->image.handle[0] = ctxdma->object.handle; } - asyw->state.fence = reservation_object_get_excl_rcu(fb->nvbo->bo.resv); + asyw->state.fence = reservation_object_get_excl_rcu(fb->nvbo->bo.base.resv); asyw-&gt...
2020 Feb 06
2
[PATCH 4/4] drm/nouveau: Remove struct nouveau_framebuffer
...syw->image.pitch[0] = fb->pitches[0]; >>> ????????? } >>> ? ????????? if (!asyh->state.async_flip) >>> @@ -486,16 +486,16 @@ nv50_wndw_cleanup_fb(struct drm_plane *plane, >>> struct drm_plane_state *old_state) >>> ? static int >>> ? nv50_wndw_prepare_fb(struct drm_plane *plane, struct drm_plane_state >>> *state) >>> ? { >>> -??? struct nouveau_framebuffer *fb = nouveau_framebuffer(state->fb); >>> +??? struct drm_framebuffer *fb = state->fb; >>> ????? struct nouveau_drm *drm = nouveau_drm(plane-&...
2020 Feb 06
5
[PATCH 0/4] drm/nouveau: Remove struct nouveau_framebuffer
All fields in struct nouveau_framebuffer appear to be obsolete. The data structure can be replaced by struct drm_framebuffer entirely. Patch 1 removes several unused fields from struct nouveau_framebuffer. Patch 2 moves the field vma to struct nouveau_fbdev. The information in vma is only relevant for fbdev emulation, and as such he field is only used there. Patch 3 removes nvbo from struct
2020 Feb 06
0
[PATCH 3/4] drm/nouveau: Remove field nvbo from struct nouveau_framebuffer
...truct nouveau_bo *nvbo; NV_ATOMIC(drm, "%s cleanup: %p\n", plane->name, old_state->fb); if (!old_state->fb) return; - nouveau_bo_unpin(fb->nvbo); + nvbo = nouveau_gem_object(old_state->fb->obj[0]); + nouveau_bo_unpin(nvbo); } static int @@ -486,6 +490,7 @@ nv50_wndw_prepare_fb(struct drm_plane *plane, struct drm_plane_state *state) struct nouveau_drm *drm = nouveau_drm(plane->dev); struct nv50_wndw *wndw = nv50_wndw(plane); struct nv50_wndw_atom *asyw = nv50_wndw_atom(state); + struct nouveau_bo *nvbo = nouveau_gem_object(state->fb->obj[0]); struct nv50_...
2020 Feb 06
2
[PATCH 4/4] drm/nouveau: Remove struct nouveau_framebuffer
...??? asyw->image.pitch[0] = fb->pitches[0]; >>> ????????? } >>> ????????? if (!asyh->state.async_flip) >>> @@ -486,16 +486,16 @@ nv50_wndw_cleanup_fb(struct drm_plane *plane, >>> struct drm_plane_state *old_state) >>> ? static int >>> ? nv50_wndw_prepare_fb(struct drm_plane *plane, struct >>> drm_plane_state *state) >>> ? { >>> -??? struct nouveau_framebuffer *fb = nouveau_framebuffer(state->fb); >>> +??? struct drm_framebuffer *fb = state->fb; >>> ????? struct nouveau_drm *drm = nouveau_drm(plane-&g...
2020 Feb 10
2
[PATCH 4/4] drm/nouveau: Remove struct nouveau_framebuffer
...gt;>> } > >>>> if (!asyh->state.async_flip) > >>>> @@ -486,16 +486,16 @@ nv50_wndw_cleanup_fb(struct drm_plane *plane, > >>>> struct drm_plane_state *old_state) > >>>> static int > >>>> nv50_wndw_prepare_fb(struct drm_plane *plane, struct drm_plane_state > >>>> *state) > >>>> { > >>>> - struct nouveau_framebuffer *fb = nouveau_framebuffer(state->fb); > >>>> + struct drm_framebuffer *fb = state->fb; > >>>>...
2020 Feb 10
2
[PATCH 4/4] drm/nouveau: Remove struct nouveau_framebuffer
...gt;>>> if (!asyh->state.async_flip) >>>>>>> @@ -486,16 +486,16 @@ nv50_wndw_cleanup_fb(struct drm_plane *plane, >>>>>>> struct drm_plane_state *old_state) >>>>>>> static int >>>>>>> nv50_wndw_prepare_fb(struct drm_plane *plane, struct drm_plane_state >>>>>>> *state) >>>>>>> { >>>>>>> - struct nouveau_framebuffer *fb = nouveau_framebuffer(state->fb); >>>>>>> + struct drm_framebuffer *fb = state->fb;...
2020 Feb 06
0
[PATCH 4/4] drm/nouveau: Remove struct nouveau_framebuffer
...= 0; asyw->image.blocks[0] = 0; - asyw->image.pitch[0] = fb->base.pitches[0]; + asyw->image.pitch[0] = fb->pitches[0]; } if (!asyh->state.async_flip) @@ -486,16 +486,16 @@ nv50_wndw_cleanup_fb(struct drm_plane *plane, struct drm_plane_state *old_state) static int nv50_wndw_prepare_fb(struct drm_plane *plane, struct drm_plane_state *state) { - struct nouveau_framebuffer *fb = nouveau_framebuffer(state->fb); + struct drm_framebuffer *fb = state->fb; struct nouveau_drm *drm = nouveau_drm(plane->dev); struct nv50_wndw *wndw = nv50_wndw(plane); struct nv50_wndw_atom...
2020 Feb 06
0
[PATCH 4/4] drm/nouveau: Remove struct nouveau_framebuffer
...s[0]; >> +??????????? asyw->image.pitch[0] = fb->pitches[0]; >> ????????? } >> ????????? if (!asyh->state.async_flip) >> @@ -486,16 +486,16 @@ nv50_wndw_cleanup_fb(struct drm_plane *plane, >> struct drm_plane_state *old_state) >> ? static int >> ? nv50_wndw_prepare_fb(struct drm_plane *plane, struct drm_plane_state >> *state) >> ? { >> -??? struct nouveau_framebuffer *fb = nouveau_framebuffer(state->fb); >> +??? struct drm_framebuffer *fb = state->fb; >> ????? struct nouveau_drm *drm = nouveau_drm(plane->dev); >> ???...
2020 Feb 06
0
[PATCH 4/4] drm/nouveau: Remove struct nouveau_framebuffer
...[0]; >> +??????????? asyw->image.pitch[0] = fb->pitches[0]; >> ????????? } >> ? ????????? if (!asyh->state.async_flip) >> @@ -486,16 +486,16 @@ nv50_wndw_cleanup_fb(struct drm_plane *plane, >> struct drm_plane_state *old_state) >> ? static int >> ? nv50_wndw_prepare_fb(struct drm_plane *plane, struct drm_plane_state >> *state) >> ? { >> -??? struct nouveau_framebuffer *fb = nouveau_framebuffer(state->fb); >> +??? struct drm_framebuffer *fb = state->fb; >> ????? struct nouveau_drm *drm = nouveau_drm(plane->dev); >> ????...
2020 Feb 07
0
[PATCH 4/4] drm/nouveau: Remove struct nouveau_framebuffer
...fb->pitches[0]; >>>> ?????????? } >>>> ?? ????????? if (!asyh->state.async_flip) >>>> @@ -486,16 +486,16 @@ nv50_wndw_cleanup_fb(struct drm_plane *plane, >>>> struct drm_plane_state *old_state) >>>> ?? static int >>>> ?? nv50_wndw_prepare_fb(struct drm_plane *plane, struct drm_plane_state >>>> *state) >>>> ?? { >>>> -??? struct nouveau_framebuffer *fb = nouveau_framebuffer(state->fb); >>>> +??? struct drm_framebuffer *fb = state->fb; >>>> ?????? struct nouveau_drm *drm =...