Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d9a50852 authored by Liam Mark's avatar Liam Mark Committed by Patrick Daly
Browse files

msm: secure_buffer: Add VMID_CP_CAMERA_PREVIEW



Add support for VMID_CP_CAMERA_PREVIEW

Change-Id: Ifacc1ff95262c6240283d19cf02dcac37933c141
Signed-off-by: default avatarLiam Mark <lmark@codeaurora.org>
Signed-off-by: default avatarPatrick Daly <pdaly@codeaurora.org>
parent 2ce06168
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -419,6 +419,8 @@ const char *msm_secure_vmid_to_string(int secure_vmid)
		return "VMID_WLAN";
	case VMID_WLAN_CE:
		return "VMID_WLAN_CE";
	case VMID_CP_CAMERA_PREVIEW:
		return "VMID_CP_CAMERA_PREVIEW";
	case VMID_INVAL:
		return "VMID_INVAL";
	default:
+4 −1
Original line number Diff line number Diff line
@@ -598,7 +598,8 @@ bool is_secure_vmid_valid(int vmid)
		vmid == VMID_CP_NON_PIXEL ||
		vmid == VMID_CP_CAMERA ||
		vmid == VMID_CP_SEC_DISPLAY ||
		vmid == VMID_CP_APP);
		vmid == VMID_CP_APP ||
		vmid == VMID_CP_CAMERA_PREVIEW);
}

int get_secure_vmid(unsigned long flags)
@@ -617,6 +618,8 @@ int get_secure_vmid(unsigned long flags)
		return VMID_CP_SEC_DISPLAY;
	if (flags & ION_FLAG_CP_APP)
		return VMID_CP_APP;
	if (flags & ION_FLAG_CP_CAMERA_PREVIEW)
		return VMID_CP_CAMERA_PREVIEW;
	return -EINVAL;
}
/* fix up the cases where the ioctl direction bits are incorrect */
+17 −13
Original line number Diff line number Diff line
@@ -3,6 +3,8 @@

#include "ion.h"

#define ION_BIT(nr) (1UL << (nr))

enum msm_ion_heap_types {
	ION_HEAP_TYPE_MSM_START = ION_HEAP_TYPE_CUSTOM + 1,
	ION_HEAP_TYPE_SECURE_DMA = ION_HEAP_TYPE_MSM_START,
@@ -76,34 +78,36 @@ enum cp_mem_usage {
 * Flags to be used when allocating from the secure heap for
 * content protection
 */
#define ION_FLAG_CP_TOUCH ((1 << 17))
#define ION_FLAG_CP_BITSTREAM ((1 << 18))
#define ION_FLAG_CP_PIXEL  ((1 << 19))
#define ION_FLAG_CP_NON_PIXEL ((1 << 20))
#define ION_FLAG_CP_CAMERA ((1 << 21))
#define ION_FLAG_CP_HLOS ((1 << 22))
#define ION_FLAG_CP_HLOS_FREE ((1 << 23))
#define ION_FLAG_CP_SEC_DISPLAY ((1 << 25))
#define ION_FLAG_CP_APP ((1 << 26))
#define ION_FLAG_CP_TOUCH		ION_BIT(17)
#define ION_FLAG_CP_BITSTREAM		ION_BIT(18)
#define ION_FLAG_CP_PIXEL		ION_BIT(19)
#define ION_FLAG_CP_NON_PIXEL		ION_BIT(20)
#define ION_FLAG_CP_CAMERA		ION_BIT(21)
#define ION_FLAG_CP_HLOS		ION_BIT(22)
#define ION_FLAG_CP_HLOS_FREE		ION_BIT(23)
#define ION_FLAG_CP_SEC_DISPLAY		ION_BIT(25)
#define ION_FLAG_CP_APP			ION_BIT(26)
#define ION_FLAG_CP_CAMERA_PREVIEW	ION_BIT(27)


/**
 * Flag to use when allocating to indicate that a heap is secure.
 * Do NOT use BIT macro since it is defined in #ifdef __KERNEL__
 */
#define ION_FLAG_SECURE (1 << (ION_HEAP_ID_RESERVED))
#define ION_FLAG_SECURE			ION_BIT(ION_HEAP_ID_RESERVED)

/**
 * Flag for clients to force contiguous memort allocation
 *
 * Use of this flag is carefully monitored!
 */
#define ION_FLAG_FORCE_CONTIGUOUS ((1 << 30))
#define ION_FLAG_FORCE_CONTIGUOUS	ION_BIT(30)

/*
 * Used in conjunction with heap which pool memory to force an allocation
 * to come from the page allocator directly instead of from the pool allocation
 */
#define ION_FLAG_POOL_FORCE_ALLOC ((1 << 16))
#define ION_FLAG_POOL_FORCE_ALLOC	ION_BIT(16)

/**
 * Deprecated! Please use the corresponding ION_FLAG_*
@@ -114,7 +118,7 @@ enum cp_mem_usage {
/**
 * Macro should be used with ion_heap_ids defined above.
 */
#define ION_HEAP(bit) (1 << (bit))
#define ION_HEAP(bit)			ION_BIT(bit)

#define ION_ADSP_HEAP_NAME	"adsp"
#define ION_SYSTEM_HEAP_NAME	"system"
+1 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ enum vmid {
	VMID_CP_APP = 0x12,
	VMID_WLAN = 0x18,
	VMID_WLAN_CE = 0x19,
	VMID_CP_CAMERA_PREVIEW = 0x1D,
	VMID_LAST,
	VMID_INVAL = -1
};