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

drm/nouveau/disp/hda/gf119-: add HAL for programming device entry in SF



Register has moved on GV100.

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 1404e56a
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -23,6 +23,14 @@
 */
#include "ior.h"

void
gf119_hda_device_entry(struct nvkm_ior *ior, int head)
{
	struct nvkm_device *device = ior->disp->engine.subdev.device;
	const u32 hoff = 0x800 * head;
	nvkm_mask(device, 0x616548 + hoff, 0x00000070, 0x00000000);
}

void
gf119_hda_eld(struct nvkm_ior *ior, int head, u8 *data, u8 size)
{
@@ -41,11 +49,10 @@ void
gf119_hda_hpd(struct nvkm_ior *ior, int head, bool present)
{
	struct nvkm_device *device = ior->disp->engine.subdev.device;
	const u32 hoff = 0x800 * head;
	u32 data = 0x80000000;
	u32 mask = 0x80000001;
	if (present) {
		nvkm_mask(device, 0x616548 + hoff, 0x00000070, 0x00000000);
		ior->func->hda.device_entry(ior, head);
		data |= 0x00000001;
	} else {
		mask |= 0x00000002;
+2 −0
Original line number Diff line number Diff line
@@ -88,6 +88,7 @@ struct nvkm_ior_func {
	struct {
		void (*hpd)(struct nvkm_ior *, int head, bool present);
		void (*eld)(struct nvkm_ior *, int head, u8 *data, u8 size);
		void (*device_entry)(struct nvkm_ior *, int head);
	} hda;
};

@@ -162,6 +163,7 @@ void gt215_hda_eld(struct nvkm_ior *, int, u8 *, u8);

void gf119_hda_hpd(struct nvkm_ior *, int, bool);
void gf119_hda_eld(struct nvkm_ior *, int, u8 *, u8);
void gf119_hda_device_entry(struct nvkm_ior *, int);

#define IOR_MSG(i,l,f,a...) do {                                               \
	struct nvkm_ior *_ior = (i);                                           \
+1 −0
Original line number Diff line number Diff line
@@ -177,6 +177,7 @@ gf119_sor = {
	.hda = {
		.hpd = gf119_hda_hpd,
		.eld = gf119_hda_eld,
		.device_entry = gf119_hda_device_entry,
	},
};

+1 −0
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ gk104_sor = {
	.hda = {
		.hpd = gf119_hda_hpd,
		.eld = gf119_hda_eld,
		.device_entry = gf119_hda_device_entry,
	},
};

+1 −0
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@ gm107_sor = {
	.hda = {
		.hpd = gf119_hda_hpd,
		.eld = gf119_hda_eld,
		.device_entry = gf119_hda_device_entry,
	},
};

Loading