Displaying 20 results from an estimated 61 matches for "evo_wait".
2013 Mar 05
3
nouveau lockdep splat
...] [ INFO: possible recursive locking detected ]
> [ 0.633618] 3.9.0-rc1 #2 Not tainted
> [ 0.633619] ---------------------------------------------
> [ 0.633619] swapper/0/1 is trying to acquire lock:
> [ 0.633623] (&dmac->lock){+.+...}, at: [<ffffffff8141bb53>] evo_wait+0x43/0xf0
> [ 0.633624]
> [ 0.633624] but task is already holding lock:
> [ 0.633626] (&dmac->lock){+.+...}, at: [<ffffffff8141bb53>] evo_wait+0x43/0xf0
> [ 0.633626]
> [ 0.633626] other info that might help us debug this:
> [ 0.633626] Possible...
2015 Mar 30
0
[Bug 82714] [G84] nouveau fails to properly initialize GPU
https://bugs.freedesktop.org/show_bug.cgi?id=82714
--- Comment #10 from Bruno <bonbons at sysophe.eu> ---
(In reply to Bruno from comment #9)
> Created attachment 114735 [details]
> 4.0-rc6 dmesg of nouveau loading (debug, runpm=0)
The first BUG happens in evo_wait() at line 420 of nv50_display.c
Seems like dmac->ptr[put] is bad.
413: evo_wait(void *evoc, int nr)
414: {
415: struct nv50_dmac *dmac = evoc;
416: u32 put = nvif_rd32(&dmac->base.user, 0x0000) / 4;
417:
418: mutex_lock(&dmac->lock);
419: if (put + nr >= (PAGE_...
2020 Feb 12
0
[PATCH 2/4] drm/nouveau/kms/gv100-: Add support for interlaced modes
...+++ b/drivers/gpu/drm/nouveau/dispnv50/headc37d.c
@@ -168,14 +168,15 @@ headc37d_mode(struct nv50_head *head, struct nv50_head_atom *asyh)
struct nv50_dmac *core = &nv50_disp(head->base.base.dev)->core->chan;
struct nv50_head_mode *m = &asyh->mode;
u32 *push;
- if ((push = evo_wait(core, 12))) {
+ if ((push = evo_wait(core, 13))) {
evo_mthd(push, 0x2064 + (head->base.index * 0x400), 5);
evo_data(push, (m->v.active << 16) | m->h.active );
evo_data(push, (m->v.synce << 16) | m->h.synce );
evo_data(push, (m->v.blanke << 16) |...
2020 May 11
0
[PATCH v3 3/5] drm/nouveau/kms/gv100-: Add support for interlaced modes
...+++ b/drivers/gpu/drm/nouveau/dispnv50/headc37d.c
@@ -168,14 +168,15 @@ headc37d_mode(struct nv50_head *head, struct nv50_head_atom *asyh)
struct nv50_dmac *core = &nv50_disp(head->base.base.dev)->core->chan;
struct nv50_head_mode *m = &asyh->mode;
u32 *push;
- if ((push = evo_wait(core, 12))) {
+ if ((push = evo_wait(core, 13))) {
evo_mthd(push, 0x2064 + (head->base.index * 0x400), 5);
evo_data(push, (m->v.active << 16) | m->h.active );
evo_data(push, (m->v.synce << 16) | m->h.synce );
evo_data(push, (m->v.blanke << 16) |...
2020 Aug 24
2
[PATCH 1/2] drm/nouveau/kms/nv50-: Program notifier offset before requesting disp caps
...-- a/drivers/gpu/drm/nouveau/dispnv50/core507d.c
> +++ b/drivers/gpu/drm/nouveau/dispnv50/core507d.c
> @@ -65,13 +65,26 @@ core507d_ntfy_init(struct nouveau_bo *bo, u32 offset)
> int
> core507d_caps_init(struct nouveau_drm *drm, struct nv50_disp *disp)
> {
> - u32 *push = evo_wait(&disp->core->chan, 2);
> + struct nv50_core *core = disp->core;
> + u32 interlock[NV50_DISP_INTERLOCK__SIZE] = {0};
> + u32 *push;
>
> - if (push) {
> - evo_mthd(push, 0x008c, 1);
> - evo_data(push, 0x0);
> -...
2014 Oct 30
2
[PATCH] nv50/disp: Fix modeset on G94
...s "dmi"?
SetRasterVertBlankDmi is the name of method 0x828. I presume it's
Display Memory Interface or something to that effect.
>
>> +{
>> + struct nv50_mast *mast = nv50_mast(nv_crtc->base.dev);
>> + u32 *push;
>> +
>> + push = evo_wait(mast, 8);
>
> Just needs to be 2, no?
Yes, doesn't matter too much though.
>
>> + if (!push)
>> + return -ENOMEM;
>> +
>> + evo_mthd(push, 0x0828 + (nv_crtc->index * 0x400), 1);
>> + evo_data(push, usec);
>> +...
2020 Aug 31
1
[PATCH 1/2] drm/nouveau/kms/nv50-: Program notifier offset before requesting disp caps
...gt; +++ b/drivers/gpu/drm/nouveau/dispnv50/core507d.c
> > > @@ -65,13 +65,26 @@ core507d_ntfy_init(struct nouveau_bo *bo, u32 offset)
> > > int
> > > core507d_caps_init(struct nouveau_drm *drm, struct nv50_disp *disp)
> > > {
> > > - u32 *push = evo_wait(&disp->core->chan, 2);
> > > + struct nv50_core *core = disp->core;
> > > + u32 interlock[NV50_DISP_INTERLOCK__SIZE] = {0};
> > > + u32 *push;
> > >
> > > - if (push) {
> > > - evo_mthd(push, 0x...
2016 Jan 23
4
[Bug 93834] New: BUG: unable to handle kernel paging request at ffff88110fa7cffc
...s://bugs.freedesktop.org/attachment.cgi?id=121235&action=edit
Complete dmesg
Running Arch Linux (4.3.3-3-ARCH) on a GA-X79S-UP5-WIFI with a GTX Titan and a
8600 GTS, nouveau seems to oops on load:
BUG: unable to handle kernel paging request at ffff88110fa7cffc
IP: [<ffffffffa0c868aa>] evo_wait+0x5a/0x130 [nouveau]
PGD 2b3f067 PUD 0
Oops: 0002 [#1] PREEMPT SMP
CPU: 7 PID: 340 Comm: systemd-udevd Not tainted 4.3.3-3-ARCH #1
Hardware name: Gigabyte Technology Co., Ltd. To be filled by O.E.M./X79S-UP5,
BIOS F5f 03/19/2014
task: ffff881013c40000 ti: ffff881013c4c000 task.ti: ffff88101...
2020 Aug 24
0
[PATCH 1/2] drm/nouveau/kms/nv50-: Program notifier offset before requesting disp caps
...341f572c2696..5e86feec3b720 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/core507d.c
+++ b/drivers/gpu/drm/nouveau/dispnv50/core507d.c
@@ -65,13 +65,26 @@ core507d_ntfy_init(struct nouveau_bo *bo, u32 offset)
int
core507d_caps_init(struct nouveau_drm *drm, struct nv50_disp *disp)
{
- u32 *push = evo_wait(&disp->core->chan, 2);
+ struct nv50_core *core = disp->core;
+ u32 interlock[NV50_DISP_INTERLOCK__SIZE] = {0};
+ u32 *push;
- if (push) {
- evo_mthd(push, 0x008c, 1);
- evo_data(push, 0x0);
- evo_kick(push, &disp->core->chan);
- }
+ core->func->ntfy_init(disp->...
2020 Mar 18
0
[PATCH 3/9] drm/nouveau/kms/nv140-: Don't modify depth in state during atomic commit
...au/dispnv50/headc37d.c
+++ b/drivers/gpu/drm/nouveau/dispnv50/headc37d.c
@@ -27,17 +27,20 @@ static void
headc37d_or(struct nv50_head *head, struct nv50_head_atom *asyh)
{
struct nv50_dmac *core = &nv50_disp(head->base.base.dev)->core->chan;
+ u8 depth;
u32 *push;
+
if ((push = evo_wait(core, 2))) {
/*XXX: This is a dirty hack until OR depth handling is
* improved later for deep colour etc.
*/
switch (asyh->or.depth) {
- case 6: asyh->or.depth = 5; break;
- case 5: asyh->or.depth = 4; break;
- case 2: asyh->or.depth = 1; break;
- case 0: asyh->...
2020 Aug 25
0
[PATCH 1/2] drm/nouveau/kms/nv50-: Program notifier offset before requesting disp caps
...ispnv50/core507d.c
> > +++ b/drivers/gpu/drm/nouveau/dispnv50/core507d.c
> > @@ -65,13 +65,26 @@ core507d_ntfy_init(struct nouveau_bo *bo, u32 offset)
> > int
> > core507d_caps_init(struct nouveau_drm *drm, struct nv50_disp *disp)
> > {
> > - u32 *push = evo_wait(&disp->core->chan, 2);
> > + struct nv50_core *core = disp->core;
> > + u32 interlock[NV50_DISP_INTERLOCK__SIZE] = {0};
> > + u32 *push;
> >
> > - if (push) {
> > - evo_mthd(push, 0x008c, 1);
> > -...
2020 Apr 17
0
[RFC v3 05/11] drm/nouveau/kms/nv140-: Don't modify depth in state during atomic commit
...au/dispnv50/headc37d.c
+++ b/drivers/gpu/drm/nouveau/dispnv50/headc37d.c
@@ -27,17 +27,20 @@ static void
headc37d_or(struct nv50_head *head, struct nv50_head_atom *asyh)
{
struct nv50_dmac *core = &nv50_disp(head->base.base.dev)->core->chan;
+ u8 depth;
u32 *push;
+
if ((push = evo_wait(core, 2))) {
/*XXX: This is a dirty hack until OR depth handling is
* improved later for deep colour etc.
*/
switch (asyh->or.depth) {
- case 6: asyh->or.depth = 5; break;
- case 5: asyh->or.depth = 4; break;
- case 2: asyh->or.depth = 1; break;
- case 0: asyh->...
2020 May 08
0
[RFC v4 06/12] drm/nouveau/kms/nv140-: Don't modify depth in state during atomic commit
...au/dispnv50/headc37d.c
+++ b/drivers/gpu/drm/nouveau/dispnv50/headc37d.c
@@ -27,17 +27,20 @@ static void
headc37d_or(struct nv50_head *head, struct nv50_head_atom *asyh)
{
struct nv50_dmac *core = &nv50_disp(head->base.base.dev)->core->chan;
+ u8 depth;
u32 *push;
+
if ((push = evo_wait(core, 2))) {
/*XXX: This is a dirty hack until OR depth handling is
* improved later for deep colour etc.
*/
switch (asyh->or.depth) {
- case 6: asyh->or.depth = 5; break;
- case 5: asyh->or.depth = 4; break;
- case 2: asyh->or.depth = 1; break;
- case 0: asyh->...
2014 Oct 30
2
[PATCH] nv50/disp: Fix modeset on G94
...drivers/gpu/drm/nouveau/nv50_display.c
@@ -791,6 +791,23 @@ nv50_crtc_set_scale(struct nouveau_crtc *nv_crtc, bool update)
}
static int
+nv50_crtc_set_raster_vblank_dmi(struct nouveau_crtc *nv_crtc, u32 usec)
+{
+ struct nv50_mast *mast = nv50_mast(nv_crtc->base.dev);
+ u32 *push;
+
+ push = evo_wait(mast, 8);
+ if (!push)
+ return -ENOMEM;
+
+ evo_mthd(push, 0x0828 + (nv_crtc->index * 0x400), 1);
+ evo_data(push, usec);
+ evo_kick(push, mast);
+
+ return 0;
+}
+
+static int
nv50_crtc_set_color_vibrance(struct nouveau_crtc *nv_crtc, bool update)
{
struct nv50_mast *mast = nv50_mast(nv_c...
2014 Oct 31
0
[PATCH] nv50/disp: Fix modeset on G94
...e name of method 0x828. I presume it's
> Display Memory Interface or something to that effect.
>
> >
> >> +{
> >> + struct nv50_mast *mast = nv50_mast(nv_crtc->base.dev);
>
> >> + u32 *push;
> >> +
> >> + push = evo_wait(mast, 8);
> >
> > Just needs to be 2, no?
> Yes, doesn't matter too much though.
If it is, we might need to fix nv50_crtc_mode_set() too; it seems to assume the second parameter in evo_wait() is bytes, not words.
>
> >
> >> + if (!push)
> >> +...
2020 Aug 24
4
[PATCH 0/2] drm/nouveau: Backport SOR/PIOR probing fixes for v5.8
These didn't apply cleanly to v5.8, so here's a backported version.
Lyude Paul (2):
drm/nouveau/kms/nv50-: Program notifier offset before requesting disp
caps
drm/nouveau/kms/nv50-: Log SOR/PIOR caps
drivers/gpu/drm/nouveau/dispnv50/core507d.c | 25 ++++++++++++++++-----
drivers/gpu/drm/nouveau/dispnv50/disp.c | 10 +++++++++
2 files changed, 29 insertions(+), 6 deletions(-)
2019 Mar 21
2
Nouveau dmem NULL Pointer deref (SVM)
...1192.533913] Oops: 0002 [#1] PREEMPT SMP PTI
[ 1192.533914] CPU: 1 PID: 54 Comm: kworker/1:1 Tainted: G W
5.1.0-rc1-desktop-debug+ #80
[ 1192.533915] Hardware name: Acer Aspire VN7-593G/Pluto_KLS, BIOS V1.11
08/01/2018
[ 1192.533919] Workqueue: pm pm_runtime_work
[ 1192.533988] RIP: 0010:evo_wait+0x55/0x130 [nouveau]
[ 1192.533989] Code: 00 00 00 89 c3 4c 89 f7 e8 78 dc 88 dd 89 da 44 01
eb 48 8d 04 95 00 00 00 00 81 fb f7 03 00 00 0f 86 86 00 00 00 48 8b 45
70 <c7> 04 90 00 00 00 20 f6 45 58 01 74 09 48 8b 7d 28 e8 d5 e1 ff ff
[ 1192.533990] RSP: 0018:ffffa45c00edfc90 EFLAGS: 00010...
2019 Jun 25
4
[Bug 110996] New: swaywm (wayland) crashes when turning off monitors through dpms
...request at ffffaa2b3e7f6000
#PF error: [WRITE]
PGD 80ed39067 P4D 80ed39067 PUD 0
Oops: 0002 [#1] PREEMPT SMP PTI
CPU: 7 PID: 728 Comm: sway Tainted: G OE 5.1.14-arch1-1-ARCH #1
Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./Z77 Extreme4, BIOS
P2.90 07/11/2013
RIP: 0010:evo_wait+0x5a/0x130 [nouveau]
Code: 00 00 c1 eb 02 4c 89 f7 e8 b3 64 c2 d5 89 da 44 01 e3 48 8d 04 95 00 00
00 00 81 fb f7 03 00 00 0f 86 86 00 00 00 48 8b 45 70 <c7> 04 90 00 00 00 20 f6
45 58 01 74 09 48 8b 7d 28 e8 50 e2 ff ff
RSP: 0018:ffffaa2a838cbae0 EFLAGS: 00010212
RAX: ffffaa2a83a05000 RBX: 0...
2013 Mar 03
5
[Bug 61765] New: Regression: null pointer dereference on reboot after switcheroo use
https://bugs.freedesktop.org/show_bug.cgi?id=61765
Priority: medium
Bug ID: 61765
Assignee: nouveau at lists.freedesktop.org
Summary: Regression: null pointer dereference on reboot after
switcheroo use
QA Contact: xorg-team at lists.x.org
Severity: major
Classification: Unclassified
OS: Linux
2014 Sep 05
1
[PATCH 1/8] nv50/display: Set VBLANK time in modeset script
...t;flags & DRM_MODE_FLAG_INTERLACE) {
> vblan2e = vactive + vsynce + vbackp;
> vblan2s = vblan2e + (mode->vdisplay * vscan / ilace);
> @@ -1100,17 +1101,22 @@ nv50_crtc_mode_set(struct drm_crtc *crtc, struct drm_display_mode *umode,
> push = evo_wait(mast, 64);
> if (push) {
> if (nv50_vers(mast) < NVD0_DISP_MAST_CLASS) {
> + /* XXX: Safe underestimate, even "0" works */
> + vblankus = (vactive - mode->vdisplay - 2) * hactive;
> +...