1Device drivers infrastructure 2============================= 3 4The Basic Device Driver-Model Structures 5---------------------------------------- 6 7.. kernel-doc:: include/linux/device.h 8 :internal: 9 10Device Drivers Base 11------------------- 12 13.. kernel-doc:: drivers/base/init.c 14 :internal: 15 16.. kernel-doc:: drivers/base/driver.c 17 :export: 18 19.. kernel-doc:: drivers/base/core.c 20 :export: 21 22.. kernel-doc:: drivers/base/syscore.c 23 :export: 24 25.. kernel-doc:: drivers/base/class.c 26 :export: 27 28.. kernel-doc:: drivers/base/node.c 29 :internal: 30 31.. kernel-doc:: drivers/base/firmware_class.c 32 :export: 33 34.. kernel-doc:: drivers/base/transport_class.c 35 :export: 36 37.. kernel-doc:: drivers/base/dd.c 38 :export: 39 40.. kernel-doc:: include/linux/platform_device.h 41 :internal: 42 43.. kernel-doc:: drivers/base/platform.c 44 :export: 45 46.. kernel-doc:: drivers/base/bus.c 47 :export: 48 49Buffer Sharing and Synchronization 50---------------------------------- 51 52The dma-buf subsystem provides the framework for sharing buffers for 53hardware (DMA) access across multiple device drivers and subsystems, and 54for synchronizing asynchronous hardware access. 55 56This is used, for example, by drm "prime" multi-GPU support, but is of 57course not limited to GPU use cases. 58 59The three main components of this are: (1) dma-buf, representing a 60sg_table and exposed to userspace as a file descriptor to allow passing 61between devices, (2) fence, which provides a mechanism to signal when 62one device as finished access, and (3) reservation, which manages the 63shared or exclusive fence(s) associated with the buffer. 64 65dma-buf 66~~~~~~~ 67 68.. kernel-doc:: drivers/dma-buf/dma-buf.c 69 :export: 70 71.. kernel-doc:: include/linux/dma-buf.h 72 :internal: 73 74reservation 75~~~~~~~~~~~ 76 77.. kernel-doc:: drivers/dma-buf/reservation.c 78 :doc: Reservation Object Overview 79 80.. kernel-doc:: drivers/dma-buf/reservation.c 81 :export: 82 83.. kernel-doc:: include/linux/reservation.h 84 :internal: 85 86fence 87~~~~~ 88 89.. kernel-doc:: drivers/dma-buf/fence.c 90 :export: 91 92.. kernel-doc:: include/linux/fence.h 93 :internal: 94 95.. kernel-doc:: drivers/dma-buf/seqno-fence.c 96 :export: 97 98.. kernel-doc:: include/linux/seqno-fence.h 99 :internal: 100 101.. kernel-doc:: drivers/dma-buf/fence-array.c 102 :export: 103 104.. kernel-doc:: include/linux/fence-array.h 105 :internal: 106 107.. kernel-doc:: drivers/dma-buf/reservation.c 108 :export: 109 110.. kernel-doc:: include/linux/reservation.h 111 :internal: 112 113.. kernel-doc:: drivers/dma-buf/sync_file.c 114 :export: 115 116.. kernel-doc:: include/linux/sync_file.h 117 :internal: 118 119Device Drivers DMA Management 120----------------------------- 121 122.. kernel-doc:: drivers/base/dma-coherent.c 123 :export: 124 125.. kernel-doc:: drivers/base/dma-mapping.c 126 :export: 127 128Device Drivers Power Management 129------------------------------- 130 131.. kernel-doc:: drivers/base/power/main.c 132 :export: 133 134Device Drivers ACPI Support 135--------------------------- 136 137.. kernel-doc:: drivers/acpi/scan.c 138 :export: 139 140.. kernel-doc:: drivers/acpi/scan.c 141 :internal: 142 143Device drivers PnP support 144-------------------------- 145 146.. kernel-doc:: drivers/pnp/core.c 147 :internal: 148 149.. kernel-doc:: drivers/pnp/card.c 150 :export: 151 152.. kernel-doc:: drivers/pnp/driver.c 153 :internal: 154 155.. kernel-doc:: drivers/pnp/manager.c 156 :export: 157 158.. kernel-doc:: drivers/pnp/support.c 159 :export: 160 161Userspace IO devices 162-------------------- 163 164.. kernel-doc:: drivers/uio/uio.c 165 :export: 166 167.. kernel-doc:: include/linux/uio_driver.h 168 :internal: 169 170