Displaying 20 results from an estimated 234 matches for "nouveau_channel".
2013 Apr 30
1
[Bug 64074] New: Mesalib Installation Error
...rt NOUVEAU_CFLAGS="-I/usr/include/nouveau/ \
-I/usr/include/drm/"
export NOUVEAU_LIBS="-L/usr/local/lib/"
after i run ./configure
then i run make i get this message
usr/include/drm/nouveau_pushbuf.h: In function ?OUT_RING?:
/usr/include/drm/nouveau_pushbuf.h:72: error: ?struct nouveau_channel? has no
member named ?cur?
/usr/include/drm/nouveau_pushbuf.h: In function ?AVAIL_RING?:
/usr/include/drm/nouveau_pushbuf.h:93: error: ?struct nouveau_channel? has no
member named ?end?
/usr/include/drm/nouveau_pushbuf.h:93: error: ?struct nouveau_channel? has no
member named ?cur?
/usr/include/drm...
2010 Jan 29
2
[PATCH 1/2] libdrm/nouveau: new optimized libdrm pushbuffer ABI
This patch changes the pushbuffer ABI to:
1. No longer use/expose nouveau_pushbuffer. Everything is directly
in nouveau_channel. This saves the extra "pushbuf" pointer dereference.
2. Use cur/end pointers instead of tracking the remaining size.
Pushing data now only needs to alter cur and not both cur and remaining.
The goal is to make the *_RING macros faster and make the interface simpler
and cleaner in the...
2020 Aug 07
2
[PATCH] drm/nouveau: missing cases of rename ttm_mem_reg to ttm_resource.
.../drivers/gpu/drm/nouveau/nouveau_bo.h
index 52489ce7d029c..aecb7481df0da 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bo.h
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.h
@@ -139,28 +139,28 @@ nouveau_bo_new_pin_map(struct nouveau_cli *cli, u64 size, int align, u32 flags,
int nv04_bo_move_init(struct nouveau_channel *, u32);
int nv04_bo_move_m2mf(struct nouveau_channel *, struct ttm_buffer_object *,
- struct ttm_mem_reg *, struct ttm_mem_reg *);
+ struct ttm_resource *, struct ttm_resource *);
int nv50_bo_move_init(struct nouveau_channel *, u32);
int nv50_bo_move_m2mf(struct nouveau_channel...
2010 Feb 07
3
[PATCH] drm/nouveau: don't hold spin lock while calling kzalloc with GFP_KERNEL
...e
no reason in spin locking pgraph create context, it isn't activated at that
stage.
- Move and rename the lock after some discussion with 'joi', even better naming
suggestions are appreciated.
Signed-off-by: Maarten Maathuis <madman2003 at gmail.com>
---
drivers/gpu/drm/nouveau/nouveau_channel.c | 9 ++-------
drivers/gpu/drm/nouveau/nouveau_drv.h | 4 +++-
drivers/gpu/drm/nouveau/nouveau_irq.c | 4 ++--
drivers/gpu/drm/nouveau/nouveau_state.c | 2 +-
drivers/gpu/drm/nouveau/nv04_fifo.c | 5 +++++
drivers/gpu/drm/nouveau/nv40_fifo.c | 5 +++++
driv...
2010 May 31
2
[PATCH] drm/nouveau: reduce usage of fence spinlock to when absolutely necessary
From: Ben Skeggs <bskeggs at redhat.com>
Signed-off-by: Ben Skeggs <bskeggs at redhat.com>
---
drivers/gpu/drm/nouveau/nouveau_channel.c | 2 --
drivers/gpu/drm/nouveau/nouveau_drv.h | 1 -
drivers/gpu/drm/nouveau/nouveau_fence.c | 28 ++++------------------------
drivers/gpu/drm/nouveau/nv04_graph.c | 1 -
4 files changed, 4 insertions(+), 28 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nouveau_channel...
2009 Dec 25
1
[PATCH] drm/nv50: synchronize user channel after buffer object move on kernel channel
...t a generic implementation that will work everywhere, but it's
a start.
- This will fix the corruption surrounding pixmap/texture bo moves on nv50.
Signed-off-by: Maarten Maathuis <madman2003 at gmail.com>
---
drivers/gpu/drm/nouveau/nouveau_bo.c | 8 ++-
drivers/gpu/drm/nouveau/nouveau_channel.c | 9 ++-
drivers/gpu/drm/nouveau/nouveau_dma.c | 26 ++++++++
drivers/gpu/drm/nouveau/nouveau_dma.h | 11 ++-
drivers/gpu/drm/nouveau/nouveau_drv.h | 11 +++
drivers/gpu/drm/nouveau/nouveau_fence.c | 101 +++++++++++++++++++++++++++++
drivers/gpu/drm/nouveau/nouveau_object...
2009 Sep 17
1
[PATCH 1/3] drm/nouveau: change channel regs mapping to ioremap
Use ioremap() for mapping the channel user regs (that are never exposed
to user space) instead of drm_addmap().
This removes the last use cases of drm_addmap/drm_rmmap from Nouveau.
Signed-off-by: Pekka Paalanen <pq at iki.fi>
---
drivers/gpu/drm/nouveau/nouveau_channel.c | 13 ++++++-------
drivers/gpu/drm/nouveau/nouveau_drv.h | 9 +++------
drivers/gpu/drm/nouveau/nv50_display.c | 13 ++++++-------
3 files changed, 15 insertions(+), 20 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nouveau_channel.c b/drivers/gpu/drm/nouveau/nouveau_channel.c...
2010 Jan 12
1
[libdrm PATCH] nouveau: disable flush_notify on channel_free
From: Marcin Slusarz <marcin.slusarz at gmail.com>
Subject: [libdrm PATCH] nouveau: disable flush_notify on channel_free
We don't want do call flush_notify when we will FIRE the RING
a couple of lines later, because grobj bound to this channel
might be already freed.
---
nouveau/nouveau_channel.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/nouveau/nouveau_channel.c b/nouveau/nouveau_channel.c
index 14cf4c6..01d6681 100644
--- a/nouveau/nouveau_channel.c
+++ b/nouveau/nouveau_channel.c
@@ -107,6 +107,7 @@ nouveau_channel_free(struct nouveau_channel **chan)
if...
2009 Aug 26
1
[PATCH] drm/nouveau: init some list_heads
- In the case of nvbo->head it is really important to avoid an OOPS if ttm_buffer_object_init fails.
Signed-off-by: Maarten Maathuis <madman2003 at gmail.com>
---
drivers/gpu/drm/nouveau/nouveau_bo.c | 2 ++
drivers/gpu/drm/nouveau/nouveau_channel.c | 1 +
drivers/gpu/drm/nouveau/nouveau_object.c | 1 +
3 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
index 24d6f8f..6b8ef6b 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
+++ b/drivers/gpu/drm/n...
2020 Aug 07
0
[PATCH] drm/nouveau: missing cases of rename ttm_mem_reg to ttm_resource.
...veau_bo.h
> index 52489ce7d029c..aecb7481df0da 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_bo.h
> +++ b/drivers/gpu/drm/nouveau/nouveau_bo.h
> @@ -139,28 +139,28 @@ nouveau_bo_new_pin_map(struct nouveau_cli *cli, u64 size, int align, u32 flags,
>
> int nv04_bo_move_init(struct nouveau_channel *, u32);
> int nv04_bo_move_m2mf(struct nouveau_channel *, struct ttm_buffer_object *,
> - struct ttm_mem_reg *, struct ttm_mem_reg *);
> + struct ttm_resource *, struct ttm_resource *);
>
> int nv50_bo_move_init(struct nouveau_channel *, u32...
2011 Sep 09
1
[PATCH] drm/nouveau: initialize chan->fence.lock before use
Fence lock needs to be initialized before any call to nouveau_channel_put
because it calls nouveau_channel_idle->nouveau_fence_update which uses
fence lock.
BUG: spinlock bad magic on CPU#0, test/24134
lock: ffff88019f90dba8, .magic: 00000000, .owner: <none>/-1, .owner_cpu: 0
Pid: 24134, comm: test Not tainted 3.0.0-nv+ #800
Call Trace:
spin_bug+0x9c/0xa3...
2009 Dec 27
3
[PATCH 1/2] drm/nv50: align size of buffer object to the right boundaries.
- Depth and stencil buffers are supposed to be large enough in general.
Signed-off-by: Maarten Maathuis <madman2003 at gmail.com>
---
drivers/gpu/drm/nouveau/nouveau_bo.c | 9 ++++-----
1 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
index e342a41..9fc4bd6 100644
---
2010 Apr 11
1
[PATCH 2/2] drm/nv04: Implement missing nv04 PGRAPH methods in software.
...anged, 538 insertions(+), 33 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nv04_graph.c b/drivers/gpu/drm/nouveau/nv04_graph.c
index d96c351..1b0af3a 100644
--- a/drivers/gpu/drm/nouveau/nv04_graph.c
+++ b/drivers/gpu/drm/nouveau/nv04_graph.c
@@ -532,9 +532,82 @@ nv04_graph_mthd_set_ref(struct nouveau_channel *chan, int grclass,
return 0;
}
-static int
-nv04_graph_mthd_set_operation(struct nouveau_channel *chan, int grclass,
- int mthd, uint32_t data)
+/*
+ * Software methods, why they are needed, and how they all work:
+ *
+ * NV04 and NV05 keep most of the state in PGRAPH context itself,...
2014 May 14
0
[RFC PATCH v1 07/16] drm/nouveau: rework to new fence interface
...static void *
diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
index 6a0ca004bd19..eeb8762feaf0 100644
--- a/drivers/gpu/drm/nouveau/nouveau_display.c
+++ b/drivers/gpu/drm/nouveau/nouveau_display.c
@@ -660,7 +660,7 @@ nouveau_page_flip_emit(struct nouveau_channel *chan,
spin_unlock_irqrestore(&dev->event_lock, flags);
/* Synchronize with the old framebuffer */
- ret = nouveau_fence_sync(old_bo->bo.sync_obj, chan);
+ ret = nouveau_fence_sync(old_bo, chan);
if (ret)
goto fail;
@@ -721,7 +721,7 @@ nouveau_crtc_page_flip(struct drm_crtc *...
2009 Aug 20
4
[PATCH 1/4] drm/nouveau: refactor nouveau_dma_wait()
...1 files changed, 39 insertions(+), 33 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nouveau_dma.c b/drivers/gpu/drm/nouveau/nouveau_dma.c
index b1f3a71..b787651 100644
--- a/drivers/gpu/drm/nouveau/nouveau_dma.c
+++ b/drivers/gpu/drm/nouveau/nouveau_dma.c
@@ -115,14 +115,43 @@ READ_GET(struct nouveau_channel *chan, uint32_t *get)
return true;
}
+static int
+dma_wait_ring_wrap(struct nouveau_channel *chan, int size, uint32_t get,
+ int *timeout)
+{
+ /* Emit jump to the start of the ring buffer. */
+ OUT_RING(chan, 0x20000000 | chan->pushbuf_base);
+
+ if (get <= NOUVEAU_DMA_SKIPS) {
+ /...
2010 Apr 11
1
[PATCH 1/2] drm/nouveau: Use 0x5f instead of 0x9f as imageblit on original NV10.
Signed-off-by: Marcin Ko?cielnicki <koriakin at 0x04.net>
---
drivers/gpu/drm/nouveau/nv04_fbcon.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nv04_fbcon.c b/drivers/gpu/drm/nouveau/nv04_fbcon.c
index 813b25c..7cf9287 100644
--- a/drivers/gpu/drm/nouveau/nv04_fbcon.c
+++ b/drivers/gpu/drm/nouveau/nv04_fbcon.c
@@ -236,7 +236,7 @@
2009 Dec 26
2
[PATCH 1/3] drm/nouveau: Allocate a per-channel instance of NV_SW.
It will be useful for various synchronization purposes, mostly stolen
from "[PATCH] drm/nv50: synchronize user channel after buffer object
move on kernel channel" by Maarten Maathuis.
Signed-off-by: Francisco Jerez <currojerez at riseup.net>
---
drivers/gpu/drm/nouveau/nouveau_channel.c | 4 +++-
drivers/gpu/drm/nouveau/nouveau_dma.c | 17 +++++++++++++++++
drivers/gpu/drm/nouveau/nouveau_dma.h | 10 ++++++----
drivers/gpu/drm/nouveau/nouveau_drv.h | 20 +++++++++++---------
drivers/gpu/drm/nouveau/nouveau_object.c | 2 +-
drivers/gpu/drm/nouveau/nv04_fb...
2010 Feb 01
4
[PATCH 1/3] Introduce nouveau_bo_wait for waiting on a BO with a GPU channel
...rs/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
index db0ed4c..8afc17e 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
@@ -35,6 +35,70 @@
#include <linux/log2.h>
+int
+nouveau_bo_wait(struct ttm_buffer_object *bo, struct nouveau_channel *chan)
+{
+ int ret = 0;
+
+ if (likely(!bo->sync_obj))
+ return 0;
+
+ spin_lock(&bo->lock);
+ if (chan) {
+ struct nouveau_fence *new_fence;
+ struct nouveau_channel *waited_chan;
+
+ do {
+ struct nouveau_fence *prev_fence;
+ prev_fence = bo->sync_obj;
+
+ waited_chan = no...
2023 Aug 29
1
[PATCH drm-misc-next] drm/nouveau: fence: fix undefined fence state after emit
...(+), 40 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/dispnv04/crtc.c b/drivers/gpu/drm/nouveau/dispnv04/crtc.c
index a34924523133..a34917b048f9 100644
--- a/drivers/gpu/drm/nouveau/dispnv04/crtc.c
+++ b/drivers/gpu/drm/nouveau/dispnv04/crtc.c
@@ -1122,18 +1122,11 @@ nv04_page_flip_emit(struct nouveau_channel *chan,
PUSH_NVSQ(push, NV_SW, NV_SW_PAGE_FLIP, 0x00000000);
PUSH_KICK(push);
- ret = nouveau_fence_new(pfence);
+ ret = nouveau_fence_new(pfence, chan);
if (ret)
goto fail;
- ret = nouveau_fence_emit(*pfence, chan);
- if (ret)
- goto fail_fence_unref;
-
return 0;
-
-fail_fence_unref...
2010 Feb 09
2
[PATCH 1/3] Introduce nouveau_bo_wait for waiting on a BO with a GPU channel (v2)
...rs/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
index 028719f..2da6acf 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
@@ -35,6 +35,70 @@
#include <linux/log2.h>
+int
+nouveau_bo_wait(struct ttm_buffer_object *bo, struct nouveau_channel *chan)
+{
+ int ret = 0;
+
+ if (likely(!bo->sync_obj))
+ return 0;
+
+ spin_lock(&bo->lock);
+ if (chan) {
+ struct nouveau_fence *new_fence;
+ struct nouveau_channel *waited_chan;
+
+ do {
+ struct nouveau_fence *prev_fence;
+ prev_fence = bo->sync_obj;
+
+ waited_chan = no...