Commit b505935e authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau/kms/nv50-: convert core wndw_owner() to new push macros



Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
Reviewed-by: default avatarLyude Paul <lyude@redhat.com>
parent 203f6eaf
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -23,7 +23,7 @@ struct nv50_core_func {
	int (*update)(struct nv50_core *, u32 *interlock, bool ntfy);

	struct {
		void (*owner)(struct nv50_core *);
		int (*owner)(struct nv50_core *);
	} wndw;

	const struct nv50_head_func *head;
@@ -64,7 +64,7 @@ int corec37d_new(struct nouveau_drm *, s32, struct nv50_core **);
int corec37d_caps_init(struct nouveau_drm *, struct nv50_disp *);
int corec37d_ntfy_wait_done(struct nouveau_bo *, u32, struct nvif_device *);
int corec37d_update(struct nv50_core *, u32 *, bool);
void corec37d_wndw_owner(struct nv50_core *);
int corec37d_wndw_owner(struct nv50_core *);
extern const struct nv50_outp_func sorc37d;

int corec57d_new(struct nouveau_drm *, s32, struct nv50_core **);
+11 −9
Original line number Diff line number Diff line
@@ -28,18 +28,20 @@

#include <nouveau_bo.h>

void
int
corec37d_wndw_owner(struct nv50_core *core)
{
	struct nvif_push *push = core->chan.push;
	const u32 windows = 8; /*XXX*/
	u32 *push, i;
	if ((push = evo_wait(&core->chan, 2 * windows))) {
		for (i = 0; i < windows; i++) {
			evo_mthd(push, 0x1000 + (i * 0x080), 1);
			evo_data(push, i >> 1);
		}
		evo_kick(push, &core->chan);
	}
	int ret, i;

	if ((ret = PUSH_WAIT(push, windows * 2)))
		return ret;

	for (i = 0; i < windows; i++)
		PUSH_NVSQ(push, NVC37D, 0x1000 + (i * 0x080), i >> 1);

	return 0;
}

int