diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2017-05-19 23:59:35 +1000 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2017-06-16 14:04:56 +1000 |
commit | 409b9e54727e700ab8dd15a1e29226eda1e04cdb (patch) | |
tree | eed18b0b3d0549c5b1783575a2f1d2985bb7fb63 /drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgt215.c | |
parent | 7d1fede03c5880003a08ff080e6e41984902be46 (diff) | |
download | op-kernel-dev-409b9e54727e700ab8dd15a1e29226eda1e04cdb.zip op-kernel-dev-409b9e54727e700ab8dd15a1e29226eda1e04cdb.tar.gz |
drm/nouveau/disp/gt215-: port HDA ELD controls to nvkm_ior
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgt215.c')
-rw-r--r-- | drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgt215.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgt215.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgt215.c index eb08410..5e9126e 100644 --- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgt215.c +++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgt215.c @@ -21,6 +21,22 @@ */ #include "ior.h" +#include <subdev/timer.h> + +void +gt215_sor_dp_audio(struct nvkm_ior *sor, int head, bool enable) +{ + struct nvkm_device *device = sor->disp->engine.subdev.device; + const u32 soff = nv50_ior_base(sor); + const u32 data = 0x80000000 | (0x00000001 * enable); + const u32 mask = 0x8000000d; + nvkm_mask(device, 0x61c1e0 + soff, mask, data); + nvkm_msec(device, 2000, + if (!(nvkm_rd32(device, 0x61c1e0 + soff) & 0x80000000)) + break; + ); +} + static const struct nvkm_ior_func gt215_sor = { .state = g94_sor_state, @@ -34,6 +50,11 @@ gt215_sor = { .power = g94_sor_dp_power, .pattern = g94_sor_dp_pattern, .drive = g94_sor_dp_drive, + .audio = gt215_sor_dp_audio, + }, + .hda = { + .hpd = gt215_hda_hpd, + .eld = gt215_hda_eld, }, }; |