Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7df1bb87 authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau/disp/nv50-: avoid creating ORs that aren't present on HW



Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 5499473c
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -58,5 +58,8 @@ gf119_dac = {
int
gf119_dac_new(struct nvkm_disp *disp, int id)
{
	struct nvkm_device *device = disp->engine.subdev.device;
	if (!(nvkm_rd32(device, 0x612004) & (0x00000010 << id)))
		return 0;
	return nvkm_ior_new_(&gf119_dac, disp, DAC, id);
}
+3 −0
Original line number Diff line number Diff line
@@ -109,5 +109,8 @@ nv50_dac = {
int
nv50_dac_new(struct nvkm_disp *disp, int id)
{
	struct nvkm_device *device = disp->engine.subdev.device;
	if (!(nvkm_rd32(device, 0x610184) & (0x00100000 << id)))
		return 0;
	return nvkm_ior_new_(&nv50_dac, disp, DAC, id);
}
+2 −0
Original line number Diff line number Diff line
@@ -104,6 +104,7 @@ nv50_sor_link(struct nvkm_ior *ior)
	return nv50_ior_base(ior) + ((ior->asy.link == 2) * 0x80);
}

int nv50_sor_new_(const struct nvkm_ior_func *, struct nvkm_disp *, int id);
void nv50_sor_state(struct nvkm_ior *, struct nvkm_ior_state *);
void nv50_sor_power(struct nvkm_ior *, bool, bool, bool, bool, bool);
void nv50_sor_clock(struct nvkm_ior *);
@@ -119,6 +120,7 @@ void g94_sor_dp_watermark(struct nvkm_ior *, int, u8);

void gt215_sor_dp_audio(struct nvkm_ior *, int, bool);

int gf119_sor_new_(const struct nvkm_ior_func *, struct nvkm_disp *, int id);
void gf119_sor_state(struct nvkm_ior *, struct nvkm_ior_state *);
void gf119_sor_clock(struct nvkm_ior *);
int gf119_sor_dp_links(struct nvkm_ior *, struct nvkm_i2c_aux *);
+3 −0
Original line number Diff line number Diff line
@@ -127,5 +127,8 @@ nv50_pior = {
int
nv50_pior_new(struct nvkm_disp *disp, int id)
{
	struct nvkm_device *device = disp->engine.subdev.device;
	if (!(nvkm_rd32(device, 0x610184) & (0x10000000 << id)))
		return 0;
	return nvkm_ior_new_(&nv50_pior, disp, PIOR, id);
}
+1 −1
Original line number Diff line number Diff line
@@ -34,5 +34,5 @@ g84_sor = {
int
g84_sor_new(struct nvkm_disp *disp, int id)
{
	return nvkm_ior_new_(&g84_sor, disp, SOR, id);
	return nv50_sor_new_(&g84_sor, disp, id);
}
Loading