123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264 |
- #ifndef _KGSL_UTIL_H_
- #define _KGSL_UTIL_H_
- #include <linux/version.h>
- #define KGSL_DRIVER "kgsl_driver"
- #define KGSL_ADRENO_DEVICE "kgsl_adreno_device"
- #define KGSL_A6XX_DEVICE "kgsl_a6xx_device"
- #define KGSL_GEN7_DEVICE "kgsl_gen7_device"
- #define KGSL_HWSCHED_DEVICE "kgsl_hwsched_device"
- #define KGSL_GEN8_DEVICE "kgsl_gen8_device"
- #define KGSL_SCRATCH_ENTRY "kgsl_scratch"
- #define KGSL_MEMSTORE_ENTRY "kgsl_memstore"
- #define KGSL_GMU_LOG_ENTRY "kgsl_gmu_log"
- #define KGSL_GMU_TRACE_ENTRY "kgsl_gmu_trace"
- #define KGSL_HFIMEM_ENTRY "kgsl_hfi_mem"
- #define KGSL_GMU_DUMPMEM_ENTRY "kgsl_gmu_dump_mem"
- #define KGSL_GMU_RB_ENTRY "kgsl_gmu_rb"
- #define KGSL_GMU_KERNEL_PROF_ENTRY "kgsl_gmu_kernel_profiling"
- #define KGSL_GMU_USER_PROF_ENTRY "kgsl_gmu_user_profiling"
- #define KGSL_GMU_CMD_BUFFER_ENTRY "kgsl_gmu_cmd_buffer"
- #define KGSL_HFI_BIG_IB_ENTRY "kgsl_hfi_big_ib"
- #define KGSL_HFI_BIG_IB_REC_ENTRY "kgsl_hfi_big_ib_rec"
- #define KGSL_ADRENO_CTX_ENTRY "kgsl_adreno_ctx"
- #define KGSL_PROC_PRIV_ENTRY "kgsl_proc_priv"
- #define KGSL_PGTABLE_ENTRY "kgsl_pgtable"
- #define KGSL_GMU_VRB_ENTRY "kgsl_gmu_vrb"
- #define MAX_VA_MINIDUMP_STR_LEN 32
- #define GPU_ALWAYS_EN_REQ BIT(0)
- #define GPU_BCL_EN_REQ BIT(1)
- #define GPU_CLX_EN_REQ BIT(2)
- #define GPU_TSENSE_EN_REQ BIT(3)
- struct regulator;
- struct clk_bulk_data;
- struct cpu_gpu_lock {
- u32 gpu_req;
- u32 cpu_req;
- u32 turn;
- union {
- struct {
- u16 list_length;
- u16 list_offset;
- };
- struct {
- u8 ifpc_list_len;
- u8 preemption_list_len;
- u16 dynamic_list_len;
- };
- };
- };
- int kgsl_hwlock(struct cpu_gpu_lock *lock);
- void kgsl_hwunlock(struct cpu_gpu_lock *lock);
- bool kgsl_regulator_disable_wait(struct regulator *reg, u32 timeout);
- struct clk *kgsl_of_clk_by_name(struct clk_bulk_data *clks, int count,
- const char *id);
- int kgsl_regulator_set_voltage(struct device *dev,
- struct regulator *reg, u32 voltage);
- int kgsl_clk_set_rate(struct clk_bulk_data *clks, int num_clks,
- const char *id, unsigned long rate);
- #if (KERNEL_VERSION(6, 1, 0) <= LINUX_VERSION_CODE)
- int kgsl_scm_gpu_init_regs(struct device *dev, u32 gpu_req);
- #else
- static inline int kgsl_scm_gpu_init_regs(struct device *dev, u32 gpu_req)
- {
- return -EOPNOTSUPP;
- }
- #endif
- int kgsl_zap_shader_load(struct device *dev, const char *name);
- int kgsl_zap_shader_unload(struct device *dev);
- #if IS_ENABLED(CONFIG_QCOM_VA_MINIDUMP)
- void kgsl_add_to_minidump(char *name, u64 virt_addr, u64 phy_addr, size_t size);
- void kgsl_remove_from_minidump(char *name, u64 virt_addr, u64 phy_addr, size_t size);
- int kgsl_add_va_to_minidump(struct device *dev, const char *name, void *ptr,
- size_t size);
- void kgsl_qcom_va_md_register(struct kgsl_device *device);
- void kgsl_qcom_va_md_unregister(struct kgsl_device *device);
- #else
- static inline void kgsl_add_to_minidump(char *name, u64 virt_addr, u64 phy_addr, size_t size)
- {
- }
- static inline void kgsl_remove_from_minidump(char *name, u64 virt_addr, u64 phy_addr, size_t size)
- {
- }
- static inline int kgsl_add_va_to_minidump(struct device *dev, const char *name, void *ptr,
- size_t size)
- {
- return 0;
- }
- static inline void kgsl_qcom_va_md_register(struct kgsl_device *device)
- {
- }
- static inline void kgsl_qcom_va_md_unregister(struct kgsl_device *device)
- {
- }
- #endif
- void isdb_write(void __iomem *base, u32 offset);
- #endif
|