From 88d7d984fed1c2a4358ce2bbc334e82d71e3a391 Mon Sep 17 00:00:00 2001 From: Siddharth Kapoor Date: Wed, 2 Mar 2022 14:51:29 +0800 Subject: 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 Change-Id: I4a63b707fedc68d7b7d046596c7098da47a139cb --- mali_kbase/mali_kbase_kinstr_prfcnt.h | 45 ++++++++++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 3 deletions(-) (limited to 'mali_kbase/mali_kbase_kinstr_prfcnt.h') 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 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 */ /** -- cgit v1.2.3