From: Ben Skeggs Date: Sun, 21 Jun 2020 00:22:35 +0000 (+1000) Subject: drm/nouveau/kms/nv50-: convert wimm update() to new push macros X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=9659be21e8034528839216b21794da73fdbedec2;p=linux.git drm/nouveau/kms/nv50-: convert wimm update() to new push macros Signed-off-by: Ben Skeggs Reviewed-by: Lyude Paul --- diff --git a/drivers/gpu/drm/nouveau/dispnv50/curs507a.c b/drivers/gpu/drm/nouveau/dispnv50/curs507a.c index babf680c25fdf..47f6f01b52a04 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/curs507a.c +++ b/drivers/gpu/drm/nouveau/dispnv50/curs507a.c @@ -40,11 +40,13 @@ curs507a_space(struct nv50_wndw *wndw) return false; } -static void +static int curs507a_update(struct nv50_wndw *wndw, u32 *interlock) { - if (curs507a_space(wndw)) + int ret = nvif_chan_wait(&wndw->wimm, 1); + if (ret == 0) nvif_wr32(&wndw->wimm.base.user, 0x0080, 0x00000000); + return ret; } static int diff --git a/drivers/gpu/drm/nouveau/dispnv50/cursc37a.c b/drivers/gpu/drm/nouveau/dispnv50/cursc37a.c index 45c1c33e950ad..9d96a246b39a3 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/cursc37a.c +++ b/drivers/gpu/drm/nouveau/dispnv50/cursc37a.c @@ -22,11 +22,13 @@ #include "curs.h" #include "atom.h" -static void +static int cursc37a_update(struct nv50_wndw *wndw, u32 *interlock) { - if (curs507a_space(wndw)) + int ret = nvif_chan_wait(&wndw->wimm, 1); + if (ret == 0) nvif_wr32(&wndw->wimm.base.user, 0x0200, 0x00000001); + return ret; } static int diff --git a/drivers/gpu/drm/nouveau/dispnv50/wimmc37b.c b/drivers/gpu/drm/nouveau/dispnv50/wimmc37b.c index 4eb5abfb8ebf7..c2009d4777360 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/wimmc37b.c +++ b/drivers/gpu/drm/nouveau/dispnv50/wimmc37b.c @@ -26,18 +26,19 @@ #include #include -static void +static int wimmc37b_update(struct nv50_wndw *wndw, u32 *interlock) { - u32 *push; - if ((push = evo_wait(&wndw->wimm, 2))) { - evo_mthd(push, 0x0200, 1); - if (interlock[NV50_DISP_INTERLOCK_WNDW] & wndw->interlock.data) - evo_data(push, 0x00000003); - else - evo_data(push, 0x00000001); - evo_kick(push, &wndw->wimm); - } + struct nvif_push *push = wndw->wimm.push; + int ret; + + if ((ret = PUSH_WAIT(push, 2))) + return ret; + + PUSH_NVSQ(push, NVC37B, 0x0200, ((interlock[NV50_DISP_INTERLOCK_WNDW] & + wndw->interlock.data) ? 0x00000002 : 0x00000000) | + 0x00000001); + return PUSH_KICK(push); } static int diff --git a/drivers/gpu/drm/nouveau/dispnv50/wndw.h b/drivers/gpu/drm/nouveau/dispnv50/wndw.h index 53e496bfbc9d8..ce1b2baf9d19e 100644 --- a/drivers/gpu/drm/nouveau/dispnv50/wndw.h +++ b/drivers/gpu/drm/nouveau/dispnv50/wndw.h @@ -93,7 +93,7 @@ void base907c_csc(struct nv50_wndw *, struct nv50_wndw_atom *, struct nv50_wimm_func { int (*point)(struct nv50_wndw *, struct nv50_wndw_atom *); - void (*update)(struct nv50_wndw *, u32 *interlock); + int (*update)(struct nv50_wndw *, u32 *interlock); }; extern const struct nv50_wimm_func curs507a;