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 ` 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 `) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +-------------------------------------------- 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 `) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +----------------------------------------------- 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 `) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +----------------------------------------------------- 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 `) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +----------------------------------------------------------- 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 ` 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