Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v5.8 129 lines 3.7 kB view raw
1/* SPDX-License-Identifier: GPL-2.0 */ 2/* include this file if the platform implements the dma_ DMA Mapping API 3 * and wants to provide the pci_ DMA Mapping API in terms of it */ 4 5#ifndef _ASM_GENERIC_PCI_DMA_COMPAT_H 6#define _ASM_GENERIC_PCI_DMA_COMPAT_H 7 8#include <linux/dma-mapping.h> 9 10/* This defines the direction arg to the DMA mapping routines. */ 11#define PCI_DMA_BIDIRECTIONAL DMA_BIDIRECTIONAL 12#define PCI_DMA_TODEVICE DMA_TO_DEVICE 13#define PCI_DMA_FROMDEVICE DMA_FROM_DEVICE 14#define PCI_DMA_NONE DMA_NONE 15 16static inline void * 17pci_alloc_consistent(struct pci_dev *hwdev, size_t size, 18 dma_addr_t *dma_handle) 19{ 20 return dma_alloc_coherent(&hwdev->dev, size, dma_handle, GFP_ATOMIC); 21} 22 23static inline void * 24pci_zalloc_consistent(struct pci_dev *hwdev, size_t size, 25 dma_addr_t *dma_handle) 26{ 27 return dma_alloc_coherent(&hwdev->dev, size, dma_handle, GFP_ATOMIC); 28} 29 30static inline void 31pci_free_consistent(struct pci_dev *hwdev, size_t size, 32 void *vaddr, dma_addr_t dma_handle) 33{ 34 dma_free_coherent(&hwdev->dev, size, vaddr, dma_handle); 35} 36 37static inline dma_addr_t 38pci_map_single(struct pci_dev *hwdev, void *ptr, size_t size, int direction) 39{ 40 return dma_map_single(&hwdev->dev, ptr, size, (enum dma_data_direction)direction); 41} 42 43static inline void 44pci_unmap_single(struct pci_dev *hwdev, dma_addr_t dma_addr, 45 size_t size, int direction) 46{ 47 dma_unmap_single(&hwdev->dev, dma_addr, size, (enum dma_data_direction)direction); 48} 49 50static inline dma_addr_t 51pci_map_page(struct pci_dev *hwdev, struct page *page, 52 unsigned long offset, size_t size, int direction) 53{ 54 return dma_map_page(&hwdev->dev, page, offset, size, (enum dma_data_direction)direction); 55} 56 57static inline void 58pci_unmap_page(struct pci_dev *hwdev, dma_addr_t dma_address, 59 size_t size, int direction) 60{ 61 dma_unmap_page(&hwdev->dev, dma_address, size, (enum dma_data_direction)direction); 62} 63 64static inline int 65pci_map_sg(struct pci_dev *hwdev, struct scatterlist *sg, 66 int nents, int direction) 67{ 68 return dma_map_sg(&hwdev->dev, sg, nents, (enum dma_data_direction)direction); 69} 70 71static inline void 72pci_unmap_sg(struct pci_dev *hwdev, struct scatterlist *sg, 73 int nents, int direction) 74{ 75 dma_unmap_sg(&hwdev->dev, sg, nents, (enum dma_data_direction)direction); 76} 77 78static inline void 79pci_dma_sync_single_for_cpu(struct pci_dev *hwdev, dma_addr_t dma_handle, 80 size_t size, int direction) 81{ 82 dma_sync_single_for_cpu(&hwdev->dev, dma_handle, size, (enum dma_data_direction)direction); 83} 84 85static inline void 86pci_dma_sync_single_for_device(struct pci_dev *hwdev, dma_addr_t dma_handle, 87 size_t size, int direction) 88{ 89 dma_sync_single_for_device(&hwdev->dev, dma_handle, size, (enum dma_data_direction)direction); 90} 91 92static inline void 93pci_dma_sync_sg_for_cpu(struct pci_dev *hwdev, struct scatterlist *sg, 94 int nelems, int direction) 95{ 96 dma_sync_sg_for_cpu(&hwdev->dev, sg, nelems, (enum dma_data_direction)direction); 97} 98 99static inline void 100pci_dma_sync_sg_for_device(struct pci_dev *hwdev, struct scatterlist *sg, 101 int nelems, int direction) 102{ 103 dma_sync_sg_for_device(&hwdev->dev, sg, nelems, (enum dma_data_direction)direction); 104} 105 106static inline int 107pci_dma_mapping_error(struct pci_dev *pdev, dma_addr_t dma_addr) 108{ 109 return dma_mapping_error(&pdev->dev, dma_addr); 110} 111 112#ifdef CONFIG_PCI 113static inline int pci_set_dma_mask(struct pci_dev *dev, u64 mask) 114{ 115 return dma_set_mask(&dev->dev, mask); 116} 117 118static inline int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask) 119{ 120 return dma_set_coherent_mask(&dev->dev, mask); 121} 122#else 123static inline int pci_set_dma_mask(struct pci_dev *dev, u64 mask) 124{ return -EIO; } 125static inline int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask) 126{ return -EIO; } 127#endif 128 129#endif