1*17fcb3dcSFan Gong /* SPDX-License-Identifier: GPL-2.0 */ 2*17fcb3dcSFan Gong /* Copyright (c) Huawei Technologies Co., Ltd. 2025. All rights reserved. */ 3*17fcb3dcSFan Gong 4*17fcb3dcSFan Gong #ifndef _HINIC3_COMMON_H_ 5*17fcb3dcSFan Gong #define _HINIC3_COMMON_H_ 6*17fcb3dcSFan Gong 7*17fcb3dcSFan Gong #include <linux/device.h> 8*17fcb3dcSFan Gong 9*17fcb3dcSFan Gong #define HINIC3_MIN_PAGE_SIZE 0x1000 10*17fcb3dcSFan Gong 11*17fcb3dcSFan Gong struct hinic3_dma_addr_align { 12*17fcb3dcSFan Gong u32 real_size; 13*17fcb3dcSFan Gong 14*17fcb3dcSFan Gong void *ori_vaddr; 15*17fcb3dcSFan Gong dma_addr_t ori_paddr; 16*17fcb3dcSFan Gong 17*17fcb3dcSFan Gong void *align_vaddr; 18*17fcb3dcSFan Gong dma_addr_t align_paddr; 19*17fcb3dcSFan Gong }; 20*17fcb3dcSFan Gong 21*17fcb3dcSFan Gong int hinic3_dma_zalloc_coherent_align(struct device *dev, u32 size, u32 align, 22*17fcb3dcSFan Gong gfp_t flag, 23*17fcb3dcSFan Gong struct hinic3_dma_addr_align *mem_align); 24*17fcb3dcSFan Gong void hinic3_dma_free_coherent_align(struct device *dev, 25*17fcb3dcSFan Gong struct hinic3_dma_addr_align *mem_align); 26*17fcb3dcSFan Gong 27*17fcb3dcSFan Gong #endif 28