forked from Minki/linux
bfcb7e1555
The kbuild bot reported the following compiler errors when compiling on MIPS with CONFIG_QCOM_OCMEM disabled: In file included from <command-line>:0:0: >> include/soc/qcom/ocmem.h:43:49: warning: 'struct device' declared inside parameter list will not be visible outside of this definition or declaration static inline struct ocmem *of_get_ocmem(struct device *dev) ^~~~~~ include/soc/qcom/ocmem.h: In function 'of_get_ocmem': >> include/soc/qcom/ocmem.h:45:9: error: implicit declaration of function 'ERR_PTR' [-Werror=implicit-function-declaration] return ERR_PTR(-ENODEV); ^~~~~~~ >> include/soc/qcom/ocmem.h:45:18: error: 'ENODEV' undeclared (first use in this function) return ERR_PTR(-ENODEV); Add the proper includes to fix the compiler errors. Signed-off-by: Brian Masney <masneyb@onstation.org> Reported-by: kbuild test robot <lkp@intel.com> Tested-by: Gabriel Francisco <frc.gabriel@gmail.com> Signed-off-by: Rob Clark <robdclark@chromium.org>
66 lines
1.5 KiB
C
66 lines
1.5 KiB
C
/* 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__ */
|