Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -366,11 +366,17 @@ gf100_clk_prog_2(struct gf100_clk *clk, int idx)
		if (info->coef) {
			nvkm_wr32(device, addr + 0x04, info->coef);
			nvkm_mask(device, addr + 0x00, 0x00000001, 0x00000001);

			/* Test PLL lock */
			nvkm_mask(device, addr + 0x00, 0x00000010, 0x00000000);
			nvkm_msec(device, 2000,
				if (nvkm_rd32(device, addr + 0x00) & 0x00020000)
					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);
		}
	}
}
+7 −1
Original line number Diff line number Diff line
@@ -393,11 +393,17 @@ gk104_clk_prog_2(struct gk104_clk *clk, int idx)
	if (info->coef) {
		nvkm_wr32(device, addr + 0x04, info->coef);
		nvkm_mask(device, addr + 0x00, 0x00000001, 0x00000001);

		/* Test PLL lock */
		nvkm_mask(device, addr + 0x00, 0x00000010, 0x00000000);
		nvkm_msec(device, 2000,
			if (nvkm_rd32(device, addr + 0x00) & 0x00020000)
				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);
	}
}