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