diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2021-11-23 11:17:49 +0300 |
---|---|---|
committer | Karol Herbst <kherbst@redhat.com> | 2021-12-16 20:46:09 +0300 |
commit | be5b6985fbbe6ba9580351b3c9168c84e51bee5c (patch) | |
tree | af0fff26f1717cc636d31672e370332a248280c1 /drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c | |
parent | 007354597d5c12a8d44a34c66a2e1a089bc7d3d8 (diff) | |
download | linux-be5b6985fbbe6ba9580351b3c9168c84e51bee5c.tar.xz |
drm/nouveau/disp/dp: explicitly control scrambling when setting pattern
TPS1/2/3 require scrambling to be disabled. The IED scripts on earlier
boards used to handle this, but appear not to anymore.
TPS4 support will also require scrambling to remain enabled.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Link: https://gitlab.freedesktop.org/drm/nouveau/-/merge_requests/17
Diffstat (limited to 'drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c')
-rw-r--r-- | drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c index 3b3643fb1019..c431e0b9fc11 100644 --- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c +++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c @@ -92,7 +92,19 @@ gf119_sor_dp_pattern(struct nvkm_ior *sor, int pattern) { struct nvkm_device *device = sor->disp->engine.subdev.device; const u32 soff = nv50_ior_base(sor); - nvkm_mask(device, 0x61c110 + soff, 0x0f0f0f0f, 0x01010101 * pattern); + u32 data; + + switch (pattern) { + case 0: data = 0x10101010; break; + case 1: data = 0x01010101; break; + case 2: data = 0x02020202; break; + case 3: data = 0x03030303; break; + default: + WARN_ON(1); + return; + } + + nvkm_mask(device, 0x61c110 + soff, 0x1f1f1f1f, data); } int |