xref: /linux/drivers/gpu/drm/etnaviv/etnaviv_perfmon.h (revision 8d3d56cef4412a37cea3ce32e730976620aaeb58)
19e2c2e27SChristian Gmeiner /*
29e2c2e27SChristian Gmeiner  * Copyright (C) 2017 Etnaviv Project
39e2c2e27SChristian Gmeiner  * Copyright (C) 2017 Zodiac Inflight Innovations
49e2c2e27SChristian Gmeiner  *
59e2c2e27SChristian Gmeiner  * This program is free software; you can redistribute it and/or modify it
69e2c2e27SChristian Gmeiner  * under the terms of the GNU General Public License version 2 as published by
79e2c2e27SChristian Gmeiner  * the Free Software Foundation.
89e2c2e27SChristian Gmeiner  *
99e2c2e27SChristian Gmeiner  * This program is distributed in the hope that it will be useful, but WITHOUT
109e2c2e27SChristian Gmeiner  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
119e2c2e27SChristian Gmeiner  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
129e2c2e27SChristian Gmeiner  * more details.
139e2c2e27SChristian Gmeiner  *
149e2c2e27SChristian Gmeiner  * You should have received a copy of the GNU General Public License along with
159e2c2e27SChristian Gmeiner  * this program.  If not, see <http://www.gnu.org/licenses/>.
169e2c2e27SChristian Gmeiner  */
179e2c2e27SChristian Gmeiner 
189e2c2e27SChristian Gmeiner #ifndef __ETNAVIV_PERFMON_H__
199e2c2e27SChristian Gmeiner #define __ETNAVIV_PERFMON_H__
209e2c2e27SChristian Gmeiner 
219e2c2e27SChristian Gmeiner struct etnaviv_gpu;
229e2c2e27SChristian Gmeiner struct drm_etnaviv_pm_domain;
239e2c2e27SChristian Gmeiner struct drm_etnaviv_pm_signal;
249e2c2e27SChristian Gmeiner 
25*8d3d56ceSChristian Gmeiner struct etnaviv_perfmon_request
26*8d3d56ceSChristian Gmeiner {
27*8d3d56ceSChristian Gmeiner 	u32 flags;
28*8d3d56ceSChristian Gmeiner 	u8 domain;
29*8d3d56ceSChristian Gmeiner 	u8 signal;
30*8d3d56ceSChristian Gmeiner 	u32 sequence;
31*8d3d56ceSChristian Gmeiner 
32*8d3d56ceSChristian Gmeiner 	/* bo to store a value */
33*8d3d56ceSChristian Gmeiner 	u32 *bo_vma;
34*8d3d56ceSChristian Gmeiner 	u32 offset;
35*8d3d56ceSChristian Gmeiner };
36*8d3d56ceSChristian Gmeiner 
379e2c2e27SChristian Gmeiner int etnaviv_pm_query_dom(struct etnaviv_gpu *gpu,
389e2c2e27SChristian Gmeiner 	struct drm_etnaviv_pm_domain *domain);
399e2c2e27SChristian Gmeiner 
409e2c2e27SChristian Gmeiner int etnaviv_pm_query_sig(struct etnaviv_gpu *gpu,
419e2c2e27SChristian Gmeiner 	struct drm_etnaviv_pm_signal *signal);
429e2c2e27SChristian Gmeiner 
439e2c2e27SChristian Gmeiner #endif /* __ETNAVIV_PERFMON_H__ */
44