diff options
Diffstat (limited to 'nvkm/engine/disp/sorgm204.c')
-rw-r--r-- | nvkm/engine/disp/sorgm204.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/nvkm/engine/disp/sorgm204.c b/nvkm/engine/disp/sorgm204.c index ee1f7ae8a..0b4fad39e 100644 --- a/nvkm/engine/disp/sorgm204.c +++ b/nvkm/engine/disp/sorgm204.c @@ -44,6 +44,18 @@ gm204_sor_loff(struct nvkm_output_dp *outp) return gm204_sor_soff(outp) + !(outp->base.info.sorconf.link & 1) * 0x80; } +void +gm204_sor_magic(struct nvkm_output *outp) +{ + struct nv50_disp_priv *priv = (void *)nouveau_disp(outp); + const u32 soff = outp->or * 0x100; + const u32 data = outp->or + 1; + if (outp->info.sorconf.link & 1) + nv_mask(priv, 0x612308 + soff, 0x0000001f, 0x00000000 | data); + if (outp->info.sorconf.link & 2) + nv_mask(priv, 0x612388 + soff, 0x0000001f, 0x00000010 | data); +} + static inline u32 gm204_sor_dp_lane_map(struct nv50_disp_priv *priv, u8 lane) { |