Commit 9ec5e820 authored by Ben Skeggs's avatar Ben Skeggs
Browse files

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



Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
Reviewed-by: default avatarLyude Paul <lyude@redhat.com>
parent b505935e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@ struct nv50_core_func {
	const struct nv50_crc_func *crc;
#endif
	const struct nv50_outp_func {
		void (*ctrl)(struct nv50_core *, int or, u32 ctrl,
		int (*ctrl)(struct nv50_core *, int or, u32 ctrl,
			     struct nv50_head_atom *);
		/* XXX: Only used by SORs and PIORs for now */
		void (*get_caps)(struct nv50_disp *,
+17 −11
Original line number Diff line number Diff line
@@ -21,21 +21,27 @@
 */
#include "core.h"

static void
#include <nvif/push507c.h>

static int
dac507d_ctrl(struct nv50_core *core, int or, u32 ctrl,
	     struct nv50_head_atom *asyh)
{
	u32 *push, sync = 0;
	if ((push = evo_wait(&core->chan, 3))) {
	struct nvif_push *push = core->chan.push;
	u32 sync = 0;
	int ret;

	if (asyh) {
		sync |= asyh->or.nvsync << 1;
		sync |= asyh->or.nhsync;
	}
		evo_mthd(push, 0x0400 + (or * 0x080), 2);
		evo_data(push, ctrl);
		evo_data(push, sync);
		evo_kick(push, &core->chan);
	}

	if ((ret = PUSH_WAIT(push, 3)))
		return ret;

	PUSH_NVSQ(push, NV507D, 0x0400 + (or * 0x080), ctrl,
				0x0404 + (or * 0x080), sync);
	return 0;
}

const struct nv50_outp_func
+11 −7
Original line number Diff line number Diff line
@@ -21,16 +21,20 @@
 */
#include "core.h"

static void
#include <nvif/push507c.h>

static int
dac907d_ctrl(struct nv50_core *core, int or, u32 ctrl,
	     struct nv50_head_atom *asyh)
{
	u32 *push;
	if ((push = evo_wait(&core->chan, 2))) {
		evo_mthd(push, 0x0180 + (or * 0x020), 1);
		evo_data(push, ctrl);
		evo_kick(push, &core->chan);
	}
	struct nvif_push *push = core->chan.push;
	int ret;

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

	PUSH_NVSQ(push, NV907D, 0x0180 + (or * 0x020), ctrl);
	return 0;
}

const struct nv50_outp_func
+16 −11
Original line number Diff line number Diff line
@@ -21,21 +21,26 @@
 */
#include "core.h"

static void
#include <nvif/push507c.h>

static int
pior507d_ctrl(struct nv50_core *core, int or, u32 ctrl,
	      struct nv50_head_atom *asyh)
{
	u32 *push;
	if ((push = evo_wait(&core->chan, 2))) {
	struct nvif_push *push = core->chan.push;
	int ret;

	if (asyh) {
		ctrl |= asyh->or.depth  << 16;
		ctrl |= asyh->or.nvsync << 13;
		ctrl |= asyh->or.nhsync << 12;
	}
		evo_mthd(push, 0x0700 + (or * 0x040), 1);
		evo_data(push, ctrl);
		evo_kick(push, &core->chan);
	}

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

	PUSH_NVSQ(push, NV507D, 0x0700 + (or * 0x040), ctrl);
	return 0;
}

static void
+16 −11
Original line number Diff line number Diff line
@@ -21,21 +21,26 @@
 */
#include "core.h"

static void
#include <nvif/push507c.h>

static int
sor507d_ctrl(struct nv50_core *core, int or, u32 ctrl,
	     struct nv50_head_atom *asyh)
{
	u32 *push;
	if ((push = evo_wait(&core->chan, 2))) {
	struct nvif_push *push = core->chan.push;
	int ret;

	if (asyh) {
		ctrl |= asyh->or.depth  << 16;
		ctrl |= asyh->or.nvsync << 13;
		ctrl |= asyh->or.nhsync << 12;
	}
		evo_mthd(push, 0x0600 + (or * 0x40), 1);
		evo_data(push, ctrl);
		evo_kick(push, &core->chan);
	}

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

	PUSH_NVSQ(push, NV507D, 0x0600 + (or * 0x40), ctrl);
	return 0;
}

static void
Loading