Changeset 772 for GPL/trunk/alsa-kernel/include/sound/memalloc.h
- Timestamp:
- Apr 19, 2025, 8:08:37 PM (4 months ago)
- Location:
- GPL/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
GPL/trunk
- Property svn:mergeinfo changed
/GPL/branches/uniaud32-6.6-LTS (added) merged: 765,768-769 /GPL/branches/uniaud32-exp (added) merged: 735-741,743-744,748-751,753-760,762-764 /GPL/branches/uniaud32-next merged: 718-734
- Property svn:mergeinfo changed
-
GPL/trunk/alsa-kernel/include/sound/memalloc.h
r717 r772 10 10 #define __SOUND_MEMALLOC_H 11 11 12 #include <linux/dma-direction.h> 12 13 #include <asm/page.h> 13 14 14 15 struct device; 15 16 struct vm_area_struct; 17 struct sg_table; 16 18 17 19 /* … … 20 22 struct snd_dma_device { 21 23 int type; /* SNDRV_DMA_TYPE_XXX */ 24 enum dma_data_direction dir; /* DMA direction */ 25 bool need_sync; /* explicit sync needed? */ 22 26 struct device *dev; /* generic device */ 23 27 }; 24 25 #define snd_dma_continuous_data(x) ((struct device *)(__force unsigned long)(x))26 27 28 28 29 /* … … 33 34 #define SNDRV_DMA_TYPE_DEV 2 /* generic device continuous */ 34 35 #define SNDRV_DMA_TYPE_DEV_WC 5 /* continuous write-combined */ 35 #ifdef CONFIG_SND_DMA_SGBUF36 #define SNDRV_DMA_TYPE_DEV_SG 3 /* generic device SG-buffer */37 #define SNDRV_DMA_TYPE_DEV_WC_SG 6 /* SG write-combined */38 #else39 #define SNDRV_DMA_TYPE_DEV_SG SNDRV_DMA_TYPE_DEV /* no SG-buf support */40 #define SNDRV_DMA_TYPE_DEV_WC_SG SNDRV_DMA_TYPE_DEV_WC41 #endif42 36 #ifdef CONFIG_GENERIC_ALLOCATOR 43 37 #define SNDRV_DMA_TYPE_DEV_IRAM 4 /* generic device iram-buffer */ … … 46 40 #endif 47 41 #define SNDRV_DMA_TYPE_VMALLOC 7 /* vmalloc'ed buffer */ 42 #define SNDRV_DMA_TYPE_NONCONTIG 8 /* non-coherent SG buffer */ 43 #define SNDRV_DMA_TYPE_NONCOHERENT 9 /* non-coherent buffer */ 44 #ifdef CONFIG_SND_DMA_SGBUF 45 #define SNDRV_DMA_TYPE_DEV_SG SNDRV_DMA_TYPE_NONCONTIG 46 #define SNDRV_DMA_TYPE_DEV_WC_SG 6 /* SG write-combined */ 47 #else 48 #define SNDRV_DMA_TYPE_DEV_SG SNDRV_DMA_TYPE_DEV /* no SG-buf support */ 49 #define SNDRV_DMA_TYPE_DEV_WC_SG SNDRV_DMA_TYPE_DEV_WC 50 #endif 51 /* fallback types, don't use those directly */ 52 #ifdef CONFIG_SND_DMA_SGBUF 53 #define SNDRV_DMA_TYPE_DEV_SG_FALLBACK 10 54 #define SNDRV_DMA_TYPE_DEV_WC_SG_FALLBACK 11 55 #endif 48 56 49 57 /* … … 67 75 68 76 /* allocate/release a buffer */ 69 int snd_dma_alloc_pages(int type, struct device *dev, size_t size, 70 struct snd_dma_buffer *dmab); 77 int snd_dma_alloc_dir_pages(int type, struct device *dev, 78 enum dma_data_direction dir, size_t size, 79 struct snd_dma_buffer *dmab); 80 81 static inline int snd_dma_alloc_pages(int type, struct device *dev, 82 size_t size, struct snd_dma_buffer *dmab) 83 { 84 return snd_dma_alloc_dir_pages(type, dev, DMA_BIDIRECTIONAL, size, dmab); 85 } 86 71 87 int snd_dma_alloc_pages_fallback(int type, struct device *dev, size_t size, 72 88 struct snd_dma_buffer *dmab); … … 74 90 int snd_dma_buffer_mmap(struct snd_dma_buffer *dmab, 75 91 struct vm_area_struct *area); 92 93 enum snd_dma_sync_mode { SNDRV_DMA_SYNC_CPU, SNDRV_DMA_SYNC_DEVICE }; 94 #ifdef CONFIG_HAS_DMA 95 void snd_dma_buffer_sync(struct snd_dma_buffer *dmab, 96 enum snd_dma_sync_mode mode); 97 #else 98 static inline void snd_dma_buffer_sync(struct snd_dma_buffer *dmab, 99 enum snd_dma_sync_mode mode) {} 100 #endif 76 101 77 102 dma_addr_t snd_sgbuf_get_addr(struct snd_dma_buffer *dmab, size_t offset); … … 81 106 82 107 /* device-managed memory allocator */ 83 struct snd_dma_buffer *snd_devm_alloc_pages(struct device *dev, int type, 84 size_t size); 108 struct snd_dma_buffer *snd_devm_alloc_dir_pages(struct device *dev, int type, 109 enum dma_data_direction dir, 110 size_t size); 111 112 static inline struct snd_dma_buffer * 113 snd_devm_alloc_pages(struct device *dev, int type, size_t size) 114 { 115 return snd_devm_alloc_dir_pages(dev, type, DMA_BIDIRECTIONAL, size); 116 } 117 118 static inline struct sg_table * 119 snd_dma_noncontig_sg_table(struct snd_dma_buffer *dmab) 120 { 121 return dmab->private_data; 122 } 123 85 124 #ifdef TARGET_OS2 86 125 int snd_free_sgbuf_pages(struct snd_dma_buffer *dmab);
Note:
See TracChangeset
for help on using the changeset viewer.