~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/kernel/dma/Kconfig

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /kernel/dma/Kconfig (Version linux-6.12-rc7) and /kernel/dma/Kconfig (Version linux-4.18.20)


  1 # SPDX-License-Identifier: GPL-2.0-only        << 
  2                                                << 
  3 config NO_DMA                                  << 
  4         bool                                   << 
  5                                                     1 
  6 config HAS_DMA                                      2 config HAS_DMA
  7         bool                                        3         bool
  8         depends on !NO_DMA                          4         depends on !NO_DMA
  9         default y                                   5         default y
 10                                                     6 
 11 config DMA_OPS_HELPERS                         << 
 12         bool                                   << 
 13                                                << 
 14 #                                              << 
 15 # IOMMU drivers that can bypass the IOMMU code << 
 16 # mapping fast path should select this option  << 
 17 # flag in struct device where applicable       << 
 18 #                                              << 
 19 config DMA_OPS_BYPASS                          << 
 20         bool                                   << 
 21                                                << 
 22 # Lets platform IOMMU driver choose between by << 
 23 config ARCH_HAS_DMA_MAP_DIRECT                 << 
 24         bool                                   << 
 25                                                << 
 26 config NEED_SG_DMA_FLAGS                       << 
 27         bool                                   << 
 28                                                << 
 29 config NEED_SG_DMA_LENGTH                           7 config NEED_SG_DMA_LENGTH
 30         bool                                        8         bool
 31                                                     9 
 32 config NEED_DMA_MAP_STATE                          10 config NEED_DMA_MAP_STATE
 33         bool                                       11         bool
 34                                                    12 
 35 config ARCH_DMA_ADDR_T_64BIT                       13 config ARCH_DMA_ADDR_T_64BIT
 36         def_bool 64BIT || PHYS_ADDR_T_64BIT        14         def_bool 64BIT || PHYS_ADDR_T_64BIT
 37                                                    15 
 38 config ARCH_HAS_DMA_SET_MASK                   !!  16 config HAVE_GENERIC_DMA_COHERENT
 39         bool                                   << 
 40                                                << 
 41 #                                              << 
 42 # Select this option if the architecture needs << 
 43 # DMA_ATTR_WRITE_COMBINE.  Normally the "uncac << 
 44 # people think of when saying write combine, s << 
 45 # need to enable this.                         << 
 46 #                                              << 
 47 config ARCH_HAS_DMA_WRITE_COMBINE              << 
 48         bool                                   << 
 49                                                << 
 50 #                                              << 
 51 # Select if the architectures provides the arc << 
 52 #                                              << 
 53 config ARCH_HAS_DMA_MARK_CLEAN                 << 
 54         bool                                   << 
 55                                                << 
 56 config DMA_DECLARE_COHERENT                    << 
 57         bool                                   << 
 58                                                << 
 59 config ARCH_HAS_SETUP_DMA_OPS                  << 
 60         bool                                   << 
 61                                                << 
 62 config ARCH_HAS_TEARDOWN_DMA_OPS               << 
 63         bool                                       17         bool
 64                                                    18 
 65 config ARCH_HAS_SYNC_DMA_FOR_DEVICE                19 config ARCH_HAS_SYNC_DMA_FOR_DEVICE
 66         bool                                       20         bool
 67                                                    21 
 68 config ARCH_HAS_SYNC_DMA_FOR_CPU                   22 config ARCH_HAS_SYNC_DMA_FOR_CPU
 69         bool                                       23         bool
 70         select NEED_DMA_MAP_STATE                  24         select NEED_DMA_MAP_STATE
 71                                                    25 
 72 config ARCH_HAS_SYNC_DMA_FOR_CPU_ALL           !!  26 config DMA_DIRECT_OPS
 73         bool                                   << 
 74                                                << 
 75 config ARCH_HAS_DMA_PREP_COHERENT              << 
 76         bool                                       27         bool
                                                   >>  28         depends on HAS_DMA
 77                                                    29 
 78 config ARCH_HAS_FORCE_DMA_UNENCRYPTED          !!  30 config DMA_NONCOHERENT_OPS
 79         bool                                       31         bool
                                                   >>  32         depends on HAS_DMA
                                                   >>  33         select DMA_DIRECT_OPS
 80                                                    34 
 81 #                                              << 
 82 # Select this option if the architecture assum << 
 83 # by default.                                  << 
 84 #                                              << 
 85 config ARCH_DMA_DEFAULT_COHERENT               << 
 86         bool                                   << 
 87                                                << 
 88 config SWIOTLB                                 << 
 89         bool                                   << 
 90         select NEED_DMA_MAP_STATE              << 
 91                                                << 
 92 config SWIOTLB_DYNAMIC                         << 
 93         bool "Dynamic allocation of DMA bounce << 
 94         default n                              << 
 95         depends on SWIOTLB                     << 
 96         help                                   << 
 97           This enables dynamic resizing of the << 
 98           starts with one memory pool at boot  << 
 99           pools as needed. To reduce run-time  << 
100           may have to specify a smaller size o << 
101           "swiotlb=" on the kernel command lin << 
102                                                << 
103           If unsure, say N.                    << 
104                                                << 
105 config DMA_BOUNCE_UNALIGNED_KMALLOC            << 
106         bool                                   << 
107         depends on SWIOTLB                     << 
108                                                << 
109 config DMA_NEED_SYNC                           << 
110         def_bool ARCH_HAS_SYNC_DMA_FOR_DEVICE  << 
111                  ARCH_HAS_SYNC_DMA_FOR_CPU_ALL << 
112                  ARCH_HAS_DMA_OPS || SWIOTLB   << 
113                                                << 
114 config DMA_RESTRICTED_POOL                     << 
115         bool "DMA Restricted Pool"             << 
116         depends on OF && OF_RESERVED_MEM && SW << 
117         help                                   << 
118           This enables support for restricted  << 
119           DMA memory protection on systems wit << 
120           capabilities, such as those lacking  << 
121                                                << 
122           For more information see             << 
123           <Documentation/devicetree/bindings/r << 
124           and <kernel/dma/swiotlb.c>.          << 
125           If unsure, say "n".                  << 
126                                                << 
127 #                                              << 
128 # Should be selected if we can mmap non-cohere << 
129 # The only thing that is really required is a  << 
130 # in the pagetables                            << 
131 #                                              << 
132 config DMA_NONCOHERENT_MMAP                        35 config DMA_NONCOHERENT_MMAP
133         default y if !MMU                      << 
134         bool                                       36         bool
                                                   >>  37         depends on DMA_NONCOHERENT_OPS
135                                                    38 
136 config DMA_COHERENT_POOL                       !!  39 config DMA_NONCOHERENT_CACHE_SYNC
137         select GENERIC_ALLOCATOR               << 
138         bool                                       40         bool
                                                   >>  41         depends on DMA_NONCOHERENT_OPS
139                                                    42 
140 config DMA_GLOBAL_POOL                         !!  43 config DMA_VIRT_OPS
141         select DMA_DECLARE_COHERENT            << 
142         depends on !ARCH_HAS_DMA_SET_UNCACHED  << 
143         depends on !DMA_DIRECT_REMAP           << 
144         bool                                       44         bool
                                                   >>  45         depends on HAS_DMA
145                                                    46 
146 config DMA_DIRECT_REMAP                        !!  47 config SWIOTLB
147         bool                                   << 
148         select DMA_COHERENT_POOL               << 
149         select DMA_NONCOHERENT_MMAP            << 
150                                                << 
151 #                                              << 
152 # Fallback to arch code for DMA allocations.   << 
153 #                                              << 
154 config ARCH_HAS_DMA_ALLOC                      << 
155         depends on !ARCH_HAS_DMA_SET_UNCACHED  << 
156         depends on !DMA_DIRECT_REMAP           << 
157         depends on !DMA_GLOBAL_POOL            << 
158         bool                                       48         bool
159                                                !!  49         select DMA_DIRECT_OPS
160 config DMA_CMA                                 << 
161         bool "DMA Contiguous Memory Allocator" << 
162         depends on HAVE_DMA_CONTIGUOUS && CMA  << 
163         help                                   << 
164           This enables the Contiguous Memory A << 
165           to allocate big physically-contiguou << 
166           hardware components that do not supp << 
167                                                << 
168           You can disable CMA by specifying "c << 
169           line.                                << 
170                                                << 
171           For more information see <kernel/dma << 
172           If unsure, say "n".                  << 
173                                                << 
174 if  DMA_CMA                                    << 
175                                                << 
176 config DMA_NUMA_CMA                            << 
177         bool "Enable separate DMA Contiguous M << 
178         depends on NUMA                        << 
179         help                                   << 
180           Enable this option to get numa CMA a << 
181           can get local memory by DMA coherent << 
182                                                << 
183           You can set the size of pernuma CMA  << 
184           or set the node id and its size of C << 
185           <node>:size[,<node>:size]" on the ke << 
186                                                << 
187 comment "Default contiguous memory area size:" << 
188                                                << 
189 config CMA_SIZE_MBYTES                         << 
190         int "Size in Mega Bytes"               << 
191         depends on !CMA_SIZE_SEL_PERCENTAGE    << 
192         default 0 if X86                       << 
193         default 16                             << 
194         help                                   << 
195           Defines the size (in MiB) of the def << 
196           Memory Allocator.  If the size of 0  << 
197           default, but it can be enabled by pa << 
198                                                << 
199                                                << 
200 config CMA_SIZE_PERCENTAGE                     << 
201         int "Percentage of total memory"       << 
202         depends on !CMA_SIZE_SEL_MBYTES        << 
203         default 0 if X86                       << 
204         default 10                             << 
205         help                                   << 
206           Defines the size of the default memo << 
207           Allocator as a percentage of the tot << 
208           If 0 percent is selected, CMA is dis << 
209           enabled by passing cma=size[MG] to t << 
210                                                << 
211 choice                                         << 
212         prompt "Selected region size"          << 
213         default CMA_SIZE_SEL_MBYTES            << 
214                                                << 
215 config CMA_SIZE_SEL_MBYTES                     << 
216         bool "Use mega bytes value only"       << 
217                                                << 
218 config CMA_SIZE_SEL_PERCENTAGE                 << 
219         bool "Use percentage value only"       << 
220                                                << 
221 config CMA_SIZE_SEL_MIN                        << 
222         bool "Use lower value (minimum)"       << 
223                                                << 
224 config CMA_SIZE_SEL_MAX                        << 
225         bool "Use higher value (maximum)"      << 
226                                                << 
227 endchoice                                      << 
228                                                << 
229 config CMA_ALIGNMENT                           << 
230         int "Maximum PAGE_SIZE order of alignm << 
231         range 2 12                             << 
232         default 8                              << 
233         help                                   << 
234           DMA mapping framework by default ali << 
235           PAGE_SIZE order which is greater tha << 
236           size. This works well for buffers up << 
237           for larger buffers it just a memory  << 
238           specify the maximum PAGE_SIZE order  << 
239           buffers will be aligned only to this << 
240           expressed as a power of two multipli << 
241                                                << 
242           For example, if your system defaults << 
243           of 8 means that the buffers will be  << 
244                                                << 
245           If unsure, leave the default value " << 
246                                                << 
247 endif                                          << 
248                                                << 
249 config DMA_API_DEBUG                           << 
250         bool "Enable debugging of DMA-API usag << 
251         select NEED_DMA_MAP_STATE                  50         select NEED_DMA_MAP_STATE
252         help                                   << 
253           Enable this option to debug the use  << 
254           With this option you will be able to << 
255           drivers like double-freeing of DMA m << 
256           were never allocated.                << 
257                                                << 
258           This option causes a performance deg << 
259           debug device drivers and dma interac << 
260                                                << 
261           If unsure, say N.                    << 
262                                                << 
263 config DMA_API_DEBUG_SG                        << 
264         bool "Debug DMA scatter-gather usage"  << 
265         default y                              << 
266         depends on DMA_API_DEBUG               << 
267         help                                   << 
268           Perform extra checking that callers  << 
269           appropriate segment length/boundary  << 
270           preparing DMA scatterlists.          << 
271                                                << 
272           This is particularly likely to have  << 
273           dma_map_sg() API is used for general << 
274           preparing literal scatter-gather des << 
275           unexpected behaviour from DMA API im << 
276           is technically out-of-spec.          << 
277                                                << 
278           If unsure, say N.                    << 
279                                                << 
280 config DMA_MAP_BENCHMARK                       << 
281         bool "Enable benchmarking of streaming << 
282         depends on DEBUG_FS                    << 
283         help                                   << 
284           Provides /sys/kernel/debug/dma_map_b << 
285           performance of dma_(un)map_page.     << 
286                                                << 
287           See tools/testing/selftests/dma/dma_ << 
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php