mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-02-05 01:55:29 +07:00
drm/nouveau/disp/hda/gf119-: add HAL for programming device entry in SF
Register has moved on GV100. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
parent
1404e56a49
commit
d4115d17cd
@ -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;
|
||||
|
@ -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); \
|
||||
|
@ -177,6 +177,7 @@ gf119_sor = {
|
||||
.hda = {
|
||||
.hpd = gf119_hda_hpd,
|
||||
.eld = gf119_hda_eld,
|
||||
.device_entry = gf119_hda_device_entry,
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -43,6 +43,7 @@ gk104_sor = {
|
||||
.hda = {
|
||||
.hpd = gf119_hda_hpd,
|
||||
.eld = gf119_hda_eld,
|
||||
.device_entry = gf119_hda_device_entry,
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -57,6 +57,7 @@ gm107_sor = {
|
||||
.hda = {
|
||||
.hpd = gf119_hda_hpd,
|
||||
.eld = gf119_hda_eld,
|
||||
.device_entry = gf119_hda_device_entry,
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -115,6 +115,7 @@ gm200_sor = {
|
||||
.hda = {
|
||||
.hpd = gf119_hda_hpd,
|
||||
.eld = gf119_hda_eld,
|
||||
.device_entry = gf119_hda_device_entry,
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -103,6 +103,7 @@ gv100_sor = {
|
||||
.hda = {
|
||||
.hpd = gf119_hda_hpd,
|
||||
.eld = gf119_hda_eld,
|
||||
.device_entry = gf119_hda_device_entry,
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -88,6 +88,7 @@ tu102_sor = {
|
||||
.hda = {
|
||||
.hpd = gf119_hda_hpd,
|
||||
.eld = gf119_hda_eld,
|
||||
.device_entry = gf119_hda_device_entry,
|
||||
},
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user