Displaying 20 results from an estimated 46 matches for "evo_kick".
2020 Aug 24
2
[PATCH 1/2] drm/nouveau/kms/nv50-: Program notifier offset before requesting disp caps
...t;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->sync, NV50_DISP_CORE_NTFY);
> +
> + push = evo_wait(&core->chan, 4);
> + if (!push)
> + return 0;
> +
> + evo_mthd(push, 0x0084, 1);
> +...
2020 Aug 31
1
[PATCH 1/2] drm/nouveau/kms/nv50-: Program notifier offset before requesting disp caps
...re;
> > > + 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->sync, NV50_DISP_CORE_NTFY);
> > > +
> > > + push = evo_wait(&core->chan, 4);
> > > + if (!push)
> > > + retur...
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(-)
2020 Aug 24
0
[PATCH 1/2] drm/nouveau/kms/nv50-: Program notifier offset before requesting disp caps
...07d_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->sync, NV50_DISP_CORE_NTFY);
+
+ push = evo_wait(&core->chan, 4);
+ if (!push)
+ return 0;
+
+ evo_mthd(push, 0x0084, 1);
+ evo_data(push, 0x80000000 | NV50_DISP_CORE_NTFY);
+ evo_mthd(push, 0x008c, 1);
+ evo_data...
2020 Aug 25
0
[PATCH 1/2] drm/nouveau/kms/nv50-: Program notifier offset before requesting disp caps
...ruct 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->sync, NV50_DISP_CORE_NTFY);
> > +
> > + push = evo_wait(&core->chan, 4);
> > + if (!push)
> > + return 0;
> > +
> > +...
2014 Oct 30
2
[PATCH] nv50/disp: Fix modeset on G94
...t
+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_crtc->base.dev);
@@ -1104,14 +1121,14 @@ nv50_crtc_mode_set(struct drm_crtc *crtc, struct drm_display_mode *umode,
evo_mthd(push, 0x...
2015 Jan 05
2
drm/nouveau: dont switch vt on suspend
Signed-off-by: Maarten Lankhorst <maarten.lankhorst at ubuntu.com>
---
diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.c b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
index 3ed12a8cfc91..a4a586807903 100644
--- a/drivers/gpu/drm/nouveau/nouveau_fbcon.c
+++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
@@ -370,6 +370,7 @@ nouveau_fbcon_create(struct drm_fb_helper *helper,
ret = -ENOMEM;
goto
2014 Oct 30
2
[PATCH] nv50/disp: Fix modeset on G94
...ast, 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);
>> + 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_crtc->base.dev);
>> @@ -1104,14 +1121,14 @@ nv...
2019 Jun 12
0
[PATCH v2] drm/nouveau/kms/gf119-: add ctm property support
...(i == 3) {
+ *val = 0;
+ } else {
+ *val = csc_drm_to_base(ctm->matrix[j * 3 + i]);
+ }
+ }
+ }
+}
+
+static void
+base907c_csc_clr(struct nv50_wndw *wndw)
+{
+ u32 *push;
+ if ((push = evo_wait(&wndw->wndw, 2))) {
+ evo_mthd(push, 0x0140, 1);
+ evo_data(push, 0x00000000);
+ evo_kick(push, &wndw->wndw);
+ }
+}
+
+static void
+base907c_csc_set(struct nv50_wndw *wndw, struct nv50_wndw_atom *asyw)
+{
+ u32 *push, i;
+ if ((push = evo_wait(&wndw->wndw, 13))) {
+ evo_mthd(push, 0x0140, 12);
+ evo_data(push, asyw->csc.matrix[0] | 0x80000000);
+ for (i = 1; i <...
2019 Jun 11
1
[PATCH 1/2] drm/nouveau/kms/gf119-: add ctm property support
...(i == 3) {
+ *val = 0;
+ } else {
+ *val = ctm_drm_to_base(ctm->matrix[j * 3 + i]);
+ }
+ }
+ }
+}
+
+static void
+base907c_ctm_clr(struct nv50_wndw *wndw)
+{
+ u32 *push;
+ if ((push = evo_wait(&wndw->wndw, 2))) {
+ evo_mthd(push, 0x0140, 1);
+ evo_data(push, 0x00000000);
+ evo_kick(push, &wndw->wndw);
+ }
+}
+
+static void
+base907c_ctm_set(struct nv50_wndw *wndw, struct nv50_wndw_atom *asyw)
+{
+ u32 *push, i;
+ if ((push = evo_wait(&wndw->wndw, 13))) {
+ evo_mthd(push, 0x0140, 12);
+ evo_data(push, asyw->ctm.matrix[0] | 0x80000000);
+ for (i = 1; i <...
2020 Jun 22
0
[RFC v5 10/10] drm/nouveau/kms/nvd9-: Add CRC support
...if (source) {
+ evo_mthd(push, 0x0438 + hoff, 1);
+ evo_data(push, ctx->ntfy.handle);
+ evo_mthd(push, 0x0430 + hoff, 1);
+ evo_data(push, crc_args);
+ } else {
+ evo_mthd(push, 0x0430 + hoff, 1);
+ evo_data(push, crc_args);
+ evo_mthd(push, 0x0438 + hoff, 1);
+ evo_data(push, 0);
+ }
+ evo_kick(push, core);
+}
+
+static void crc907d_set_ctx(struct nv50_head *head,
+ struct nv50_crc_notifier_ctx *ctx)
+{
+ struct nv50_dmac *core = &nv50_disp(head->base.base.dev)->core->chan;
+ u32 *push = evo_wait(core, 2);
+
+ if (!push)
+ return;
+
+ evo_mthd(push, 0x0438 + (head->...
2020 Mar 18
0
[PATCH 9/9] drm/nouveau/kms/nvd9-: Add CRC support
...if (source) {
+ evo_mthd(push, 0x0438 + hoff, 1);
+ evo_data(push, ctx->ntfy.handle);
+ evo_mthd(push, 0x0430 + hoff, 1);
+ evo_data(push, crc_args);
+ } else {
+ evo_mthd(push, 0x0430 + hoff, 1);
+ evo_data(push, crc_args);
+ evo_mthd(push, 0x0438 + hoff, 1);
+ evo_data(push, 0);
+ }
+ evo_kick(push, core);
+}
+
+static void crc907d_set_ctx(struct nv50_head *head,
+ struct nv50_crc_notifier_ctx *ctx)
+{
+ struct nv50_dmac *core = &nv50_disp(head->base.base.dev)->core->chan;
+ u32 *push = evo_wait(core, 2);
+
+ if (!push)
+ return;
+
+ evo_mthd(push, 0x0438 + (head->...
2020 Apr 17
0
[RFC v3 11/11] drm/nouveau/kms/nvd9-: Add CRC support
...if (source) {
+ evo_mthd(push, 0x0438 + hoff, 1);
+ evo_data(push, ctx->ntfy.handle);
+ evo_mthd(push, 0x0430 + hoff, 1);
+ evo_data(push, crc_args);
+ } else {
+ evo_mthd(push, 0x0430 + hoff, 1);
+ evo_data(push, crc_args);
+ evo_mthd(push, 0x0438 + hoff, 1);
+ evo_data(push, 0);
+ }
+ evo_kick(push, core);
+}
+
+static void crc907d_set_ctx(struct nv50_head *head,
+ struct nv50_crc_notifier_ctx *ctx)
+{
+ struct nv50_dmac *core = &nv50_disp(head->base.base.dev)->core->chan;
+ u32 *push = evo_wait(core, 2);
+
+ if (!push)
+ return;
+
+ evo_mthd(push, 0x0438 + (head->...
2020 May 08
0
[RFC v4 12/12] drm/nouveau/kms/nvd9-: Add CRC support
...if (source) {
+ evo_mthd(push, 0x0438 + hoff, 1);
+ evo_data(push, ctx->ntfy.handle);
+ evo_mthd(push, 0x0430 + hoff, 1);
+ evo_data(push, crc_args);
+ } else {
+ evo_mthd(push, 0x0430 + hoff, 1);
+ evo_data(push, crc_args);
+ evo_mthd(push, 0x0438 + hoff, 1);
+ evo_data(push, 0);
+ }
+ evo_kick(push, core);
+}
+
+static void crc907d_set_ctx(struct nv50_head *head,
+ struct nv50_crc_notifier_ctx *ctx)
+{
+ struct nv50_dmac *core = &nv50_disp(head->base.base.dev)->core->chan;
+ u32 *push = evo_wait(core, 2);
+
+ if (!push)
+ return;
+
+ evo_mthd(push, 0x0438 + (head->...
2013 Mar 05
3
nouveau lockdep splat
...wait+0x43/0xf0
> [ 0.633668] [<ffffffff815eb0b7>] ? __mutex_unlock_slowpath+0xc7/0x150
> [ 0.633669] [<ffffffff8141bb53>] evo_wait+0x43/0xf0
> [ 0.633671] [<ffffffff8141e569>] nv50_display_flip_next+0x749/0x7d0
> [ 0.633672] [<ffffffff8141bc37>] ? evo_kick+0x37/0x40
> [ 0.633674] [<ffffffff8141e7ee>] nv50_crtc_commit+0x10e/0x230
> [ 0.633676] [<ffffffff8134c2a5>] drm_crtc_helper_set_mode+0x365/0x510
> [ 0.633677] [<ffffffff8134d69e>] drm_crtc_helper_set_config+0xa4e/0xb70
> [ 0.633679] [<ffffffff8135f7...
2019 Sep 13
0
[PATCH 7/9] drm/nouveau: use drm_debug_enabled() to check for debug categories
...files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.h b/drivers/gpu/drm/nouveau/dispnv50/disp.h
index 7c41b0599d1a..c0a79531b087 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/disp.h
+++ b/drivers/gpu/drm/nouveau/dispnv50/disp.h
@@ -78,14 +78,14 @@ void evo_kick(u32 *, struct nv50_dmac *);
#define evo_mthd(p, m, s) do { \
const u32 _m = (m), _s = (s); \
- if (drm_debug & DRM_UT_KMS) \
+ if (drm_debug_enabled(DRM_UT_KMS)) \
pr_err("%04x %d %s\n", _m, _s, __func__); \
*((p)++) = ((_s << 18) | _m); \
} while...
2019 Oct 09
0
[PATCH 2/8] drm/nouveau: use drm_debug_enabled() to check for debug categories
...files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.h b/drivers/gpu/drm/nouveau/dispnv50/disp.h
index 7c41b0599d1a..c0a79531b087 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/disp.h
+++ b/drivers/gpu/drm/nouveau/dispnv50/disp.h
@@ -78,14 +78,14 @@ void evo_kick(u32 *, struct nv50_dmac *);
#define evo_mthd(p, m, s) do { \
const u32 _m = (m), _s = (s); \
- if (drm_debug & DRM_UT_KMS) \
+ if (drm_debug_enabled(DRM_UT_KMS)) \
pr_err("%04x %d %s\n", _m, _s, __func__); \
*((p)++) = ((_s << 18) | _m); \
} while...
2019 Oct 28
0
[PATCH RESEND 2/8] drm/nouveau: use drm_debug_enabled() to check for debug categories
...files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/dispnv50/disp.h b/drivers/gpu/drm/nouveau/dispnv50/disp.h
index 7c41b0599d1a..c0a79531b087 100644
--- a/drivers/gpu/drm/nouveau/dispnv50/disp.h
+++ b/drivers/gpu/drm/nouveau/dispnv50/disp.h
@@ -78,14 +78,14 @@ void evo_kick(u32 *, struct nv50_dmac *);
#define evo_mthd(p, m, s) do { \
const u32 _m = (m), _s = (s); \
- if (drm_debug & DRM_UT_KMS) \
+ if (drm_debug_enabled(DRM_UT_KMS)) \
pr_err("%04x %d %s\n", _m, _s, __func__); \
*((p)++) = ((_s << 18) | _m); \
} while...
2014 Oct 28
0
[PATCH] nv50/disp: Fix modeset on G94
...tc, false);
nv50_crtc_set_scale(nv_crtc, false);
+
+ /* G94 only accepts this after setting scale */
+ if (nv50_vers(mast) < GF110_DISP_CORE_CHANNEL_DMA) {
+ push = evo_wait(mast, 8);
+ if (push) {
+ evo_mthd(push, 0x0828 + (nv_crtc->index * 0x400), 1);
+ evo_data(push, vblankus);
+ evo_kick(push, mast);
+ }
+ }
+
nv50_crtc_set_color_vibrance(nv_crtc, false);
nv50_crtc_set_image(nv_crtc, crtc->primary->fb, x, y, false);
return 0;
--
2.1.0
2014 Oct 30
0
[PATCH] nv50/disp: Fix modeset on G94
...tc->base.dev);
> + u32 *push;
> +
> + push = evo_wait(mast, 8);
Just needs to be 2, no?
> + 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_crtc->base.dev);
> @@ -1104,14 +1121,14 @@ nv50_crtc_mode_set(struct drm_crtc *cr...