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:
David Wronek
2024-10-06 16:44:56 +02:00
195 changed files with 145115 additions and 0 deletions

View 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 */