diff options
Diffstat (limited to 'SOURCES/0001-disp-hda-gt215-pass-head-to-nvkm_ior.hda.eld.patch')
-rw-r--r-- | SOURCES/0001-disp-hda-gt215-pass-head-to-nvkm_ior.hda.eld.patch | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/SOURCES/0001-disp-hda-gt215-pass-head-to-nvkm_ior.hda.eld.patch b/SOURCES/0001-disp-hda-gt215-pass-head-to-nvkm_ior.hda.eld.patch new file mode 100644 index 0000000..0011e60 --- /dev/null +++ b/SOURCES/0001-disp-hda-gt215-pass-head-to-nvkm_ior.hda.eld.patch @@ -0,0 +1,83 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Ben Skeggs <bskeggs@redhat.com> +Date: Wed, 6 May 2020 14:40:52 +1000 +Subject: [PATCH] disp/hda/gt215-: pass head to nvkm_ior.hda.eld() + +We're going to use the bound head to select HDA device entry. + +Signed-off-by: Ben Skeggs <bskeggs@redhat.com> +--- + drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c | 2 +- + drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c | 2 +- + drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h | 6 +++--- + drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c | 2 +- + 4 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c +index 0fa0ec0a1de0..1080ba6ecd64 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagf119.c +@@ -24,7 +24,7 @@ + #include "ior.h" + + void +-gf119_hda_eld(struct nvkm_ior *ior, u8 *data, u8 size) ++gf119_hda_eld(struct nvkm_ior *ior, int head, u8 *data, u8 size) + { + struct nvkm_device *device = ior->disp->engine.subdev.device; + const u32 soff = 0x030 * ior->id; +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c +index 4509d2ba880e..0d1b81fe1093 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/hdagt215.c +@@ -24,7 +24,7 @@ + #include "ior.h" + + void +-gt215_hda_eld(struct nvkm_ior *ior, u8 *data, u8 size) ++gt215_hda_eld(struct nvkm_ior *ior, int head, u8 *data, u8 size) + { + struct nvkm_device *device = ior->disp->engine.subdev.device; + const u32 soff = ior->id * 0x800; +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h b/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h +index 009d3a8b7a50..c60acf71831e 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h +@@ -87,7 +87,7 @@ struct nvkm_ior_func { + + struct { + void (*hpd)(struct nvkm_ior *, int head, bool present); +- void (*eld)(struct nvkm_ior *, u8 *data, u8 size); ++ void (*eld)(struct nvkm_ior *, int head, u8 *data, u8 size); + } hda; + }; + +@@ -158,10 +158,10 @@ void gv100_hdmi_ctrl(struct nvkm_ior *, int, bool, u8, u8, u8 *, u8 , u8 *, u8); + void gm200_hdmi_scdc(struct nvkm_ior *, int, u8); + + void gt215_hda_hpd(struct nvkm_ior *, int, bool); +-void gt215_hda_eld(struct nvkm_ior *, u8 *, u8); ++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 *, u8 *, u8); ++void gf119_hda_eld(struct nvkm_ior *, int, u8 *, u8); + + #define IOR_MSG(i,l,f,a...) do { \ + struct nvkm_ior *_ior = (i); \ +diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c +index 5f758948d6e1..a7672ef17d3b 100644 +--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c ++++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/rootnv50.c +@@ -155,7 +155,7 @@ nv50_disp_root_mthd_(struct nvkm_object *object, u32 mthd, void *data, u32 size) + if (outp->info.type == DCB_OUTPUT_DP) + ior->func->dp.audio(ior, hidx, true); + ior->func->hda.hpd(ior, hidx, true); +- ior->func->hda.eld(ior, data, size); ++ ior->func->hda.eld(ior, hidx, data, size); + } else { + if (outp->info.type == DCB_OUTPUT_DP) + ior->func->dp.audio(ior, hidx, false); +-- +2.26.2 + |