You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.4 KiB
45 lines
1.4 KiB
/*
|
|
* Copyright (c) Hisilicon Technologies Co., Ltd.. 2018-2019. All rights reserved.
|
|
* Description: Gralloc
|
|
* Author: Hisilicon
|
|
* Created: 2019.11.07
|
|
*/
|
|
|
|
#ifndef GRALLOC_ION_H_
|
|
#define GRALLOC_ION_H_
|
|
|
|
#include "gralloc_internal_priv.h"
|
|
#include "gralloc_descriptor.h"
|
|
|
|
#ifndef GRALLOC_NEED_SMMU_MAP
|
|
/* defined in linux-4.14.y/drivers/staging/android/uapi/ion.h.
|
|
if heap is ION_HEAP_SYSTEM, it need to call ion_map_iommu to get smmu address */
|
|
enum ion_heap_type_ext {
|
|
ION_HEAP_ID_CMA = 15, /* ION_HEAP_ID_CMA(15) is ext heap */
|
|
ION_HEAP_ID_SMMU,
|
|
ION_HEAP_ID_SEC_SMMU,
|
|
ION_HEAP_ID_SEC_CMA,
|
|
};
|
|
|
|
#define ION_HEAP_SMMU_MASK (1 << ION_HEAP_ID_SMMU)
|
|
#define ION_HEAP_SEC_SMMU_MASK (1 << ION_HEAP_ID_SEC_SMMU)
|
|
#endif
|
|
|
|
int gralloc_ion_device_open(private_module_t *m);
|
|
|
|
int gralloc_ion_device_close(struct hw_device_t *device);
|
|
|
|
int gralloc_ion_allocate(const private_module_t *m, const buffer_descriptor_t *descriptors,
|
|
private_internal_handle_t *handle);
|
|
|
|
void gralloc_ion_free(const private_module_t *m, private_internal_handle_t *handle);
|
|
|
|
int gralloc_ion_map(const private_module_t *m, private_internal_handle_t *handle);
|
|
|
|
int gralloc_ion_unmap(const private_module_t *m, private_internal_handle_t *handle);
|
|
|
|
int gralloc_ion_sync(const private_module_t *m, const private_internal_handle_t *handle);
|
|
|
|
int gralloc_dmabuf_sync(const private_internal_handle_t *handle, bool start);
|
|
#endif /* GRALLOC_ION_H_ */
|