57ee4ae20501c9f5863e409bfeaab39a9d6765e1
[openwrt/staging/blocktrron.git] /
1 From 830228a490f49259f8792a7e2d7c138f6696c4f2 Mon Sep 17 00:00:00 2001
2 From: Eric Anholt <eric@anholt.net>
3 Date: Mon, 14 Jan 2019 17:26:04 -0800
4 Subject: [PATCH 578/782] drm/v3d: Make sure the GPU is on when measuring
5 clocks.
6
7 You'll get garbage measurements if the registers always read back
8 0xdeadbeef
9
10 Signed-off-by: Eric Anholt <eric@anholt.net>
11 ---
12 drivers/gpu/drm/v3d/v3d_debugfs.c | 8 ++++++++
13 1 file changed, 8 insertions(+)
14
15 --- a/drivers/gpu/drm/v3d/v3d_debugfs.c
16 +++ b/drivers/gpu/drm/v3d/v3d_debugfs.c
17 @@ -187,6 +187,11 @@ static int v3d_measure_clock(struct seq_
18 uint32_t cycles;
19 int core = 0;
20 int measure_ms = 1000;
21 + int ret;
22 +
23 + ret = pm_runtime_get_sync(v3d->dev);
24 + if (ret < 0)
25 + return ret;
26
27 if (v3d->ver >= 40) {
28 V3D_CORE_WRITE(core, V3D_V4_PCTR_0_SRC_0_3,
29 @@ -210,6 +215,9 @@ static int v3d_measure_clock(struct seq_
30 cycles / (measure_ms * 1000),
31 (cycles / (measure_ms * 100)) % 10);
32
33 + pm_runtime_mark_last_busy(v3d->dev);
34 + pm_runtime_put_autosuspend(v3d->dev);
35 +
36 return 0;
37 }
38