Add 'qcom/opensource/graphics-kernel/' from commit 'b4fdc4c04295ac59109ae19d64747522740c3f14'
git-subtree-dir: qcom/opensource/graphics-kernel git-subtree-mainline:992813d9c1
git-subtree-split:b4fdc4c042
Change-Id: repo: https://git.codelinaro.org/clo/la/platform/vendor/qcom/opensource/graphics-kernel tag: GRAPHICS.LA.14.0.r1-07700-lanai.0
This commit is contained in:
85
qcom/opensource/graphics-kernel/include/linux/msm_kgsl.h
Normal file
85
qcom/opensource/graphics-kernel/include/linux/msm_kgsl.h
Normal file
@@ -0,0 +1,85 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (c) 2021, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
#ifndef _MSM_KGSL_H
|
||||
#define _MSM_KGSL_H
|
||||
|
||||
/**
|
||||
* struct kgsl_gpu_freq_stat - Per GPU freq stat struct
|
||||
* @freq: GPU frequency in Hz
|
||||
* @active_time: GPU busy time in usecs
|
||||
* @idle_time: GPU idle time in usec
|
||||
*/
|
||||
struct kgsl_gpu_freq_stat {
|
||||
u32 freq;
|
||||
u64 active_time;
|
||||
u64 idle_time;
|
||||
};
|
||||
|
||||
/**
|
||||
* kgsl_gpu_num_freqs - Get number of available GPU frequencies
|
||||
*
|
||||
* Return: number of available frequencies on success or negative error
|
||||
* on failure
|
||||
*/
|
||||
int kgsl_gpu_num_freqs(void);
|
||||
|
||||
/**
|
||||
* kgsl_gpu_stat - Get per GPU freq stats
|
||||
* @stats: Array of struct kgsl_gpu_freq_stat to hold stats
|
||||
* @numfreq: Number of entries in @stats
|
||||
*
|
||||
* This function will populate @stats with per freq stats.
|
||||
* Number of entries in @stats array must be greater or
|
||||
* equal to value returned by function kgsl_gpu_num_freqs
|
||||
*
|
||||
* Return: 0 on success or negative error on failure
|
||||
*/
|
||||
int kgsl_gpu_stat(struct kgsl_gpu_freq_stat *stats, u32 numfreq);
|
||||
|
||||
/**
|
||||
* kgsl_gpu_frame_count - Get number of frames already processed by GPU
|
||||
* @pid: pid of the process for which frame count is required
|
||||
* @frame_count: pointer to a u64 to store frame count
|
||||
*
|
||||
* Return: zero on success and number of frames processed corresponding
|
||||
* to @pid in @frame_count or negative error on failure
|
||||
*/
|
||||
int kgsl_gpu_frame_count(pid_t pid, u64 *frame_count);
|
||||
|
||||
/**
|
||||
* enum kgsl_srcu_events - kgsl srcu notify events for listeners
|
||||
* @GPU_GMU_READY - GMU initialized to handle other requests
|
||||
* @GPU_GMU_STOP - GMU is not ready to handle other requests
|
||||
* @GPU_SSR_BEGIN - GPU/GMU fault detected to start recovery
|
||||
* @GPU_SSR_END - GPU/GMU fault recovery end
|
||||
* @GPU_SSR_FATAL - LSR context invalidated
|
||||
*/
|
||||
enum kgsl_srcu_events {
|
||||
GPU_GMU_READY,
|
||||
GPU_GMU_STOP,
|
||||
GPU_SSR_BEGIN,
|
||||
GPU_SSR_END,
|
||||
GPU_SSR_FATAL,
|
||||
};
|
||||
|
||||
/**
|
||||
* kgsl_add_rcu_notifier - Adds a notifier to an SRCU notifier chain.
|
||||
* @nb: Notifier block new entry to add in notifier chain
|
||||
*
|
||||
* Returns zero on success or error on failure.
|
||||
*/
|
||||
int kgsl_add_rcu_notifier(struct notifier_block *nb);
|
||||
|
||||
/**
|
||||
* kgsl_del_rcu_notifier - Remove notifier from an SRCU notifier chain.
|
||||
* @nb: Entry to remove from notifier chain
|
||||
*
|
||||
* Returns zero on success or -ENOENT on failure.
|
||||
*/
|
||||
int kgsl_del_rcu_notifier(struct notifier_block *nb);
|
||||
|
||||
#endif /* _MSM_KGSL_H */
|
||||
|
Reference in New Issue
Block a user