diff options
author | Drew Richardson <drew.richardson@arm.com> | 2012-07-31 12:00:00 -0700 |
---|---|---|
committer | Drew Richardson <drew.richardson@arm.com> | 2014-12-19 15:29:29 -0800 |
commit | 5f9955b9c65967a7a62f7860295d8ac187c9ec11 (patch) | |
tree | f5c3a2b6025bf9f3e436b8de9ae9f67131fe854d /driver/gator_events_mali_common.h | |
parent | 3abe11d177c6c93fab66d04fd42d11452a0c508e (diff) |
gator: Version 5.115.11
Signed-off-by: Drew Richardson <drew.richardson@arm.com>
Diffstat (limited to 'driver/gator_events_mali_common.h')
-rw-r--r-- | driver/gator_events_mali_common.h | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/driver/gator_events_mali_common.h b/driver/gator_events_mali_common.h new file mode 100644 index 0000000..cb851d5 --- /dev/null +++ b/driver/gator_events_mali_common.h @@ -0,0 +1,85 @@ +/* + * This confidential and proprietary software may be used only as + * authorised by a licensing agreement from ARM Limited + * (C) COPYRIGHT 2011-2012 ARM Limited + * ALL RIGHTS RESERVED + * The entire notice above must be reproduced on all authorised + * copies and copies may only be made to the extent permitted + * by a licensing agreement from ARM Limited. + */ +#if !defined(GATOR_EVENTS_MALI_COMMON_H) +#define GATOR_EVENTS_MALI_COMMON_H + +#include "gator.h" + +#include <linux/module.h> +#include <linux/time.h> +#include <linux/math64.h> +#include <linux/slab.h> +#include <asm/io.h> + +/* Device codes for each known GPU */ +#define MALI_400 (0x0b07) +#define MALI_T6xx (0x0056) + +/* Ensure that MALI_SUPPORT has been defined to something. */ +#ifndef MALI_SUPPORT +#error MALI_SUPPORT not defined! +#endif + +/* Values for the supported activity event types */ +#define ACTIVITY_START (1) +#define ACTIVITY_STOP (2) + +/* + * Runtime state information for a counter. + */ +typedef struct { + unsigned long key; /* 'key' (a unique id set by gatord and returned by gator.ko) */ + unsigned long enabled; /* counter enable state */ +} mali_counter; + +typedef void mali_profiling_set_event_type(unsigned int, unsigned int); +typedef void mali_osk_fb_control_set_type(unsigned int, unsigned int); +typedef void mali_profiling_control_type(unsigned int, unsigned int); +typedef void mali_profiling_get_counters_type(unsigned int*, unsigned int*, unsigned int*, unsigned int*); + +/* + * Driver entry points for functions called directly by gator. + */ +extern void _mali_profiling_set_event(unsigned int, unsigned int); +extern void _mali_osk_fb_control_set(unsigned int, unsigned int); +extern void _mali_profiling_control(unsigned int, unsigned int); +extern void _mali_profiling_get_counters(unsigned int*, unsigned int*, unsigned int*, unsigned int*); + +/** + * Returns a name which identifies the GPU type (eg Mali-400, Mali-T6xx). + * + * @return The name as a constant string. + */ +extern const char* gator_mali_get_mali_name(void); + +/** + * Creates a filesystem entry under /dev/gator relating to the specified event name and key, and + * associate the key/enable values with this entry point. + * + * @param mali_name A name related to the type of GPU, obtained from a call to gator_mali_get_mali_name() + * @param event_name The name of the event. + * @param sb Linux super block + * @param root Directory under which the entry will be created. + * @param counter_key Ptr to location which will be associated with the counter key. + * @param counter_enabled Ptr to location which will be associated with the counter enable state. + * + * @return 0 if entry point was created, non-zero if not. + */ +extern int gator_mali_create_file_system(const char* mali_name, const char* event_name, struct super_block *sb, struct dentry *root, mali_counter *counter); + +/** + * Initialises the counter array. + * + * @param keys The array of counters + * @param n_counters The number of entries in each of the arrays. + */ +extern void gator_mali_initialise_counters(mali_counter counters[], unsigned int n_counters); + +#endif /* GATOR_EVENTS_MALI_COMMON_H */ |