30cb228964a52fc969011468e16436dbe33af2c6
[oweals/openwrt.git] /
1 From 19846d53c32be7c9d8d46b369910374c5ea9b9d5 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] 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