| /* |
| * Copyright (C) 2017 Etnaviv Project |
| * Copyright (C) 2017 Zodiac Inflight Innovations |
| * |
| * This program is free software; you can redistribute it and/or modify it |
| * under the terms of the GNU General Public License version 2 as published by |
| * the Free Software Foundation. |
| * |
| * This program is distributed in the hope that it will be useful, but WITHOUT |
| * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
| * more details. |
| * |
| * You should have received a copy of the GNU General Public License along with |
| * this program. If not, see <http://www.gnu.org/licenses/>. |
| */ |
| |
| #ifndef __ETNAVIV_PERFMON_H__ |
| #define __ETNAVIV_PERFMON_H__ |
| |
| struct etnaviv_gpu; |
| struct drm_etnaviv_pm_domain; |
| struct drm_etnaviv_pm_signal; |
| |
| struct etnaviv_perfmon_request |
| { |
| u32 flags; |
| u8 domain; |
| u8 signal; |
| u32 sequence; |
| |
| /* bo to store a value */ |
| u32 *bo_vma; |
| u32 offset; |
| }; |
| |
| int etnaviv_pm_query_dom(struct etnaviv_gpu *gpu, |
| struct drm_etnaviv_pm_domain *domain); |
| |
| int etnaviv_pm_query_sig(struct etnaviv_gpu *gpu, |
| struct drm_etnaviv_pm_signal *signal); |
| |
| int etnaviv_pm_req_validate(const struct drm_etnaviv_gem_submit_pmr *r, |
| u32 exec_state); |
| |
| void etnaviv_perfmon_process(struct etnaviv_gpu *gpu, |
| const struct etnaviv_perfmon_request *pmr); |
| |
| #endif /* __ETNAVIV_PERFMON_H__ */ |