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