__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.216.21: ~ $
<!DOCTYPE html>

<html lang="en" data-content_root="../">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />

    <title>GPU Driver Developer’s Guide &#8212; The Linux Kernel  documentation</title>
    <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
    <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=3918102e" />
    <script src="../_static/documentation_options.js?v=5929fcd5"></script>
    <script src="../_static/doctools.js?v=9bcbadda"></script>
    <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="Introduction" href="introduction.html" />
    <link rel="prev" title="Userspace-driven timers" href="../sound/utimers.html" />
   
  <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
  

  
  

  </head><body>
  <div class="document">
    
      <div class="sphinxsidebar" role="navigation" aria-label="Main">
        <div class="sphinxsidebarwrapper">
            <p class="logo"><a href="../index.html">
              <img class="logo" src="../_static/logo.svg" alt="Logo of The Linux Kernel"/>
            </a></p>
<h1 class="logo"><a href="../index.html">The Linux Kernel</a></h1>



<p class="blurb">6.18.50</p>







<search id="searchbox" style="display: none" role="search">
  <h3 id="searchlabel">Quick search</h3>
    <div class="searchformwrapper">
    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>
    </div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>


<p>
<h3 class="kernel-toc-contents">Contents</h3>
<input type="checkbox" class="kernel-toc-toggle" id = "kernel-toc-toggle" checked>
<label class="kernel-toc-title" for="kernel-toc-toggle"></label>

<div class="kerneltoc" id="kerneltoc">
<ul>
<li class="toctree-l1"><a class="reference internal" href="../process/development-process.html">Development process</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/submitting-patches.html">Submitting patches</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/code-of-conduct.html">Code of conduct</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintainer/index.html">Maintainer handbook</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/index.html">All development-process docs</a></li>
</ul>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../core-api/index.html">Core API</a></li>
<li class="toctree-l1"><a class="reference internal" href="../driver-api/index.html">Driver APIs</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../subsystem-apis.html">Subsystems</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#core-subsystems">Core subsystems</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="../subsystem-apis.html#human-interfaces">Human interfaces</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="../input/index.html">Input Documentation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../hid/index.html">Human Interface Devices (HID)</a></li>
<li class="toctree-l3"><a class="reference internal" href="../sound/index.html">Sound Subsystem Documentation</a></li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">GPU Driver Developer’s Guide</a></li>
<li class="toctree-l3"><a class="reference internal" href="../fb/index.html">Frame Buffer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../leds/index.html">LEDs</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#networking-interfaces">Networking interfaces</a></li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#storage-interfaces">Storage interfaces</a></li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#other-subsystems">Other subsystems</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../locking/index.html">Locking</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../process/license-rules.html">Licensing rules</a></li>
<li class="toctree-l1"><a class="reference internal" href="../doc-guide/index.html">Writing documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../dev-tools/index.html">Development tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../dev-tools/testing-overview.html">Testing guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../kernel-hacking/index.html">Hacking guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../trace/index.html">Tracing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fault-injection/index.html">Fault injection</a></li>
<li class="toctree-l1"><a class="reference internal" href="../livepatch/index.html">Livepatching</a></li>
<li class="toctree-l1"><a class="reference internal" href="../rust/index.html">Rust</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../admin-guide/index.html">Administration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../kbuild/index.html">Build system</a></li>
<li class="toctree-l1"><a class="reference internal" href="../admin-guide/reporting-issues.html">Reporting issues</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tools/index.html">Userspace tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../userspace-api/index.html">Userspace API</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../firmware-guide/index.html">Firmware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../devicetree/index.html">Firmware and Devicetree</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../arch/index.html">CPU architectures</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../staging/index.html">Unsorted documentation</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../translations/index.html">Translations</a></li>
</ul>

</div>

<script type="text/javascript"> <!--
  var sbar = document.getElementsByClassName("sphinxsidebar")[0];
  let currents = document.getElementsByClassName("current")
  if (currents.length) {
    sbar.scrollTop = currents[currents.length - 1].offsetTop;
  }
  --> </script>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../_sources/gpu/index.rst.txt"
            rel="nofollow">Show Source</a></li>
    </ul>
   </div>
        </div>
      </div>
      <div class="documentwrapper">
        <div class="bodywrapper">
          

          <div class="body" role="main">
            
  



<section id="gpu-driver-developer-s-guide">
<h1>GPU Driver Developer’s Guide<a class="headerlink" href="#gpu-driver-developer-s-guide" title="Link to this heading">¶</a></h1>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction</a><ul>
<li class="toctree-l2"><a class="reference internal" href="introduction.html#style-guidelines">Style Guidelines</a><ul>
<li class="toctree-l3"><a class="reference internal" href="introduction.html#documentation-requirements-for-kapi">Documentation Requirements for kAPI</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="introduction.html#getting-started">Getting Started</a></li>
<li class="toctree-l2"><a class="reference internal" href="introduction.html#contribution-process">Contribution Process</a><ul>
<li class="toctree-l3"><a class="reference internal" href="introduction.html#feature-merge-deadlines">Feature Merge Deadlines</a></li>
<li class="toctree-l3"><a class="reference internal" href="introduction.html#code-of-conduct">Code of Conduct</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="introduction.html#simple-drm-drivers-to-use-as-examples">Simple DRM drivers to use as examples</a></li>
<li class="toctree-l2"><a class="reference internal" href="introduction.html#external-references">External References</a><ul>
<li class="toctree-l3"><a class="reference internal" href="introduction.html#conference-talks">Conference talks</a></li>
<li class="toctree-l3"><a class="reference internal" href="introduction.html#slides-and-articles">Slides and articles</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="drm-internals.html">DRM Internals</a><ul>
<li class="toctree-l2"><a class="reference internal" href="drm-internals.html#driver-initialization">Driver Initialization</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-internals.html#driver-information">Driver Information</a><ul>
<li class="toctree-l4"><a class="reference internal" href="drm-internals.html#major-minor-and-patchlevel">Major, Minor and Patchlevel</a></li>
<li class="toctree-l4"><a class="reference internal" href="drm-internals.html#name-and-description">Name and Description</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="drm-internals.html#module-initialization">Module Initialization</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-internals.html#device-instance-and-driver-handling">Device Instance and Driver Handling</a><ul>
<li class="toctree-l4"><a class="reference internal" href="drm-internals.html#display-driver-example">Display driver example</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="drm-internals.html#driver-load">Driver Load</a><ul>
<li class="toctree-l4"><a class="reference internal" href="drm-internals.html#component-helper-usage">Component Helper Usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="drm-internals.html#memory-manager-initialization">Memory Manager Initialization</a></li>
<li class="toctree-l4"><a class="reference internal" href="drm-internals.html#miscellaneous-device-configuration">Miscellaneous Device Configuration</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="drm-internals.html#managed-resources">Managed Resources</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-internals.html#open-close-file-operations-and-ioctls">Open/Close, File Operations and IOCTLs</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-internals.html#file-operations">File Operations</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-internals.html#misc-utilities">Misc Utilities</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-internals.html#printer">Printer</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-internals.html#utilities">Utilities</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-internals.html#unit-testing">Unit testing</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-internals.html#kunit">KUnit</a><ul>
<li class="toctree-l4"><a class="reference internal" href="drm-internals.html#how-to-run-the-tests">How to run the tests?</a></li>
<li class="toctree-l4"><a class="reference internal" href="drm-internals.html#kunit-coverage-rules">KUnit Coverage Rules</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-internals.html#legacy-support-code">Legacy Support Code</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-internals.html#legacy-suspend-resume">Legacy Suspend/Resume</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-internals.html#legacy-dma-services">Legacy DMA Services</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="drm-mm.html">DRM Memory Management</a><ul>
<li class="toctree-l2"><a class="reference internal" href="drm-mm.html#the-translation-table-manager-ttm">The Translation Table Manager (TTM)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#ttm-device-object-reference">TTM device object reference</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#ttm-resource-placement-reference">TTM resource placement reference</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#ttm-resource-object-reference">TTM resource object reference</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#ttm-tt-object-reference">TTM TT object reference</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#ttm-page-pool-reference">TTM page pool reference</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-mm.html#the-graphics-execution-manager-gem">The Graphics Execution Manager (GEM)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#gem-initialization">GEM Initialization</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#gem-objects-creation">GEM Objects Creation</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#gem-objects-lifetime">GEM Objects Lifetime</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#gem-objects-naming">GEM Objects Naming</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#gem-objects-mapping">GEM Objects Mapping</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#memory-coherency">Memory Coherency</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#command-execution">Command Execution</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#gem-function-reference">GEM Function Reference</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#gem-dma-helper-functions-reference">GEM DMA Helper Functions Reference</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#gem-shmem-helper-function-reference">GEM SHMEM Helper Function Reference</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#gem-vram-helper-functions-reference">GEM VRAM Helper Functions Reference</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#gem-ttm-helper-functions-reference">GEM TTM Helper Functions Reference</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-mm.html#vma-offset-manager">VMA Offset Manager</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-mm.html#prime-buffer-sharing">PRIME Buffer Sharing</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#overview-and-lifetime-rules">Overview and Lifetime Rules</a><ul>
<li class="toctree-l4"><a class="reference internal" href="drm-mm.html#reference-counting-for-gem-drivers">Reference Counting for GEM Drivers</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#prime-helper-functions">PRIME Helper Functions</a><ul>
<li class="toctree-l4"><a class="reference internal" href="drm-mm.html#exporting-buffers">Exporting buffers</a></li>
<li class="toctree-l4"><a class="reference internal" href="drm-mm.html#importing-buffers">Importing buffers</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#prime-function-references">PRIME Function References</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-mm.html#drm-mm-range-allocator">DRM MM Range Allocator</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#lru-scan-eviction-support">LRU Scan/Eviction Support</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#drm-mm-range-allocator-function-references">DRM MM Range Allocator Function References</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-mm.html#drm-gpuvm">DRM GPUVM</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#id3">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#split-and-merge">Split and Merge</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#locking">Locking</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#examples">Examples</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#drm-gpuvm-function-references">DRM GPUVM Function References</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-mm.html#drm-buddy-allocator">DRM Buddy Allocator</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#buddy-allocator-function-references-gpu-buddy">Buddy Allocator Function References (GPU buddy)</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#drm-buddy-specific-logging-function-references">DRM Buddy Specific Logging Function References</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-mm.html#drm-cache-handling-and-fast-wc-memcpy">DRM Cache Handling and Fast WC memcpy()</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-mm.html#drm-sync-objects">DRM Sync Objects</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#host-side-wait-on-syncobjs">Host-side wait on syncobjs</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#import-export-of-syncobjs">Import/export of syncobjs</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#import-export-of-timeline-points-in-timeline-syncobjs">Import/export of timeline points in timeline syncobjs</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-mm.html#drm-execution-context">DRM Execution context</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-mm.html#gpu-scheduler">GPU Scheduler</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#id5">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#flow-control">Flow Control</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-mm.html#scheduler-function-references">Scheduler Function References</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="drm-kms.html">Kernel Mode Setting (KMS)</a><ul>
<li class="toctree-l2"><a class="reference internal" href="drm-kms.html#overview">Overview</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms.html#kms-core-structures-and-functions">KMS Core Structures and Functions</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms.html#modeset-base-object-abstraction">Modeset Base Object Abstraction</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms.html#atomic-mode-setting">Atomic Mode Setting</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#handling-driver-private-state">Handling Driver Private State</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#atomic-mode-setting-function-reference">Atomic Mode Setting Function Reference</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#atomic-mode-setting-ioctl-and-uapi-functions">Atomic Mode Setting IOCTL and UAPI Functions</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms.html#crtc-abstraction">CRTC Abstraction</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#crtc-functions-reference">CRTC Functions Reference</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#color-management-functions-reference">Color Management Functions Reference</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms.html#frame-buffer-abstraction">Frame Buffer Abstraction</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#frame-buffer-functions-reference">Frame Buffer Functions Reference</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms.html#drm-format-handling">DRM Format Handling</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#format-modifiers">Format Modifiers</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#open-source-user-waiver">Open Source User Waiver</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#format-functions-reference">Format Functions Reference</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms.html#dumb-buffer-objects">Dumb Buffer Objects</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms.html#plane-abstraction">Plane Abstraction</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#plane-functions-reference">Plane Functions Reference</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#plane-composition-functions-reference">Plane Composition Functions Reference</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#plane-damage-tracking-functions-reference">Plane Damage Tracking Functions Reference</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#plane-panic-feature">Plane Panic Feature</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#plane-panic-functions-reference">Plane Panic Functions Reference</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms.html#display-modes-function-reference">Display Modes Function Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms.html#connector-abstraction">Connector Abstraction</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#connector-functions-reference">Connector Functions Reference</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#writeback-connectors">Writeback Connectors</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms.html#encoder-abstraction">Encoder Abstraction</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#encoder-functions-reference">Encoder Functions Reference</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms.html#kms-locking">KMS Locking</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms.html#kms-properties">KMS Properties</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#requirements">Requirements</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#property-types-and-blob-property-support">Property Types and Blob Property Support</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#standard-connector-properties">Standard Connector Properties</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#hdmi-specific-connector-properties">HDMI Specific Connector Properties</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#analog-tv-specific-connector-properties">Analog TV Specific Connector Properties</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#standard-crtc-properties">Standard CRTC Properties</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#standard-plane-properties">Standard Plane Properties</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#plane-composition-properties">Plane Composition Properties</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#damage-tracking-properties">Damage Tracking Properties</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#color-management-properties">Color Management Properties</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#tile-group-property">Tile Group Property</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#explicit-fencing-properties">Explicit Fencing Properties</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#variable-refresh-properties">Variable Refresh Properties</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#cursor-hotspot-properties">Cursor Hotspot Properties</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#existing-kms-properties">Existing KMS Properties</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms.html#vertical-blanking">Vertical Blanking</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#vertical-blanking-and-interrupt-handling-functions-reference">Vertical Blanking and Interrupt Handling Functions Reference</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms.html#vertical-blank-work">Vertical Blank Work</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-kms.html#vertical-blank-work-functions-reference">Vertical Blank Work Functions Reference</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="drm-kms-helpers.html">Mode Setting Helper Functions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#modeset-helper-reference-for-common-vtables">Modeset Helper Reference for Common Vtables</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#atomic-modeset-helper-functions-reference">Atomic Modeset Helper Functions Reference</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-kms-helpers.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms-helpers.html#implementing-asynchronous-atomic-commit">Implementing Asynchronous Atomic Commit</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms-helpers.html#helper-functions-reference">Helper Functions Reference</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms-helpers.html#atomic-state-reset-and-initialization">Atomic State Reset and Initialization</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms-helpers.html#atomic-state-helper-reference">Atomic State Helper Reference</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms-helpers.html#gem-atomic-helper-reference">GEM Atomic Helper Reference</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms-helpers.html#vblank-helper-reference">VBLANK Helper Reference</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#simple-kms-helper-reference">Simple KMS Helper Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#fbdev-helper-functions-reference">fbdev Helper Functions Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#format-helper-functions-reference">format Helper Functions Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#framebuffer-dma-helper-functions-reference">Framebuffer DMA Helper Functions Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#framebuffer-gem-helper-reference">Framebuffer GEM Helper Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#bridges">Bridges</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-kms-helpers.html#id1">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms-helpers.html#display-driver-integration">Display Driver Integration</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms-helpers.html#special-care-with-mipi-dsi-bridges">Special Care with MIPI-DSI bridges</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms-helpers.html#bridge-operations">Bridge Operations</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms-helpers.html#bridge-connector-helper">Bridge Connector Helper</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms-helpers.html#bridge-helper-reference">Bridge Helper Reference</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms-helpers.html#mipi-dsi-bridge-operation">MIPI-DSI bridge operation</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms-helpers.html#bridge-connector-helper-reference">Bridge Connector Helper Reference</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms-helpers.html#panel-bridge-helper-reference">Panel-Bridge Helper Reference</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#panel-helper-reference">Panel Helper Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#panel-self-refresh-helper-reference">Panel Self Refresh Helper Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#hdmi-atomic-state-helpers">HDMI Atomic State Helpers</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-kms-helpers.html#id2">Overview</a><ul>
<li class="toctree-l4"><a class="reference internal" href="drm-kms-helpers.html#infoframes-compliance">Infoframes Compliance</a></li>
<li class="toctree-l4"><a class="reference internal" href="drm-kms-helpers.html#testing">Testing</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms-helpers.html#functions-reference">Functions Reference</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#hdcp-helper-functions-reference">HDCP Helper Functions Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#display-port-helper-functions-reference">Display Port Helper Functions Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#display-port-cec-helper-functions-reference">Display Port CEC Helper Functions Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#display-port-dual-mode-adaptor-helper-functions-reference">Display Port Dual Mode Adaptor Helper Functions Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#display-port-mst-helpers">Display Port MST Helpers</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-kms-helpers.html#id3">Overview</a><ul>
<li class="toctree-l4"><a class="reference internal" href="drm-kms-helpers.html#topology-refcount-overview">Topology refcount overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="drm-kms-helpers.html#malloc-refcount-overview">Malloc refcount overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="drm-kms-helpers.html#refcount-relationships-in-a-topology">Refcount relationships in a topology</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms-helpers.html#id4">Functions Reference</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-kms-helpers.html#topology-lifetime-internals">Topology Lifetime Internals</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#mipi-dbi-helper-functions-reference">MIPI DBI Helper Functions Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#mipi-dsi-helper-functions-reference">MIPI DSI Helper Functions Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#display-stream-compression-helper-functions-reference">Display Stream Compression Helper Functions Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#output-probing-helper-functions-reference">Output Probing Helper Functions Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#edid-helper-functions-reference">EDID Helper Functions Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#scdc-helper-functions-reference">SCDC Helper Functions Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#hdmi-infoframes-helper-reference">HDMI Infoframes Helper Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#rectangle-utilities-reference">Rectangle Utilities Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#flip-work-helper-reference">Flip-work Helper Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#auxiliary-modeset-helpers">Auxiliary Modeset Helpers</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#of-dt-helpers">OF/DT Helpers</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#legacy-plane-helper-reference">Legacy Plane Helper Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#legacy-crtc-modeset-helper-functions-reference">Legacy CRTC/Modeset Helper Functions Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-kms-helpers.html#privacy-screen-class">Privacy-screen class</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="drm-uapi.html">Userland interfaces</a><ul>
<li class="toctree-l2"><a class="reference internal" href="drm-uapi.html#libdrm-device-lookup">libdrm Device Lookup</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-uapi.html#primary-nodes-drm-master-and-authentication">Primary Nodes, DRM Master and Authentication</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-uapi.html#drm-display-resource-leasing">DRM Display Resource Leasing</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-uapi.html#open-source-userspace-requirements">Open-Source Userspace Requirements</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-uapi.html#render-nodes">Render nodes</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-uapi.html#device-hot-unplug">Device Hot-Unplug</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-uapi.html#requirements-for-kms-uapi">Requirements for KMS UAPI</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-uapi.html#requirements-for-render-and-cross-device-uapi">Requirements for Render and Cross-Device UAPI</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-uapi.html#requirements-for-memory-maps">Requirements for Memory Maps</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-uapi.html#device-reset">Device reset</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-uapi.html#kernel-mode-driver">Kernel Mode Driver</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-uapi.html#user-mode-driver">User Mode Driver</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-uapi.html#robustness">Robustness</a><ul>
<li class="toctree-l4"><a class="reference internal" href="drm-uapi.html#opengl">OpenGL</a></li>
<li class="toctree-l4"><a class="reference internal" href="drm-uapi.html#id1">Vulkan</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="drm-uapi.html#reporting-causes-of-resets">Reporting causes of resets</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-uapi.html#device-wedging">Device Wedging</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-uapi.html#driver-prerequisites">Driver prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-uapi.html#recovery">Recovery</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-uapi.html#vendor-specific-recovery">Vendor Specific Recovery</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-uapi.html#task-information">Task information</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-uapi.html#consumer-prerequisites">Consumer prerequisites</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-uapi.html#example-rebind">Example - rebind</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-uapi.html#customization">Customization</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-uapi.html#ioctl-support-on-device-nodes">IOCTL Support on Device Nodes</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-uapi.html#recommended-ioctl-return-values">Recommended IOCTL Return Values</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-uapi.html#testing-and-validation">Testing and validation</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-uapi.html#testing-requirements-for-userspace-api">Testing Requirements for userspace API</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-uapi.html#validating-changes-with-igt">Validating changes with IGT</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-uapi.html#using-vkms-to-test-drm-api">Using VKMS to test DRM API</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-uapi.html#display-crc-support">Display CRC Support</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-uapi.html#debugfs-support">Debugfs Support</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-uapi.html#sysfs-support">Sysfs Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-uapi.html#vblank-event-handling">VBlank event handling</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-uapi.html#userspace-api-structures">Userspace API Structures</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-uapi.html#crtc-index">CRTC index</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-uapi.html#dma-buf-interoperability">dma-buf interoperability</a></li>
<li class="toctree-l2"><a class="reference internal" href="drm-uapi.html#trace-events">Trace events</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-uapi.html#stable-uapi-events">Stable uAPI events</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="drm-usage-stats.html">DRM client usage stats</a><ul>
<li class="toctree-l2"><a class="reference internal" href="drm-usage-stats.html#file-format-specification">File format specification</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-usage-stats.html#key-types">Key types</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-usage-stats.html#data-types">Data types</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-usage-stats.html#mandatory-fully-standardised-keys">Mandatory fully standardised keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-usage-stats.html#optional-fully-standardised-keys">Optional fully standardised keys</a><ul>
<li class="toctree-l4"><a class="reference internal" href="drm-usage-stats.html#identification">Identification</a></li>
<li class="toctree-l4"><a class="reference internal" href="drm-usage-stats.html#utilization">Utilization</a></li>
<li class="toctree-l4"><a class="reference internal" href="drm-usage-stats.html#memory">Memory</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-usage-stats.html#implementation-details">Implementation Details</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-usage-stats.html#driver-specific-implementations">Driver specific implementations</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="driver-uapi.html">DRM Driver uAPI</a><ul>
<li class="toctree-l2"><a class="reference internal" href="driver-uapi.html#drm-i915-uapi">drm/i915 uAPI</a></li>
<li class="toctree-l2"><a class="reference internal" href="driver-uapi.html#drm-nouveau-uapi">drm/nouveau uAPI</a><ul>
<li class="toctree-l3"><a class="reference internal" href="driver-uapi.html#vm-bind-exec-uapi">VM_BIND / EXEC uAPI</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="driver-uapi.html#drm-panthor-uapi">drm/panthor uAPI</a></li>
<li class="toctree-l2"><a class="reference internal" href="driver-uapi.html#drm-xe-uapi">drm/xe uAPI</a></li>
<li class="toctree-l2"><a class="reference internal" href="driver-uapi.html#drm-asahi-uapi">drm/asahi uAPI</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="drm-client.html">Kernel clients</a></li>
<li class="toctree-l1"><a class="reference internal" href="drm-compute.html">Long running workloads and compute</a></li>
<li class="toctree-l1"><a class="reference internal" href="drivers.html">GPU Driver Documentation</a><ul>
<li class="toctree-l2"><a class="reference internal" href="amdgpu/index.html">drm/amdgpu AMDgpu driver</a><ul>
<li class="toctree-l3"><a class="reference internal" href="amdgpu/driver-core.html">Core Driver Infrastructure</a><ul>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/driver-core.html#gpu-hardware-structure">GPU Hardware Structure</a></li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/driver-core.html#gfx-compute-and-sdma-overall-behavior">GFX, Compute, and SDMA Overall Behavior</a></li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/driver-core.html#driver-structure">Driver Structure</a></li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/driver-core.html#memory-domains">Memory Domains</a></li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/driver-core.html#buffer-objects">Buffer Objects</a></li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/driver-core.html#prime-buffer-sharing">PRIME Buffer Sharing</a></li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/driver-core.html#mmu-notifier">MMU Notifier</a></li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/driver-core.html#amdgpu-virtual-memory">AMDGPU Virtual Memory</a></li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/driver-core.html#interrupt-handling">Interrupt Handling</a></li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/driver-core.html#ip-blocks">IP Blocks</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="amdgpu/amd-hardware-list-info.html">AMD Hardware Components Information per Product</a><ul>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/amd-hardware-list-info.html#accelerated-processing-units-apu-info">Accelerated Processing Units (APU) Info</a></li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/amd-hardware-list-info.html#discrete-gpu-info">Discrete GPU Info</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="amdgpu/module-parameters.html">Module Parameters</a></li>
<li class="toctree-l3"><a class="reference internal" href="amdgpu/gc/index.html">drm/amdgpu - Graphics and Compute (GC)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/gc/index.html#graphics-gfx-and-compute-microcontrollers">Graphics (GFX) and Compute Microcontrollers</a><ul>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/gc/mes.html">MicroEngine Scheduler (MES)</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="amdgpu/display/index.html">drm/amd/display - Display Core (DC)</a><ul>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/display/index.html#dc-code-validation">DC Code validation</a></li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/display/index.html#dc-information">DC Information</a><ul>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/display/display-manager.html">AMDgpu Display Manager</a><ul>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/display-manager.html#lifecycle">Lifecycle</a></li>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/display-manager.html#interrupts">Interrupts</a></li>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/display-manager.html#atomic-implementation">Atomic Implementation</a></li>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/display-manager.html#color-management-properties">Color Management Properties</a><ul>
<li class="toctree-l7"><a class="reference internal" href="amdgpu/display/display-manager.html#dc-color-capabilities-between-dcn-generations">DC Color Capabilities between DCN generations</a></li>
</ul>
</li>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/display-manager.html#blend-mode-properties">Blend Mode Properties</a><ul>
<li class="toctree-l7"><a class="reference internal" href="amdgpu/display/display-manager.html#blend-configuration-flow">Blend configuration flow</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/display/dcn-overview.html">Display Core Next (DCN)</a><ul>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/dcn-overview.html#front-end-and-back-end">Front End and Back End</a></li>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/dcn-overview.html#data-flow">Data Flow</a></li>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/dcn-overview.html#amd-hardware-pipeline">AMD Hardware Pipeline</a></li>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/dcn-overview.html#global-sync">Global Sync</a></li>
</ul>
</li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/display/dcn-blocks.html">DCN Blocks</a><ul>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/dcn-blocks.html#dchubbub">DCHUBBUB</a></li>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/dcn-blocks.html#hubp">HUBP</a></li>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/dcn-blocks.html#dpp">DPP</a></li>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/dcn-blocks.html#mpc">MPC</a></li>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/dcn-blocks.html#opp">OPP</a></li>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/dcn-blocks.html#dio">DIO</a></li>
</ul>
</li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/display/programming-model-dcn.html">DC Programming Model</a><ul>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/programming-model-dcn.html#overview">Overview</a></li>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/programming-model-dcn.html#display-driver-architecture-overview">Display Driver Architecture Overview</a><ul>
<li class="toctree-l7"><a class="reference internal" href="amdgpu/display/programming-model-dcn.html#basic-objects">Basic Objects</a></li>
<li class="toctree-l7"><a class="reference internal" href="amdgpu/display/programming-model-dcn.html#basic-operations">Basic Operations</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/display/mpo-overview.html">Multiplane Overlay (MPO)</a><ul>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/mpo-overview.html#plane-restrictions">Plane Restrictions</a></li>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/mpo-overview.html#cursor-restrictions">Cursor Restrictions</a></li>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/mpo-overview.html#use-cases">Use Cases</a><ul>
<li class="toctree-l7"><a class="reference internal" href="amdgpu/display/mpo-overview.html#picture-in-picture-pip-playback-underlay-strategy">Picture-in-Picture (PIP) playback - Underlay strategy</a></li>
<li class="toctree-l7"><a class="reference internal" href="amdgpu/display/mpo-overview.html#multiple-display-mpo">Multiple Display MPO</a><ul>
<li class="toctree-l8"><a class="reference internal" href="amdgpu/display/mpo-overview.html#limitations">Limitations</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/display/dc-debug.html">Display Core Debug tools</a><ul>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/dc-debug.html#narrow-down-display-issues">Narrow down display issues</a><ul>
<li class="toctree-l7"><a class="reference internal" href="amdgpu/display/dc-debug.html#dc-dmesg-important-messages">DC dmesg important messages</a></li>
<li class="toctree-l7"><a class="reference internal" href="amdgpu/display/dc-debug.html#avoid-loading-display-core">Avoid loading display core</a></li>
<li class="toctree-l7"><a class="reference internal" href="amdgpu/display/dc-debug.html#display-flickering">Display flickering</a></li>
<li class="toctree-l7"><a class="reference internal" href="amdgpu/display/dc-debug.html#display-artifacts">Display artifacts</a></li>
</ul>
</li>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/dc-debug.html#disabling-enabling-specific-features">Disabling/Enabling specific features</a></li>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/dc-debug.html#dc-visual-confirmation">DC Visual Confirmation</a><ul>
<li class="toctree-l7"><a class="reference internal" href="amdgpu/display/dc-debug.html#multiple-planes-debug">Multiple Planes Debug</a></li>
<li class="toctree-l7"><a class="reference internal" href="amdgpu/display/dc-debug.html#pipe-split-debug">Pipe Split Debug</a></li>
</ul>
</li>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/dc-debug.html#dtn-debug">DTN Debug</a></li>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/dc-debug.html#collect-firmware-information">Collect Firmware information</a></li>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/dc-debug.html#dmub-firmware-debug">DMUB Firmware Debug</a><ul>
<li class="toctree-l7"><a class="reference internal" href="amdgpu/display/dc-debug.html#trace-groups">Trace Groups</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/display/display-contributing.html">AMDGPU - Display Contributions</a><ul>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/display-contributing.html#gitlab-issues">Gitlab issues</a></li>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/display-contributing.html#igt">IGT</a></li>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/display-contributing.html#compilation">Compilation</a><ul>
<li class="toctree-l7"><a class="reference internal" href="amdgpu/display/display-contributing.html#fix-compilation-warnings">Fix compilation warnings</a></li>
<li class="toctree-l7"><a class="reference internal" href="amdgpu/display/display-contributing.html#fix-compilation-issues-when-using-um-architecture">Fix compilation issues when using um architecture</a></li>
</ul>
</li>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/display-contributing.html#code-refactor">Code Refactor</a><ul>
<li class="toctree-l7"><a class="reference internal" href="amdgpu/display/display-contributing.html#add-prefix-to-dc-functions-to-improve-the-debug-with-ftrace">Add prefix to DC functions to improve the debug with ftrace</a></li>
<li class="toctree-l7"><a class="reference internal" href="amdgpu/display/display-contributing.html#reduce-code-duplication">Reduce code duplication</a></li>
<li class="toctree-l7"><a class="reference internal" href="amdgpu/display/display-contributing.html#make-atomic-commit-check-tail-more-readable">Make atomic_commit_[check|tail] more readable</a></li>
</ul>
</li>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/display-contributing.html#documentation">Documentation</a><ul>
<li class="toctree-l7"><a class="reference internal" href="amdgpu/display/display-contributing.html#expand-kernel-doc">Expand kernel-doc</a></li>
</ul>
</li>
<li class="toctree-l6"><a class="reference internal" href="amdgpu/display/display-contributing.html#beyond-amdgpu">Beyond AMDGPU</a><ul>
<li class="toctree-l7"><a class="reference internal" href="amdgpu/display/display-contributing.html#enable-underlay">Enable underlay</a></li>
<li class="toctree-l7"><a class="reference internal" href="amdgpu/display/display-contributing.html#adaptive-backlight-modulation-abm">Adaptive Backlight Modulation (ABM)</a></li>
<li class="toctree-l7"><a class="reference internal" href="amdgpu/display/display-contributing.html#hdr-color-management-vrr">HDR &amp; Color management &amp; VRR</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/display/dc-glossary.html">DC Glossary</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="amdgpu/userq.html">User Mode Queues</a><ul>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/userq.html#introduction">Introduction</a></li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/userq.html#theory-of-operation">Theory of Operation</a><ul>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/userq.html#special-packets">Special Packets</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/userq.html#memory-management">Memory Management</a></li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/userq.html#interaction-with-kernel-queues">Interaction with Kernel Queues</a></li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/userq.html#queue-resets">Queue Resets</a></li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/userq.html#ioctl-interfaces">IOCTL Interfaces</a><ul>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/userq.html#info">INFO</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/userq.html#userq">USERQ</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/userq.html#userq-signal">USERQ_SIGNAL</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/userq.html#userq-wait">USERQ_WAIT</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/userq.html#kernel-and-user-queues">Kernel and User Queues</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="amdgpu/flashing.html">dGPU firmware flashing</a><ul>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/flashing.html#ifwi">IFWI</a></li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/flashing.html#usb-c-pd-f-w">USB-C PD F/W</a></li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/flashing.html#sysfs-files">sysfs files</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="amdgpu/xgmi.html">AMDGPU XGMI Support</a></li>
<li class="toctree-l3"><a class="reference internal" href="amdgpu/ras.html">AMDGPU RAS Support</a><ul>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/ras.html#ras-debugfs-sysfs-control-and-error-injection-interfaces">RAS debugfs/sysfs Control and Error Injection Interfaces</a></li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/ras.html#ras-reboot-behavior-for-unrecoverable-errors">RAS Reboot Behavior for Unrecoverable Errors</a></li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/ras.html#ras-error-count-sysfs-interface">RAS Error Count sysfs Interface</a></li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/ras.html#ras-eeprom-debugfs-interface">RAS EEPROM debugfs Interface</a></li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/ras.html#ras-vram-bad-pages-sysfs-interface">RAS VRAM Bad Pages sysfs Interface</a></li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/ras.html#sample-code">Sample Code</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="amdgpu/thermal.html">GPU Power/Thermal Controls and Monitoring</a><ul>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/thermal.html#hwmon-interfaces">HWMON Interfaces</a></li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/thermal.html#gpu-sysfs-power-state-interfaces">GPU sysfs Power State Interfaces</a><ul>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/thermal.html#power-dpm-state">power_dpm_state</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/thermal.html#power-dpm-force-performance-level">power_dpm_force_performance_level</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/thermal.html#pp-table">pp_table</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/thermal.html#pp-od-clk-voltage">pp_od_clk_voltage</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/thermal.html#pp-dpm">pp_dpm_*</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/thermal.html#pp-power-profile-mode">pp_power_profile_mode</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/thermal.html#pm-policy">pm_policy</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/thermal.html#busy-percent">*_busy_percent</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/thermal.html#gpu-metrics">gpu_metrics</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/thermal.html#fan-curve">fan_curve</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/thermal.html#acoustic-limit-rpm-threshold">acoustic_limit_rpm_threshold</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/thermal.html#acoustic-target-rpm-threshold">acoustic_target_rpm_threshold</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/thermal.html#fan-target-temperature">fan_target_temperature</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/thermal.html#fan-minimum-pwm">fan_minimum_pwm</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/thermal.html#fan-zero-rpm-enable">fan_zero_rpm_enable</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/thermal.html#fan-zero-rpm-stop-temperature">fan_zero_rpm_stop_temperature</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/thermal.html#gfxoff">GFXOFF</a><ul>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/thermal.html#amdgpu-gfxoff"><code class="docutils literal notranslate"><span class="pre">amdgpu_gfxoff</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/thermal.html#amdgpu-gfxoff-status"><code class="docutils literal notranslate"><span class="pre">amdgpu_gfxoff_status</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/thermal.html#amdgpu-gfxoff-count"><code class="docutils literal notranslate"><span class="pre">amdgpu_gfxoff_count</span></code></a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/thermal.html#amdgpu-gfxoff-residency"><code class="docutils literal notranslate"><span class="pre">amdgpu_gfxoff_residency</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="amdgpu/driver-misc.html">Misc AMDGPU driver information</a><ul>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/driver-misc.html#gpu-product-information">GPU Product Information</a><ul>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/driver-misc.html#product-name">product_name</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/driver-misc.html#product-number">product_number</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/driver-misc.html#serial-number">serial_number</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/driver-misc.html#fru-id">fru_id</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/driver-misc.html#manufacturer">manufacturer</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/driver-misc.html#unique-id">unique_id</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/driver-misc.html#board-info">board_info</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/driver-misc.html#gpu-memory-usage-information">GPU Memory Usage Information</a><ul>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/driver-misc.html#mem-info-vram-total">mem_info_vram_total</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/driver-misc.html#mem-info-vram-used">mem_info_vram_used</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/driver-misc.html#mem-info-vis-vram-total">mem_info_vis_vram_total</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/driver-misc.html#mem-info-vis-vram-used">mem_info_vis_vram_used</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/driver-misc.html#mem-info-gtt-total">mem_info_gtt_total</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/driver-misc.html#mem-info-gtt-used">mem_info_gtt_used</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/driver-misc.html#pcie-accounting-information">PCIe Accounting Information</a><ul>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/driver-misc.html#pcie-bw">pcie_bw</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/driver-misc.html#pcie-replay-count">pcie_replay_count</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/driver-misc.html#gpu-smartshift-information">GPU SmartShift Information</a><ul>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/driver-misc.html#smartshift-apu-power">smartshift_apu_power</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/driver-misc.html#smartshift-dgpu-power">smartshift_dgpu_power</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/driver-misc.html#smartshift-bias">smartshift_bias</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="amdgpu/debugging.html">GPU Debugging</a><ul>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/debugging.html#general-debugging-options">General Debugging Options</a></li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/debugging.html#gpuvm-debugging">GPUVM Debugging</a></li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/debugging.html#decoding-a-gpuvm-page-fault">Decoding a GPUVM Page Fault</a></li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/debugging.html#umr">UMR</a></li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/debugging.html#debugging-backlight-brightness">Debugging backlight brightness</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="amdgpu/debugfs.html">AMDGPU DebugFS</a><ul>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/debugfs.html#debugfs-files">DebugFS Files</a><ul>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/debugfs.html#amdgpu-benchmark">amdgpu_benchmark</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/debugfs.html#amdgpu-test-ib">amdgpu_test_ib</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/debugfs.html#amdgpu-discovery">amdgpu_discovery</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/debugfs.html#amdgpu-vbios">amdgpu_vbios</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/debugfs.html#amdgpu-evict-gtt">amdgpu_evict_gtt</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/debugfs.html#amdgpu-evict-vram">amdgpu_evict_vram</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/debugfs.html#amdgpu-gpu-recover">amdgpu_gpu_recover</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/debugfs.html#amdgpu-ring-name">amdgpu_ring_&lt;name&gt;</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/debugfs.html#amdgpu-mqd-name">amdgpu_mqd_&lt;name&gt;</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/debugfs.html#amdgpu-error-name">amdgpu_error_&lt;name&gt;</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/debugfs.html#amdgpu-pm-info">amdgpu_pm_info</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/debugfs.html#amdgpu-firmware-info">amdgpu_firmware_info</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/debugfs.html#amdgpu-fence-info">amdgpu_fence_info</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/debugfs.html#amdgpu-gem-info">amdgpu_gem_info</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/debugfs.html#amdgpu-vm-info">amdgpu_vm_info</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/debugfs.html#amdgpu-sa-info">amdgpu_sa_info</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/debugfs.html#amdgpu-pool-mm">amdgpu_&lt;pool&gt;_mm</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/debugfs.html#amdgpu-vram">amdgpu_vram</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/debugfs.html#amdgpu-iomem">amdgpu_iomem</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/debugfs.html#amdgpu-regs">amdgpu_regs_*</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/debugfs.html#amdgpu-regs2">amdgpu_regs2</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/debugfs.html#amdgpu-sensors">amdgpu_sensors</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/debugfs.html#amdgpu-gca-config">amdgpu_gca_config</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/debugfs.html#amdgpu-wave">amdgpu_wave</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/debugfs.html#amdgpu-gpr">amdgpu_gpr</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/debugfs.html#amdgpu-gprwave">amdgpu_gprwave</a></li>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/debugfs.html#amdgpu-fw-attestation">amdgpu_fw_attestation</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="amdgpu/process-isolation.html">AMDGPU Process Isolation</a><ul>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/process-isolation.html#process-isolation">Process Isolation</a><ul>
<li class="toctree-l5"><a class="reference internal" href="amdgpu/process-isolation.html#partition-handling">Partition Handling</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="amdgpu/process-isolation.html#cleaner-shader-execution">Cleaner Shader Execution</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="amdgpu/amdgpu-glossary.html">AMDGPU Glossary</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="i915.html">drm/i915 Intel GFX Driver</a><ul>
<li class="toctree-l3"><a class="reference internal" href="i915.html#core-driver-infrastructure">Core Driver Infrastructure</a><ul>
<li class="toctree-l4"><a class="reference internal" href="i915.html#runtime-power-management">Runtime Power Management</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#interrupt-handling">Interrupt Handling</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#intel-gvt-g-guest-support-vgpu">Intel GVT-g Guest Support(vGPU)</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#intel-gvt-g-host-support-vgpu-device-model">Intel GVT-g Host Support(vGPU device model)</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#workarounds">Workarounds</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="i915.html#display-hardware-handling">Display Hardware Handling</a><ul>
<li class="toctree-l4"><a class="reference internal" href="i915.html#mode-setting-infrastructure">Mode Setting Infrastructure</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#frontbuffer-tracking">Frontbuffer Tracking</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#display-fifo-underrun-reporting">Display FIFO Underrun Reporting</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#plane-configuration">Plane Configuration</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#atomic-plane-helpers">Atomic Plane Helpers</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#asynchronous-page-flip">Asynchronous Page Flip</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#output-probing">Output Probing</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#hotplug">Hotplug</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#high-definition-audio">High Definition Audio</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#intel-hdmi-lpe-audio-support">Intel HDMI LPE Audio Support</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#panel-self-refresh-psr-psr-srd">Panel Self Refresh PSR (PSR/SRD)</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#frame-buffer-compression-fbc">Frame Buffer Compression (FBC)</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#display-refresh-rate-switching-drrs">Display Refresh Rate Switching (DRRS)</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#dpio">DPIO</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#dmc-firmware-support">DMC Firmware Support</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#dmc-flip-queue">DMC Flip Queue</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#dmc-wakelock-support">DMC wakelock support</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#video-bios-table-vbt">Video BIOS Table (VBT)</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#display-clocks">Display clocks</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#display-plls">Display PLLs</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#display-state-buffer">Display State Buffer</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="i915.html#gt-programming">GT Programming</a><ul>
<li class="toctree-l4"><a class="reference internal" href="i915.html#multicast-replicated-mcr-registers">Multicast/Replicated (MCR) Registers</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="i915.html#memory-management-and-command-submission">Memory Management and Command Submission</a><ul>
<li class="toctree-l4"><a class="reference internal" href="i915.html#intel-gpu-basics">Intel GPU Basics</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#locking-guidelines">Locking Guidelines</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#gem-bo-management-implementation-details">GEM BO Management Implementation Details</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#buffer-object-eviction">Buffer Object Eviction</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#buffer-object-memory-shrinking">Buffer Object Memory Shrinking</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#batchbuffer-parsing">Batchbuffer Parsing</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#user-batchbuffer-execution">User Batchbuffer Execution</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#scheduling">Scheduling</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#logical-rings-logical-ring-contexts-and-execlists">Logical Rings, Logical Ring Contexts and Execlists</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#global-gtt-views">Global GTT views</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#gtt-fences-and-swizzling">GTT Fences and Swizzling</a><ul>
<li class="toctree-l5"><a class="reference internal" href="i915.html#global-gtt-fence-handling">Global GTT Fence Handling</a></li>
<li class="toctree-l5"><a class="reference internal" href="i915.html#hardware-tiling-and-swizzling-details">Hardware Tiling and Swizzling Details</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#object-tiling-ioctls">Object Tiling IOCTLs</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#protected-objects">Protected Objects</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="i915.html#microcontrollers">Microcontrollers</a><ul>
<li class="toctree-l4"><a class="reference internal" href="i915.html#wopcm">WOPCM</a><ul>
<li class="toctree-l5"><a class="reference internal" href="i915.html#wopcm-layout">WOPCM Layout</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#guc">GuC</a><ul>
<li class="toctree-l5"><a class="reference internal" href="i915.html#guc-firmware-layout">GuC Firmware Layout</a></li>
<li class="toctree-l5"><a class="reference internal" href="i915.html#guc-memory-management">GuC Memory Management</a></li>
<li class="toctree-l5"><a class="reference internal" href="i915.html#guc-specific-firmware-loader">GuC-specific firmware loader</a></li>
<li class="toctree-l5"><a class="reference internal" href="i915.html#guc-based-command-submission">GuC-based command submission</a></li>
<li class="toctree-l5"><a class="reference internal" href="i915.html#guc-abi">GuC ABI</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#huc">HuC</a><ul>
<li class="toctree-l5"><a class="reference internal" href="i915.html#huc-memory-management">HuC Memory Management</a></li>
<li class="toctree-l5"><a class="reference internal" href="i915.html#huc-firmware-layout">HuC Firmware Layout</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#dmc">DMC</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="i915.html#tracing">Tracing</a><ul>
<li class="toctree-l4"><a class="reference internal" href="i915.html#i915-ppgtt-create-and-i915-ppgtt-release">i915_ppgtt_create and i915_ppgtt_release</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#i915-context-create-and-i915-context-free">i915_context_create and i915_context_free</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="i915.html#perf">Perf</a><ul>
<li class="toctree-l4"><a class="reference internal" href="i915.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#comparison-with-core-perf">Comparison with Core Perf</a><ul>
<li class="toctree-l5"><a class="reference internal" href="i915.html#issues-hit-with-first-prototype-based-on-core-perf">Issues hit with first prototype based on Core Perf</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#i915-driver-entry-points">i915 Driver Entry Points</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#i915-perf-stream">i915 Perf Stream</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#i915-perf-observation-architecture-stream">i915 Perf Observation Architecture Stream</a></li>
<li class="toctree-l4"><a class="reference internal" href="i915.html#other-i915-perf-internals">Other i915 Perf Internals</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="i915.html#style">Style</a><ul>
<li class="toctree-l4"><a class="reference internal" href="i915.html#register-macro-definition-style">Register macro definition style</a><ul>
<li class="toctree-l5"><a class="reference internal" href="i915.html#file-layout">File Layout</a></li>
<li class="toctree-l5"><a class="reference internal" href="i915.html#naming">Naming</a></li>
<li class="toctree-l5"><a class="reference internal" href="i915.html#examples">Examples</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="i915.html#i915-drm-client-usage-stats-implementation">i915 DRM client usage stats implementation</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="imagination/index.html">drm/imagination PowerVR Graphics Driver</a><ul>
<li class="toctree-l3"><a class="reference internal" href="imagination/index.html#contents">Contents</a><ul>
<li class="toctree-l4"><a class="reference internal" href="imagination/uapi.html">UAPI</a><ul>
<li class="toctree-l5"><a class="reference internal" href="imagination/uapi.html#object-arrays">OBJECT ARRAYS</a></li>
<li class="toctree-l5"><a class="reference internal" href="imagination/uapi.html#ioctls">IOCTLS</a><ul>
<li class="toctree-l6"><a class="reference internal" href="imagination/uapi.html#dev-query">DEV_QUERY</a></li>
<li class="toctree-l6"><a class="reference internal" href="imagination/uapi.html#create-bo">CREATE_BO</a></li>
<li class="toctree-l6"><a class="reference internal" href="imagination/uapi.html#get-bo-mmap-offset">GET_BO_MMAP_OFFSET</a></li>
<li class="toctree-l6"><a class="reference internal" href="imagination/uapi.html#create-vm-context-and-destroy-vm-context">CREATE_VM_CONTEXT and DESTROY_VM_CONTEXT</a></li>
<li class="toctree-l6"><a class="reference internal" href="imagination/uapi.html#vm-map-and-vm-unmap">VM_MAP and VM_UNMAP</a></li>
<li class="toctree-l6"><a class="reference internal" href="imagination/uapi.html#create-context-and-destroy-context">CREATE_CONTEXT and DESTROY_CONTEXT</a></li>
<li class="toctree-l6"><a class="reference internal" href="imagination/uapi.html#create-free-list-and-destroy-free-list">CREATE_FREE_LIST and DESTROY_FREE_LIST</a></li>
<li class="toctree-l6"><a class="reference internal" href="imagination/uapi.html#create-hwrt-dataset-and-destroy-hwrt-dataset">CREATE_HWRT_DATASET and DESTROY_HWRT_DATASET</a></li>
<li class="toctree-l6"><a class="reference internal" href="imagination/uapi.html#submit-jobs">SUBMIT_JOBS</a></li>
</ul>
</li>
<li class="toctree-l5"><a class="reference internal" href="imagination/uapi.html#internal-notes">Internal notes</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="mcde.html">drm/mcde ST-Ericsson MCDE Multi-channel display engine</a></li>
<li class="toctree-l2"><a class="reference internal" href="meson.html">drm/meson AmLogic Meson Video Processing Unit</a><ul>
<li class="toctree-l3"><a class="reference internal" href="meson.html#video-processing-unit">Video Processing Unit</a></li>
<li class="toctree-l3"><a class="reference internal" href="meson.html#video-input-unit">Video Input Unit</a></li>
<li class="toctree-l3"><a class="reference internal" href="meson.html#video-post-processing">Video Post Processing</a></li>
<li class="toctree-l3"><a class="reference internal" href="meson.html#video-encoder">Video Encoder</a></li>
<li class="toctree-l3"><a class="reference internal" href="meson.html#video-clocks">Video Clocks</a></li>
<li class="toctree-l3"><a class="reference internal" href="meson.html#hdmi-video-output">HDMI Video Output</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="nouveau.html">drm/nouveau NVIDIA GPU Driver</a><ul>
<li class="toctree-l3"><a class="reference internal" href="nouveau.html#nvkm-nvidia-kernel-manager">NVKM: NVIDIA Kernel Manager</a><ul>
<li class="toctree-l4"><a class="reference internal" href="nouveau.html#gsp-support">GSP Support</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="pl111.html">drm/pl111 ARM PrimeCell PL110 and PL111 CLCD Driver</a></li>
<li class="toctree-l2"><a class="reference internal" href="tegra.html">drm/tegra NVIDIA Tegra GPU and display driver</a><ul>
<li class="toctree-l3"><a class="reference internal" href="tegra.html#driver-infrastructure">Driver Infrastructure</a><ul>
<li class="toctree-l4"><a class="reference internal" href="tegra.html#host1x-infrastructure-reference">Host1x Infrastructure Reference</a></li>
<li class="toctree-l4"><a class="reference internal" href="tegra.html#host1x-syncpoint-reference">Host1x Syncpoint Reference</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="tegra.html#kms-driver">KMS driver</a><ul>
<li class="toctree-l4"><a class="reference internal" href="tegra.html#display-controllers">Display Controllers</a><ul>
<li class="toctree-l5"><a class="reference internal" href="tegra.html#windows">Windows</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="tegra.html#outputs">Outputs</a><ul>
<li class="toctree-l5"><a class="reference internal" href="tegra.html#rgb-lvds">RGB/LVDS</a></li>
<li class="toctree-l5"><a class="reference internal" href="tegra.html#hdmi">HDMI</a></li>
<li class="toctree-l5"><a class="reference internal" href="tegra.html#dsi">DSI</a></li>
<li class="toctree-l5"><a class="reference internal" href="tegra.html#edp-dp">eDP/DP</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="tegra.html#userspace-interface">Userspace Interface</a><ul>
<li class="toctree-l4"><a class="reference internal" href="tegra.html#gem-buffers">GEM Buffers</a></li>
<li class="toctree-l4"><a class="reference internal" href="tegra.html#syncpoints">Syncpoints</a></li>
<li class="toctree-l4"><a class="reference internal" href="tegra.html#command-stream-submission">Command Stream Submission</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="tve200.html">drm/tve200 Faraday TV Encoder 200</a></li>
<li class="toctree-l2"><a class="reference internal" href="v3d.html">drm/v3d Broadcom V3D Graphics Driver</a><ul>
<li class="toctree-l3"><a class="reference internal" href="v3d.html#gpu-buffer-object-bo-management">GPU buffer object (BO) management</a><ul>
<li class="toctree-l4"><a class="reference internal" href="v3d.html#address-space-management">Address space management</a></li>
<li class="toctree-l4"><a class="reference internal" href="v3d.html#gpu-scheduling">GPU Scheduling</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="v3d.html#interrupts">Interrupts</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="vc4.html">drm/vc4 Broadcom VC4 Graphics Driver</a><ul>
<li class="toctree-l3"><a class="reference internal" href="vc4.html#display-hardware-handling">Display Hardware Handling</a><ul>
<li class="toctree-l4"><a class="reference internal" href="vc4.html#pixel-valve-drm-crtc">Pixel Valve (DRM CRTC)</a></li>
<li class="toctree-l4"><a class="reference internal" href="vc4.html#hvs">HVS</a></li>
<li class="toctree-l4"><a class="reference internal" href="vc4.html#hvs-planes">HVS planes</a></li>
<li class="toctree-l4"><a class="reference internal" href="vc4.html#hdmi-encoder">HDMI encoder</a></li>
<li class="toctree-l4"><a class="reference internal" href="vc4.html#dsi-encoder">DSI encoder</a></li>
<li class="toctree-l4"><a class="reference internal" href="vc4.html#dpi-encoder">DPI encoder</a></li>
<li class="toctree-l4"><a class="reference internal" href="vc4.html#vec-composite-tv-out-encoder">VEC (Composite TV out) encoder</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="vc4.html#kunit-tests">KUnit Tests</a></li>
<li class="toctree-l3"><a class="reference internal" href="vc4.html#memory-management-and-3d-command-submission">Memory Management and 3D Command Submission</a><ul>
<li class="toctree-l4"><a class="reference internal" href="vc4.html#gpu-buffer-object-bo-management">GPU buffer object (BO) management</a></li>
<li class="toctree-l4"><a class="reference internal" href="vc4.html#v3d-binner-command-list-bcl-validation">V3D binner command list (BCL) validation</a></li>
<li class="toctree-l4"><a class="reference internal" href="vc4.html#v3d-render-command-list-rcl-generation">V3D render command list (RCL) generation</a></li>
<li class="toctree-l4"><a class="reference internal" href="vc4.html#shader-validator-for-vc4">Shader validator for VC4</a></li>
<li class="toctree-l4"><a class="reference internal" href="vc4.html#v3d-interrupts">V3D Interrupts</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="vkms.html">drm/vkms Virtual Kernel Modesetting</a><ul>
<li class="toctree-l3"><a class="reference internal" href="vkms.html#setup">Setup</a></li>
<li class="toctree-l3"><a class="reference internal" href="vkms.html#testing-with-igt">Testing With IGT</a></li>
<li class="toctree-l3"><a class="reference internal" href="vkms.html#testing-with-kunit">Testing With KUnit</a></li>
<li class="toctree-l3"><a class="reference internal" href="vkms.html#todo">TODO</a><ul>
<li class="toctree-l4"><a class="reference internal" href="vkms.html#igt-better-support">IGT better support</a></li>
<li class="toctree-l4"><a class="reference internal" href="vkms.html#add-plane-features">Add Plane Features</a></li>
<li class="toctree-l4"><a class="reference internal" href="vkms.html#runtime-configuration">Runtime Configuration</a></li>
<li class="toctree-l4"><a class="reference internal" href="vkms.html#writeback-support">Writeback support</a></li>
<li class="toctree-l4"><a class="reference internal" href="vkms.html#output-features">Output Features</a></li>
<li class="toctree-l4"><a class="reference internal" href="vkms.html#crc-api-improvements">CRC API Improvements</a></li>
<li class="toctree-l4"><a class="reference internal" href="vkms.html#atomic-check-using-ebpf">Atomic Check using eBPF</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="bridge/dw-hdmi.html">drm/bridge/dw-hdmi Synopsys DesignWare HDMI Controller</a><ul>
<li class="toctree-l3"><a class="reference internal" href="bridge/dw-hdmi.html#synopsys-designware-hdmi-controller">Synopsys DesignWare HDMI Controller</a><ul>
<li class="toctree-l4"><a class="reference internal" href="bridge/dw-hdmi.html#supported-input-formats-and-encodings">Supported Input Formats and Encodings</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="xen-front.html">drm/xen-front Xen para-virtualized frontend driver</a><ul>
<li class="toctree-l3"><a class="reference internal" href="xen-front.html#driver-modes-of-operation-in-terms-of-display-buffers-used">Driver modes of operation in terms of display buffers used</a><ul>
<li class="toctree-l4"><a class="reference internal" href="xen-front.html#buffers-allocated-by-the-frontend-driver">Buffers allocated by the frontend driver</a></li>
<li class="toctree-l4"><a class="reference internal" href="xen-front.html#buffers-allocated-by-the-backend">Buffers allocated by the backend</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="xen-front.html#driver-limitations">Driver limitations</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="xe/index.html">drm/xe Intel GFX Driver</a><ul>
<li class="toctree-l3"><a class="reference internal" href="xe/xe_mm.html">Memory Management</a><ul>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_mm.html#bo-management">BO management</a></li>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_mm.html#bo-creation">BO creation</a><ul>
<li class="toctree-l5"><a class="reference internal" href="xe/xe_mm.html#kernel-bos">Kernel BOs</a></li>
<li class="toctree-l5"><a class="reference internal" href="xe/xe_mm.html#user-bos">User BOs</a><ul>
<li class="toctree-l6"><a class="reference internal" href="xe/xe_mm.html#private-bos">Private BOs</a></li>
<li class="toctree-l6"><a class="reference internal" href="xe/xe_mm.html#external-bos">External BOs</a></li>
<li class="toctree-l6"><a class="reference internal" href="xe/xe_mm.html#bo-placement">BO placement</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_mm.html#bo-validation">BO validation</a></li>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_mm.html#bo-eviction-moving">BO eviction / moving</a><ul>
<li class="toctree-l5"><a class="reference internal" href="xe/xe_mm.html#runtime-eviction">Runtime eviction</a></li>
<li class="toctree-l5"><a class="reference internal" href="xe/xe_mm.html#rebinds-after-runtime-eviction">Rebinds after runtime eviction</a></li>
<li class="toctree-l5"><a class="reference internal" href="xe/xe_mm.html#suspend-resume-eviction-of-vram">Suspend / resume eviction of VRAM</a></li>
<li class="toctree-l5"><a class="reference internal" href="xe/xe_mm.html#rebinds-after-suspend-resume">Rebinds after suspend / resume</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_mm.html#future-work">Future work</a></li>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_mm.html#ggtt">GGTT</a><ul>
<li class="toctree-l5"><a class="reference internal" href="xe/xe_mm.html#ggtt-internal-api">GGTT Internal API</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_mm.html#pagetable-building">Pagetable building</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="xe/xe_map.html">Map Layer</a></li>
<li class="toctree-l3"><a class="reference internal" href="xe/xe_migrate.html">Migrate Layer</a><ul>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_migrate.html#special-vm-details">Special VM details</a></li>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_migrate.html#bind-jobs">Bind jobs</a></li>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_migrate.html#copy-clear-jobs">Copy / clear jobs</a></li>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_migrate.html#future-work">Future work</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="xe/xe_cs.html">Command submission</a><ul>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_cs.html#flow">Flow</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="xe/xe_pm.html">Runtime Power Management</a><ul>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_pm.html#internal-api">Internal API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="xe/xe_gt_freq.html">Xe GT Frequency Management</a><ul>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_gt_freq.html#internal-api">Internal API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="xe/xe_pcode.html">Pcode</a><ul>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_pcode.html#internal-api">Internal API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="xe/xe_pcode.html#survivability-mode">Survivability Mode</a><ul>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_pcode.html#boot-survivability">Boot Survivability</a></li>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_pcode.html#runtime-survivability">Runtime Survivability</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="xe/xe_gt_mcr.html">GT Multicast/Replicated (MCR) Register Support</a><ul>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_gt_mcr.html#internal-api">Internal API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="xe/xe_wa.html">Hardware workarounds</a><ul>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_wa.html#internal-api">Internal API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="xe/xe_rtp.html">Register Table Processing</a><ul>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_rtp.html#internal-api">Internal API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="xe/xe_firmware.html">Firmware</a><ul>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_firmware.html#firmware-layout">Firmware Layout</a></li>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_firmware.html#write-once-protected-content-memory-wopcm-layout">Write Once Protected Content Memory (WOPCM) Layout</a></li>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_firmware.html#guc-ctb-blob">GuC CTB Blob</a></li>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_firmware.html#guc-power-conservation-pc">GuC Power Conservation (PC)</a></li>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_firmware.html#pcie-gen5-limitations">PCIe Gen5 Limitations</a></li>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_firmware.html#internal-api">Internal API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="xe/xe_tile.html">Multi-tile Devices</a><ul>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_tile.html#internal-api">Internal API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="xe/xe_debugging.html">Debugging</a></li>
<li class="toctree-l3"><a class="reference internal" href="xe/xe_devcoredump.html">Xe Device Coredump</a><ul>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_devcoredump.html#internal-api">Internal API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="xe/xe_device.html">Xe Device Wedging</a><ul>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_device.html#case-firmware-flash">Case: Firmware Flash</a><ul>
<li class="toctree-l5"><a class="reference internal" href="xe/xe_device.html#identification-hint">Identification Hint</a></li>
<li class="toctree-l5"><a class="reference internal" href="xe/xe_device.html#recovery-procedure">Recovery Procedure</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="xe/xe-drm-usage-stats.html">Xe DRM client usage stats implementation</a></li>
<li class="toctree-l3"><a class="reference internal" href="xe/xe_configfs.html">Xe Configfs</a><ul>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_configfs.html#overview">Overview</a></li>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_configfs.html#create-devices">Create devices</a></li>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_configfs.html#configure-attributes">Configure Attributes</a><ul>
<li class="toctree-l5"><a class="reference internal" href="xe/xe_configfs.html#survivability-mode">Survivability mode:</a></li>
<li class="toctree-l5"><a class="reference internal" href="xe/xe_configfs.html#allowed-engines">Allowed engines:</a></li>
<li class="toctree-l5"><a class="reference internal" href="xe/xe_configfs.html#psmi">PSMI</a></li>
<li class="toctree-l5"><a class="reference internal" href="xe/xe_configfs.html#context-restore-bb">Context restore BB</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_configfs.html#remove-devices">Remove devices</a></li>
<li class="toctree-l4"><a class="reference internal" href="xe/xe_configfs.html#internal-api">Internal API</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="afbc.html">Arm Framebuffer Compression (AFBC)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="afbc.html#components-and-ordering">Components and Ordering</a></li>
<li class="toctree-l3"><a class="reference internal" href="afbc.html#number-of-planes">Number of Planes</a></li>
<li class="toctree-l3"><a class="reference internal" href="afbc.html#cross-device-interoperability">Cross-device interoperability</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="komeda-kms.html">drm/komeda Arm display driver</a><ul>
<li class="toctree-l3"><a class="reference internal" href="komeda-kms.html#overview-of-d71-like-display-ips">Overview of D71 like display IPs</a><ul>
<li class="toctree-l4"><a class="reference internal" href="komeda-kms.html#layer">Layer</a></li>
<li class="toctree-l4"><a class="reference internal" href="komeda-kms.html#scaler">Scaler</a></li>
<li class="toctree-l4"><a class="reference internal" href="komeda-kms.html#compositor-compiz">Compositor (compiz)</a></li>
<li class="toctree-l4"><a class="reference internal" href="komeda-kms.html#writeback-layer-wb-layer">Writeback Layer (wb_layer)</a></li>
<li class="toctree-l4"><a class="reference internal" href="komeda-kms.html#post-image-processor-improc">Post image processor (improc)</a></li>
<li class="toctree-l4"><a class="reference internal" href="komeda-kms.html#timing-controller-timing-ctrlr">Timing controller (timing_ctrlr)</a></li>
<li class="toctree-l4"><a class="reference internal" href="komeda-kms.html#merger">Merger</a></li>
<li class="toctree-l4"><a class="reference internal" href="komeda-kms.html#splitter">Splitter</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="komeda-kms.html#possible-d71-pipeline-usage">Possible D71 Pipeline usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="komeda-kms.html#single-pipeline-data-flow">Single pipeline data flow</a></li>
<li class="toctree-l4"><a class="reference internal" href="komeda-kms.html#dual-pipeline-with-slave-enabled">Dual pipeline with Slave enabled</a></li>
<li class="toctree-l4"><a class="reference internal" href="komeda-kms.html#sub-pipelines-for-input-and-output">Sub-pipelines for input and output</a><ul>
<li class="toctree-l5"><a class="reference internal" href="komeda-kms.html#layer-input-pipeline">Layer(input) pipeline</a></li>
<li class="toctree-l5"><a class="reference internal" href="komeda-kms.html#writeback-output-pipeline">Writeback(output) pipeline</a></li>
<li class="toctree-l5"><a class="reference internal" href="komeda-kms.html#display-output-pipeline">Display output pipeline</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="komeda-kms.html#komeda-resource-abstraction">Komeda Resource abstraction</a><ul>
<li class="toctree-l4"><a class="reference internal" href="komeda-kms.html#struct-komeda-pipeline-component">struct komeda_pipeline/component</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="komeda-kms.html#resource-discovery-and-initialization">Resource discovery and initialization</a></li>
<li class="toctree-l3"><a class="reference internal" href="komeda-kms.html#format-handling">Format handling</a></li>
<li class="toctree-l3"><a class="reference internal" href="komeda-kms.html#attach-komeda-dev-to-drm-kms">Attach komeda_dev to DRM-KMS</a><ul>
<li class="toctree-l4"><a class="reference internal" href="komeda-kms.html#how-to-map-plane-to-layer-input-pipeline">How to map plane to Layer(input) pipeline</a></li>
<li class="toctree-l4"><a class="reference internal" href="komeda-kms.html#make-component-pipeline-to-be-drm-private-obj">Make component/pipeline to be drm_private_obj</a></li>
<li class="toctree-l4"><a class="reference internal" href="komeda-kms.html#tracking-component-state-pipeline-state-by-drm-atomic-state">Tracking component_state/pipeline_state by drm_atomic_state</a></li>
<li class="toctree-l4"><a class="reference internal" href="komeda-kms.html#komeda-component-validation">komeda component validation</a></li>
<li class="toctree-l4"><a class="reference internal" href="komeda-kms.html#komeda-kms-abstraction">komeda_kms Abstraction</a></li>
<li class="toctree-l4"><a class="reference internal" href="komeda-kms.html#komde-kms-functions">komde_kms Functions</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="komeda-kms.html#build-komeda-to-be-a-linux-module-driver">Build komeda to be a Linux module driver</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="panfrost.html">drm/Panfrost Mali Driver</a><ul>
<li class="toctree-l3"><a class="reference internal" href="panfrost.html#panfrost-drm-client-usage-stats-implementation">Panfrost DRM client usage stats implementation</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="panthor.html">drm/Panthor CSF driver</a><ul>
<li class="toctree-l3"><a class="reference internal" href="panthor.html#panthor-drm-client-usage-stats-implementation">Panthor DRM client usage stats implementation</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="zynqmp.html">Xilinx ZynqMP Ultrascale+ DisplayPort Subsystem</a><ul>
<li class="toctree-l3"><a class="reference internal" href="zynqmp.html#debugfs">debugfs</a></li>
<li class="toctree-l3"><a class="reference internal" href="zynqmp.html#internals">Internals</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="nova/index.html">nova NVIDIA GPU drivers</a><ul>
<li class="toctree-l3"><a class="reference internal" href="nova/guidelines.html">Guidelines</a><ul>
<li class="toctree-l4"><a class="reference internal" href="nova/guidelines.html#language">Language</a><ul>
<li class="toctree-l5"><a class="reference internal" href="nova/guidelines.html#style">Style</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="nova/guidelines.html#documentation">Documentation</a></li>
<li class="toctree-l4"><a class="reference internal" href="nova/guidelines.html#acceptance-criteria">Acceptance Criteria</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="nova/index.html#nova-core">nova-core</a><ul>
<li class="toctree-l4"><a class="reference internal" href="nova/core/guidelines.html">Guidelines</a><ul>
<li class="toctree-l5"><a class="reference internal" href="nova/core/guidelines.html#driver-api">Driver API</a></li>
<li class="toctree-l5"><a class="reference internal" href="nova/core/guidelines.html#acceptance-criteria">Acceptance Criteria</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="nova/core/todo.html">Task List</a><ul>
<li class="toctree-l5"><a class="reference internal" href="nova/core/todo.html#enablement-rust">Enablement (Rust)</a><ul>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#fromprimitive-api-fpri">FromPrimitive API [FPRI]</a></li>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#conversion-from-byte-slices-for-types-implementing-frombytes-trsm">Conversion from byte slices for types implementing FromBytes [TRSM]</a></li>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#coherentallocation-improvements-coha">CoherentAllocation improvements [COHA]</a></li>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#generic-register-abstraction-rega">Generic register abstraction [REGA]</a></li>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#numerical-operations-numm">Numerical operations [NUMM]</a></li>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#delay-sleep-abstractions-dlay">Delay / Sleep abstractions [DLAY]</a></li>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#irq-abstractions">IRQ abstractions</a></li>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#page-abstraction-for-foreign-pages">Page abstraction for foreign pages</a></li>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#scatterlist-sg-table-abstractions">Scatterlist / sg_table abstractions</a></li>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#pci-misc-apis">PCI MISC APIs</a></li>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#xarray-bindings-xarr">XArray bindings [XARR]</a></li>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#debugfs-abstractions">Debugfs abstractions</a></li>
</ul>
</li>
<li class="toctree-l5"><a class="reference internal" href="nova/core/todo.html#gpu-general">GPU (general)</a><ul>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#initial-devinit-support">Initial Devinit support</a></li>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#mmu-pt-management">MMU / PT management</a></li>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#vram-memory-allocator">VRAM memory allocator</a></li>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#instance-memory">Instance Memory</a></li>
</ul>
</li>
<li class="toctree-l5"><a class="reference internal" href="nova/core/todo.html#gpu-system-processor-gsp">GPU System Processor (GSP)</a><ul>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#export-gsp-log-buffers">Export GSP log buffers</a></li>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#gsp-firmware-abstraction">GSP firmware abstraction</a></li>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#gsp-message-queue">GSP message queue</a></li>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#bootstrap-gsp">Bootstrap GSP</a></li>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#client-device-apis">Client / Device APIs</a></li>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#bar-pde-handling">Bar PDE handling</a></li>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#fifo-engine">FIFO engine</a></li>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#gr-engine">GR engine</a></li>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#ce-engine">CE engine</a></li>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#vfn-irq-controller">VFN IRQ controller</a></li>
</ul>
</li>
<li class="toctree-l5"><a class="reference internal" href="nova/core/todo.html#external-apis">External APIs</a><ul>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#nova-core-base-api">nova-core base API</a></li>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#vgpu-manager-api">vGPU manager API</a></li>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#nova-core-c-api">nova-core C API</a></li>
</ul>
</li>
<li class="toctree-l5"><a class="reference internal" href="nova/core/todo.html#testing">Testing</a><ul>
<li class="toctree-l6"><a class="reference internal" href="nova/core/todo.html#ci-pipeline">CI pipeline</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="nova/core/vbios.html">VBIOS</a><ul>
<li class="toctree-l5"><a class="reference internal" href="nova/core/vbios.html#vbios-rom-layout">VBIOS ROM Layout</a></li>
<li class="toctree-l5"><a class="reference internal" href="nova/core/vbios.html#falcon-data-lookup">Falcon data Lookup</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="nova/core/devinit.html">Device Initialization (devinit)</a><ul>
<li class="toctree-l5"><a class="reference internal" href="nova/core/devinit.html#key-functions-of-devinit">Key Functions of devinit</a></li>
<li class="toctree-l5"><a class="reference internal" href="nova/core/devinit.html#low-level-firmware-initialization-flow">Low-level Firmware Initialization Flow</a></li>
<li class="toctree-l5"><a class="reference internal" href="nova/core/devinit.html#runtime-considerations">Runtime Considerations</a></li>
<li class="toctree-l5"><a class="reference internal" href="nova/core/devinit.html#security-and-access-control">Security and Access Control</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="nova/core/fwsec.html">FWSEC (Firmware Security)</a><ul>
<li class="toctree-l5"><a class="reference internal" href="nova/core/fwsec.html#fwsec-memory-layout">FWSEC Memory Layout</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="nova/core/falcon.html">Falcon (FAst Logic Controller)</a><ul>
<li class="toctree-l5"><a class="reference internal" href="nova/core/falcon.html#falcon-security-levels">Falcon security levels</a><ul>
<li class="toctree-l6"><a class="reference internal" href="nova/core/falcon.html#heavy-secured-hs-also-known-as-privilege-level-3-pl3">Heavy Secured (HS) also known as Privilege Level 3 (PL3)</a></li>
<li class="toctree-l6"><a class="reference internal" href="nova/core/falcon.html#light-secured-ls-or-pl2-and-non-secured-ns-or-pl0">Light Secured (LS or PL2) and Non Secured (NS or PL0)</a></li>
<li class="toctree-l6"><a class="reference internal" href="nova/core/falcon.html#root-of-trust-establishment">Root of trust establishment</a></li>
</ul>
</li>
<li class="toctree-l5"><a class="reference internal" href="nova/core/falcon.html#falcon-memory-subsystem-and-dma-engine">Falcon memory subsystem and DMA engine</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="backlight.html">Backlight support</a></li>
<li class="toctree-l1"><a class="reference internal" href="vga-switcheroo.html">VGA Switcheroo</a><ul>
<li class="toctree-l2"><a class="reference internal" href="vga-switcheroo.html#modes-of-use">Modes of Use</a><ul>
<li class="toctree-l3"><a class="reference internal" href="vga-switcheroo.html#manual-switching-and-manual-power-control">Manual switching and manual power control</a></li>
<li class="toctree-l3"><a class="reference internal" href="vga-switcheroo.html#driver-power-control">Driver power control</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="vga-switcheroo.html#api">API</a><ul>
<li class="toctree-l3"><a class="reference internal" href="vga-switcheroo.html#public-functions">Public functions</a></li>
<li class="toctree-l3"><a class="reference internal" href="vga-switcheroo.html#public-structures">Public structures</a></li>
<li class="toctree-l3"><a class="reference internal" href="vga-switcheroo.html#public-constants">Public constants</a></li>
<li class="toctree-l3"><a class="reference internal" href="vga-switcheroo.html#private-structures">Private structures</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="vga-switcheroo.html#handlers">Handlers</a><ul>
<li class="toctree-l3"><a class="reference internal" href="vga-switcheroo.html#apple-gmux-handler">apple-gmux Handler</a><ul>
<li class="toctree-l4"><a class="reference internal" href="vga-switcheroo.html#graphics-mux">Graphics mux</a></li>
<li class="toctree-l4"><a class="reference internal" href="vga-switcheroo.html#power-control">Power control</a></li>
<li class="toctree-l4"><a class="reference internal" href="vga-switcheroo.html#backlight-control">Backlight control</a></li>
<li class="toctree-l4"><a class="reference internal" href="vga-switcheroo.html#id2">Public functions</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="vgaarbiter.html">VGA Arbiter</a><ul>
<li class="toctree-l2"><a class="reference internal" href="vgaarbiter.html#vgaarb-kernel-userspace-abi">vgaarb kernel/userspace ABI</a></li>
<li class="toctree-l2"><a class="reference internal" href="vgaarbiter.html#in-kernel-interface">In-kernel interface</a></li>
<li class="toctree-l2"><a class="reference internal" href="vgaarbiter.html#libpciaccess">libpciaccess</a></li>
<li class="toctree-l2"><a class="reference internal" href="vgaarbiter.html#xf86vgaarbiter-x-server-implementation">xf86VGAArbiter (X server implementation)</a></li>
<li class="toctree-l2"><a class="reference internal" href="vgaarbiter.html#references">References</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="automated_testing.html">Automated testing of the DRM subsystem</a><ul>
<li class="toctree-l2"><a class="reference internal" href="automated_testing.html#introduction">Introduction</a></li>
<li class="toctree-l2"><a class="reference internal" href="automated_testing.html#relevant-files">Relevant files</a><ul>
<li class="toctree-l3"><a class="reference internal" href="automated_testing.html#drivers-gpu-drm-ci-gitlab-ci-yml">drivers/gpu/drm/ci/gitlab-ci.yml</a></li>
<li class="toctree-l3"><a class="reference internal" href="automated_testing.html#drivers-gpu-drm-ci-testlist-txt">drivers/gpu/drm/ci/testlist.txt</a></li>
<li class="toctree-l3"><a class="reference internal" href="automated_testing.html#drivers-gpu-drm-ci-driver-name-hw-revision-fails-txt">drivers/gpu/drm/ci/${DRIVER_NAME}-${HW_REVISION}-fails.txt</a></li>
<li class="toctree-l3"><a class="reference internal" href="automated_testing.html#drivers-gpu-drm-ci-driver-name-hw-revision-flakes-txt">drivers/gpu/drm/ci/${DRIVER_NAME}-${HW_REVISION}-flakes.txt</a></li>
<li class="toctree-l3"><a class="reference internal" href="automated_testing.html#drivers-gpu-drm-ci-driver-name-hw-revision-skips-txt">drivers/gpu/drm/ci/${DRIVER_NAME}-${HW_REVISION}-skips.txt</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="automated_testing.html#how-to-enable-automated-testing-on-your-tree">How to enable automated testing on your tree</a></li>
<li class="toctree-l2"><a class="reference internal" href="automated_testing.html#how-to-update-test-expectations">How to update test expectations</a></li>
<li class="toctree-l2"><a class="reference internal" href="automated_testing.html#how-to-expand-coverage">How to expand coverage</a></li>
<li class="toctree-l2"><a class="reference internal" href="automated_testing.html#how-to-test-your-changes-to-the-scripts">How to test your changes to the scripts</a></li>
<li class="toctree-l2"><a class="reference internal" href="automated_testing.html#how-to-incorporate-external-fixes-in-your-testing">How to incorporate external fixes in your testing</a></li>
<li class="toctree-l2"><a class="reference internal" href="automated_testing.html#how-to-deal-with-automated-testing-labs-that-may-be-down">How to deal with automated testing labs that may be down</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="implementation_guidelines.html">Misc DRM driver uAPI- and feature implementation guidelines</a><ul>
<li class="toctree-l2"><a class="reference internal" href="drm-vm-bind-async.html">Asynchronous VM_BIND</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-vm-bind-async.html#nomenclature">Nomenclature:</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-vm-bind-async.html#synchronous-asynchronous-vm-bind-operation">Synchronous / Asynchronous VM_BIND operation</a><ul>
<li class="toctree-l4"><a class="reference internal" href="drm-vm-bind-async.html#synchronous-vm-bind">Synchronous VM_BIND</a></li>
<li class="toctree-l4"><a class="reference internal" href="drm-vm-bind-async.html#id1">Asynchronous VM_BIND</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="drm-vm-bind-async.html#multi-operation-vm-bind-ioctl-error-handling-and-interrupts">Multi-operation VM_BIND IOCTL error handling and interrupts</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-vm-bind-async.html#example-the-xe-vm-bind-uapi">Example: The Xe VM_BIND uAPI</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drm-vm-bind-locking.html">VM_BIND locking</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drm-vm-bind-locking.html#the-drm-gpuvm-set-of-helpers">The DRM GPUVM set of helpers</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-vm-bind-locking.html#nomenclature">Nomenclature</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-vm-bind-locking.html#locks-and-locking-order">Locks and locking order</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-vm-bind-locking.html#protection-and-lifetime-of-gpu-vm-bos-and-gpu-vmas">Protection and lifetime of gpu_vm_bos and gpu_vmas</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-vm-bind-locking.html#revalidation-and-eviction-of-local-objects">Revalidation and eviction of local objects</a><ul>
<li class="toctree-l4"><a class="reference internal" href="drm-vm-bind-locking.html#revalidation">Revalidation</a></li>
<li class="toctree-l4"><a class="reference internal" href="drm-vm-bind-locking.html#eviction">Eviction</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="drm-vm-bind-locking.html#locking-with-external-buffer-objects">Locking with external buffer objects</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-vm-bind-locking.html#accessing-the-gpu-vm-s-lists-without-the-dma-resv-lock-held">Accessing the gpu_vm’s lists without the dma_resv lock held</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-vm-bind-locking.html#userptr-gpu-vmas">userptr gpu_vmas</a><ul>
<li class="toctree-l4"><a class="reference internal" href="drm-vm-bind-locking.html#efficient-userptr-gpu-vma-exec-function-iteration">Efficient userptr gpu_vma exec_function iteration</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="drm-vm-bind-locking.html#locking-at-bind-and-unbind-time">Locking at bind and unbind time</a></li>
<li class="toctree-l3"><a class="reference internal" href="drm-vm-bind-locking.html#locking-for-recoverable-page-fault-page-table-updates">Locking for recoverable page-fault page-table updates</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="todo.html">TODO list</a><ul>
<li class="toctree-l2"><a class="reference internal" href="todo.html#difficulty">Difficulty</a><ul>
<li class="toctree-l3"><a class="reference internal" href="todo.html#subsystem-wide-refactorings">Subsystem-wide refactorings</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#remove-custom-dumb-map-offset-implementations">Remove custom dumb_map_offset implementations</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#convert-existing-kms-drivers-to-atomic-modesetting">Convert existing KMS drivers to atomic modesetting</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#clean-up-the-clipped-coordination-confusion-around-planes">Clean up the clipped coordination confusion around planes</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#improve-plane-atomic-check-helpers">Improve plane atomic_check helpers</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#convert-early-atomic-drivers-to-async-commit-helpers">Convert early atomic drivers to async commit helpers</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#rename-drm-atomic-state">Rename drm_atomic_state</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#fallout-from-atomic-kms">Fallout from atomic KMS</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#move-buffer-object-locking-to-dma-resv-lock">Move Buffer Object Locking to dma_resv_lock()</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#convert-logging-to-drm-functions-with-drm-device-parameter">Convert logging to drm_* functions with drm_device parameter</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#convert-drivers-to-use-simple-modeset-suspend-resume">Convert drivers to use simple modeset suspend/resume</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#reimplement-functions-in-drm-fbdev-fb-ops-without-fbdev">Reimplement functions in drm_fbdev_fb_ops without fbdev</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#benchmark-and-optimize-blitting-and-format-conversion-function">Benchmark and optimize blitting and format-conversion function</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#drm-framebuffer-funcs-and-drm-mode-config-funcs-fb-create-cleanup">drm_framebuffer_funcs and drm_mode_config_funcs.fb_create cleanup</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#generic-fbdev-defio-support">Generic fbdev defio support</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#connector-register-unregister-fixes">connector register/unregister fixes</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#remove-load-unload-callbacks">Remove load/unload callbacks</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#replace-drm-detect-hdmi-monitor-with-drm-display-info-is-hdmi">Replace drm_detect_hdmi_monitor() with drm_display_info.is_hdmi</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#consolidate-custom-driver-modeset-properties">Consolidate custom driver modeset properties</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#use-struct-iosys-map-throughout-codebase">Use struct iosys_map throughout codebase</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#review-all-drivers-for-setting-struct-drm-mode-config-max-width-max-height-correctly">Review all drivers for setting struct drm_mode_config.{max_width,max_height} correctly</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#request-memory-regions-in-all-fbdev-drivers">Request memory regions in all fbdev drivers</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#remove-driver-dependencies-on-fb-device">Remove driver dependencies on FB_DEVICE</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#remove-disable-unprepare-in-remove-shutdown-in-panel-simple-and-panel-edp">Remove disable/unprepare in remove/shutdown in panel-simple and panel-edp</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#transition-away-from-using-deprecated-mipi-dsi-functions">Transition away from using deprecated MIPI DSI functions</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#remove-devm-drm-put-bridge">Remove devm_drm_put_bridge()</a><ul>
<li class="toctree-l3"><a class="reference internal" href="todo.html#core-refactorings">Core refactorings</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#make-panic-handling-work">Make panic handling work</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#clean-up-the-debugfs-support">Clean up the debugfs support</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#object-lifetime-fixes">Object lifetime fixes</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#remove-automatic-page-mapping-from-dma-buf-importing">Remove automatic page mapping from dma-buf importing</a><ul>
<li class="toctree-l3"><a class="reference internal" href="todo.html#better-testing">Better Testing</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#add-unit-tests-using-the-kernel-unit-testing-kunit-framework">Add unit tests using the Kernel Unit Testing (KUnit) framework</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#clean-up-and-document-former-selftests-suites">Clean up and document former selftests suites</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#enable-trinity-for-drm">Enable trinity for DRM</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#make-kms-tests-in-i-g-t-generic">Make KMS tests in i-g-t generic</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#extend-virtual-test-driver-vkms">Extend virtual test driver (VKMS)</a></li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#backlight-refactoring">Backlight Refactoring</a><ul>
<li class="toctree-l3"><a class="reference internal" href="todo.html#driver-specific">Driver Specific</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#amd-dc-display-driver">AMD DC Display Driver</a><ul>
<li class="toctree-l3"><a class="reference internal" href="todo.html#bootsplash">Bootsplash</a></li>
<li class="toctree-l3"><a class="reference internal" href="todo.html#brightness-handling-on-devices-with-multiple-internal-panels">Brightness handling on devices with multiple internal panels</a></li>
<li class="toctree-l3"><a class="reference internal" href="todo.html#buffer-age-or-other-damage-accumulation-algorithm-for-buffer-damage">Buffer age or other damage accumulation algorithm for buffer damage</a></li>
<li class="toctree-l3"><a class="reference internal" href="todo.html#querying-errors-from-drm-syncobj">Querying errors from drm_syncobj</a></li>
<li class="toctree-l3"><a class="reference internal" href="todo.html#outside-drm">Outside DRM</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="todo.html#convert-fbdev-drivers-to-drm">Convert fbdev drivers to DRM</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="rfc/index.html">GPU RFC Section</a><ul>
<li class="toctree-l2"><a class="reference internal" href="rfc/gpusvm.html">GPU SVM Section</a><ul>
<li class="toctree-l3"><a class="reference internal" href="rfc/gpusvm.html#agreed-upon-design-principles">Agreed upon design principles</a></li>
<li class="toctree-l3"><a class="reference internal" href="rfc/gpusvm.html#overview-of-baseline-design">Overview of baseline design</a></li>
<li class="toctree-l3"><a class="reference internal" href="rfc/gpusvm.html#overview-of-drm-pagemap-design">Overview of drm_pagemap design</a></li>
<li class="toctree-l3"><a class="reference internal" href="rfc/gpusvm.html#possible-future-design-features">Possible future design features</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="rfc/i915_gem_lmem.html">I915 DG1/LMEM RFC Section</a><ul>
<li class="toctree-l3"><a class="reference internal" href="rfc/i915_gem_lmem.html#upstream-plan">Upstream plan</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="rfc/i915_scheduler.html">I915 GuC Submission/DRM Scheduler Section</a><ul>
<li class="toctree-l3"><a class="reference internal" href="rfc/i915_scheduler.html#upstream-plan">Upstream plan</a></li>
<li class="toctree-l3"><a class="reference internal" href="rfc/i915_scheduler.html#todos-for-guc-submission-upstream">TODOs for GuC submission upstream</a></li>
<li class="toctree-l3"><a class="reference internal" href="rfc/i915_scheduler.html#new-uapi-for-basic-guc-submission">New uAPI for basic GuC submission</a><ul>
<li class="toctree-l4"><a class="reference internal" href="rfc/i915_scheduler.html#spec-references">Spec references:</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="rfc/i915_scheduler.html#new-parallel-submission-uapi">New parallel submission uAPI</a><ul>
<li class="toctree-l4"><a class="reference internal" href="rfc/i915_scheduler.html#export-engines-logical-mapping">Export engines logical mapping</a></li>
<li class="toctree-l4"><a class="reference internal" href="rfc/i915_scheduler.html#a-set-parallel-extension-to-configure-contexts-for-parallel-submission">A ‘set_parallel’ extension to configure contexts for parallel submission</a></li>
<li class="toctree-l4"><a class="reference internal" href="rfc/i915_scheduler.html#extend-execbuf2-ioctl-to-support-submitting-n-bbs-in-a-single-ioctl">Extend execbuf2 IOCTL to support submitting N BBs in a single IOCTL</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="rfc/i915_small_bar.html">I915 Small BAR RFC Section</a><ul>
<li class="toctree-l3"><a class="reference internal" href="rfc/i915_small_bar.html#i915-gem-create-ext-flag-needs-cpu-access-flag">I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS flag</a></li>
<li class="toctree-l3"><a class="reference internal" href="rfc/i915_small_bar.html#probed-cpu-visible-size-attribute">probed_cpu_visible_size attribute</a></li>
<li class="toctree-l3"><a class="reference internal" href="rfc/i915_small_bar.html#error-capture-restrictions">Error Capture restrictions</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="rfc/i915_vm_bind.html">I915 VM_BIND feature design and use cases</a><ul>
<li class="toctree-l3"><a class="reference internal" href="rfc/i915_vm_bind.html#vm-bind-feature">VM_BIND feature</a><ul>
<li class="toctree-l4"><a class="reference internal" href="rfc/i915_vm_bind.html#tlb-flush-consideration">TLB flush consideration</a></li>
<li class="toctree-l4"><a class="reference internal" href="rfc/i915_vm_bind.html#execbuf-ioctl-in-vm-bind-mode">Execbuf ioctl in VM_BIND mode</a></li>
<li class="toctree-l4"><a class="reference internal" href="rfc/i915_vm_bind.html#vm-private-objects">VM_PRIVATE objects</a></li>
<li class="toctree-l4"><a class="reference internal" href="rfc/i915_vm_bind.html#vm-bind-locking-hierarchy">VM_BIND locking hierarchy</a></li>
<li class="toctree-l4"><a class="reference internal" href="rfc/i915_vm_bind.html#vm-bind-lru-handling">VM_BIND LRU handling</a></li>
<li class="toctree-l4"><a class="reference internal" href="rfc/i915_vm_bind.html#vm-bind-dma-resv-usage">VM_BIND dma_resv usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="rfc/i915_vm_bind.html#mesa-use-case">Mesa use case</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="rfc/i915_vm_bind.html#other-vm-bind-use-cases">Other VM_BIND use cases</a><ul>
<li class="toctree-l4"><a class="reference internal" href="rfc/i915_vm_bind.html#long-running-compute-contexts">Long running Compute contexts</a><ul>
<li class="toctree-l5"><a class="reference internal" href="rfc/i915_vm_bind.html#user-memory-fence">User/Memory Fence</a></li>
<li class="toctree-l5"><a class="reference internal" href="rfc/i915_vm_bind.html#low-latency-submission">Low Latency Submission</a></li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="rfc/i915_vm_bind.html#debugger">Debugger</a></li>
<li class="toctree-l4"><a class="reference internal" href="rfc/i915_vm_bind.html#gpu-page-faults">GPU page faults</a></li>
<li class="toctree-l4"><a class="reference internal" href="rfc/i915_vm_bind.html#page-level-hints-settings">Page level hints settings</a></li>
<li class="toctree-l4"><a class="reference internal" href="rfc/i915_vm_bind.html#page-level-cache-clos-settings">Page level Cache/CLOS settings</a></li>
<li class="toctree-l4"><a class="reference internal" href="rfc/i915_vm_bind.html#evictable-page-table-allocations">Evictable page table allocations</a></li>
<li class="toctree-l4"><a class="reference internal" href="rfc/i915_vm_bind.html#shared-virtual-memory-svm-support">Shared Virtual Memory (SVM) support</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="rfc/i915_vm_bind.html#vm-bind-uapi">VM_BIND UAPI</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</section>


          </div>
          
        </div>
      </div>
    <div class="clearer"></div>
  </div>
    <div class="footer">
      &#169;The kernel development community.
      
      |
      Powered by <a href="https://www.sphinx-doc.org/">Sphinx 8.1.3</a>
      &amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
      
      |
      <a href="../_sources/gpu/index.rst.txt"
          rel="nofollow">Page source</a>
    </div>

    

    
  </body>
</html>

Filemanager

Name Type Size Permission Actions
amdgpu Folder 0755
bridge Folder 0755
imagination Folder 0755
nova Folder 0755
rfc Folder 0755
xe Folder 0755
afbc.html File 18.3 KB 0644
automated_testing.html File 17.37 KB 0644
backlight.html File 46.97 KB 0644
driver-uapi.html File 465.42 KB 0644
drivers.html File 44.63 KB 0644
drm-client.html File 56.03 KB 0644
drm-compute.html File 10.65 KB 0644
drm-internals.html File 278.54 KB 0644
drm-kms-helpers.html File 2 MB 0644
drm-kms.html File 1.36 MB 0644
drm-mm.html File 1.03 MB 0644
drm-uapi.html File 236.88 KB 0644
drm-usage-stats.html File 20.29 KB 0644
drm-vm-bind-async.html File 28.12 KB 0644
drm-vm-bind-locking.html File 57.14 KB 0644
i915.html File 643.37 KB 0644
implementation_guidelines.html File 11.4 KB 0644
index.html File 131.32 KB 0644
introduction.html File 20.55 KB 0644
komeda-kms.html File 74.2 KB 0644
mcde.html File 10.4 KB 0644
meson.html File 16.81 KB 0644
msm-crash-dump.html File 9.44 KB 0644
msm-preemption.html File 11 KB 0644
nouveau.html File 12.63 KB 0644
panfrost.html File 9.98 KB 0644
panthor.html File 10.44 KB 0644
pl111.html File 9 KB 0644
tegra.html File 68.04 KB 0644
todo.html File 67.35 KB 0644
tve200.html File 8.64 KB 0644
v3d.html File 11.2 KB 0644
vc4.html File 19.26 KB 0644
vga-switcheroo.html File 65.4 KB 0644
vgaarbiter.html File 35.58 KB 0644
vkms.html File 18.06 KB 0644
xen-front.html File 10.71 KB 0644
zynqmp.html File 135.56 KB 0644
Filemanager