1 Device drivers infrastructure
2 =============================
4 The Basic Device Driver-Model Structures
5 ----------------------------------------
7 .. kernel-doc:: include/linux/device.h
13 .. kernel-doc:: drivers/base/init.c
16 .. kernel-doc:: drivers/base/driver.c
19 .. kernel-doc:: drivers/base/core.c
22 .. kernel-doc:: drivers/base/syscore.c
25 .. kernel-doc:: drivers/base/class.c
28 .. kernel-doc:: drivers/base/node.c
31 .. kernel-doc:: drivers/base/firmware_class.c
34 .. kernel-doc:: drivers/base/transport_class.c
37 .. kernel-doc:: drivers/base/dd.c
40 .. kernel-doc:: include/linux/platform_device.h
43 .. kernel-doc:: drivers/base/platform.c
46 .. kernel-doc:: drivers/base/bus.c
49 Buffer Sharing and Synchronization
50 ----------------------------------
52 The dma-buf subsystem provides the framework for sharing buffers for
53 hardware (DMA) access across multiple device drivers and subsystems, and
54 for synchronizing asynchronous hardware access.
56 This is used, for example, by drm "prime" multi-GPU support, but is of
57 course not limited to GPU use cases.
59 The three main components of this are: (1) dma-buf, representing a
60 sg_table and exposed to userspace as a file descriptor to allow passing
61 between devices, (2) fence, which provides a mechanism to signal when
62 one device as finished access, and (3) reservation, which manages the
63 shared or exclusive fence(s) associated with the buffer.
68 .. kernel-doc:: drivers/dma-buf/dma-buf.c
71 .. kernel-doc:: include/linux/dma-buf.h
77 .. kernel-doc:: drivers/dma-buf/reservation.c
78 :doc: Reservation Object Overview
80 .. kernel-doc:: drivers/dma-buf/reservation.c
83 .. kernel-doc:: include/linux/reservation.h
89 .. kernel-doc:: drivers/dma-buf/fence.c
92 .. kernel-doc:: include/linux/fence.h
95 .. kernel-doc:: drivers/dma-buf/seqno-fence.c
98 .. kernel-doc:: include/linux/seqno-fence.h
101 .. kernel-doc:: drivers/dma-buf/fence-array.c
104 .. kernel-doc:: include/linux/fence-array.h
107 .. kernel-doc:: drivers/dma-buf/reservation.c
110 .. kernel-doc:: include/linux/reservation.h
113 .. kernel-doc:: drivers/dma-buf/sync_file.c
116 .. kernel-doc:: include/linux/sync_file.h
119 Device Drivers DMA Management
120 -----------------------------
122 .. kernel-doc:: drivers/base/dma-coherent.c
125 .. kernel-doc:: drivers/base/dma-mapping.c
128 Device Drivers Power Management
129 -------------------------------
131 .. kernel-doc:: drivers/base/power/main.c
134 Device Drivers ACPI Support
135 ---------------------------
137 .. kernel-doc:: drivers/acpi/scan.c
140 .. kernel-doc:: drivers/acpi/scan.c
143 Device drivers PnP support
144 --------------------------
146 .. kernel-doc:: drivers/pnp/core.c
149 .. kernel-doc:: drivers/pnp/card.c
152 .. kernel-doc:: drivers/pnp/driver.c
155 .. kernel-doc:: drivers/pnp/manager.c
158 .. kernel-doc:: drivers/pnp/support.c
164 .. kernel-doc:: drivers/uio/uio.c
167 .. kernel-doc:: include/linux/uio_driver.h