From 5baf1404c7e0a9748dfdaadb893fc649456c5aa8 Mon Sep 17 00:00:00 2001 From: "Isaac J. Manjarres" Date: Wed, 4 Sep 2019 10:57:57 -0700 Subject: [PATCH] ion: msm: Define heap IDs as constants in their own file The ION heap IDs are also needed by the device-tree to provide the kernel with the heap ID for the heap that a device-tree entry describes. Currently, these IDs are hard-coded, which can be error-prone when updating the heap IDs. Thus, create a header that can also be accessed by the device-tree and userspace, and move the heap IDs to that header. This makes it so that the device-tree can now use the constants defined in the header, instead of hard-coded IDs, making updates significantly easier. Change-Id: I58b1aae9924504f2b20e159b9be8da7a2ee8d248 Signed-off-by: Isaac J. Manjarres --- include/uapi/linux/msm_ion.h | 31 +------------------------------ include/uapi/linux/msm_ion_ids.h | 31 +++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 30 deletions(-) create mode 100644 include/uapi/linux/msm_ion_ids.h diff --git a/include/uapi/linux/msm_ion.h b/include/uapi/linux/msm_ion.h index 87d8d8cb36eb..a3177803bc5f 100644 --- a/include/uapi/linux/msm_ion.h +++ b/include/uapi/linux/msm_ion.h @@ -6,6 +6,7 @@ #define _UAPI_LINUX_MSM_ION_H #include +#include #define ION_BIT(nr) (1U << (nr)) @@ -24,36 +25,6 @@ enum msm_ion_heap_types { ION_HEAP_TYPE_SECURE_CARVEOUT, }; -/** - * These are the only ids that should be used for Ion heap ids. - * The ids listed are the order in which allocation will be attempted - * if specified. Don't swap the order of heap ids unless you know what - * you are doing! - * Id's are spaced by purpose to allow new Id's to be inserted in-between (for - * possible fallbacks) - */ - -enum ion_heap_ids { - INVALID_HEAP_ID = -1, - ION_CP_MM_HEAP_ID = 8, - ION_SECURE_HEAP_ID = 9, - ION_SECURE_DISPLAY_HEAP_ID = 10, - ION_SPSS_HEAP_ID = 13, /* Secure Processor ION heap */ - ION_ADSP_HEAP_ID = 22, - ION_SYSTEM_HEAP_ID = 25, - ION_QSECOM_HEAP_ID = 27, - ION_HEAP_ID_RESERVED = 31 /** Bit reserved for ION_FLAG_SECURE flag */ -}; - -/** - * Newly added heap ids have to be #define(d) since all API changes must - * include a new #define. - */ -#define ION_SECURE_CARVEOUT_HEAP_ID 14 -#define ION_QSECOM_TA_HEAP_ID 19 -#define ION_AUDIO_HEAP_ID 28 -#define ION_CAMERA_HEAP_ID 20 -#define ION_USER_CONTIG_HEAP_ID 26 /** * Flags to be used when allocating from the secure heap for * content protection diff --git a/include/uapi/linux/msm_ion_ids.h b/include/uapi/linux/msm_ion_ids.h new file mode 100644 index 000000000000..0be6cc740a35 --- /dev/null +++ b/include/uapi/linux/msm_ion_ids.h @@ -0,0 +1,31 @@ +/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ +/* + * Copyright (c) 2019, The Linux Foundation. All rights reserved. + */ +#ifndef _MSM_ION_IDS_H +#define _MSM_ION_IDS_H + +/** + * These are the only ids that should be used for Ion heap ids. + * The ids listed are the order in which allocation will be attempted + * if specified. Don't swap the order of heap ids unless you know what + * you are doing! + * Id's are spaced by purpose to allow new Id's to be inserted in-between (for + * possible fallbacks) + */ + +#define ION_CP_MM_HEAP_ID 8 +#define ION_SECURE_HEAP_ID 9 +#define ION_SECURE_DISPLAY_HEAP_ID 10 +#define ION_SPSS_HEAP_ID 13 +#define ION_SECURE_CARVEOUT_HEAP_ID 14 +#define ION_QSECOM_TA_HEAP_ID 19 +#define ION_CAMERA_HEAP_ID 20 +#define ION_ADSP_HEAP_ID 22 +#define ION_SYSTEM_HEAP_ID 25 +#define ION_USER_CONTIG_HEAP_ID 26 +#define ION_QSECOM_HEAP_ID 27 +#define ION_AUDIO_HEAP_ID 28 +#define ION_HEAP_ID_RESERVED 31 + +#endif /* _MSM_ION_IDS_H */