Skip to content

Commit

Permalink
drm/nouveau/disp/hda/gf119-: add HAL for programming device entry in SF
Browse files Browse the repository at this point in the history
Register has moved on GV100.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
  • Loading branch information
Ben Skeggs committed May 22, 2020
1 parent 1404e56 commit d4115d1
Show file tree
Hide file tree
Showing 8 changed files with 17 additions and 2 deletions.
11 changes: 9 additions & 2 deletions drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand All @@ -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;
Expand Down
2 changes: 2 additions & 0 deletions drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
};

Expand Down Expand Up @@ -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); \
Expand Down
1 change: 1 addition & 0 deletions drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,7 @@ gf119_sor = {
.hda = {
.hpd = gf119_hda_hpd,
.eld = gf119_hda_eld,
.device_entry = gf119_hda_device_entry,
},
};

Expand Down
1 change: 1 addition & 0 deletions drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgk104.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ gk104_sor = {
.hda = {
.hpd = gf119_hda_hpd,
.eld = gf119_hda_eld,
.device_entry = gf119_hda_device_entry,
},
};

Expand Down
1 change: 1 addition & 0 deletions drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ gm107_sor = {
.hda = {
.hpd = gf119_hda_hpd,
.eld = gf119_hda_eld,
.device_entry = gf119_hda_device_entry,
},
};

Expand Down
1 change: 1 addition & 0 deletions drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm200.c
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ gm200_sor = {
.hda = {
.hpd = gf119_hda_hpd,
.eld = gf119_hda_eld,
.device_entry = gf119_hda_device_entry,
},
};

Expand Down
1 change: 1 addition & 0 deletions drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgv100.c
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@ gv100_sor = {
.hda = {
.hpd = gf119_hda_hpd,
.eld = gf119_hda_eld,
.device_entry = gf119_hda_device_entry,
},
};

Expand Down
1 change: 1 addition & 0 deletions drivers/gpu/drm/nouveau/nvkm/engine/disp/sortu102.c
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ tu102_sor = {
.hda = {
.hpd = gf119_hda_hpd,
.eld = gf119_hda_eld,
.device_entry = gf119_hda_device_entry,
},
};

Expand Down

0 comments on commit d4115d1

Please sign in to comment.