diff options
author | Douglas Anderson <dianders@chromium.org> | 2022-01-05 16:13:42 -0800 |
---|---|---|
committer | Douglas Anderson <dianders@chromium.org> | 2022-01-05 16:13:42 -0800 |
commit | 2b5f745c18b850734e1bb7b7e86510ea69698c71 (patch) | |
tree | d2ca25e858a14354fe3781e7c84e7c87627f793e /drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c | |
parent | ef1270e99460055ee7d66a4a22dd74bf61c17aa5 (diff) | |
parent | 506d9d7414cfbdce02b7126fc8644f04ef234680 (diff) |
Merge remote-tracking branch 'drm-misc/drm-misc-next' into drm-tip
Diffstat (limited to 'drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c')
-rw-r--r-- | drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c index 38045c92197f..3696bfd3bfd7 100644 --- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c +++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c @@ -28,11 +28,23 @@ gm107_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); - const u32 data = 0x01010101 * pattern; + u32 mask = 0x1f1f1f1f, data; + + switch (pattern) { + case 0: data = 0x10101010; break; + case 1: data = 0x01010101; break; + case 2: data = 0x02020202; break; + case 3: data = 0x03030303; break; + case 4: data = 0x1b1b1b1b; break; + default: + WARN_ON(1); + return; + } + if (sor->asy.link & 1) - nvkm_mask(device, 0x61c110 + soff, 0x0f0f0f0f, data); + nvkm_mask(device, 0x61c110 + soff, mask, data); else - nvkm_mask(device, 0x61c12c + soff, 0x0f0f0f0f, data); + nvkm_mask(device, 0x61c12c + soff, mask, data); } static const struct nvkm_ior_func |