etnaviv_perfmon.h 844 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * Copyright (C) 2017 Etnaviv Project
  4. * Copyright (C) 2017 Zodiac Inflight Innovations
  5. */
  6. #ifndef __ETNAVIV_PERFMON_H__
  7. #define __ETNAVIV_PERFMON_H__
  8. struct etnaviv_gpu;
  9. struct drm_etnaviv_pm_domain;
  10. struct drm_etnaviv_pm_signal;
  11. struct etnaviv_perfmon_request
  12. {
  13. u32 flags;
  14. u8 domain;
  15. u8 signal;
  16. u32 sequence;
  17. /* bo to store a value */
  18. u32 *bo_vma;
  19. u32 offset;
  20. };
  21. int etnaviv_pm_query_dom(struct etnaviv_gpu *gpu,
  22. struct drm_etnaviv_pm_domain *domain);
  23. int etnaviv_pm_query_sig(struct etnaviv_gpu *gpu,
  24. struct drm_etnaviv_pm_signal *signal);
  25. int etnaviv_pm_req_validate(const struct drm_etnaviv_gem_submit_pmr *r,
  26. u32 exec_state);
  27. void etnaviv_perfmon_process(struct etnaviv_gpu *gpu,
  28. const struct etnaviv_perfmon_request *pmr, u32 exec_state);
  29. #endif /* __ETNAVIV_PERFMON_H__ */