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