mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-24 10:34:43 +03:00
gpu: nvgpu: PMU perfmon interface header reorg
Moved perfmon interface from pmu_api.h & pmu_gk20a.h to gpmuif_perfmon.h header files gpmuif_perfmon.h - PMU Command/Message Interfaces PERFMON Jira NVGPU-19 Change-Id: I983f89f0f6ec3b889d975178fb1405f166b7d1b9 Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com> Reviewed-on: http://git-master/r/1297262 Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
2caa3a9361
commit
de2dfd0c1e
@@ -17,143 +17,6 @@
|
||||
#include <nvgpu/flcnif_cmn.h>
|
||||
#include "pmuif/gpmuif_pg_rppg.h"
|
||||
|
||||
/*---------------------------------------------------------*/
|
||||
|
||||
/*perfmon task defines*/
|
||||
enum pmu_perfmon_cmd_start_fields {
|
||||
COUNTER_ALLOC
|
||||
};
|
||||
|
||||
enum {
|
||||
PMU_PERFMON_CMD_ID_START = 0,
|
||||
PMU_PERFMON_CMD_ID_STOP = 1,
|
||||
PMU_PERFMON_CMD_ID_INIT = 2
|
||||
};
|
||||
|
||||
struct pmu_perfmon_cmd_start_v3 {
|
||||
u8 cmd_type;
|
||||
u8 group_id;
|
||||
u8 state_id;
|
||||
u8 flags;
|
||||
struct pmu_allocation_v3 counter_alloc;
|
||||
};
|
||||
|
||||
struct pmu_perfmon_cmd_start_v2 {
|
||||
u8 cmd_type;
|
||||
u8 group_id;
|
||||
u8 state_id;
|
||||
u8 flags;
|
||||
struct pmu_allocation_v2 counter_alloc;
|
||||
};
|
||||
|
||||
struct pmu_perfmon_cmd_start_v1 {
|
||||
u8 cmd_type;
|
||||
u8 group_id;
|
||||
u8 state_id;
|
||||
u8 flags;
|
||||
struct pmu_allocation_v1 counter_alloc;
|
||||
};
|
||||
|
||||
struct pmu_perfmon_cmd_start_v0 {
|
||||
u8 cmd_type;
|
||||
u8 group_id;
|
||||
u8 state_id;
|
||||
u8 flags;
|
||||
struct pmu_allocation_v0 counter_alloc;
|
||||
};
|
||||
|
||||
struct pmu_perfmon_cmd_stop {
|
||||
u8 cmd_type;
|
||||
};
|
||||
|
||||
struct pmu_perfmon_cmd_init_v3 {
|
||||
u8 cmd_type;
|
||||
u8 to_decrease_count;
|
||||
u8 base_counter_id;
|
||||
u32 sample_period_us;
|
||||
struct pmu_allocation_v3 counter_alloc;
|
||||
u8 num_counters;
|
||||
u8 samples_in_moving_avg;
|
||||
u16 sample_buffer;
|
||||
};
|
||||
|
||||
struct pmu_perfmon_cmd_init_v2 {
|
||||
u8 cmd_type;
|
||||
u8 to_decrease_count;
|
||||
u8 base_counter_id;
|
||||
u32 sample_period_us;
|
||||
struct pmu_allocation_v2 counter_alloc;
|
||||
u8 num_counters;
|
||||
u8 samples_in_moving_avg;
|
||||
u16 sample_buffer;
|
||||
};
|
||||
|
||||
struct pmu_perfmon_cmd_init_v1 {
|
||||
u8 cmd_type;
|
||||
u8 to_decrease_count;
|
||||
u8 base_counter_id;
|
||||
u32 sample_period_us;
|
||||
struct pmu_allocation_v1 counter_alloc;
|
||||
u8 num_counters;
|
||||
u8 samples_in_moving_avg;
|
||||
u16 sample_buffer;
|
||||
};
|
||||
|
||||
struct pmu_perfmon_cmd_init_v0 {
|
||||
u8 cmd_type;
|
||||
u8 to_decrease_count;
|
||||
u8 base_counter_id;
|
||||
u32 sample_period_us;
|
||||
struct pmu_allocation_v0 counter_alloc;
|
||||
u8 num_counters;
|
||||
u8 samples_in_moving_avg;
|
||||
u16 sample_buffer;
|
||||
};
|
||||
|
||||
struct pmu_perfmon_cmd {
|
||||
union {
|
||||
u8 cmd_type;
|
||||
struct pmu_perfmon_cmd_start_v0 start_v0;
|
||||
struct pmu_perfmon_cmd_start_v1 start_v1;
|
||||
struct pmu_perfmon_cmd_start_v2 start_v2;
|
||||
struct pmu_perfmon_cmd_start_v3 start_v3;
|
||||
struct pmu_perfmon_cmd_stop stop;
|
||||
struct pmu_perfmon_cmd_init_v0 init_v0;
|
||||
struct pmu_perfmon_cmd_init_v1 init_v1;
|
||||
struct pmu_perfmon_cmd_init_v2 init_v2;
|
||||
struct pmu_perfmon_cmd_init_v3 init_v3;
|
||||
};
|
||||
};
|
||||
|
||||
struct pmu_zbc_cmd {
|
||||
u8 cmd_type;
|
||||
u8 pad;
|
||||
u16 entry_mask;
|
||||
};
|
||||
|
||||
/* PERFMON MSG */
|
||||
enum {
|
||||
PMU_PERFMON_MSG_ID_INCREASE_EVENT = 0,
|
||||
PMU_PERFMON_MSG_ID_DECREASE_EVENT = 1,
|
||||
PMU_PERFMON_MSG_ID_INIT_EVENT = 2,
|
||||
PMU_PERFMON_MSG_ID_ACK = 3
|
||||
};
|
||||
|
||||
struct pmu_perfmon_msg_generic {
|
||||
u8 msg_type;
|
||||
u8 state_id;
|
||||
u8 group_id;
|
||||
u8 data;
|
||||
};
|
||||
|
||||
struct pmu_perfmon_msg {
|
||||
union {
|
||||
u8 msg_type;
|
||||
struct pmu_perfmon_msg_generic gen;
|
||||
};
|
||||
};
|
||||
|
||||
/*---------------------------------------------------------*/
|
||||
/* ACR Commands/Message structures */
|
||||
|
||||
enum {
|
||||
|
||||
@@ -134,39 +134,6 @@ struct pmu_ucode_desc_v1 {
|
||||
*/
|
||||
#define ACR_ERROR_INVALID_TRANSCFG_SETUP (0xAC120001)
|
||||
|
||||
/* PERFMON */
|
||||
#define PMU_DOMAIN_GROUP_PSTATE 0
|
||||
#define PMU_DOMAIN_GROUP_GPC2CLK 1
|
||||
#define PMU_DOMAIN_GROUP_NUM 2
|
||||
|
||||
/* TBD: smart strategy */
|
||||
#define PMU_PERFMON_PCT_TO_INC 58
|
||||
#define PMU_PERFMON_PCT_TO_DEC 23
|
||||
|
||||
struct pmu_perfmon_counter_v0 {
|
||||
u8 index;
|
||||
u8 flags;
|
||||
u8 group_id;
|
||||
u8 valid;
|
||||
u16 upper_threshold; /* units of 0.01% */
|
||||
u16 lower_threshold; /* units of 0.01% */
|
||||
};
|
||||
|
||||
struct pmu_perfmon_counter_v2 {
|
||||
u8 index;
|
||||
u8 flags;
|
||||
u8 group_id;
|
||||
u8 valid;
|
||||
u16 upper_threshold; /* units of 0.01% */
|
||||
u16 lower_threshold; /* units of 0.01% */
|
||||
u32 scale;
|
||||
};
|
||||
|
||||
#define PMU_PERFMON_FLAG_ENABLE_INCREASE (0x00000001)
|
||||
#define PMU_PERFMON_FLAG_ENABLE_DECREASE (0x00000002)
|
||||
#define PMU_PERFMON_FLAG_CLEAR_PREV (0x00000004)
|
||||
|
||||
|
||||
#define PMU_PGENG_GR_BUFFER_IDX_INIT (0)
|
||||
#define PMU_PGENG_GR_BUFFER_IDX_ZBC (1)
|
||||
#define PMU_PGENG_GR_BUFFER_IDX_FECS (2)
|
||||
|
||||
178
drivers/gpu/nvgpu/pmuif/gpmuif_perfmon.h
Normal file
178
drivers/gpu/nvgpu/pmuif/gpmuif_perfmon.h
Normal file
@@ -0,0 +1,178 @@
|
||||
/*
|
||||
* Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms and conditions of the GNU General Public License,
|
||||
* version 2, as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope 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.
|
||||
*/
|
||||
#ifndef _GPMUIFPERFMON_H_
|
||||
#define _GPMUIFPERFMON_H_
|
||||
|
||||
/*perfmon task defines*/
|
||||
|
||||
#define PMU_DOMAIN_GROUP_PSTATE 0
|
||||
#define PMU_DOMAIN_GROUP_GPC2CLK 1
|
||||
#define PMU_DOMAIN_GROUP_NUM 2
|
||||
|
||||
#define PMU_PERFMON_FLAG_ENABLE_INCREASE (0x00000001)
|
||||
#define PMU_PERFMON_FLAG_ENABLE_DECREASE (0x00000002)
|
||||
#define PMU_PERFMON_FLAG_CLEAR_PREV (0x00000004)
|
||||
|
||||
enum pmu_perfmon_cmd_start_fields {
|
||||
COUNTER_ALLOC
|
||||
};
|
||||
|
||||
enum {
|
||||
PMU_PERFMON_CMD_ID_START = 0,
|
||||
PMU_PERFMON_CMD_ID_STOP = 1,
|
||||
PMU_PERFMON_CMD_ID_INIT = 2
|
||||
};
|
||||
|
||||
struct pmu_perfmon_counter_v0 {
|
||||
u8 index;
|
||||
u8 flags;
|
||||
u8 group_id;
|
||||
u8 valid;
|
||||
u16 upper_threshold; /* units of 0.01% */
|
||||
u16 lower_threshold; /* units of 0.01% */
|
||||
};
|
||||
|
||||
struct pmu_perfmon_counter_v2 {
|
||||
u8 index;
|
||||
u8 flags;
|
||||
u8 group_id;
|
||||
u8 valid;
|
||||
u16 upper_threshold; /* units of 0.01% */
|
||||
u16 lower_threshold; /* units of 0.01% */
|
||||
u32 scale;
|
||||
};
|
||||
|
||||
struct pmu_perfmon_cmd_start_v3 {
|
||||
u8 cmd_type;
|
||||
u8 group_id;
|
||||
u8 state_id;
|
||||
u8 flags;
|
||||
struct pmu_allocation_v3 counter_alloc;
|
||||
};
|
||||
|
||||
struct pmu_perfmon_cmd_start_v2 {
|
||||
u8 cmd_type;
|
||||
u8 group_id;
|
||||
u8 state_id;
|
||||
u8 flags;
|
||||
struct pmu_allocation_v2 counter_alloc;
|
||||
};
|
||||
|
||||
struct pmu_perfmon_cmd_start_v1 {
|
||||
u8 cmd_type;
|
||||
u8 group_id;
|
||||
u8 state_id;
|
||||
u8 flags;
|
||||
struct pmu_allocation_v1 counter_alloc;
|
||||
};
|
||||
|
||||
struct pmu_perfmon_cmd_start_v0 {
|
||||
u8 cmd_type;
|
||||
u8 group_id;
|
||||
u8 state_id;
|
||||
u8 flags;
|
||||
struct pmu_allocation_v0 counter_alloc;
|
||||
};
|
||||
|
||||
struct pmu_perfmon_cmd_stop {
|
||||
u8 cmd_type;
|
||||
};
|
||||
|
||||
struct pmu_perfmon_cmd_init_v3 {
|
||||
u8 cmd_type;
|
||||
u8 to_decrease_count;
|
||||
u8 base_counter_id;
|
||||
u32 sample_period_us;
|
||||
struct pmu_allocation_v3 counter_alloc;
|
||||
u8 num_counters;
|
||||
u8 samples_in_moving_avg;
|
||||
u16 sample_buffer;
|
||||
};
|
||||
|
||||
struct pmu_perfmon_cmd_init_v2 {
|
||||
u8 cmd_type;
|
||||
u8 to_decrease_count;
|
||||
u8 base_counter_id;
|
||||
u32 sample_period_us;
|
||||
struct pmu_allocation_v2 counter_alloc;
|
||||
u8 num_counters;
|
||||
u8 samples_in_moving_avg;
|
||||
u16 sample_buffer;
|
||||
};
|
||||
|
||||
struct pmu_perfmon_cmd_init_v1 {
|
||||
u8 cmd_type;
|
||||
u8 to_decrease_count;
|
||||
u8 base_counter_id;
|
||||
u32 sample_period_us;
|
||||
struct pmu_allocation_v1 counter_alloc;
|
||||
u8 num_counters;
|
||||
u8 samples_in_moving_avg;
|
||||
u16 sample_buffer;
|
||||
};
|
||||
|
||||
struct pmu_perfmon_cmd_init_v0 {
|
||||
u8 cmd_type;
|
||||
u8 to_decrease_count;
|
||||
u8 base_counter_id;
|
||||
u32 sample_period_us;
|
||||
struct pmu_allocation_v0 counter_alloc;
|
||||
u8 num_counters;
|
||||
u8 samples_in_moving_avg;
|
||||
u16 sample_buffer;
|
||||
};
|
||||
|
||||
struct pmu_perfmon_cmd {
|
||||
union {
|
||||
u8 cmd_type;
|
||||
struct pmu_perfmon_cmd_start_v0 start_v0;
|
||||
struct pmu_perfmon_cmd_start_v1 start_v1;
|
||||
struct pmu_perfmon_cmd_start_v2 start_v2;
|
||||
struct pmu_perfmon_cmd_start_v3 start_v3;
|
||||
struct pmu_perfmon_cmd_stop stop;
|
||||
struct pmu_perfmon_cmd_init_v0 init_v0;
|
||||
struct pmu_perfmon_cmd_init_v1 init_v1;
|
||||
struct pmu_perfmon_cmd_init_v2 init_v2;
|
||||
struct pmu_perfmon_cmd_init_v3 init_v3;
|
||||
};
|
||||
};
|
||||
|
||||
struct pmu_zbc_cmd {
|
||||
u8 cmd_type;
|
||||
u8 pad;
|
||||
u16 entry_mask;
|
||||
};
|
||||
|
||||
/* PERFMON MSG */
|
||||
enum {
|
||||
PMU_PERFMON_MSG_ID_INCREASE_EVENT = 0,
|
||||
PMU_PERFMON_MSG_ID_DECREASE_EVENT = 1,
|
||||
PMU_PERFMON_MSG_ID_INIT_EVENT = 2,
|
||||
PMU_PERFMON_MSG_ID_ACK = 3
|
||||
};
|
||||
|
||||
struct pmu_perfmon_msg_generic {
|
||||
u8 msg_type;
|
||||
u8 state_id;
|
||||
u8 group_id;
|
||||
u8 data;
|
||||
};
|
||||
|
||||
struct pmu_perfmon_msg {
|
||||
union {
|
||||
u8 msg_type;
|
||||
struct pmu_perfmon_msg_generic gen;
|
||||
};
|
||||
};
|
||||
|
||||
#endif /* _GPMUIFPERFMON_H_ */
|
||||
@@ -19,6 +19,7 @@
|
||||
#include "gpmuif_pmu.h"
|
||||
#include "gpmuif_ap.h"
|
||||
#include "gpmuif_pg.h"
|
||||
#include "gpmuif_perfmon.h"
|
||||
#include "gpmuifboardobj.h"
|
||||
#include "gpmuifclk.h"
|
||||
#include "gpmuifperf.h"
|
||||
|
||||
Reference in New Issue
Block a user