diff options
author | Siddharth Kapoor <ksiddharth@google.com> | 2022-03-02 14:51:29 +0800 |
---|---|---|
committer | Siddharth Kapoor <ksiddharth@google.com> | 2022-03-02 14:51:29 +0800 |
commit | 88d7d984fed1c2a4358ce2bbc334e82d71e3a391 (patch) | |
tree | 18f20402a0ed15ae9fe62b29a9957922ebcc2ada /mali_kbase/mali_kbase_kinstr_prfcnt.h | |
parent | 0207d6c3b7a2002f15c60d08617e956faf5ba90c (diff) | |
download | gpu-88d7d984fed1c2a4358ce2bbc334e82d71e3a391.tar.gz |
Mali Valhall Android DDK r36p0 KMD
Provenance: 9f72c118d9 (ipdelivery/EAC/v_r36p0)
VX504X08X-BU-00000-r36p0-01eac0 - Valhall Android DDK
VX504X08X-BU-60000-r36p0-01eac0 - Valhall Android Document Bundle
VX504X08X-DC-11001-r36p0-01eac0 - Valhall Android DDK Software Errata
VX504X08X-SW-99006-r36p0-01eac0 - Valhall Android Renderscript AOSP parts
Signed-off-by: Siddharth Kapoor <ksiddharth@google.com>
Change-Id: I4a63b707fedc68d7b7d046596c7098da47a139cb
Diffstat (limited to 'mali_kbase/mali_kbase_kinstr_prfcnt.h')
-rw-r--r-- | mali_kbase/mali_kbase_kinstr_prfcnt.h | 45 |
1 files changed, 42 insertions, 3 deletions
diff --git a/mali_kbase/mali_kbase_kinstr_prfcnt.h b/mali_kbase/mali_kbase_kinstr_prfcnt.h index c42408b..ec42ce0 100644 --- a/mali_kbase/mali_kbase_kinstr_prfcnt.h +++ b/mali_kbase/mali_kbase_kinstr_prfcnt.h @@ -26,9 +26,11 @@ #ifndef _KBASE_KINSTR_PRFCNT_H_ #define _KBASE_KINSTR_PRFCNT_H_ +#include "mali_kbase_hwcnt_types.h" #include <uapi/gpu/arm/midgard/mali_kbase_hwcnt_reader.h> struct kbase_kinstr_prfcnt_context; +struct kbase_kinstr_prfcnt_client; struct kbase_hwcnt_virtualizer; struct kbase_ioctl_hwcnt_reader_setup; struct kbase_ioctl_kinstr_prfcnt_enum_info; @@ -98,15 +100,18 @@ int kbasep_kinstr_prfcnt_get_block_info_list(const struct kbase_hwcnt_metadata * /** * kbasep_kinstr_prfcnt_get_sample_md_count() - Get count of sample * metadata items. - * @metadata: Non-NULL pointer to the hardware counter metadata. + * @metadata: Non-NULL pointer to the hardware counter metadata. + * @enable_map: Non-NULL pointer to the map of enabled counters. * * Return: Number of metadata items for available blocks in each sample. */ -size_t kbasep_kinstr_prfcnt_get_sample_md_count(const struct kbase_hwcnt_metadata *metadata); +size_t kbasep_kinstr_prfcnt_get_sample_md_count(const struct kbase_hwcnt_metadata *metadata, + struct kbase_hwcnt_enable_map *enable_map); /** * kbasep_kinstr_prfcnt_set_block_meta_items() - Populate a sample's block meta * item array. + * @enable_map: Non-NULL pointer to the map of enabled counters. * @dst: Non-NULL pointer to the sample's dump buffer object. * @block_meta_base: Non-NULL double pointer to the start of the block meta * data items. @@ -116,9 +121,43 @@ size_t kbasep_kinstr_prfcnt_get_sample_md_count(const struct kbase_hwcnt_metadat * * Return: 0 on success, else error code. */ -int kbasep_kinstr_prfcnt_set_block_meta_items(struct kbase_hwcnt_dump_buffer *dst, +int kbasep_kinstr_prfcnt_set_block_meta_items(struct kbase_hwcnt_enable_map *enable_map, + struct kbase_hwcnt_dump_buffer *dst, struct prfcnt_metadata **block_meta_base, u64 base_addr, u8 counter_set); + +/** + * kbasep_kinstr_prfcnt_client_create() - Create a kinstr_prfcnt client. + * Does not attach to the kinstr_prfcnt + * context. + * @kinstr_ctx: Non-NULL pointer to kinstr_prfcnt context. + * @setup: Non-NULL pointer to hardware counter ioctl setup structure. + * @out_vcli: Non-NULL pointer to where created client will be stored on + * success. + * @req_arr: Non-NULL pointer to array of request items for client session. + * + * Return: 0 on success, else error code. + */ +int kbasep_kinstr_prfcnt_client_create(struct kbase_kinstr_prfcnt_context *kinstr_ctx, + union kbase_ioctl_kinstr_prfcnt_setup *setup, + struct kbase_kinstr_prfcnt_client **out_vcli, + struct prfcnt_request_item *req_arr); + +/** + * kbasep_kinstr_prfcnt_cmd() - Execute command for a client session. + * @cli: Non-NULL pointer to kinstr_prfcnt client. + * @control_cmd: Control command to execute. + * + * Return: 0 on success, else error code. + */ +int kbasep_kinstr_prfcnt_cmd(struct kbase_kinstr_prfcnt_client *cli, + struct prfcnt_control_cmd *control_cmd); + +/** + * kbasep_kinstr_prfcnt_client_destroy() - Destroy a kinstr_prfcnt client. + * @cli: kinstr_prfcnt client. Must not be attached to a kinstr_prfcnt context. + */ +void kbasep_kinstr_prfcnt_client_destroy(struct kbase_kinstr_prfcnt_client *cli); #endif /* MALI_KERNEL_TEST_API */ /** |