Displaying 20 results from an estimated 26 matches for "nouveau_channel_idle".
2013 Apr 08
1
[PATCH] drm/nouveau: idle all channels before suspending
...t;);
ttm_bo_evict_mm(&drm->ttm.bdev, TTM_PL_VRAM);
+ list_for_each_entry(cli, &drm->clients, head) {
+ struct nouveau_abi16 *abi16 = cli->abi16;
+ struct nouveau_abi16_chan *chan;
+
+ if (!abi16)
+ continue;
+
+ list_for_each_entry(chan, &abi16->channels, head)
+ nouveau_channel_idle(chan->chan);
+ }
+
+ if (drm->channel)
+ nouveau_channel_idle(drm->channel);
+
+ if (drm->cechan)
+ nouveau_channel_idle(drm->cechan);
+
if (drm->fence && nouveau_fence(drm)->suspend) {
if (!nouveau_fence(drm)->suspend(drm))
return -ENOMEM;
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
do_raw_spin_lock+0x29/0x13c
_raw_spin_l...
2014 Jan 23
0
[PATCH] drm/nouveau: resume display if any later suspend bits fail
...it a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
index 466037c..bfd02410 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
@@ -503,19 +503,21 @@ nouveau_do_suspend(struct drm_device *dev)
if (drm->cechan) {
ret = nouveau_channel_idle(drm->cechan);
if (ret)
- return ret;
+ goto fail_display;
}
if (drm->channel) {
ret = nouveau_channel_idle(drm->channel);
if (ret)
- return ret;
+ goto fail_display;
}
NV_INFO(drm, "suspending client object trees...\n");
if (drm->fence &&...
2015 Jan 17
0
[PATCH] nouveau: move conditional suspend messages into conditionals
...*dev, bool runtime)
NV_INFO(drm, "evicting buffers...\n");
ttm_bo_evict_mm(&drm->ttm.bdev, TTM_PL_VRAM);
- NV_INFO(drm, "waiting for kernel channels to go idle...\n");
if (drm->cechan) {
+ NV_INFO(drm, "waiting for cechan to go idle...\n");
ret = nouveau_channel_idle(drm->cechan);
if (ret)
goto fail_display;
}
if (drm->channel) {
+ NV_INFO(drm, "waiting for kernel channel to go idle...\n");
ret = nouveau_channel_idle(drm->channel);
if (ret)
goto fail_display;
}
- NV_INFO(drm, "suspending client object trees......
2014 Jan 14
1
[PATCH 1/2] drm/nouveau: hold mutex while syncing to kernel channel
Not holding the mutex potentially causes corruption of the kernel
channel when page flipping.
Cc: stable at vger.kernel.org #3.13
Signed-off-by: Maarten Lankhorst <maarten.lankhorst at canonical.com>
---
diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
index 29c3efdfc7dd..76e3cf025c10 100644
--- a/drivers/gpu/drm/nouveau/nouveau_display.c
2016 Aug 02
0
[PATCH 0203/1285] Replace numeric parameter like 0444 with macro
.../drm/nouveau/nouveau_chan.c
@@ -43,7 +43,7 @@
MODULE_PARM_DESC(vram_pushbuf, "Create DMA push buffers in VRAM");
int nouveau_vram_pushbuf;
-module_param_named(vram_pushbuf, nouveau_vram_pushbuf, int, 0400);
+module_param_named(vram_pushbuf, nouveau_vram_pushbuf, int, S_IRUSR);
int
nouveau_channel_idle(struct nouveau_channel *chan)
--
2.9.2
2013 Mar 05
0
[PATCH] drm/nouveau: drop redundant channel handle and owner info from nv_channel_idle
...veau_chan.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nouveau_chan.c b/drivers/gpu/drm/nouveau/nouveau_chan.c
index eaa80a2..c8be059 100644
--- a/drivers/gpu/drm/nouveau/nouveau_chan.c
+++ b/drivers/gpu/drm/nouveau/nouveau_chan.c
@@ -58,8 +58,7 @@ nouveau_channel_idle(struct nouveau_channel *chan)
}
if (ret)
- NV_ERROR(cli, "failed to idle channel 0x%08x [%s]\n",
- chan->handle, cli->base.name);
+ NV_ERROR(cli, "failed to idle channel: %d\n", ret);
return ret;
}
--
1.8.1.4
2013 Mar 05
0
[PATCH] drm/nouveau: idle channel before releasing notify object
.../drm/nouveau/nouveau_abi16.c
@@ -116,6 +116,11 @@ nouveau_abi16_chan_fini(struct nouveau_abi16 *abi16,
{
struct nouveau_abi16_ntfy *ntfy, *temp;
+ /* wait for all activity to stop before releasing notify object, which
+ * may be still in use */
+ if (chan->chan && chan->ntfy)
+ nouveau_channel_idle(chan->chan);
+
/* cleanup notifier state */
list_for_each_entry_safe(ntfy, temp, &chan->notifiers, head) {
nouveau_abi16_ntfy_fini(chan, ntfy);
--
1.8.1.4
2013 Dec 17
0
[Bug 58378] [NV86] Distorted graphics on NVIDIA GeForce 8400M G after upgrade the kernel to 3.7.0 version
https://bugs.freedesktop.org/show_bug.cgi?id=58378
--- Comment #41 from Ilia Mirkin <imirkin at alum.mit.edu> ---
The fix for that compilation issue is contained in
d1b167e168bdac0b6af11e7a8c601773639fc419
Basically you need to make nouveau_channel_idle return an int, and just stick a
'return ret' at the end. And adjust the prototype in nouveau_drv.h.
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/ar...
2023 Jan 09
1
[PATCH] drm/nouveau: Remove file nouveau_fbcon.c
...t nouveau_channel *chan = drm->channel;
- int ret;
-
- if (!chan || !chan->accel_done || in_interrupt() ||
- info->state != FBINFO_STATE_RUNNING ||
- info->flags & FBINFO_HWACCEL_DISABLED)
- return 0;
-
- if (!mutex_trylock(&drm->client.mutex))
- return 0;
-
- ret = nouveau_channel_idle(chan);
- mutex_unlock(&drm->client.mutex);
- if (ret) {
- nouveau_fbcon_gpu_lockup(info);
- return 0;
- }
-
- chan->accel_done = false;
- return 0;
-}
-
-static int
-nouveau_fbcon_open(struct fb_info *info, int user)
-{
- struct nouveau_fbdev *fbcon = info->par;
- struct nouveau_drm...
2023 Jan 09
1
[PATCH] drm/nouveau: Remove file nouveau_fbcon.c
...e || in_interrupt() ||
> - info->state != FBINFO_STATE_RUNNING ||
> - info->flags & FBINFO_HWACCEL_DISABLED)
> - return 0;
> -
> - if (!mutex_trylock(&drm->client.mutex))
> - return 0;
> -
> - ret = nouveau_channel_idle(chan);
> - mutex_unlock(&drm->client.mutex);
> - if (ret) {
> - nouveau_fbcon_gpu_lockup(info);
> - return 0;
> - }
> -
> - chan->accel_done = false;
> - return 0;
> -}
> -
> -static int
> -nouve...
2023 Jan 09
1
[PATCH] drm/nouveau: Remove file nouveau_fbcon.c
...- info->state != FBINFO_STATE_RUNNING ||
>> - info->flags & FBINFO_HWACCEL_DISABLED)
>> - return 0;
>> -
>> - if (!mutex_trylock(&drm->client.mutex))
>> - return 0;
>> -
>> - ret = nouveau_channel_idle(chan);
>> - mutex_unlock(&drm->client.mutex);
>> - if (ret) {
>> - nouveau_fbcon_gpu_lockup(info);
>> - return 0;
>> - }
>> -
>> - chan->accel_done = false;
>> - return 0;
>> -}...
2016 Feb 02
2
[Bug 93968] New: BUG in nouveau_fbcon_sync()
...leep+0x49/0x80
[ 37.438544] [<ffffffff81202dfd>] kmem_cache_alloc_trace+0x20d/0x2e0
[ 37.438600] [<ffffffffa0272e9b>] ? nouveau_fence_new+0x3b/0x90 [nouveau]
[ 37.438624] [<ffffffffa0272e9b>] nouveau_fence_new+0x3b/0x90 [nouveau]
[ 37.438649] [<ffffffffa02707b2>] nouveau_channel_idle+0x42/0xb0 [nouveau]
[ 37.438673] [<ffffffffa026bb3f>] nouveau_fbcon_sync+0x7f/0xb0 [nouveau]
[ 37.438677] [<ffffffff8148998a>] cfb_imageblit+0x9a/0x4d0
[ 37.438681] [<ffffffff810d22ef>] ? trace_hardirqs_off_caller+0x1f/0xc0
[ 37.438693] [<ffffffffa013d30e>] drm_f...
2014 Aug 18
0
[PATCH] drm: Display Nouveau boot options at launch
...int, 0400);
int
diff --git a/drm/nouveau_chan.h b/drm/nouveau_chan.h
index 2016370..8309c24 100644
--- a/drm/nouveau_chan.h
+++ b/drm/nouveau_chan.h
@@ -47,4 +47,6 @@ int nouveau_channel_new(struct nouveau_drm *, struct nvif_device *,
void nouveau_channel_del(struct nouveau_channel **);
int nouveau_channel_idle(struct nouveau_channel *);
+extern int nouveau_vram_pushbuf;
+
#endif
diff --git a/drm/nouveau_connector.c b/drm/nouveau_connector.c
index 1ec44c8..c8ac948 100644
--- a/drm/nouveau_connector.c
+++ b/drm/nouveau_connector.c
@@ -45,15 +45,15 @@
#include <nvif/event.h>
MODULE_PARM_DESC(tv...
2024 Feb 02
3
[PATCH 1/2] drm/nouveau: don't fini scheduler if not initialized
...bi16_chan_fini(struct nouveau_abi16 *abi16,
struct nouveau_abi16_ntfy *ntfy, *temp;
/* Cancel all jobs from the entity's queue. */
- drm_sched_entity_fini(&chan->sched.entity);
+ if (chan->sched)
+ drm_sched_entity_fini(&chan->sched->entity);
if (chan->chan)
nouveau_channel_idle(chan->chan);
- nouveau_sched_fini(&chan->sched);
+ if (chan->sched)
+ nouveau_sched_destroy(&chan->sched);
/* cleanup notifier state */
list_for_each_entry_safe(ntfy, temp, &chan->notifiers, head) {
@@ -337,8 +339,8 @@ nouveau_abi16_ioctl_channel_alloc(ABI16_IOCT...
2023 Aug 29
1
[PATCH drm-misc-next] drm/nouveau: fence: fix undefined fence state after emit
...*
* wait on the fence here explicitly as going through
diff --git a/drivers/gpu/drm/nouveau/nouveau_chan.c b/drivers/gpu/drm/nouveau/nouveau_chan.c
index 1fd5ccf41128..bb3d6e5c122f 100644
--- a/drivers/gpu/drm/nouveau/nouveau_chan.c
+++ b/drivers/gpu/drm/nouveau/nouveau_chan.c
@@ -70,11 +70,9 @@ nouveau_channel_idle(struct nouveau_channel *chan)
struct nouveau_fence *fence = NULL;
int ret;
- ret = nouveau_fence_new(&fence);
+ ret = nouveau_fence_new(&fence, chan);
if (!ret) {
- ret = nouveau_fence_emit(fence, chan);
- if (!ret)
- ret = nouveau_fence_wait(fence, false, false);
+ re...
2023 Jan 10
1
[PATCH v2] drm/nouveau: Remove file nouveau_fbcon.c
...t nouveau_channel *chan = drm->channel;
- int ret;
-
- if (!chan || !chan->accel_done || in_interrupt() ||
- info->state != FBINFO_STATE_RUNNING ||
- info->flags & FBINFO_HWACCEL_DISABLED)
- return 0;
-
- if (!mutex_trylock(&drm->client.mutex))
- return 0;
-
- ret = nouveau_channel_idle(chan);
- mutex_unlock(&drm->client.mutex);
- if (ret) {
- nouveau_fbcon_gpu_lockup(info);
- return 0;
- }
-
- chan->accel_done = false;
- return 0;
-}
-
-static int
-nouveau_fbcon_open(struct fb_info *info, int user)
-{
- struct nouveau_fbdev *fbcon = info->par;
- struct nouveau_drm...
2013 Dec 07
3
[Bug 72458] New: Machine freezes when launching Firefox
https://bugs.freedesktop.org/show_bug.cgi?id=72458
Priority: medium
Bug ID: 72458
Assignee: nouveau at lists.freedesktop.org
Summary: Machine freezes when launching Firefox
QA Contact: xorg-team at lists.x.org
Severity: normal
Classification: Unclassified
OS: Linux (All)
Reporter: konglomeratum at mpp.hu
2016 Apr 10
1
[PATCH] module parameters: permissions as defines, readable to everyone
.../drm/nouveau/nouveau_chan.c
@@ -43,7 +43,7 @@
MODULE_PARM_DESC(vram_pushbuf, "Create DMA push buffers in VRAM");
int nouveau_vram_pushbuf;
-module_param_named(vram_pushbuf, nouveau_vram_pushbuf, int, 0400);
+module_param_named(vram_pushbuf, nouveau_vram_pushbuf, int, S_IRUGO);
int
nouveau_channel_idle(struct nouveau_channel *chan)
diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
index ae96ebc..30785fb 100644
--- a/drivers/gpu/drm/nouveau/nouveau_connector.c
+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
@@ -49,19 +49,19 @@
MODULE_PARM_D...
2016 Apr 11
0
[PATCH] nouveau: Switch perms from macros to octal notations, module params readable to everyone
...gpu/drm/nouveau/nouveau_chan.c
@@ -43,7 +43,7 @@
MODULE_PARM_DESC(vram_pushbuf, "Create DMA push buffers in VRAM");
int nouveau_vram_pushbuf;
-module_param_named(vram_pushbuf, nouveau_vram_pushbuf, int, 0400);
+module_param_named(vram_pushbuf, nouveau_vram_pushbuf, int, 0444);
int
nouveau_channel_idle(struct nouveau_channel *chan)
diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
index ae96ebc..1684d22 100644
--- a/drivers/gpu/drm/nouveau/nouveau_connector.c
+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
@@ -49,19 +49,19 @@
MODULE_PARM_D...