search for: nv50_disp_atomic_commit_tail

Displaying 20 results from an estimated 42 matches for "nv50_disp_atomic_commit_tail".

2017 May 07
2
GT 730 freeze : how do diagnose / debug ?
...2150.225666] nouveau 0000:01:00.0: fifo: engine 0: scheduled for recovery [ 2150.225669] nouveau 0000:01:00.0: Xwayland[3019]: channel 31 killed! [ 2296.863975] Workqueue: events_unbound nv50_disp_atomic_commit_work [nouveau] [ 2296.863990] ? nvkm_ioctl_ntfy_get+0x69/0xb0 [nouveau] [ 2296.864032] nv50_disp_atomic_commit_tail+0x55/0x3a00 [nouveau] [ 2296.864047] nv50_disp_atomic_commit_work+0x12/0x20 [nouveau] [ 2296.864118] Workqueue: events_unbound nv50_disp_atomic_commit_work [nouveau] [ 2296.864138] ? nouveau_bo_rd32+0x2a/0x30 [nouveau] [ 2296.864153] ? nv84_fence_read+0x2e/0x30 [nouveau] [ 2296.864175] nv50_dis...
2017 Jul 12
2
[PATCH 15/16] drm/nouveau: Convert nouveau to use new iterator macros
...e); if (asyh->state.active) { - for_each_connector_in_state(asyh->state.state, conn, conns, i) { + for_each_new_connector_in_state(asyh->state.state, conn, conns, i) { if (conns->crtc == crtc) { asyc = nouveau_conn_atom(conns); break; @@ -3904,9 +3904,9 @@ static void nv50_disp_atomic_commit_tail(struct drm_atomic_state *state) { struct drm_device *dev = state->dev; - struct drm_crtc_state *crtc_state; + struct drm_crtc_state *new_crtc_state; struct drm_crtc *crtc; - struct drm_plane_state *plane_state; + struct drm_plane_state *new_plane_state; struct drm_plane *plane; struct n...
2017 Jul 19
1
[PATCH v2 6/7] drm/nouveau: Convert nouveau to use new iterator macros, v2.
...e); if (asyh->state.active) { - for_each_connector_in_state(asyh->state.state, conn, conns, i) { + for_each_new_connector_in_state(asyh->state.state, conn, conns, i) { if (conns->crtc == crtc) { asyc = nouveau_conn_atom(conns); break; @@ -3905,9 +3905,9 @@ static void nv50_disp_atomic_commit_tail(struct drm_atomic_state *state) { struct drm_device *dev = state->dev; - struct drm_crtc_state *crtc_state; + struct drm_crtc_state *new_crtc_state; struct drm_crtc *crtc; - struct drm_plane_state *plane_state; + struct drm_plane_state *new_plane_state; struct drm_plane *plane; struct n...
2017 May 08
3
GT 730 freeze : how do diagnose / debug ?
...ne 0: scheduled for recovery >> [ 2150.225669] nouveau 0000:01:00.0: Xwayland[3019]: channel 31 killed! >> [ 2296.863975] Workqueue: events_unbound nv50_disp_atomic_commit_work >> [nouveau] >> [ 2296.863990] ? nvkm_ioctl_ntfy_get+0x69/0xb0 [nouveau] >> [ 2296.864032] nv50_disp_atomic_commit_tail+0x55/0x3a00 [nouveau] >> [ 2296.864047] nv50_disp_atomic_commit_work+0x12/0x20 [nouveau] >> [ 2296.864118] Workqueue: events_unbound nv50_disp_atomic_commit_work >> [nouveau] >> [ 2296.864138] ? nouveau_bo_rd32+0x2a/0x30 [nouveau] >> [ 2296.864153] ? nv84_fence_read...
2017 May 07
0
GT 730 freeze : how do diagnose / debug ?
...:01:00.0: fifo: engine 0: scheduled for recovery > [ 2150.225669] nouveau 0000:01:00.0: Xwayland[3019]: channel 31 killed! > [ 2296.863975] Workqueue: events_unbound nv50_disp_atomic_commit_work > [nouveau] > [ 2296.863990] ? nvkm_ioctl_ntfy_get+0x69/0xb0 [nouveau] > [ 2296.864032] nv50_disp_atomic_commit_tail+0x55/0x3a00 [nouveau] > [ 2296.864047] nv50_disp_atomic_commit_work+0x12/0x20 [nouveau] > [ 2296.864118] Workqueue: events_unbound nv50_disp_atomic_commit_work > [nouveau] > [ 2296.864138] ? nouveau_bo_rd32+0x2a/0x30 [nouveau] > [ 2296.864153] ? nv84_fence_read+0x2e/0x30 [nouveau]...
2017 Jul 13
0
[Intel-gfx] [PATCH 15/16] drm/nouveau: Convert nouveau to use new iterator macros
...> - for_each_connector_in_state(asyh->state.state, conn, conns, i) { > + for_each_new_connector_in_state(asyh->state.state, conn, conns, i) { > if (conns->crtc == crtc) { > asyc = nouveau_conn_atom(conns); > break; > @@ -3904,9 +3904,9 @@ static void > nv50_disp_atomic_commit_tail(struct drm_atomic_state *state) > { > struct drm_device *dev = state->dev; > - struct drm_crtc_state *crtc_state; > + struct drm_crtc_state *new_crtc_state; > struct drm_crtc *crtc; > - struct drm_plane_state *plane_state; > + struct drm_plane_state *new_plane_state; &g...
2017 May 09
0
GT 730 freeze : how do diagnose / debug ?
...ery > >> [ 2150.225669] nouveau 0000:01:00.0: Xwayland[3019]: channel 31 killed! > >> [ 2296.863975] Workqueue: events_unbound nv50_disp_atomic_commit_work > >> [nouveau] > >> [ 2296.863990] ? nvkm_ioctl_ntfy_get+0x69/0xb0 [nouveau] > >> [ 2296.864032] nv50_disp_atomic_commit_tail+0x55/0x3a00 [nouveau] > >> [ 2296.864047] nv50_disp_atomic_commit_work+0x12/0x20 [nouveau] > >> [ 2296.864118] Workqueue: events_unbound nv50_disp_atomic_commit_work > >> [nouveau] > >> [ 2296.864138] ? nouveau_bo_rd32+0x2a/0x30 [nouveau] > >> [ 2296.8...
2019 Aug 07
3
[PATCH v2 0/2] drm/nouveau: CRTC Runtime PM ref tracking fixes
Just some runtime PM fixes for some much less noticeable runtime PM ref tracking issues that I got reminded of when fixing some unrelated issues with nouveau. Changes since v1: * Don't fix CRTC RPM code in dispnv04, because it's not actually doing anything in the first place. Just get rid of it. - imirkin Lyude Paul (2): drm/nouveau/dispnv04: Remove runtime PM drm/nouveau/dispnv50:
2020 Jun 29
0
[PATCH] drm/nouveau/kms/nvd9-: Fix disabling CRCs alongside OR reprogramming
...truct drm_atomic_state *) {} static inline void diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c index 9cb06d6d6c3fb..cd71b9876c8ae 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c @@ -1943,6 +1943,7 @@ nv50_disp_atomic_commit_tail(struct drm_atomic_state *state) struct nv50_outp_atom *outp, *outt; u32 interlock[NV50_DISP_INTERLOCK__SIZE] = {}; int i; + bool flushed = false; NV_ATOMIC(drm, "commit %d %d\n", atom->lock_core, atom->flush_disable); nv50_crc_atomic_stop_reporting(state); @@ -2003,6 +20...
2019 Aug 07
3
[PATCH 0/2] drm/nouveau: CRTC Runtime PM ref tracking fixes
Just some runtime PM fixes for some much less noticeable runtime PM ref tracking issues that I got reminded of when fixing some unrelated issues with nouveau. Lyude Paul (2): drm/nouveau/dispnv04: Grab/put runtime PM refs on DPMS on/off drm/nouveau/dispnv50: Fix runtime PM ref tracking for non-blocking modesets drivers/gpu/drm/nouveau/dispnv04/crtc.c | 18 +++---------
2018 Jul 17
1
[PATCH v2 2/3] drm/nouveau: Fix runtime PM leak in nv50_disp_atomic_commit()
On Thu, Jul 12, 2018 at 01:02:53PM -0400, Lyude Paul wrote: > --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c > +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c > @@ -1878,7 +1878,7 @@ nv50_disp_atomic_commit(struct drm_device *dev, > nv50_disp_atomic_commit_tail(state); > > drm_for_each_crtc(crtc, dev) { > - if (crtc->state->enable) { > + if (crtc->state->active) { > if (!drm->have_disp_power_ref) { > drm->have_disp_power_ref = true; > return 0; Somewhat tangential comment on this older patch, sin...
2018 Jul 12
5
[PATCH v2 0/3] drm/nouveau: Fix runtime PM leaks
This is the latest version of https://patchwork.freedesktop.org/series/45862/ . One new patch has been added that also addresses some additional issues I found with pmops_runtime_idle that would stop nouveau from suspending the GPU when running under X. Additionally, "drm/nouveau: Fix runtime PM leak in nv50_disp_atomic_commit()" has had it's CC to stable removed. Lyude Paul (3):
2020 Mar 18
0
[PATCH 9/9] drm/nouveau/kms/nvd9-: Add CRC support
...der->encoder_type != DRM_MODE_ENCODER_DPMST) + return nouveau_encoder(encoder); + + msto = nv50_msto(encoder); + if (!msto->mstc) + return NULL; + return msto->mstc->mstm->outp; +} + static struct drm_dp_payload * nv50_msto_payload(struct nv50_msto *msto) { @@ -1898,6 +1911,7 @@ nv50_disp_atomic_commit_tail(struct drm_atomic_state *state) int i; NV_ATOMIC(drm, "commit %d %d\n", atom->lock_core, atom->flush_disable); + nv50_crc_atomic_stop_reporting(state); drm_atomic_helper_wait_for_fences(dev, state, false); drm_atomic_helper_wait_for_dependencies(state); drm_atomic_helper...
2020 Apr 17
0
[RFC v3 11/11] drm/nouveau/kms/nvd9-: Add CRC support
...der->encoder_type != DRM_MODE_ENCODER_DPMST) + return nouveau_encoder(encoder); + + msto = nv50_msto(encoder); + if (!msto->mstc) + return NULL; + return msto->mstc->mstm->outp; +} + static struct drm_dp_payload * nv50_msto_payload(struct nv50_msto *msto) { @@ -1899,6 +1912,7 @@ nv50_disp_atomic_commit_tail(struct drm_atomic_state *state) int i; NV_ATOMIC(drm, "commit %d %d\n", atom->lock_core, atom->flush_disable); + nv50_crc_atomic_stop_reporting(state); drm_atomic_helper_wait_for_fences(dev, state, false); drm_atomic_helper_wait_for_dependencies(state); drm_atomic_helper...
2020 May 08
0
[RFC v4 12/12] drm/nouveau/kms/nvd9-: Add CRC support
...der->encoder_type != DRM_MODE_ENCODER_DPMST) + return nouveau_encoder(encoder); + + msto = nv50_msto(encoder); + if (!msto->mstc) + return NULL; + return msto->mstc->mstm->outp; +} + static struct drm_dp_payload * nv50_msto_payload(struct nv50_msto *msto) { @@ -1899,6 +1912,7 @@ nv50_disp_atomic_commit_tail(struct drm_atomic_state *state) int i; NV_ATOMIC(drm, "commit %d %d\n", atom->lock_core, atom->flush_disable); + nv50_crc_atomic_stop_reporting(state); drm_atomic_helper_wait_for_fences(dev, state, false); drm_atomic_helper_wait_for_dependencies(state); drm_atomic_helper...
2020 Aug 20
0
[RFC v2 06/20] drm/nouveau/kms: Search for encoders' connectors properly
...encoder *encoder) static const struct drm_encoder_helper_funcs nv50_sor_help = { .atomic_check = nv50_outp_atomic_check, - .enable = nv50_sor_enable, - .disable = nv50_sor_disable, + .atomic_enable = nv50_sor_enable, + .atomic_disable = nv50_sor_disable, }; static void @@ -2066,7 +2119,7 @@ nv50_disp_atomic_commit_tail(struct drm_atomic_state *state) outp->clr.mask, outp->set.mask); if (outp->clr.mask) { - help->disable(encoder); + help->atomic_disable(encoder, state); interlock[NV50_DISP_INTERLOCK_CORE] |= 1; if (outp->flush_disable) { nv50_disp_atomic_commit_wndw(st...
2016 Nov 23
0
[PATCH] drm/nouveau/kms/nv50: Fix atomic pageflip events.
.../nouveau/nv50_display.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c index a9855a4..ad9aedb 100644 --- a/drivers/gpu/drm/nouveau/nv50_display.c +++ b/drivers/gpu/drm/nouveau/nv50_display.c @@ -4087,6 +4087,8 @@ nv50_disp_atomic_commit_tail(struct drm_atomic_state *state) for_each_crtc_in_state(state, crtc, crtc_state, i) { if (crtc->state->event) { unsigned long flags; + /* Get correct count/ts if racing with vblank irq */ + drm_accurate_vblank_count(crtc); spin_lock_irqsave(&crtc->dev->event_lock, fl...
2018 Jul 12
0
[PATCH v2 2/3] drm/nouveau: Fix runtime PM leak in nv50_disp_atomic_commit()
...diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.c b/drivers/gpu/drm/nouveau/dispnv50/disp.c index d9da69c83ae7..9bae4db84cfb 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/disp.c +++ b/drivers/gpu/drm/nouveau/dispnv50/disp.c @@ -1878,7 +1878,7 @@ nv50_disp_atomic_commit(struct drm_device *dev, nv50_disp_atomic_commit_tail(state); drm_for_each_crtc(crtc, dev) { - if (crtc->state->enable) { + if (crtc->state->active) { if (!drm->have_disp_power_ref) { drm->have_disp_power_ref = true; return 0; -- 2.17.1
2018 Jul 23
0
[PATCH] drm/nouveau/drm/nouveau: Fix runtime PM leak in nv50_disp_atomic_commit()
...-) diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c index 2b3ccd850750..bc5c4f2402b4 100644 --- a/drivers/gpu/drm/nouveau/nv50_display.c +++ b/drivers/gpu/drm/nouveau/nv50_display.c @@ -4198,7 +4198,7 @@ nv50_disp_atomic_commit(struct drm_device *dev, nv50_disp_atomic_commit_tail(state); drm_for_each_crtc(crtc, dev) { - if (crtc->state->enable) { + if (crtc->state->active) { if (!drm->have_disp_power_ref) { drm->have_disp_power_ref = true; return 0; -- 2.17.1
2019 Jan 05
0
[Bug 99900] [NVC1] nouveau: freeze / crash after kernel update to 4.10
...Trace: __schedule+0x29e/0x840 schedule+0x2c/0x80 schedule_timeout+0x258/0x360 ? nv50_wndw_atomic_destroy_state+0x1d/0x20 [nouveau] dma_fence_default_wait+0x1fc/0x260 ? dma_fence_release+0xa0/0xa0 dma_fence_wait_timeout+0x3e/0xf0 drm_atomic_helper_wait_for_fences+0x3f/0xc0 [drm_kms_helper] nv50_disp_atomic_commit_tail+0x78/0x860 [nouveau] ? __switch_to_asm+0x40/0x70 ? __switch_to_asm+0x34/0x70 nv50_disp_atomic_commit_work+0x12/0x20 [nouveau] process_one_work+0x20f/0x3c0 worker_thread+0x34/0x400 kthread+0x120/0x140 ? pwq_unbound_release_workfn+0xd0/0xd0 ? kthread_bind+0x40/0x40 ret_from_fork+0x35/0x40 F...