hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# SPDX-License-Identifier: GPL-2.0-only
menu "DMABUF options"
 
config DMABUF_CACHE
   bool "DMABUF cache attachment"
   default ARCH_ROCKCHIP
   depends on NO_GKI
   help
     This option support to store attachments in a list and destroy them by
     set to a callback list in the dtor of dma-buf.
 
config RK_DMABUF_DEBUG
   bool "Rockchip DMABUF debug option"
   depends on NO_GKI
   select RK_DMABUF_PROCFS
   help
     This option support to debug all the dmabuf on db_list, allows to set
     a name for dmabuf. If not sure, say N
 
config RK_DMABUF_DEBUG_ADVANCED
   bool "Rockchip DMABUF debug advanced option"
   depends on RK_DMABUF_DEBUG
   help
     This option support to debug all the dmabuf on db_list, allows to attach
     and map a dmabuf who has no attachment. If not sure, say N
 
config DMABUF_PARTIAL
   bool "Support for partial cache maintenance"
   default y
   help
     In order to improve performance, allow dma-buf clients to
     apply cache maintenance to only a subset of a dma-buf.
 
     Kernel clients will be able to use the dma_buf_begin_cpu_access_partial
     and dma_buf_end_cpu_access_partial functions to only apply cache
     maintenance to a range within the dma-buf.
 
config SYNC_FILE
   bool "Explicit Synchronization Framework"
   default n
   select DMA_SHARED_BUFFER
   help
     The Sync File Framework adds explicit synchronization via
     userspace. It enables send/receive 'struct dma_fence' objects to/from
     userspace via Sync File fds for synchronization between drivers via
     userspace components. It has been ported from Android.
 
     The first and main user for this is graphics in which a fence is
     associated with a buffer. When a job is submitted to the GPU a fence
     is attached to the buffer and is transferred via userspace, using Sync
     Files fds, to the DRM driver for example. More details at
     Documentation/driver-api/sync_file.rst.
 
config SW_SYNC
   tristate "Sync File Validation Framework"
   default n
   depends on SYNC_FILE
   help
     A sync object driver that uses a 32bit counter to coordinate
     synchronization.  Useful when there is no hardware primitive backing
     the synchronization.
 
     WARNING: improper use of this can result in deadlocking kernel
     drivers from userspace. Intended for test and debug only.
 
config SW_SYNC_DEBUG
   bool "SW Sync Debug"
   depends on DEBUG_FS && SW_SYNC && NO_GKI
   default SW_SYNC
   help
     To get current fence point and timeline status.
 
config UDMABUF
   bool "userspace dmabuf misc driver"
   default n
   depends on DMA_SHARED_BUFFER
   depends on MEMFD_CREATE || COMPILE_TEST
   help
     A driver to let userspace turn memfd regions into dma-bufs.
     Qemu can use this to create host dmabufs for guest framebuffers.
 
config DMABUF_MOVE_NOTIFY
   bool "Move notify between drivers (EXPERIMENTAL)"
   default n
   depends on DMA_SHARED_BUFFER
   help
     Don't pin buffers if the dynamic DMA-buf interface is available on
     both the exporter as well as the importer. This fixes a security
     problem where userspace is able to pin unrestricted amounts of memory
     through DMA-buf.
     This is marked experimental because we don't yet have a consistent
     execution context and memory management between drivers.
 
config DMABUF_SELFTESTS
   tristate "Selftests for the dma-buf interfaces"
   default n
   depends on DMA_SHARED_BUFFER
 
menuconfig DMABUF_HEAPS
   bool "DMA-BUF Userland Memory Heaps"
   select DMA_SHARED_BUFFER
   help
     Choose this option to enable the DMA-BUF userland memory heaps.
     This options creates per heap chardevs in /dev/dma_heap/ which
     allows userspace to allocate dma-bufs that can be shared
     between drivers.
 
menuconfig DMABUF_SYSFS_STATS
   bool "DMA-BUF sysfs statistics"
   depends on DMA_SHARED_BUFFER
   help
      Choose this option to enable DMA-BUF sysfs statistics
      in location /sys/kernel/dmabuf/buffers.
 
      /sys/kernel/dmabuf/buffers/<inode_number> will contain
      statistics for the DMA-BUF with the unique inode number
      <inode_number>.
 
source "drivers/dma-buf/heaps/Kconfig"
source "drivers/dma-buf/rk_heaps/Kconfig"
 
endmenu