infrastructure.rst 3.3 KB

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