Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 988adfdf authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux

Pull drm updates from Dave Airlie:
 "Highlights:

   - AMD KFD driver merge

     This is the AMD HSA interface for exposing a lowlevel interface for
     GPGPU use.  They have an open source userspace built on top of this
     interface, and the code looks as good as it was going to get out of
     tree.

   - Initial atomic modesetting work

     The need for an atomic modesetting interface to allow userspace to
     try and send a complete set of modesetting state to the driver has
     arisen, and been suffering from neglect this past year.  No more,
     the start of the common code and changes for msm driver to use it
     are in this tree.  Ongoing work to get the userspace ioctl finished
     and the code clean will probably wait until next kernel.

   - DisplayID 1.3 and tiled monitor exposed to userspace.

     Tiled monitor property is now exposed for userspace to make use of.

   - Rockchip drm driver merged.

   - imx gpu driver moved out of staging

  Other stuff:

   - core:
        panel - MIPI DSI + new panels.
        expose suggested x/y properties for virtual GPUs

   - i915:
        Initial Skylake (SKL) support
        gen3/4 reset work
        start of dri1/ums removal
        infoframe tracking
        fixes for lots of things.

   - nouveau:
        tegra k1 voltage support
        GM204 modesetting support
        GT21x memory reclocking work

   - radeon:
        CI dpm fixes
        GPUVM improvements
        Initial DPM fan control

   - rcar-du:
        HDMI support added
        removed some support for old boards
        slave encoder driver for Analog Devices adv7511

   - exynos:
        Exynos4415 SoC support

   - msm:
        a4xx gpu support
        atomic helper conversion

   - tegra:
        iommu support
        universal plane support
        ganged-mode DSI support

   - sti:
        HDMI i2c improvements

   - vmwgfx:
        some late fixes.

   - qxl:
        use suggested x/y properties"

* 'drm-next' of git://people.freedesktop.org/~airlied/linux: (969 commits)
  drm: sti: fix module compilation issue
  drm/i915: save/restore GMBUS freq across suspend/resume on gen4
  drm: sti: correctly cleanup CRTC and planes
  drm: sti: add HQVDP plane
  drm: sti: add cursor plane
  drm: sti: enable auxiliary CRTC
  drm: sti: fix delay in VTG programming
  drm: sti: prepare sti_tvout to support auxiliary crtc
  drm: sti: use drm_crtc_vblank_{on/off} instead of drm_vblank_{on/off}
  drm: sti: fix hdmi avi infoframe
  drm: sti: remove event lock while disabling vblank
  drm: sti: simplify gdp code
  drm: sti: clear all mixer control
  drm: sti: remove gpio for HDMI hot plug detection
  drm: sti: allow to change hdmi ddc i2c adapter
  drm/doc: Document drm_add_modes_noedid() usage
  drm/i915: Remove '& 0xffff' from the mask given to WA_REG()
  drm/i915: Invert the mask and val arguments in wa_add() and WA_REG()
  drm: Zero out DRM object memory upon cleanup
  drm/i915/bdw: Fix the write setting up the WIZ hashing mode
  ...
parents 26178ec1 4e0cd681
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -1197,6 +1197,13 @@ S: R. Tocantins, 89 - Cristo Rei
S: 80050-430 - Curitiba - Paraná
S: Brazil

N: Oded Gabbay
E: oded.gabbay@gmail.com
D: AMD KFD maintainer
S: 12 Shraga Raphaeli
S: Petah-Tikva, 4906418
S: Israel

N: Kumar Gala
E: galak@kernel.crashing.org
D: Embedded PowerPC 6xx/7xx/74xx/82xx/83xx/85xx support
+292 −142
Original line number Diff line number Diff line
@@ -963,6 +963,12 @@ struct drm_gem_object * (*gem_prime_import)(struct drm_device *dev,
!Edrivers/gpu/drm/drm_mm.c
!Iinclude/drm/drm_mm.h
    </sect2>
    <sect2>
      <title>CMA Helper Functions Reference</title>
!Pdrivers/gpu/drm/drm_gem_cma_helper.c cma helpers
!Edrivers/gpu/drm/drm_gem_cma_helper.c
!Iinclude/drm/drm_gem_cma_helper.h
    </sect2>
  </sect1>

  <!-- Internals: mode setting -->
@@ -994,6 +1000,10 @@ int max_width, max_height;</synopsis>
      <title>Display Modes Function Reference</title>
!Iinclude/drm/drm_modes.h
!Edrivers/gpu/drm/drm_modes.c
    </sect2>
    <sect2>
      <title>Atomic Mode Setting Function Reference</title>
!Edrivers/gpu/drm/drm_atomic.c
    </sect2>
    <sect2>
      <title>Frame Buffer Creation</title>
@@ -1825,6 +1835,10 @@ void intel_crt_init(struct drm_device *dev)
    <sect2>
      <title>KMS API Functions</title>
!Edrivers/gpu/drm/drm_crtc.c
    </sect2>
    <sect2>
      <title>KMS Data Structures</title>
!Iinclude/drm/drm_crtc.h
    </sect2>
    <sect2>
      <title>KMS Locking</title>
@@ -1934,9 +1948,15 @@ void intel_crt_init(struct drm_device *dev)
            <methodname>get_modes</methodname> helper operation.
          </para>
         <para>
            The function filters out modes larger than
            If the helper operation returns no mode, and if the connector status
            is connector_status_connected, standard VESA DMT modes up to
            1024x768 are automatically added to the modes list by a call to
            <function>drm_add_modes_noedid</function>.
          </para>
          <para>
            The function then filters out modes larger than
            <parameter>max_width</parameter> and <parameter>max_height</parameter>
            if specified. It then calls the optional connector
            if specified. It finally calls the optional connector
            <methodname>mode_valid</methodname> helper operation for each mode in
            the probed list to check whether the mode is valid for the connector.
          </para>
@@ -2076,11 +2096,19 @@ void intel_crt_init(struct drm_device *dev)
          <synopsis>int (*get_modes)(struct drm_connector *connector);</synopsis>
          <para>
            Fill the connector's <structfield>probed_modes</structfield> list
            by parsing EDID data with <function>drm_add_edid_modes</function> or
            calling <function>drm_mode_probed_add</function> directly for every
            by parsing EDID data with <function>drm_add_edid_modes</function>,
            adding standard VESA DMT modes with <function>drm_add_modes_noedid</function>,
            or calling <function>drm_mode_probed_add</function> directly for every
            supported mode and return the number of modes it has detected. This
            operation is mandatory.
          </para>
          <para>
            Note that the caller function will automatically add standard VESA
            DMT modes up to 1024x768 if the <methodname>get_modes</methodname>
            helper operation returns no mode and if the connector status is
            connector_status_connected. There is no need to call
            <function>drm_add_edid_modes</function> manually in that case.
          </para>
          <para>
            When adding modes manually the driver creates each mode with a call to
            <function>drm_mode_create</function> and must fill the following fields.
@@ -2278,7 +2306,7 @@ void intel_crt_init(struct drm_device *dev)
            <function>drm_helper_probe_single_connector_modes</function>.
          </para>
          <para>
            When parsing EDID data, <function>drm_add_edid_modes</function> fill the
            When parsing EDID data, <function>drm_add_edid_modes</function> fills the
            connector <structfield>display_info</structfield>
            <structfield>width_mm</structfield> and
            <structfield>height_mm</structfield> fields. When creating modes
@@ -2315,9 +2343,27 @@ void intel_crt_init(struct drm_device *dev)
        </listitem>
      </itemizedlist>
    </sect2>
    <sect2>
      <title>Atomic Modeset Helper Functions Reference</title>
      <sect3>
	<title>Overview</title>
!Pdrivers/gpu/drm/drm_atomic_helper.c overview
      </sect3>
      <sect3>
	<title>Implementing Asynchronous Atomic Commit</title>
!Pdrivers/gpu/drm/drm_atomic_helper.c implementing async commit
      </sect3>
      <sect3>
	<title>Atomic State Reset and Initialization</title>
!Pdrivers/gpu/drm/drm_atomic_helper.c atomic state reset and initialization
      </sect3>
!Iinclude/drm/drm_atomic_helper.h
!Edrivers/gpu/drm/drm_atomic_helper.c
    </sect2>
    <sect2>
      <title>Modeset Helper Functions Reference</title>
!Edrivers/gpu/drm/drm_crtc_helper.c
!Pdrivers/gpu/drm/drm_crtc_helper.c overview
    </sect2>
    <sect2>
      <title>Output Probing Helper Functions Reference</title>
@@ -2341,6 +2387,12 @@ void intel_crt_init(struct drm_device *dev)
!Pdrivers/gpu/drm/drm_dp_mst_topology.c dp mst helper
!Iinclude/drm/drm_dp_mst_helper.h
!Edrivers/gpu/drm/drm_dp_mst_topology.c
    </sect2>
    <sect2>
      <title>MIPI DSI Helper Functions Reference</title>
!Pdrivers/gpu/drm/drm_mipi_dsi.c dsi helpers
!Iinclude/drm/drm_mipi_dsi.h
!Edrivers/gpu/drm/drm_mipi_dsi.c
    </sect2>
    <sect2>
      <title>EDID Helper Functions Reference</title>
@@ -2371,7 +2423,12 @@ void intel_crt_init(struct drm_device *dev)
    </sect2>
    <sect2>
      <title id="drm-kms-planehelpers">Plane Helper Reference</title>
!Edrivers/gpu/drm/drm_plane_helper.c Plane Helpers
!Edrivers/gpu/drm/drm_plane_helper.c
!Pdrivers/gpu/drm/drm_plane_helper.c overview
    </sect2>
    <sect2>
	  <title>Tile group</title>
!Pdrivers/gpu/drm/drm_crtc.c Tile group
    </sect2>
  </sect1>

@@ -2507,8 +2564,8 @@ void intel_crt_init(struct drm_device *dev)
	<td valign="top" >Description/Restrictions</td>
	</tr>
	<tr>
	<td rowspan="21" valign="top" >DRM</td>
	<td rowspan="2" valign="top" >Generic</td>
	<td rowspan="25" valign="top" >DRM</td>
	<td rowspan="4" valign="top" >Generic</td>
	<td valign="top" >“EDID”</td>
	<td valign="top" >BLOB | IMMUTABLE</td>
	<td valign="top" >0</td>
@@ -2523,6 +2580,20 @@ void intel_crt_init(struct drm_device *dev)
	<td valign="top" >Contains DPMS operation mode value.</td>
	</tr>
	<tr>
	<td valign="top" >“PATH”</td>
	<td valign="top" >BLOB | IMMUTABLE</td>
	<td valign="top" >0</td>
	<td valign="top" >Connector</td>
	<td valign="top" >Contains topology path to a connector.</td>
	</tr>
	<tr>
	<td valign="top" >“TILE”</td>
	<td valign="top" >BLOB | IMMUTABLE</td>
	<td valign="top" >0</td>
	<td valign="top" >Connector</td>
	<td valign="top" >Contains tiling information for a connector.</td>
	</tr>
	<tr>
	<td rowspan="1" valign="top" >Plane</td>
	<td valign="top" >“type”</td>
	<td valign="top" >ENUM | IMMUTABLE</td>
@@ -2638,6 +2709,21 @@ void intel_crt_init(struct drm_device *dev)
	<td valign="top" >TBD</td>
	</tr>
	<tr>
	<td rowspan="2" valign="top" >Virtual GPU</td>
	<td valign="top" >“suggested X”</td>
	<td valign="top" >RANGE</td>
	<td valign="top" >Min=0, Max=0xffffffff</td>
	<td valign="top" >Connector</td>
	<td valign="top" >property to suggest an X offset for a connector</td>
	</tr>
	<tr>
	<td valign="top" >“suggested Y”</td>
	<td valign="top" >RANGE</td>
	<td valign="top" >Min=0, Max=0xffffffff</td>
	<td valign="top" >Connector</td>
	<td valign="top" >property to suggest an Y offset for a connector</td>
	</tr>
	<tr>
	<td rowspan="3" valign="top" >Optional</td>
	<td valign="top" >“scaling mode”</td>
	<td valign="top" >ENUM</td>
@@ -3787,6 +3873,26 @@ int num_ioctls;</synopsis>
      blocks. This excludes a set of SoC platforms with an SGX rendering unit,
      those have basic support through the gma500 drm driver.
    </para>
    <sect1>
      <title>Core Driver Infrastructure</title>
      <para>
	This section covers core driver infrastructure used by both the display
	and the GEM parts of the driver.
      </para>
      <sect2>
        <title>Runtime Power Management</title>
!Pdrivers/gpu/drm/i915/intel_runtime_pm.c runtime pm
!Idrivers/gpu/drm/i915/intel_runtime_pm.c
      </sect2>
      <sect2>
        <title>Interrupt Handling</title>
!Pdrivers/gpu/drm/i915/i915_irq.c interrupt handling
!Fdrivers/gpu/drm/i915/i915_irq.c intel_irq_init intel_irq_init_hw intel_hpd_init
!Fdrivers/gpu/drm/i915/i915_irq.c intel_irq_fini
!Fdrivers/gpu/drm/i915/i915_irq.c intel_runtime_pm_disable_interrupts
!Fdrivers/gpu/drm/i915/i915_irq.c intel_runtime_pm_enable_interrupts
      </sect2>
    </sect1>
    <sect1>
      <title>Display Hardware Handling</title>
      <para>
@@ -3803,6 +3909,18 @@ int num_ioctls;</synopsis>
          configuration change.
        </para>
      </sect2>
      <sect2>
        <title>Frontbuffer Tracking</title>
!Pdrivers/gpu/drm/i915/intel_frontbuffer.c frontbuffer tracking
!Idrivers/gpu/drm/i915/intel_frontbuffer.c
!Fdrivers/gpu/drm/i915/intel_drv.h intel_frontbuffer_flip
!Fdrivers/gpu/drm/i915/i915_gem.c i915_gem_track_fb
      </sect2>
      <sect2>
        <title>Display FIFO Underrun Reporting</title>
!Pdrivers/gpu/drm/i915/intel_fifo_underrun.c fifo underrun handling
!Idrivers/gpu/drm/i915/intel_fifo_underrun.c
      </sect2>
      <sect2>
        <title>Plane Configuration</title>
        <para>
@@ -3822,6 +3940,16 @@ int num_ioctls;</synopsis>
	  probing, so those sections fully apply.
        </para>
      </sect2>
      <sect2>
	<title>High Definition Audio</title>
!Pdrivers/gpu/drm/i915/intel_audio.c High Definition Audio over HDMI and Display Port
!Idrivers/gpu/drm/i915/intel_audio.c
      </sect2>
      <sect2>
	<title>Panel Self Refresh PSR (PSR/SRD)</title>
!Pdrivers/gpu/drm/i915/intel_psr.c Panel Self Refresh (PSR/SRD)
!Idrivers/gpu/drm/i915/intel_psr.c
      </sect2>
      <sect2>
        <title>DPIO</title>
!Pdrivers/gpu/drm/i915/i915_reg.h DPIO
@@ -3931,6 +4059,28 @@ int num_ioctls;</synopsis>
!Idrivers/gpu/drm/i915/intel_lrc.c
      </sect2>
    </sect1>

    <sect1>
      <title> Tracing </title>
      <para>
    This sections covers all things related to the tracepoints implemented in
    the i915 driver.
      </para>
      <sect2>
        <title> i915_ppgtt_create and i915_ppgtt_release </title>
!Pdrivers/gpu/drm/i915/i915_trace.h i915_ppgtt_create and i915_ppgtt_release tracepoints
      </sect2>
      <sect2>
        <title> i915_context_create and i915_context_free </title>
!Pdrivers/gpu/drm/i915/i915_trace.h i915_context_create and i915_context_free tracepoints
      </sect2>
      <sect2>
        <title> switch_mm </title>
!Pdrivers/gpu/drm/i915/i915_trace.h switch_mm tracepoint
      </sect2>
    </sect1>

  </chapter>
!Cdrivers/gpu/drm/i915/i915_irq.c
</part>
</book>
Loading