search for: evo_wait

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; > +...