Displaying 13 results from an estimated 13 matches for "nouveau_fence_context_new".
2014 May 14
0
[RFC PATCH v1 07/16] drm/nouveau: rework to new fence interface
...lock);
- list_for_each_entry_safe(fence, fnext, &fctx->pending, head) {
+
+ spin_lock_irq(fctx->lock);
+ list_for_each_entry_safe(fence, fnext, &fctx->pending, head)
nouveau_fence_signal(fence);
- }
- spin_unlock(&fctx->lock);
+ spin_unlock_irq(fctx->lock);
}
void
-nouveau_fence_context_new(struct nouveau_fence_chan *fctx)
+nouveau_fence_context_new(struct nouveau_channel *chan, struct nouveau_fence_chan *fctx)
{
+ struct nouveau_fifo *pfifo = nouveau_fifo(chan->drm->device);
+ struct nouveau_fifo_chan *fifo = (void*)chan->object;
+
+ fctx->lock = &pfifo->uevent-&g...
2024 Jan 23
1
[PATCH] nouveau: rip out fence irq allow/block sequences.
...(struct work_struct *work)
-{
- struct nouveau_fence_chan *fctx = container_of(work, struct nouveau_fence_chan,
- allow_block_work);
-
- if (atomic_read(&fctx->notify_ref) == 0)
- nvif_event_block(&fctx->event);
- else
- nvif_event_allow(&fctx->event);
-}
-
void
nouveau_fence_context_new(struct nouveau_channel *chan, struct nouveau_fence_chan *fctx)
{
@@ -191,7 +164,6 @@ nouveau_fence_context_new(struct nouveau_channel *chan, struct nouveau_fence_cha
} args;
int ret;
- INIT_WORK(&fctx->allow_block_work, nouveau_fence_work_allow_block);
INIT_LIST_HEAD(&fctx->f...
2024 Jan 25
1
[PATCH] nouveau: rip out fence irq allow/block sequences.
...ce_chan *fctx = container_of(work, struct nouveau_fence_chan,
> - allow_block_work);
> -
> - if (atomic_read(&fctx->notify_ref) == 0)
> - nvif_event_block(&fctx->event);
> - else
> - nvif_event_allow(&fctx->event);
> -}
> -
> void
> nouveau_fence_context_new(struct nouveau_channel *chan, struct nouveau_fence_chan *fctx)
> {
> @@ -191,7 +164,6 @@ nouveau_fence_context_new(struct nouveau_channel *chan, struct nouveau_fence_cha
> } args;
> int ret;
>
> - INIT_WORK(&fctx->allow_block_work, nouveau_fence_work_allow_block);
&g...
2015 Nov 22
2
nouveau: iowrite32 oops & warning at drivers/gpu/drm/nouveau/nouveau_fence.c:198
Hello,
I'm seeing this warning and oops when trying to fuzz linus
v4.4-rc1-290-g3ad5d7e with trinity.
------------[ cut here ]------------
WARNING: CPU: 1 PID: 4308 at
drivers/gpu/drm/nouveau/nouveau_fence.c:198
nouveau_fence_context_new+0x22e/0x270()
CPU: 1 PID: 4308 Comm: trinity-c19 Tainted: G B 4.4.0-rc1+ #1
Hardware name: Dell Inc. OptiPlex 990/0D6H9T, BIOS A06 07/25/2011
0000000000000009 ffff8800ac4bf8b0 ffffffff818a802e 0000000000000000
ffff8800ac4bf8f0 ffffffff8111bc75 ffffffff820170be ffff8800ac9c1050
ffff8801...
2015 Nov 22
0
nouveau: iowrite32 oops & warning at drivers/gpu/drm/nouveau/nouveau_fence.c:198
...<tt.rantala at gmail.com> wrote:
> Hello,
>
> I'm seeing this warning and oops when trying to fuzz linus
> v4.4-rc1-290-g3ad5d7e with trinity.
>
> ------------[ cut here ]------------
> WARNING: CPU: 1 PID: 4308 at
> drivers/gpu/drm/nouveau/nouveau_fence.c:198
> nouveau_fence_context_new+0x22e/0x270()
> CPU: 1 PID: 4308 Comm: trinity-c19 Tainted: G B 4.4.0-rc1+ #1
> Hardware name: Dell Inc. OptiPlex 990/0D6H9T, BIOS A06 07/25/2011
> 0000000000000009 ffff8800ac4bf8b0 ffffffff818a802e 0000000000000000
> ffff8800ac4bf8f0 ffffffff8111bc75 ffffffff820170be ffff8...
2024 Feb 22
1
[PATCH] drm/nouveau: use dedicated wq for fence uevents work
..._wait_uevent_handler(struct nvif_event *event, void *repv, u32 repc)
{
struct nouveau_fence_chan *fctx = container_of(event, typeof(*fctx), event);
- schedule_work(&fctx->uevent_work);
+ queue_work(fctx->wq, &fctx->uevent_work);
return NVIF_EVENT_KEEP;
}
@@ -194,6 +194,7 @@ nouveau_fence_context_new(struct nouveau_channel *chan, struct nouveau_fence_cha
INIT_LIST_HEAD(&fctx->pending);
spin_lock_init(&fctx->lock);
fctx->context = chan->drm->runl[chan->runlist].context_base + chan->chid;
+ fctx->wq = chan->drm->fence_wq;
if (chan == chan->drm-&g...
2024 Feb 23
1
[PATCH] drm/nouveau: use dedicated wq for fence uevents work
...ruct nouveau_fence_chan *fctx = container_of(event, typeof(*fctx), event);
> > - schedule_work(&fctx->uevent_work);
> > + queue_work(fctx->wq, &fctx->uevent_work);
> > return NVIF_EVENT_KEEP;
> > }
> >
> > @@ -194,6 +194,7 @@ nouveau_fence_context_new(struct nouveau_channel *chan, struct nouveau_fence_cha
> > INIT_LIST_HEAD(&fctx->pending);
> > spin_lock_init(&fctx->lock);
> > fctx->context = chan->drm->runl[chan->runlist].context_base + chan->chid;
> > + fctx->...
2024 Jan 29
1
[PATCH] nouveau: offload fence uevents work to workqueue
...);
+}
- return ret;
+static int
+nouveau_fence_wait_uevent_handler(struct nvif_event *event, void *repv, u32 repc)
+{
+ struct nouveau_fence_chan *fctx = container_of(event, typeof(*fctx), event);
+ schedule_work(&fctx->uevent_work);
+ return NVIF_EVENT_KEEP;
}
void
@@ -178,6 +189,7 @@ nouveau_fence_context_new(struct nouveau_channel *chan, struct nouveau_fence_cha
} args;
int ret;
+ INIT_WORK(&fctx->uevent_work, nouveau_fence_uevent_work);
INIT_LIST_HEAD(&fctx->flip);
INIT_LIST_HEAD(&fctx->pending);
spin_lock_init(&fctx->lock);
diff --git a/drivers/gpu/drm/nouveau/...
2023 Aug 29
1
[PATCH drm-misc-next] drm/nouveau: fence: fix undefined fence state after emit
...kfree(exec_job->push.s);
kfree(exec_job);
}
diff --git a/drivers/gpu/drm/nouveau/nouveau_fence.c b/drivers/gpu/drm/nouveau/nouveau_fence.c
index 77c739a55b19..61d9e70da9fd 100644
--- a/drivers/gpu/drm/nouveau/nouveau_fence.c
+++ b/drivers/gpu/drm/nouveau/nouveau_fence.c
@@ -205,16 +205,13 @@ nouveau_fence_context_new(struct nouveau_channel *chan, struct nouveau_fence_cha
}
int
-nouveau_fence_emit(struct nouveau_fence *fence, struct nouveau_channel *chan)
+nouveau_fence_emit(struct nouveau_fence *fence)
{
+ struct nouveau_channel *chan = fence->channel;
struct nouveau_fence_chan *fctx = chan->fence;...
2014 May 14
17
[RFC PATCH v1 00/16] Convert all ttm drivers to use the new reservation interface
This series depends on the previously posted reservation api patches.
2 of them are not yet in for-next-fences branch of
git://git.linaro.org/people/sumit.semwal/linux-3.x.git
The missing patches are still in my vmwgfx_wip branch at
git://people.freedesktop.org/~mlankhorst/linux
All ttm drivers are converted to the fence api, fence_lock is removed
and rcu is used in its place.
qxl is the first
2014 Jul 31
19
[PATCH 01/19] fence: add debugging lines to fence_is_signaled for the callback
fence_is_signaled callback should support being run in
atomic context, but not in irq context.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst at canonical.com>
---
include/linux/fence.h | 23 +++++++++++++++++++----
1 file changed, 19 insertions(+), 4 deletions(-)
diff --git a/include/linux/fence.h b/include/linux/fence.h
index d174585b874b..c1a4519ba2f5 100644
---
2014 Jul 09
22
[PATCH 00/17] Convert TTM to the new fence interface.
This series applies on top of the driver-core-next branch of
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git
Before converting ttm to the new fence interface I had to fix some
drivers to require a reservation before poking with fence_obj.
After flipping the switch RCU becomes available instead, and
the extra reservations can be dropped again. :-)
I've done at least basic
2023 Dec 22
11
nouveau GSP fixes
This is a collection of nouveau debug prints, memory leak, a very
annoying race condition causing system hangs with prime scenarios,
and a fix from Lyude to get the panel on my laptop working.
I'd like to get these into 6.7,
Dave.