summaryrefslogtreecommitdiffstats
path: root/0001-disp-hda-gt215-pass-head-to-nvkm_ior.hda.eld.patch
diff options
context:
space:
mode:
Diffstat (limited to '0001-disp-hda-gt215-pass-head-to-nvkm_ior.hda.eld.patch')
-rw-r--r--0001-disp-hda-gt215-pass-head-to-nvkm_ior.hda.eld.patch83
1 files changed, 83 insertions, 0 deletions
diff --git a/0001-disp-hda-gt215-pass-head-to-nvkm_ior.hda.eld.patch b/0001-disp-hda-gt215-pass-head-to-nvkm_ior.hda.eld.patch
new file mode 100644
index 000000000..0011e60ae
--- /dev/null
+++ b/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
+