Server IP : 15.235.198.142 / Your IP : 216.73.216.17 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ballsack 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /usr/src/linux-headers-6.8.0-60/include/soc/qcom/ |
Upload File : |
/* SPDX-License-Identifier: GPL-2.0-only */ /* * The On Chip Memory (OCMEM) allocator allows various clients to allocate * memory from OCMEM based on performance, latency and power requirements. * This is typically used by the GPU, camera/video, and audio components on * some Snapdragon SoCs. * * Copyright (C) 2019 Brian Masney <masneyb@onstation.org> * Copyright (C) 2015 Red Hat. Author: Rob Clark <robdclark@gmail.com> */ #include <linux/device.h> #include <linux/err.h> #ifndef __OCMEM_H__ #define __OCMEM_H__ enum ocmem_client { /* GMEM clients */ OCMEM_GRAPHICS = 0x0, /* * TODO add more once ocmem_allocate() is clever enough to * deal with multiple clients. */ OCMEM_CLIENT_MAX, }; struct ocmem; struct ocmem_buf { unsigned long offset; unsigned long addr; unsigned long len; }; #if IS_ENABLED(CONFIG_QCOM_OCMEM) struct ocmem *of_get_ocmem(struct device *dev); struct ocmem_buf *ocmem_allocate(struct ocmem *ocmem, enum ocmem_client client, unsigned long size); void ocmem_free(struct ocmem *ocmem, enum ocmem_client client, struct ocmem_buf *buf); #else /* IS_ENABLED(CONFIG_QCOM_OCMEM) */ static inline struct ocmem *of_get_ocmem(struct device *dev) { return ERR_PTR(-ENODEV); } static inline struct ocmem_buf *ocmem_allocate(struct ocmem *ocmem, enum ocmem_client client, unsigned long size) { return ERR_PTR(-ENODEV); } static inline void ocmem_free(struct ocmem *ocmem, enum ocmem_client client, struct ocmem_buf *buf) { } #endif /* IS_ENABLED(CONFIG_QCOM_OCMEM) */ #endif /* __OCMEM_H__ */