aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/gpu
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/gpu')
-rw-r--r--Documentation/gpu/drm-internals.rst127
-rw-r--r--Documentation/gpu/drm-uapi.rst5
-rw-r--r--Documentation/gpu/i915.rst81
-rw-r--r--Documentation/gpu/introduction.rst3
4 files changed, 110 insertions, 106 deletions
diff --git a/Documentation/gpu/drm-internals.rst b/Documentation/gpu/drm-internals.rst
index 8b8257891396..ee01a4fbd657 100644
--- a/Documentation/gpu/drm-internals.rst
+++ b/Documentation/gpu/drm-internals.rst
@@ -1,3 +1,4 @@
+=============
DRM Internals
=============
@@ -18,7 +19,7 @@ management, command submission & fencing, suspend/resume support, and
DMA services.
Driver Initialization
----------------------
+=====================
At the core of every DRM driver is a :c:type:`struct drm_driver
<drm_driver>` structure. Drivers typically statically initialize
@@ -36,7 +37,7 @@ then describe individual operations in details as they get used in later
sections.
Driver Information
-~~~~~~~~~~~~~~~~~~
+------------------
Driver Features
^^^^^^^^^^^^^^^
@@ -131,7 +132,7 @@ kernel log at initialization time and passes it to userspace through the
DRM_IOCTL_VERSION ioctl.
Device Instance and Driver Handling
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-----------------------------------
.. kernel-doc:: drivers/gpu/drm/drm_drv.c
:doc: driver instance overview
@@ -140,7 +141,7 @@ Device Instance and Driver Handling
:export:
Driver Load
-~~~~~~~~~~~
+-----------
IRQ Registration
^^^^^^^^^^^^^^^^
@@ -221,7 +222,7 @@ other BARs, so leaving it mapped could cause undesired behaviour like
hangs or memory corruption.
Bus-specific Device Registration and PCI Support
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+------------------------------------------------
A number of functions are provided to help with device registration. The
functions deal with PCI and platform devices respectively and are only
@@ -236,7 +237,7 @@ drivers.
:export:
Memory management
------------------
+=================
Modern Linux systems require large amount of graphics memory to store
frame buffers, textures, vertices and other graphics-related data. Given
@@ -262,7 +263,7 @@ TTM, but has no video RAM management capabilities and is thus limited to
UMA devices.
The Translation Table Manager (TTM)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-----------------------------------
TTM design background and information belongs here.
@@ -313,7 +314,7 @@ object, ttm_global_item_ref() is used to create an initial reference
count for the TTM, which will call your initialization function.
The Graphics Execution Manager (GEM)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+------------------------------------
The GEM design approach has resulted in a memory manager that doesn't
provide full coverage of all (or even all common) use cases in its
@@ -576,7 +577,7 @@ available to the client. Such resource management should be abstracted
from the client in libdrm.
GEM Function Reference
-~~~~~~~~~~~~~~~~~~~~~~
+----------------------
.. kernel-doc:: drivers/gpu/drm/drm_gem.c
:export:
@@ -585,7 +586,7 @@ GEM Function Reference
:internal:
VMA Offset Manager
-~~~~~~~~~~~~~~~~~~
+------------------
.. kernel-doc:: drivers/gpu/drm/drm_vma_manager.c
:doc: vma offset manager
@@ -597,7 +598,7 @@ VMA Offset Manager
:internal:
PRIME Buffer Sharing
-~~~~~~~~~~~~~~~~~~~~
+--------------------
PRIME is the cross device buffer sharing framework in drm, originally
created for the OPTIMUS range of multi-gpu platforms. To userspace PRIME
@@ -648,13 +649,13 @@ PRIME Helper Functions
:doc: PRIME Helpers
PRIME Function References
-~~~~~~~~~~~~~~~~~~~~~~~~~
+-------------------------
.. kernel-doc:: drivers/gpu/drm/drm_prime.c
:export:
DRM MM Range Allocator
-~~~~~~~~~~~~~~~~~~~~~~
+----------------------
Overview
^^^^^^^^
@@ -669,7 +670,7 @@ LRU Scan/Eviction Support
:doc: lru scan roaster
DRM MM Range Allocator Function References
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+------------------------------------------
.. kernel-doc:: drivers/gpu/drm/drm_mm.c
:export:
@@ -678,7 +679,7 @@ DRM MM Range Allocator Function References
:internal:
CMA Helper Functions Reference
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+------------------------------
.. kernel-doc:: drivers/gpu/drm/drm_gem_cma_helper.c
:doc: cma helpers
@@ -690,7 +691,7 @@ CMA Helper Functions Reference
:internal:
Mode Setting
-------------
+============
Drivers must initialize the mode setting core by calling
:c:func:`drm_mode_config_init()` on the DRM device. The function
@@ -706,7 +707,7 @@ be setup by initializing the following fields.
Mode setting functions.
Display Modes Function Reference
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+--------------------------------
.. kernel-doc:: include/drm/drm_modes.h
:internal:
@@ -715,7 +716,7 @@ Display Modes Function Reference
:export:
Atomic Mode Setting Function Reference
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+--------------------------------------
.. kernel-doc:: drivers/gpu/drm/drm_atomic.c
:export:
@@ -724,7 +725,7 @@ Atomic Mode Setting Function Reference
:internal:
Frame Buffer Abstraction
-~~~~~~~~~~~~~~~~~~~~~~~~
+------------------------
Frame buffers are abstract memory objects that provide a source of
pixels to scanout to a CRTC. Applications explicitly request the
@@ -752,7 +753,7 @@ drivers can manually clean up a framebuffer at module unload time with
:c:func:`drm_framebuffer_unregister_private()`.
DRM Format Handling
-~~~~~~~~~~~~~~~~~~~
+-------------------
.. kernel-doc:: include/drm/drm_fourcc.h
:internal:
@@ -761,7 +762,7 @@ DRM Format Handling
:export:
Dumb Buffer Objects
-~~~~~~~~~~~~~~~~~~~
+-------------------
The KMS API doesn't standardize backing storage object creation and
leaves it to driver-specific ioctls. Furthermore actually creating a
@@ -805,7 +806,7 @@ attempted on some ARM embedded platforms. Such drivers really must have
a hardware-specific ioctl to allocate suitable buffer objects.
Output Polling
-~~~~~~~~~~~~~~
+--------------
void (\*output_poll_changed)(struct drm_device \*dev);
This operation notifies the driver that the status of one or more
@@ -814,14 +815,14 @@ connectors has changed. Drivers that use the fb helper can just call the
operation.
KMS Initialization and Cleanup
-------------------------------
+==============================
A KMS device is abstracted and exposed as a set of planes, CRTCs,
encoders and connectors. KMS drivers must thus create and initialize all
those objects at load time after initializing mode setting.
CRTCs (:c:type:`struct drm_crtc <drm_crtc>`)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+--------------------------------------------
A CRTC is an abstraction representing a part of the chip that contains a
pointer to a scanout buffer. Therefore, the number of CRTCs available
@@ -842,7 +843,7 @@ structure, and registered with a call to :c:func:`drm_crtc_init()`
with a pointer to CRTC functions.
Planes (:c:type:`struct drm_plane <drm_plane>`)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-----------------------------------------------
A plane represents an image source that can be blended with or overlayed
on top of a CRTC during the scanout process. Planes are associated with
@@ -887,7 +888,7 @@ primary planes may make use of the helper functions described in ? to
create and register a primary plane with standard capabilities.
Encoders (:c:type:`struct drm_encoder <drm_encoder>`)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-----------------------------------------------------
An encoder takes pixel data from a CRTC and converts it to a format
suitable for any attached connectors. On some devices, it may be
@@ -927,7 +928,7 @@ compatibility layer when implemented) are responsible for attaching the
encoders they want to use to a CRTC.
Connectors (:c:type:`struct drm_connector <drm_connector>`)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-----------------------------------------------------------
A connector is the final destination for pixel data on a device, and
usually connects directly to an external display device like a monitor
@@ -1087,7 +1088,7 @@ can't detect the connection status, or failed connection status probes,
should return connector_status_unknown.
Cleanup
-~~~~~~~
+-------
The DRM core manages its objects' lifetime. When an object is not needed
anymore the core calls its destroy function, which must clean up and
@@ -1106,7 +1107,7 @@ Connectors state change detection must be cleanup up with a call to
:c:func:`drm_kms_helper_poll_fini()`.
Output discovery and initialization example
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-------------------------------------------
::
@@ -1154,19 +1155,19 @@ the process is complete, the new connector is registered with sysfs to
make its properties available to applications.
KMS API Functions
-~~~~~~~~~~~~~~~~~
+-----------------
.. kernel-doc:: drivers/gpu/drm/drm_crtc.c
:export:
KMS Data Structures
-~~~~~~~~~~~~~~~~~~~
+-------------------
.. kernel-doc:: include/drm/drm_crtc.h
:internal:
KMS Locking
-~~~~~~~~~~~
+-----------
.. kernel-doc:: drivers/gpu/drm/drm_modeset_lock.c
:doc: kms locking
@@ -1178,7 +1179,7 @@ KMS Locking
:export:
Mode Setting Helper Functions
------------------------------
+=============================
The plane, CRTC, encoder and connector functions provided by the drivers
implement the DRM API. They're called by the DRM core and ioctl handlers
@@ -1214,7 +1215,7 @@ operations. To use it, a driver must provide bottom functions for all of
the three KMS entities.
Atomic Modeset Helper Functions Reference
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-----------------------------------------
Overview
^^^^^^^^
@@ -1241,7 +1242,7 @@ Atomic State Reset and Initialization
:export:
Modeset Helper Reference for Common Vtables
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-------------------------------------------
.. kernel-doc:: include/drm/drm_modeset_helper_vtables.h
:internal:
@@ -1250,7 +1251,7 @@ Modeset Helper Reference for Common Vtables
:doc: overview
Legacy CRTC/Modeset Helper Functions Reference
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+----------------------------------------------
.. kernel-doc:: drivers/gpu/drm/drm_crtc_helper.c
:export:
@@ -1259,7 +1260,7 @@ Legacy CRTC/Modeset Helper Functions Reference
:doc: overview
Output Probing Helper Functions Reference
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-----------------------------------------
.. kernel-doc:: drivers/gpu/drm/drm_probe_helper.c
:doc: output probing helper overview
@@ -1268,7 +1269,7 @@ Output Probing Helper Functions Reference
:export:
fbdev Helper Functions Reference
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+--------------------------------
.. kernel-doc:: drivers/gpu/drm/drm_fb_helper.c
:doc: fbdev helpers
@@ -1280,7 +1281,7 @@ fbdev Helper Functions Reference
:internal:
Framebuffer CMA Helper Functions Reference
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+------------------------------------------
.. kernel-doc:: drivers/gpu/drm/drm_fb_cma_helper.c
:doc: framebuffer cma helper functions
@@ -1289,7 +1290,7 @@ Framebuffer CMA Helper Functions Reference
:export:
Display Port Helper Functions Reference
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+---------------------------------------
.. kernel-doc:: drivers/gpu/drm/drm_dp_helper.c
:doc: dp helpers
@@ -1301,7 +1302,7 @@ Display Port Helper Functions Reference
:export:
Display Port Dual Mode Adaptor Helper Functions Reference
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+---------------------------------------------------------
.. kernel-doc:: drivers/gpu/drm/drm_dp_dual_mode_helper.c
:doc: dp dual mode helpers
@@ -1313,7 +1314,7 @@ Display Port Dual Mode Adaptor Helper Functions Reference
:export:
Display Port MST Helper Functions Reference
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-------------------------------------------
.. kernel-doc:: drivers/gpu/drm/drm_dp_mst_topology.c
:doc: dp mst helper
@@ -1325,7 +1326,7 @@ Display Port MST Helper Functions Reference
:export:
MIPI DSI Helper Functions Reference
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-----------------------------------
.. kernel-doc:: drivers/gpu/drm/drm_mipi_dsi.c
:doc: dsi helpers
@@ -1337,13 +1338,13 @@ MIPI DSI Helper Functions Reference
:export:
EDID Helper Functions Reference
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-------------------------------
.. kernel-doc:: drivers/gpu/drm/drm_edid.c
:export:
Rectangle Utilities Reference
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-----------------------------
.. kernel-doc:: include/drm/drm_rect.h
:doc: rect utils
@@ -1355,7 +1356,7 @@ Rectangle Utilities Reference
:export:
Flip-work Helper Reference
-~~~~~~~~~~~~~~~~~~~~~~~~~~
+--------------------------
.. kernel-doc:: include/drm/drm_flip_work.h
:doc: flip utils
@@ -1367,7 +1368,7 @@ Flip-work Helper Reference
:export:
HDMI Infoframes Helper Reference
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+--------------------------------
Strictly speaking this is not a DRM helper library but generally useable
by any driver interfacing with HDMI outputs like v4l or alsa drivers.
@@ -1381,7 +1382,7 @@ libraries and hence is also included here.
:export:
Plane Helper Reference
-~~~~~~~~~~~~~~~~~~~~~~
+----------------------
.. kernel-doc:: drivers/gpu/drm/drm_plane_helper.c
:export:
@@ -1390,13 +1391,13 @@ Plane Helper Reference
:doc: overview
Tile group
-~~~~~~~~~~
+----------
.. kernel-doc:: drivers/gpu/drm/drm_crtc.c
:doc: Tile group
Bridges
-~~~~~~~
+-------
Overview
^^^^^^^^
@@ -1414,7 +1415,7 @@ Default bridge callback sequence
:export:
Panel Helper Reference
-~~~~~~~~~~~~~~~~~~~~~~
+----------------------
.. kernel-doc:: include/drm/drm_panel.h
:internal:
@@ -1426,7 +1427,7 @@ Panel Helper Reference
:doc: drm panel
Simple KMS Helper Reference
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
+---------------------------
.. kernel-doc:: include/drm/drm_simple_kms_helper.h
:internal:
@@ -1438,7 +1439,7 @@ Simple KMS Helper Reference
:doc: overview
KMS Properties
---------------
+==============
Drivers may need to expose additional parameters to applications than
those described in the previous sections. KMS supports attaching
@@ -1526,7 +1527,7 @@ pointer to the target object, a pointer to the previously created
property and an initial instance value.
Existing KMS Properties
-~~~~~~~~~~~~~~~~~~~~~~~
+-----------------------
The following table gives description of drm properties exposed by
various modules/drivers.
@@ -1790,7 +1791,7 @@ various modules/drivers.
+-------------------------------+----------------------+--------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Vertical Blanking
------------------
+=================
Vertical blanking plays a major role in graphics rendering. To achieve
tear-free display, users must synchronize page flips and/or rendering to
@@ -1848,7 +1849,7 @@ with a call to :c:func:`drm_vblank_cleanup()` in the driver unload
operation handler.
Vertical Blanking and Interrupt Handling Functions Reference
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+------------------------------------------------------------
.. kernel-doc:: drivers/gpu/drm/drm_irq.c
:export:
@@ -1857,10 +1858,10 @@ Vertical Blanking and Interrupt Handling Functions Reference
:functions: drm_crtc_vblank_waitqueue
Open/Close, File Operations and IOCTLs
---------------------------------------
+======================================
Open and Close
-~~~~~~~~~~~~~~
+--------------
int (\*firstopen) (struct drm_device \*); void (\*lastclose) (struct
drm_device \*); int (\*open) (struct drm_device \*, struct drm_file
@@ -1907,7 +1908,7 @@ state so that the vga console or an independent fbdev driver could take
over.
File Operations
-~~~~~~~~~~~~~~~
+---------------
.. kernel-doc:: drivers/gpu/drm/drm_fops.c
:doc: file operations
@@ -1916,7 +1917,7 @@ File Operations
:export:
IOCTLs
-~~~~~~
+------
struct drm_ioctl_desc \*ioctls; int num_ioctls;
Driver-specific ioctls descriptors table.
@@ -1965,7 +1966,7 @@ how the ioctl is allowed to be called.
:export:
Legacy Support Code
--------------------
+===================
The section very briefly covers some of the old legacy support code
which is only used by old DRM drivers which have done a so-called
@@ -1975,7 +1976,7 @@ command submission code. Do not use any of this in new and modern
drivers.
Legacy Suspend/Resume
-~~~~~~~~~~~~~~~~~~~~~
+---------------------
The DRM core provides some suspend/resume code, but drivers wanting full
suspend/resume support should provide save() and restore() functions.
@@ -1992,7 +1993,7 @@ through the :c:type:`struct device_driver <device_driver>`
dev_pm_ops) and set these methods to NULL.
Legacy DMA Services
-~~~~~~~~~~~~~~~~~~~
+-------------------
This should cover how DMA mapping etc. is supported by the core. These
functions are deprecated and should not be used.
diff --git a/Documentation/gpu/drm-uapi.rst b/Documentation/gpu/drm-uapi.rst
index 3b667b1992e5..6da1e77e55fa 100644
--- a/Documentation/gpu/drm-uapi.rst
+++ b/Documentation/gpu/drm-uapi.rst
@@ -1,3 +1,4 @@
+===================
Userland interfaces
===================
@@ -14,7 +15,7 @@ Cover generic ioctls and sysfs layout here. We only need high-level
info, since man pages should cover the rest.
Render nodes
-------------
+============
DRM core provides multiple character-devices for user-space to use.
Depending on which device is opened, user-space can perform a different
@@ -67,7 +68,7 @@ visible to user-space and accessible beyond open-file boundaries, they
cannot support render nodes.
VBlank event handling
----------------------
+=====================
The DRM core exposes two vertical blank related ioctls:
diff --git a/Documentation/gpu/i915.rst b/Documentation/gpu/i915.rst
index 9c6732123c3c..2fe5952e90f1 100644
--- a/Documentation/gpu/i915.rst
+++ b/Documentation/gpu/i915.rst
@@ -1,5 +1,6 @@
-drm/i915 Intel GFX Driver
-=========================
+===========================
+ drm/i915 Intel GFX Driver
+===========================
The drm/i915 driver supports all (with the exception of some very early
models) integrated GFX chipsets with both Intel display and rendering
@@ -7,13 +8,13 @@ blocks. This excludes a set of SoC platforms with an SGX rendering unit,
those have basic support through the gma500 drm driver.
Core Driver Infrastructure
---------------------------
+==========================
This section covers core driver infrastructure used by both the display
and the GEM parts of the driver.
Runtime Power Management
-~~~~~~~~~~~~~~~~~~~~~~~~
+------------------------
.. kernel-doc:: drivers/gpu/drm/i915/intel_runtime_pm.c
:doc: runtime pm
@@ -25,7 +26,7 @@ Runtime Power Management
:internal:
Interrupt Handling
-~~~~~~~~~~~~~~~~~~
+------------------
.. kernel-doc:: drivers/gpu/drm/i915/i915_irq.c
:doc: interrupt handling
@@ -40,7 +41,7 @@ Interrupt Handling
:functions: intel_runtime_pm_enable_interrupts
Intel GVT-g Guest Support(vGPU)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-------------------------------
.. kernel-doc:: drivers/gpu/drm/i915/i915_vgpu.c
:doc: Intel GVT-g guest support
@@ -49,14 +50,14 @@ Intel GVT-g Guest Support(vGPU)
:internal:
Display Hardware Handling
--------------------------
+=========================
This section covers everything related to the display hardware including
the mode setting infrastructure, plane, sprite and cursor handling and
display, output probing and related topics.
Mode Setting Infrastructure
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
+---------------------------
The i915 driver is thus far the only DRM driver which doesn't use the
common DRM helper code to implement mode setting sequences. Thus it has
@@ -64,7 +65,7 @@ its own tailor-made infrastructure for executing a display configuration
change.
Frontbuffer Tracking
-~~~~~~~~~~~~~~~~~~~~
+--------------------
.. kernel-doc:: drivers/gpu/drm/i915/intel_frontbuffer.c
:doc: frontbuffer tracking
@@ -76,7 +77,7 @@ Frontbuffer Tracking
:functions: i915_gem_track_fb
Display FIFO Underrun Reporting
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-------------------------------
.. kernel-doc:: drivers/gpu/drm/i915/intel_fifo_underrun.c
:doc: fifo underrun handling
@@ -85,7 +86,7 @@ Display FIFO Underrun Reporting
:internal:
Plane Configuration
-~~~~~~~~~~~~~~~~~~~
+-------------------
This section covers plane configuration and composition with the primary
plane, sprites, cursors and overlays. This includes the infrastructure
@@ -94,7 +95,7 @@ topics like watermark setup and computation, framebuffer compression and
panel self refresh.
Atomic Plane Helpers
-~~~~~~~~~~~~~~~~~~~~
+--------------------
.. kernel-doc:: drivers/gpu/drm/i915/intel_atomic_plane.c
:doc: atomic plane helpers
@@ -103,7 +104,7 @@ Atomic Plane Helpers
:internal:
Output Probing
-~~~~~~~~~~~~~~
+--------------
This section covers output probing and related infrastructure like the
hotplug interrupt storm detection and mitigation code. Note that the
@@ -111,7 +112,7 @@ i915 driver still uses most of the common DRM helper code for output
probing, so those sections fully apply.
Hotplug
-~~~~~~~
+-------
.. kernel-doc:: drivers/gpu/drm/i915/intel_hotplug.c
:doc: Hotplug
@@ -120,7 +121,7 @@ Hotplug
:internal:
High Definition Audio
-~~~~~~~~~~~~~~~~~~~~~
+---------------------
.. kernel-doc:: drivers/gpu/drm/i915/intel_audio.c
:doc: High Definition Audio over HDMI and Display Port
@@ -132,7 +133,7 @@ High Definition Audio
:internal:
Panel Self Refresh PSR (PSR/SRD)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+--------------------------------
.. kernel-doc:: drivers/gpu/drm/i915/intel_psr.c
:doc: Panel Self Refresh (PSR/SRD)
@@ -141,7 +142,7 @@ Panel Self Refresh PSR (PSR/SRD)
:internal:
Frame Buffer Compression (FBC)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+------------------------------
.. kernel-doc:: drivers/gpu/drm/i915/intel_fbc.c
:doc: Frame Buffer Compression (FBC)
@@ -150,7 +151,7 @@ Frame Buffer Compression (FBC)
:internal:
Display Refresh Rate Switching (DRRS)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-------------------------------------
.. kernel-doc:: drivers/gpu/drm/i915/intel_dp.c
:doc: Display Refresh Rate Switching (DRRS)
@@ -174,13 +175,13 @@ Display Refresh Rate Switching (DRRS)
:functions: intel_dp_drrs_init
DPIO
-~~~~
+----
.. kernel-doc:: drivers/gpu/drm/i915/i915_reg.h
:doc: DPIO
CSR firmware support for DMC
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+----------------------------
.. kernel-doc:: drivers/gpu/drm/i915/intel_csr.c
:doc: csr support for dmc
@@ -189,7 +190,7 @@ CSR firmware support for DMC
:internal:
Video BIOS Table (VBT)
-~~~~~~~~~~~~~~~~~~~~~~
+----------------------
.. kernel-doc:: drivers/gpu/drm/i915/intel_bios.c
:doc: Video BIOS Table (VBT)
@@ -201,13 +202,13 @@ Video BIOS Table (VBT)
:internal:
Memory Management and Command Submission
-----------------------------------------
+========================================
This sections covers all things related to the GEM implementation in the
i915 driver.
Batchbuffer Parsing
-~~~~~~~~~~~~~~~~~~~
+-------------------
.. kernel-doc:: drivers/gpu/drm/i915/i915_cmd_parser.c
:doc: batch buffer command parser
@@ -216,7 +217,7 @@ Batchbuffer Parsing
:internal:
Batchbuffer Pools
-~~~~~~~~~~~~~~~~~
+-----------------
.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_batch_pool.c
:doc: batch pool
@@ -225,7 +226,7 @@ Batchbuffer Pools
:internal:
Logical Rings, Logical Ring Contexts and Execlists
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+--------------------------------------------------
.. kernel-doc:: drivers/gpu/drm/i915/intel_lrc.c
:doc: Logical Rings, Logical Ring Contexts and Execlists
@@ -234,7 +235,7 @@ Logical Rings, Logical Ring Contexts and Execlists
:internal:
Global GTT views
-~~~~~~~~~~~~~~~~
+----------------
.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_gtt.c
:doc: Global GTT views
@@ -243,25 +244,25 @@ Global GTT views
:internal:
GTT Fences and Swizzling
-~~~~~~~~~~~~~~~~~~~~~~~~
+------------------------
.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence.c
:internal:
Global GTT Fence Handling
-^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~
.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence.c
:doc: fence register handling
Hardware Tiling and Swizzling Details
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_fence.c
:doc: tiling swizzling details
Object Tiling IOCTLs
-~~~~~~~~~~~~~~~~~~~~
+--------------------
.. kernel-doc:: drivers/gpu/drm/i915/i915_gem_tiling.c
:internal:
@@ -270,7 +271,7 @@ Object Tiling IOCTLs
:doc: buffer object tiling
Buffer Object Eviction
-~~~~~~~~~~~~~~~~~~~~~~
+----------------------
This section documents the interface functions for evicting buffer
objects to make space available in the virtual gpu address spaces. Note
@@ -282,7 +283,7 @@ unified memory architecture) available.
:internal:
Buffer Object Memory Shrinking
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+------------------------------
This section documents the interface function for shrinking memory usage
of buffer object caches. Shrinking is used to make main memory
@@ -293,10 +294,10 @@ objects, which has the goal to make space in gpu virtual address spaces.
:internal:
GuC
----
+===
GuC-specific firmware loader
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+----------------------------
.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_loader.c
:doc: GuC-specific firmware loader
@@ -305,7 +306,7 @@ GuC-specific firmware loader
:internal:
GuC-based command submission
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+----------------------------
.. kernel-doc:: drivers/gpu/drm/i915/i915_guc_submission.c
:doc: GuC-based command submission
@@ -314,31 +315,31 @@ GuC-based command submission
:internal:
GuC Firmware Layout
-~~~~~~~~~~~~~~~~~~~
+-------------------
.. kernel-doc:: drivers/gpu/drm/i915/intel_guc_fwif.h
:doc: GuC Firmware Layout
Tracing
--------
+=======
This sections covers all things related to the tracepoints implemented
in the i915 driver.
i915_ppgtt_create and i915_ppgtt_release
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+----------------------------------------
.. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h
:doc: i915_ppgtt_create and i915_ppgtt_release tracepoints
i915_context_create and i915_context_free
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+-----------------------------------------
.. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h
:doc: i915_context_create and i915_context_free tracepoints
switch_mm
-~~~~~~~~~~
+---------
.. kernel-doc:: drivers/gpu/drm/i915/i915_trace.h
:doc: switch_mm tracepoint
diff --git a/Documentation/gpu/introduction.rst b/Documentation/gpu/introduction.rst
index cf35c4fe992f..1903595b5310 100644
--- a/Documentation/gpu/introduction.rst
+++ b/Documentation/gpu/introduction.rst
@@ -1,3 +1,4 @@
+============
Introduction
============
@@ -16,7 +17,7 @@ found in current kernels.
[Insert diagram of typical DRM stack here]
Style Guidelines
-----------------
+================
For consistency this documentation uses American English. Abbreviations
are written as all-uppercase, for example: DRM, KMS, IOCTL, CRTC, and so