/* Qti (or) Qualcomm Technologies Inc CE device driver. * * Copyright (c) 2018, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and * only version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #ifndef _DRIVERS_CRYPTO_PARSE_H_ #define _DRIVERS_CRYPTO_PARSE_H_ #include #include #include #include #include #include #include #include #include #include struct context_bank_info { struct list_head list; const char *name; u32 buffer_type; u32 start_addr; u32 size; bool is_secure; struct device *dev; struct dma_iommu_mapping *mapping; }; enum qcedev_mem_type { MEM_ION, }; struct qcedev_mem_client { enum qcedev_mem_type mtype; }; struct dma_mapping_info { struct device *dev; struct dma_iommu_mapping *mapping; struct sg_table *table; struct dma_buf_attachment *attach; struct dma_buf *buf; }; struct qcedev_ion_buf_info { struct dma_mapping_info mapping_info; dma_addr_t iova; unsigned long mapped_buf_size; int ion_fd; }; struct qcedev_reg_buf_info { struct list_head list; union { struct qcedev_ion_buf_info ion_buf; }; atomic_t ref_count; }; struct qcedev_buffer_list { struct list_head list; struct mutex lock; }; int qcedev_parse_context_bank(struct platform_device *pdev); struct qcedev_mem_client *qcedev_mem_new_client(enum qcedev_mem_type mtype); void qcedev_mem_delete_client(struct qcedev_mem_client *mem_client); int qcedev_check_and_map_buffer(void *qce_hndl, int fd, unsigned int offset, unsigned int fd_size, unsigned long long *vaddr); int qcedev_check_and_unmap_buffer(void *handle, int fd); extern struct qcedev_reg_buf_info *global_binfo_in; extern struct qcedev_reg_buf_info *global_binfo_out; extern struct qcedev_reg_buf_info *global_binfo_res; #endif