@@ -91,46 +91,6 @@ static int __free_from_pool(void *start, size_t size)
91
91
return 1 ;
92
92
}
93
93
94
- static void * __dma_alloc_coherent (struct device * dev , size_t size ,
95
- dma_addr_t * dma_handle , gfp_t flags ,
96
- unsigned long attrs )
97
- {
98
- if (IS_ENABLED (CONFIG_ZONE_DMA32 ) &&
99
- dev -> coherent_dma_mask <= DMA_BIT_MASK (32 ))
100
- flags |= GFP_DMA32 ;
101
- if (dev_get_cma_area (dev ) && gfpflags_allow_blocking (flags )) {
102
- struct page * page ;
103
- void * addr ;
104
-
105
- page = dma_alloc_from_contiguous (dev , size >> PAGE_SHIFT ,
106
- get_order (size ), flags );
107
- if (!page )
108
- return NULL ;
109
-
110
- * dma_handle = phys_to_dma (dev , page_to_phys (page ));
111
- addr = page_address (page );
112
- memset (addr , 0 , size );
113
- return addr ;
114
- } else {
115
- return swiotlb_alloc_coherent (dev , size , dma_handle , flags );
116
- }
117
- }
118
-
119
- static void __dma_free_coherent (struct device * dev , size_t size ,
120
- void * vaddr , dma_addr_t dma_handle ,
121
- unsigned long attrs )
122
- {
123
- bool freed ;
124
- phys_addr_t paddr = dma_to_phys (dev , dma_handle );
125
-
126
-
127
- freed = dma_release_from_contiguous (dev ,
128
- phys_to_page (paddr ),
129
- size >> PAGE_SHIFT );
130
- if (!freed )
131
- swiotlb_free_coherent (dev , size , vaddr , dma_handle );
132
- }
133
-
134
94
static void * __dma_alloc (struct device * dev , size_t size ,
135
95
dma_addr_t * dma_handle , gfp_t flags ,
136
96
unsigned long attrs )
@@ -152,7 +112,7 @@ static void *__dma_alloc(struct device *dev, size_t size,
152
112
return addr ;
153
113
}
154
114
155
- ptr = __dma_alloc_coherent (dev , size , dma_handle , flags , attrs );
115
+ ptr = swiotlb_alloc (dev , size , dma_handle , flags , attrs );
156
116
if (!ptr )
157
117
goto no_mem ;
158
118
@@ -173,7 +133,7 @@ static void *__dma_alloc(struct device *dev, size_t size,
173
133
return coherent_ptr ;
174
134
175
135
no_map :
176
- __dma_free_coherent (dev , size , ptr , * dma_handle , attrs );
136
+ swiotlb_free (dev , size , ptr , * dma_handle , attrs );
177
137
no_mem :
178
138
return NULL ;
179
139
}
@@ -191,7 +151,7 @@ static void __dma_free(struct device *dev, size_t size,
191
151
return ;
192
152
vunmap (vaddr );
193
153
}
194
- __dma_free_coherent (dev , size , swiotlb_addr , dma_handle , attrs );
154
+ swiotlb_free (dev , size , swiotlb_addr , dma_handle , attrs );
195
155
}
196
156
197
157
static dma_addr_t __swiotlb_map_page (struct device * dev , struct page * page ,
0 commit comments