]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
Merge tag 'drm-intel-next-2014-05-23' of git://anongit.freedesktop.org/drm-intel...
authorDave Airlie <airlied@redhat.com>
Mon, 2 Jun 2014 09:55:04 +0000 (19:55 +1000)
committerDave Airlie <airlied@redhat.com>
Mon, 2 Jun 2014 09:55:04 +0000 (19:55 +1000)
- prep refactoring for execlists (Oscar Mateo)
- corner-case fixes for runtime pm (Imre)
- tons of vblank improvements from Ville
- prep work for atomic plane/sprite updates (Ville)
- more chv code, now almost complete (tons of different people)
- refactoring and improvements for drm_irq.c merged through drm-intel-next
- g4x/ilk reset improvements (Ville)
- removal of encoder->mode_set
- moved audio state tracking into pipe_config
- shuffled fb pinning out of the platform crtc modeset callbacks into core code
- userptr support (Chris)
- OOM handling improvements from Chris, with now have a neat oom notifier which
  jumps additional debug information.
- topdown allocation of ppgtt PDEs (Ben)
- fixes and small improvements all over

* tag 'drm-intel-next-2014-05-23' of git://anongit.freedesktop.org/drm-intel: (187 commits)
  drm/i915: Kill private_default_ctx off
  drm/i915: s/i915_hw_context/intel_context
  drm/i915: Split the ringbuffers from the rings (3/3)
  drm/i915: Split the ringbuffers from the rings (2/3)
  drm/i915: Split the ringbuffers from the rings (1/3)
  drm/i915: s/intel_ring_buffer/intel_engine_cs
  drm/i915: disable GT power saving early during system suspend
  drm/i915: fix possible RPM ref leaking during RPS disabling
  drm/i915: remove user GTT mappings early during runtime suspend
  drm/i915: Implement WaVcpClkGateDisableForMediaReset:ctg, elk
  drm/i915: Fix gen2 and hsw+ scanline counter
  drm/i915: Draw a picture about video timings
  drm/i915: Improve gen3/4 frame counter
  drm/i915: Add a small adjustment to the pixel counter on interlaced modes
  drm/i915: Hold CRTC lock whilst freezing the planes
  drm/i915: Only discard backing storage on releasing the last ref
  drm/i915: Wait for pending page flips before enabling/disabling the primary plane
  drm/i915: grab the audio power domain when enabling audio on HSW+
  drm/i915: don't read HSW_AUD_PIN_ELD_CP_VLD when the power well is off
  drm/i915: move bsd dispatch index somewhere better
  ...

1  2 
Documentation/DocBook/drm.tmpl

index c1c9cf2a7b48fcf6c6cff497ffe6b37ce5e79d0b,9574bf24daaa26048e8a99fa6e84edce66a44c55..00f1c25e53df8f41a5e220a5ccece2711e6f9563
@@@ -79,7 -79,7 +79,7 @@@
    <partintro>
      <para>
        This first part of the DRM Developer's Guide documents core DRM code,
 -      helper libraries for writting drivers and generic userspace interfaces
 +      helper libraries for writing drivers and generic userspace interfaces
        exposed by DRM drivers.
      </para>
    </partintro>
@@@ -451,7 -451,7 +451,7 @@@ char *date;</synopsis
        providing a solution to every graphics memory-related problems, GEM
        identified common code between drivers and created a support library to
        share it. GEM has simpler initialization and execution requirements than
 -      TTM, but has no video RAM management capabitilies and is thus limited to
 +      TTM, but has no video RAM management capabilities and is thus limited to
        UMA devices.
      </para>
      <sect2>
@@@ -881,7 -881,7 +881,7 @@@ int (*prime_fd_to_handle)(struct drm_de
            vice versa. Drivers must use the kernel dma-buf buffer sharing framework
            to manage the PRIME file descriptors. Similar to the mode setting
            API PRIME is agnostic to the underlying buffer object manager, as
 -          long as handles are 32bit unsinged integers.
 +          long as handles are 32bit unsigned integers.
          </para>
          <para>
            While non-GEM drivers must implement the operations themselves, GEM
@@@ -2348,7 -2348,7 +2348,7 @@@ void intel_crt_init(struct drm_device *
        first create properties and then create and associate individual instances
        of those properties to objects. A property can be instantiated multiple
        times and associated with different objects. Values are stored in property
 -      instances, and all other property information are stored in the propery
 +      instances, and all other property information are stored in the property
        and shared between all instances of the property.
      </para>
      <para>
        pointer to the target object, a pointer to the previously created property
        and an initial instance value.
      </para>
 +    <sect2>
 +      <title>Existing KMS Properties</title>
 +      <para>
 +      The following table gives description of drm properties exposed by various
 +      modules/drivers.
 +      </para>
 +      <table border="1" cellpadding="0" cellspacing="0">
 +      <tbody>
 +      <tr style="font-weight: bold;">
 +      <td valign="top" >Owner Module/Drivers</td>
 +      <td valign="top" >Group</td>
 +      <td valign="top" >Property Name</td>
 +      <td valign="top" >Type</td>
 +      <td valign="top" >Property Values</td>
 +      <td valign="top" >Object attached</td>
 +      <td valign="top" >Description/Restrictions</td>
 +      </tr>
 +      <tr>
 +      <td rowspan="19" valign="top" >DRM</td>
 +      <td rowspan="2" valign="top" >Generic</td>
 +      <td valign="top" >“EDID”</td>
 +      <td valign="top" >BLOB | IMMUTABLE</td>
 +      <td valign="top" >0</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >Contains id of edid blob ptr object.</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“DPMS”</td>
 +      <td valign="top" >ENUM</td>
 +      <td valign="top" >{ “On”, “Standby”, “Suspend”, “Off” }</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >Contains DPMS operation mode value.</td>
 +      </tr>
 +      <tr>
 +      <td rowspan="2" valign="top" >DVI-I</td>
 +      <td valign="top" >“subconnector”</td>
 +      <td valign="top" >ENUM</td>
 +      <td valign="top" >{ “Unknown”, “DVI-D”, “DVI-A” }</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“select subconnector”</td>
 +      <td valign="top" >ENUM</td>
 +      <td valign="top" >{ “Automatic”, “DVI-D”, “DVI-A” }</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td rowspan="13" valign="top" >TV</td>
 +      <td valign="top" >“subconnector”</td>
 +      <td valign="top" >ENUM</td>
 +      <td valign="top" >{ "Unknown", "Composite", "SVIDEO", "Component", "SCART" }</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“select subconnector”</td>
 +      <td valign="top" >ENUM</td>
 +      <td valign="top" >{ "Automatic", "Composite", "SVIDEO", "Component", "SCART" }</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“mode”</td>
 +      <td valign="top" >ENUM</td>
 +      <td valign="top" >{ "NTSC_M", "NTSC_J", "NTSC_443", "PAL_B" } etc.</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“left margin”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=100</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“right margin”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=100</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“top margin”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=100</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“bottom margin”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=100</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“brightness”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=100</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“contrast”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=100</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“flicker reduction”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=100</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“overscan”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=100</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“saturation”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=100</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“hue”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=100</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td rowspan="2" valign="top" >Optional</td>
 +      <td valign="top" >“scaling mode”</td>
 +      <td valign="top" >ENUM</td>
 +      <td valign="top" >{ "None", "Full", "Center", "Full aspect" }</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“dirty”</td>
 +      <td valign="top" >ENUM | IMMUTABLE</td>
 +      <td valign="top" >{ "Off", "On", "Annotate" }</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td rowspan="21" valign="top" >i915</td>
 +      <td rowspan="3" valign="top" >Generic</td>
 +      <td valign="top" >"Broadcast RGB"</td>
 +      <td valign="top" >ENUM</td>
 +      <td valign="top" >{ "Automatic", "Full", "Limited 16:235" }</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“audio”</td>
 +      <td valign="top" >ENUM</td>
 +      <td valign="top" >{ "force-dvi", "off", "auto", "on" }</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >Standard name as in DRM</td>
 +      <td valign="top" >Standard type as in DRM</td>
 +      <td valign="top" >Standard value as in DRM</td>
 +      <td valign="top" >Standard Object as in DRM</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td rowspan="17" valign="top" >SDVO-TV</td>
 +      <td valign="top" >“mode”</td>
 +      <td valign="top" >ENUM</td>
 +      <td valign="top" >{ "NTSC_M", "NTSC_J", "NTSC_443", "PAL_B" } etc.</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >"left_margin"</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >"right_margin"</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >"top_margin"</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >"bottom_margin"</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“hpos”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“vpos”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“contrast”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“saturation”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“hue”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“sharpness”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“flicker_filter”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“flicker_filter_adaptive”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“flicker_filter_2d”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“tv_chroma_filter”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“tv_luma_filter”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“dot_crawl”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=1</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >SDVO-TV/LVDS</td>
 +      <td valign="top" >“brightness”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td rowspan="3" valign="top" >CDV gma-500</td>
 +      <td rowspan="3" valign="top" >Generic</td>
 +      <td valign="top" >"Broadcast RGB"</td>
 +      <td valign="top" >ENUM</td>
 +      <td valign="top" >{ “Full”, “Limited 16:235” }</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >"Broadcast RGB"</td>
 +      <td valign="top" >ENUM</td>
 +      <td valign="top" >{ “off”, “auto”, “on” }</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >Standard name as in DRM</td>
 +      <td valign="top" >Standard type as in DRM</td>
 +      <td valign="top" >Standard value as in DRM</td>
 +      <td valign="top" >Standard Object as in DRM</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td rowspan="20" valign="top" >Poulsbo</td>
 +      <td rowspan="2" valign="top" >Generic</td>
 +      <td valign="top" >“backlight”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=100</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >Standard name as in DRM</td>
 +      <td valign="top" >Standard type as in DRM</td>
 +      <td valign="top" >Standard value as in DRM</td>
 +      <td valign="top" >Standard Object as in DRM</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td rowspan="17" valign="top" >SDVO-TV</td>
 +      <td valign="top" >“mode”</td>
 +      <td valign="top" >ENUM</td>
 +      <td valign="top" >{ "NTSC_M", "NTSC_J", "NTSC_443", "PAL_B" } etc.</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >"left_margin"</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >"right_margin"</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >"top_margin"</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >"bottom_margin"</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“hpos”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“vpos”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“contrast”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“saturation”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“hue”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“sharpness”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“flicker_filter”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“flicker_filter_adaptive”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“flicker_filter_2d”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“tv_chroma_filter”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“tv_luma_filter”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“dot_crawl”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=1</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >SDVO-TV/LVDS</td>
 +      <td valign="top" >“brightness”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max= SDVO dependent</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td rowspan="11" valign="top" >armada</td>
 +      <td rowspan="2" valign="top" >CRTC</td>
 +      <td valign="top" >"CSC_YUV"</td>
 +      <td valign="top" >ENUM</td>
 +      <td valign="top" >{ "Auto" , "CCIR601", "CCIR709" }</td>
 +      <td valign="top" >CRTC</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >"CSC_RGB"</td>
 +      <td valign="top" >ENUM</td>
 +      <td valign="top" >{ "Auto", "Computer system", "Studio" }</td>
 +      <td valign="top" >CRTC</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td rowspan="9" valign="top" >Overlay</td>
 +      <td valign="top" >"colorkey"</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=0xffffff</td>
 +      <td valign="top" >Plane</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >"colorkey_min"</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=0xffffff</td>
 +      <td valign="top" >Plane</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >"colorkey_max"</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=0xffffff</td>
 +      <td valign="top" >Plane</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >"colorkey_val"</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=0xffffff</td>
 +      <td valign="top" >Plane</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >"colorkey_alpha"</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=0xffffff</td>
 +      <td valign="top" >Plane</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >"colorkey_mode"</td>
 +      <td valign="top" >ENUM</td>
 +      <td valign="top" >{ "disabled", "Y component", "U component"
 +      , "V component", "RGB", “R component", "G component", "B component" }</td>
 +      <td valign="top" >Plane</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >"brightness"</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=256 + 255</td>
 +      <td valign="top" >Plane</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >"contrast"</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=0x7fff</td>
 +      <td valign="top" >Plane</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >"saturation"</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=0x7fff</td>
 +      <td valign="top" >Plane</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td rowspan="2" valign="top" >exynos</td>
 +      <td valign="top" >CRTC</td>
 +      <td valign="top" >“mode”</td>
 +      <td valign="top" >ENUM</td>
 +      <td valign="top" >{ "normal", "blank" }</td>
 +      <td valign="top" >CRTC</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >Overlay</td>
 +      <td valign="top" >“zpos”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=MAX_PLANE-1</td>
 +      <td valign="top" >Plane</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td rowspan="3" valign="top" >i2c/ch7006_drv</td>
 +      <td valign="top" >Generic</td>
 +      <td valign="top" >“scale”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=2</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td rowspan="2" valign="top" >TV</td>
 +      <td valign="top" >Standard names as in DRM</td>
 +      <td valign="top" >Standard types as in DRM</td>
 +      <td valign="top" >Standard Values as in DRM</td>
 +      <td valign="top" >Standard object as in DRM</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“mode”</td>
 +      <td valign="top" >ENUM</td>
 +      <td valign="top" >{ "PAL", "PAL-M","PAL-N"}, ”PAL-Nc"
 +      , "PAL-60", "NTSC-M", "NTSC-J" }</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td rowspan="16" valign="top" >noveau</td>
 +      <td rowspan="6" valign="top" >NV10 Overlay</td>
 +      <td valign="top" >"colorkey"</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=0x01ffffff</td>
 +      <td valign="top" >Plane</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“contrast”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=8192-1</td>
 +      <td valign="top" >Plane</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“brightness”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=1024</td>
 +      <td valign="top" >Plane</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“hue”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=359</td>
 +      <td valign="top" >Plane</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“saturation”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=8192-1</td>
 +      <td valign="top" >Plane</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“iturbt_709”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=1</td>
 +      <td valign="top" >Plane</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td rowspan="2" valign="top" >Nv04 Overlay</td>
 +      <td valign="top" >“colorkey”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=0x01ffffff</td>
 +      <td valign="top" >Plane</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“brightness”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=1024</td>
 +      <td valign="top" >Plane</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td rowspan="7" valign="top" >Display</td>
 +      <td valign="top" >“dithering mode”</td>
 +      <td valign="top" >ENUM</td>
 +      <td valign="top" >{ "auto", "off", "on" }</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“dithering depth”</td>
 +      <td valign="top" >ENUM</td>
 +      <td valign="top" >{ "auto", "off", "on", "static 2x2", "dynamic 2x2", "temporal" }</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“underscan”</td>
 +      <td valign="top" >ENUM</td>
 +      <td valign="top" >{ "auto", "6 bpc", "8 bpc" }</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“underscan hborder”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=128</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“underscan vborder”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=128</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“vibrant hue”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=180</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“color vibrance”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=200</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >Generic</td>
 +      <td valign="top" >Standard name as in DRM</td>
 +      <td valign="top" >Standard type as in DRM</td>
 +      <td valign="top" >Standard value as in DRM</td>
 +      <td valign="top" >Standard Object as in DRM</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td rowspan="2" valign="top" >omap</td>
 +      <td rowspan="2" valign="top" >Generic</td>
 +      <td valign="top" >“rotation”</td>
 +      <td valign="top" >BITMASK</td>
 +      <td valign="top" >{ 0, "rotate-0" },
 +      { 1, "rotate-90" },
 +      { 2, "rotate-180" },
 +      { 3, "rotate-270" },
 +      { 4, "reflect-x" },
 +      { 5, "reflect-y" }</td>
 +      <td valign="top" >CRTC, Plane</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >“zorder”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=3</td>
 +      <td valign="top" >CRTC, Plane</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >qxl</td>
 +      <td valign="top" >Generic</td>
 +      <td valign="top" >“hotplug_mode_update"</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=1</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td rowspan="10" valign="top" >radeon</td>
 +      <td valign="top" >DVI-I</td>
 +      <td valign="top" >“coherent”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=1</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >DAC enable load detect</td>
 +      <td valign="top" >“load detection”</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=1</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >TV Standard</td>
 +      <td valign="top" >"tv standard"</td>
 +      <td valign="top" >ENUM</td>
 +      <td valign="top" >{ "ntsc", "pal", "pal-m", "pal-60", "ntsc-j"
 +      , "scart-pal", "pal-cn", "secam" }</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >legacy TMDS PLL detect</td>
 +      <td valign="top" >"tmds_pll"</td>
 +      <td valign="top" >ENUM</td>
 +      <td valign="top" >{ "driver", "bios" }</td>
 +      <td valign="top" >-</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td rowspan="3" valign="top" >Underscan</td>
 +      <td valign="top" >"underscan"</td>
 +      <td valign="top" >ENUM</td>
 +      <td valign="top" >{ "off", "on", "auto" }</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >"underscan hborder"</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=128</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >"underscan vborder"</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=128</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >Audio</td>
 +      <td valign="top" >“audio”</td>
 +      <td valign="top" >ENUM</td>
 +      <td valign="top" >{ "off", "on", "auto" }</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >FMT Dithering</td>
 +      <td valign="top" >“dither”</td>
 +      <td valign="top" >ENUM</td>
 +      <td valign="top" >{ "off", "on" }</td>
 +      <td valign="top" >Connector</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >Generic</td>
 +      <td valign="top" >Standard name as in DRM</td>
 +      <td valign="top" >Standard type as in DRM</td>
 +      <td valign="top" >Standard value as in DRM</td>
 +      <td valign="top" >Standard Object as in DRM</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td rowspan="3" valign="top" >rcar-du</td>
 +      <td rowspan="3" valign="top" >Generic</td>
 +      <td valign="top" >"alpha"</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=255</td>
 +      <td valign="top" >Plane</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >"colorkey"</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=0, Max=0x01ffffff</td>
 +      <td valign="top" >Plane</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      <tr>
 +      <td valign="top" >"zpos"</td>
 +      <td valign="top" >RANGE</td>
 +      <td valign="top" >Min=1, Max=7</td>
 +      <td valign="top" >Plane</td>
 +      <td valign="top" >TBD</td>
 +      </tr>
 +      </tbody>
 +      </table>
 +    </sect2>
    </sect1>
  
    <!-- Internals: vertical blanking -->
@@@ -3368,6 -2519,10 +3368,10 @@@ void (*disable_vblank) (struct drm_devi
        with a call to <function>drm_vblank_cleanup</function> in the driver
        <methodname>unload</methodname> operation handler.
      </para>
+     <sect2>
+       <title>Vertical Blanking and Interrupt Handling Functions Reference</title>
+ !Edrivers/gpu/drm/drm_irq.c
+     </sect2>
    </sect1>
  
    <!-- Internals: open/close, file operations and ioctls -->
@@@ -3538,10 -2693,10 +3542,10 @@@ int num_ioctls;</synopsis
    <sect1>
      <title>Legacy Support Code</title>
      <para>
 -      The section very brievely covers some of the old legacy support code which
 +      The section very briefly covers some of the old legacy support code which
        is only used by old DRM drivers which have done a so-called shadow-attach
        to the underlying device instead of registering as a real driver. This
 -      also includes some of the old generic buffer mangement and command
 +      also includes some of the old generic buffer management and command
        submission code. Do not use any of this in new and modern drivers.
      </para>
  
              <term>DRM_IOCTL_MODESET_CTL</term>
              <listitem>
                <para>
-                 This should be called by application level drivers before and
-                 after mode setting, since on many devices the vertical blank
-                 counter is reset at that time.  Internally, the DRM snapshots
-                 the last vblank count when the ioctl is called with the
-                 _DRM_PRE_MODESET command, so that the counter won't go backwards
-                 (which is dealt with when _DRM_POST_MODESET is used).
+               This was only used for user-mode-settind drivers around
+               modesetting changes to allow the kernel to update the vblank
+               interrupt after mode setting, since on many devices the vertical
+               blank counter is reset to 0 at some point during modeset. Modern
+               drivers should not call this any more since with kernel mode
+               setting it is a no-op.
                </para>
              </listitem>
            </varlistentry>
          </variablelist>
- <!--!Edrivers/char/drm/drm_irq.c-->
        </para>
      </sect1>
  
          probing, so those sections fully apply.
          </para>
        </sect2>
+       <sect2>
+         <title>DPIO</title>
+ !Pdrivers/gpu/drm/i915/i915_reg.h DPIO
+       <table id="dpiox2">
+         <title>Dual channel PHY (VLV/CHV)</title>
+         <tgroup cols="8">
+           <colspec colname="c0" />
+           <colspec colname="c1" />
+           <colspec colname="c2" />
+           <colspec colname="c3" />
+           <colspec colname="c4" />
+           <colspec colname="c5" />
+           <colspec colname="c6" />
+           <colspec colname="c7" />
+           <spanspec spanname="ch0" namest="c0" nameend="c3" />
+           <spanspec spanname="ch1" namest="c4" nameend="c7" />
+           <spanspec spanname="ch0pcs01" namest="c0" nameend="c1" />
+           <spanspec spanname="ch0pcs23" namest="c2" nameend="c3" />
+           <spanspec spanname="ch1pcs01" namest="c4" nameend="c5" />
+           <spanspec spanname="ch1pcs23" namest="c6" nameend="c7" />
+           <thead>
+             <row>
+               <entry spanname="ch0">CH0</entry>
+               <entry spanname="ch1">CH1</entry>
+             </row>
+           </thead>
+           <tbody valign="top" align="center">
+             <row>
+               <entry spanname="ch0">CMN/PLL/REF</entry>
+               <entry spanname="ch1">CMN/PLL/REF</entry>
+             </row>
+             <row>
+               <entry spanname="ch0pcs01">PCS01</entry>
+               <entry spanname="ch0pcs23">PCS23</entry>
+               <entry spanname="ch1pcs01">PCS01</entry>
+               <entry spanname="ch1pcs23">PCS23</entry>
+             </row>
+             <row>
+               <entry>TX0</entry>
+               <entry>TX1</entry>
+               <entry>TX2</entry>
+               <entry>TX3</entry>
+               <entry>TX0</entry>
+               <entry>TX1</entry>
+               <entry>TX2</entry>
+               <entry>TX3</entry>
+             </row>
+             <row>
+               <entry spanname="ch0">DDI0</entry>
+               <entry spanname="ch1">DDI1</entry>
+             </row>
+           </tbody>
+         </tgroup>
+       </table>
+       <table id="dpiox1">
+         <title>Single channel PHY (CHV)</title>
+         <tgroup cols="4">
+           <colspec colname="c0" />
+           <colspec colname="c1" />
+           <colspec colname="c2" />
+           <colspec colname="c3" />
+           <spanspec spanname="ch0" namest="c0" nameend="c3" />
+           <spanspec spanname="ch0pcs01" namest="c0" nameend="c1" />
+           <spanspec spanname="ch0pcs23" namest="c2" nameend="c3" />
+           <thead>
+             <row>
+               <entry spanname="ch0">CH0</entry>
+             </row>
+           </thead>
+           <tbody valign="top" align="center">
+             <row>
+               <entry spanname="ch0">CMN/PLL/REF</entry>
+             </row>
+             <row>
+               <entry spanname="ch0pcs01">PCS01</entry>
+               <entry spanname="ch0pcs23">PCS23</entry>
+             </row>
+             <row>
+               <entry>TX0</entry>
+               <entry>TX1</entry>
+               <entry>TX2</entry>
+               <entry>TX3</entry>
+             </row>
+             <row>
+               <entry spanname="ch0">DDI2</entry>
+             </row>
+           </tbody>
+         </tgroup>
+       </table>
+       </sect2>
      </sect1>
  
      <sect1>