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 <isaacm@codeaurora.org>
This commit is contained in:
Isaac J. Manjarres 2019-09-04 10:57:57 -07:00
commit 5baf1404c7
2 changed files with 32 additions and 30 deletions

View file

@ -6,6 +6,7 @@
#define _UAPI_LINUX_MSM_ION_H
#include <linux/types.h>
#include <linux/msm_ion_ids.h>
#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

View file

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