diff options
Diffstat (limited to 'drivers/gpu/drm/msm/adreno/a3xx_gpu.c')
| -rw-r--r-- | drivers/gpu/drm/msm/adreno/a3xx_gpu.c | 11 | 
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/gpu/drm/msm/adreno/a3xx_gpu.c b/drivers/gpu/drm/msm/adreno/a3xx_gpu.c index 948785ed07bb..c86b377f6f0d 100644 --- a/drivers/gpu/drm/msm/adreno/a3xx_gpu.c +++ b/drivers/gpu/drm/msm/adreno/a3xx_gpu.c @@ -477,6 +477,16 @@ static struct msm_gpu_state *a3xx_gpu_state_get(struct msm_gpu *gpu)  	return state;  } +static u64 a3xx_gpu_busy(struct msm_gpu *gpu, unsigned long *out_sample_rate) +{ +	u64 busy_cycles; + +	busy_cycles = gpu_read64(gpu, REG_A3XX_RBBM_PERFCTR_RBBM_1_LO); +	*out_sample_rate = clk_get_rate(gpu->core_clk); + +	return busy_cycles; +} +  static u32 a3xx_get_rptr(struct msm_gpu *gpu, struct msm_ringbuffer *ring)  {  	ring->memptrs->rptr = gpu_read(gpu, REG_AXXX_CP_RB_RPTR); @@ -498,6 +508,7 @@ static const struct adreno_gpu_funcs funcs = {  #if defined(CONFIG_DEBUG_FS) || defined(CONFIG_DEV_COREDUMP)  		.show = adreno_show,  #endif +		.gpu_busy = a3xx_gpu_busy,  		.gpu_state_get = a3xx_gpu_state_get,  		.gpu_state_put = adreno_gpu_state_put,  		.create_address_space = adreno_create_address_space,  |