diff options
author | Jordan Crouse <jcrouse@codeaurora.org> | 2018-01-10 20:41:54 +0300 |
---|---|---|
committer | Rob Clark <robdclark@gmail.com> | 2018-01-10 22:30:03 +0300 |
commit | f91c14ab448af4d9d57350301dd9d6b6a7b6128a (patch) | |
tree | 4f66782c3d2ee03e302557d40a55499fed4bdc72 /drivers/gpu/drm/msm/msm_gpu.h | |
parent | c09513cfebd8d936a7aed3c0302104fb47a4a03a (diff) | |
download | linux-f91c14ab448af4d9d57350301dd9d6b6a7b6128a.tar.xz |
drm/msm: Add devfreq support for the GPU
Add support for devfreq to dynamically control the GPU frequency.
By default try to use the 'simple_ondemand' governor which can
adjust the frequency based on GPU load.
v2: Fix __aeabi_uldivmod issue from the 0 day bot and use
devfreq_recommended_opp() as suggested by Rob.
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Rob Clark <robdclark@gmail.com>
Diffstat (limited to 'drivers/gpu/drm/msm/msm_gpu.h')
-rw-r--r-- | drivers/gpu/drm/msm/msm_gpu.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/drm/msm/msm_gpu.h b/drivers/gpu/drm/msm/msm_gpu.h index 0de26b6f3732..fccfccd303af 100644 --- a/drivers/gpu/drm/msm/msm_gpu.h +++ b/drivers/gpu/drm/msm/msm_gpu.h @@ -66,6 +66,7 @@ struct msm_gpu_funcs { /* show GPU status in debugfs: */ void (*show)(struct msm_gpu *gpu, struct seq_file *m); #endif + int (*gpu_busy)(struct msm_gpu *gpu, uint64_t *value); }; struct msm_gpu { @@ -120,6 +121,12 @@ struct msm_gpu { struct work_struct recover_work; struct drm_gem_object *memptrs_bo; + + struct { + struct devfreq *devfreq; + u64 busy_cycles; + ktime_t time; + } devfreq; }; /* It turns out that all targets use the same ringbuffer size */ |