/* Copyright (c) 2010, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and * only 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. * */ /* *per-axi *DESCRIPTION *Header File for Functions related to AXI bus performance counter manipulations. */ #ifndef __PER_AXI_H__ #define __PER_AXI_H__ unsigned long pm_get_axi_cycle_count(void); unsigned long pm_get_axi_evt0_count(void); unsigned long pm_get_axi_evt1_count(void); unsigned long pm_get_axi_evt2_count(void); unsigned long pm_get_axi_ten_min_count(void); unsigned long pm_get_axi_ten_max_count(void); unsigned long pm_get_axi_ten_total_count(void); unsigned long pm_get_axi_ten_last_count(void); unsigned long get_axi_sel_reg0(void); unsigned long get_axi_sel_seg1(void); unsigned long get_axi_ten_sel_reg(void); unsigned long get_axi_valid(void); unsigned long get_axi_enable(void); unsigned long get_axi_clear(void); void pm_axi_clear_cnts(void); void pm_axi_update_cnts(void); void pm_axi_init(void); void pm_axi_start(void); void pm_axi_update(void); void pm_axi_disable(void); void pm_axi_enable(void); struct perf_mon_axi_cnts{ unsigned long long cycles; unsigned long long cnt0; unsigned long long cnt1; unsigned long long tenure_total; unsigned long long tenure_min; unsigned long long tenure_max; unsigned long long tenure_last; }; struct perf_mon_axi_data{ struct proc_dir_entry *proc; unsigned long enable; unsigned long clear; unsigned long valid; unsigned long sel_reg0; unsigned long sel_reg1; unsigned long ten_sel_reg; unsigned long refresh; }; extern struct perf_mon_axi_data pm_axi_info; extern struct perf_mon_axi_cnts axi_cnts; void pm_axi_set_proc_entry(char *name, unsigned long *var, struct proc_dir_entry *d, int hex); void pm_axi_get_cnt_proc_entry(char *name, struct perf_mon_axi_cnts *var, struct proc_dir_entry *d, int hex); #endif