1 /* 2 * Copyright (C) 2017 Etnaviv Project 3 * Copyright (C) 2017 Zodiac Inflight Innovations 4 * 5 * This program is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 as published by 7 * the Free Software Foundation. 8 * 9 * This program is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12 * more details. 13 * 14 * You should have received a copy of the GNU General Public License along with 15 * this program. If not, see <http://www.gnu.org/licenses/>. 16 */ 17 18 #ifndef __ETNAVIV_PERFMON_H__ 19 #define __ETNAVIV_PERFMON_H__ 20 21 struct etnaviv_gpu; 22 struct drm_etnaviv_pm_domain; 23 struct drm_etnaviv_pm_signal; 24 25 struct etnaviv_perfmon_request 26 { 27 u32 flags; 28 u8 domain; 29 u8 signal; 30 u32 sequence; 31 32 /* bo to store a value */ 33 u32 *bo_vma; 34 u32 offset; 35 }; 36 37 int etnaviv_pm_query_dom(struct etnaviv_gpu *gpu, 38 struct drm_etnaviv_pm_domain *domain); 39 40 int etnaviv_pm_query_sig(struct etnaviv_gpu *gpu, 41 struct drm_etnaviv_pm_signal *signal); 42 43 int etnaviv_pm_req_validate(const struct drm_etnaviv_gem_submit_pmr *r, 44 u32 exec_state); 45 46 void etnaviv_perfmon_process(struct etnaviv_gpu *gpu, 47 const struct etnaviv_perfmon_request *pmr); 48 49 #endif /* __ETNAVIV_PERFMON_H__ */ 50