Commit 0f7fbb99 authored by Roy Spliet's avatar Roy Spliet Committed by Ben Skeggs

drm/nouveau/clk/gf100-: Clean up PLL locking test

Corresponds with GT215. Don't rely on the lock test logic being
unconditionally enabled, and disable test logic when done (presumably
to save power).

v2: Remove warning, nvkm_msec already warns on time-out
Signed-off-by: default avatarRoy Spliet <nouveau@spliet.org>
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 20560a9a
...@@ -366,11 +366,17 @@ gf100_clk_prog_2(struct gf100_clk *clk, int idx) ...@@ -366,11 +366,17 @@ gf100_clk_prog_2(struct gf100_clk *clk, int idx)
if (info->coef) { if (info->coef) {
nvkm_wr32(device, addr + 0x04, info->coef); nvkm_wr32(device, addr + 0x04, info->coef);
nvkm_mask(device, addr + 0x00, 0x00000001, 0x00000001); nvkm_mask(device, addr + 0x00, 0x00000001, 0x00000001);
/* Test PLL lock */
nvkm_mask(device, addr + 0x00, 0x00000010, 0x00000000);
nvkm_msec(device, 2000, nvkm_msec(device, 2000,
if (nvkm_rd32(device, addr + 0x00) & 0x00020000) if (nvkm_rd32(device, addr + 0x00) & 0x00020000)
break; break;
); );
nvkm_mask(device, addr + 0x00, 0x00020004, 0x00000004); nvkm_mask(device, addr + 0x00, 0x00000010, 0x00000010);
/* Enable sync mode */
nvkm_mask(device, addr + 0x00, 0x00000004, 0x00000004);
} }
} }
} }
......
...@@ -393,11 +393,17 @@ gk104_clk_prog_2(struct gk104_clk *clk, int idx) ...@@ -393,11 +393,17 @@ gk104_clk_prog_2(struct gk104_clk *clk, int idx)
if (info->coef) { if (info->coef) {
nvkm_wr32(device, addr + 0x04, info->coef); nvkm_wr32(device, addr + 0x04, info->coef);
nvkm_mask(device, addr + 0x00, 0x00000001, 0x00000001); nvkm_mask(device, addr + 0x00, 0x00000001, 0x00000001);
/* Test PLL lock */
nvkm_mask(device, addr + 0x00, 0x00000010, 0x00000000);
nvkm_msec(device, 2000, nvkm_msec(device, 2000,
if (nvkm_rd32(device, addr + 0x00) & 0x00020000) if (nvkm_rd32(device, addr + 0x00) & 0x00020000)
break; break;
); );
nvkm_mask(device, addr + 0x00, 0x00020004, 0x00000004); nvkm_mask(device, addr + 0x00, 0x00000010, 0x00000010);
/* Enable sync mode */
nvkm_mask(device, addr + 0x00, 0x00000004, 0x00000004);
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment