aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-09-05 13:17:26 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-09-05 13:17:26 -0400
commita09e9a7a4b907f2dfa9bdb2b98a1828ab4b340b2 (patch)
treec7a2df4e887573648eeaf8f7939889046990d3f6 /Documentation
parent9ab073bc45b8b523cc39658925bb44bef35ca657 (diff)
parent86a7e1224a68511d3a1ae0b7e11581b9d37723ae (diff)
Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
Pull drm tree changes from Dave Airlie: "This is the main drm pull request, I have some overlap with sound and arm-soc, the sound patch is acked and may conflict based on -next reports but should be a trivial fixup, which I'll leave to you! Highlights: - new drivers: MSM driver from Rob Clark - non-drm: switcheroo and hdmi audio driver support for secondary GPU poweroff, so drivers can use runtime PM to poweroff the GPUs. This can save 5 or 6W on some optimus laptops. - drm core: combined GEM and TTM VMA manager per-filp mmap permission tracking initial rendernode support (via a runtime enable for now, until we get api stable), remove old proc support, lots of cleanups of legacy code hdmi vendor infoframes and 4k modes lots of gem/prime locking and races fixes async pageflip scaffolding drm bridge objects - i915: Haswell PC8+ support and eLLC support, HDMI 4K support, initial per-process VMA pieces, watermark reworks, convert to generic hdmi infoframes, encoder reworking, fastboot support, - radeon: CIK PM support, remove 3d blit code in favour of DMA engines, Berlin GPU support, HDMI audio fixes - nouveau: secondary GPU power down support for optimus laptops, lots of fixes, use MSI, VP3 engine support - exynos: runtime pm support for g2d, DT support, remove non-DT, - tda998x i2c driver: lots of fixes for sync issues - gma500: lots of cleanups - rcar: add LVDS support, fbdev emulation, - tegra: just minor fixes" * 'drm-next' of git://people.freedesktop.org/~airlied/linux: (684 commits) drm/exynos: Fix build error with exynos_drm_connector.c drm/exynos: Remove non-DT support in exynos_drm_fimd drm/exynos: Remove non-DT support in exynos_hdmi drm/exynos: Remove non-DT support in exynos_drm_g2d drm/exynos: Remove non-DT support in exynos_hdmiphy drm/exynos: Remove non-DT support in exynos_ddc drm/exynos: Make Exynos DRM drivers depend on OF drm/exynos: Consider fallback option to allocation fail drm/exynos: fimd: move platform data parsing to separate function drm/exynos: fimd: get signal polarities from device tree drm/exynos: fimd: replace struct fb_videomode with videomode drm/exynos: check a pixel format to a particular window layer drm/exynos: fix fimd pixel format setting drm/exynos: Add NULL pointer check drm/exynos: Remove redundant error messages drm/exynos: Add missing of.h header include drm/exynos: Remove redundant NULL check in exynos_drm_buf drm/exynos: add device tree support for rotator drm/exynos: Add missing includes drm/exynos: add runtime pm interfaces to g2d driver ...
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/DocBook/drm.tmpl138
-rw-r--r--Documentation/devicetree/bindings/gpu/samsung-rotator.txt27
2 files changed, 124 insertions, 41 deletions
diff --git a/Documentation/DocBook/drm.tmpl b/Documentation/DocBook/drm.tmpl
index 7d1278e7a434..ed1d6d289022 100644
--- a/Documentation/DocBook/drm.tmpl
+++ b/Documentation/DocBook/drm.tmpl
@@ -156,13 +156,6 @@
156 </para></listitem> 156 </para></listitem>
157 </varlistentry> 157 </varlistentry>
158 <varlistentry> 158 <varlistentry>
159 <term>DRIVER_USE_MTRR</term>
160 <listitem><para>
161 Driver uses MTRR interface for mapping memory, the DRM core will
162 manage MTRR resources. Deprecated.
163 </para></listitem>
164 </varlistentry>
165 <varlistentry>
166 <term>DRIVER_PCI_DMA</term> 159 <term>DRIVER_PCI_DMA</term>
167 <listitem><para> 160 <listitem><para>
168 Driver is capable of PCI DMA, mapping of PCI DMA buffers to 161 Driver is capable of PCI DMA, mapping of PCI DMA buffers to
@@ -195,28 +188,6 @@
195 </para></listitem> 188 </para></listitem>
196 </varlistentry> 189 </varlistentry>
197 <varlistentry> 190 <varlistentry>
198 <term>DRIVER_IRQ_VBL</term>
199 <listitem><para>Unused. Deprecated.</para></listitem>
200 </varlistentry>
201 <varlistentry>
202 <term>DRIVER_DMA_QUEUE</term>
203 <listitem><para>
204 Should be set if the driver queues DMA requests and completes them
205 asynchronously. Deprecated.
206 </para></listitem>
207 </varlistentry>
208 <varlistentry>
209 <term>DRIVER_FB_DMA</term>
210 <listitem><para>
211 Driver supports DMA to/from the framebuffer, mapping of frambuffer
212 DMA buffers to userspace will be supported. Deprecated.
213 </para></listitem>
214 </varlistentry>
215 <varlistentry>
216 <term>DRIVER_IRQ_VBL2</term>
217 <listitem><para>Unused. Deprecated.</para></listitem>
218 </varlistentry>
219 <varlistentry>
220 <term>DRIVER_GEM</term> 191 <term>DRIVER_GEM</term>
221 <listitem><para> 192 <listitem><para>
222 Driver use the GEM memory manager. 193 Driver use the GEM memory manager.
@@ -234,6 +205,12 @@
234 Driver implements DRM PRIME buffer sharing. 205 Driver implements DRM PRIME buffer sharing.
235 </para></listitem> 206 </para></listitem>
236 </varlistentry> 207 </varlistentry>
208 <varlistentry>
209 <term>DRIVER_RENDER</term>
210 <listitem><para>
211 Driver supports dedicated render nodes.
212 </para></listitem>
213 </varlistentry>
237 </variablelist> 214 </variablelist>
238 </sect3> 215 </sect3>
239 <sect3> 216 <sect3>
@@ -2212,6 +2189,18 @@ void intel_crt_init(struct drm_device *dev)
2212!Iinclude/drm/drm_rect.h 2189!Iinclude/drm/drm_rect.h
2213!Edrivers/gpu/drm/drm_rect.c 2190!Edrivers/gpu/drm/drm_rect.c
2214 </sect2> 2191 </sect2>
2192 <sect2>
2193 <title>Flip-work Helper Reference</title>
2194!Pinclude/drm/drm_flip_work.h flip utils
2195!Iinclude/drm/drm_flip_work.h
2196!Edrivers/gpu/drm/drm_flip_work.c
2197 </sect2>
2198 <sect2>
2199 <title>VMA Offset Manager</title>
2200!Pdrivers/gpu/drm/drm_vma_manager.c vma offset manager
2201!Edrivers/gpu/drm/drm_vma_manager.c
2202!Iinclude/drm/drm_vma_manager.h
2203 </sect2>
2215 </sect1> 2204 </sect1>
2216 2205
2217 <!-- Internals: kms properties --> 2206 <!-- Internals: kms properties -->
@@ -2422,18 +2411,18 @@ void (*postclose) (struct drm_device *, struct drm_file *);</synopsis>
2422 </abstract> 2411 </abstract>
2423 <para> 2412 <para>
2424 The <methodname>firstopen</methodname> method is called by the DRM core 2413 The <methodname>firstopen</methodname> method is called by the DRM core
2425 when an application opens a device that has no other opened file handle. 2414 for legacy UMS (User Mode Setting) drivers only when an application
2426 Similarly the <methodname>lastclose</methodname> method is called when 2415 opens a device that has no other opened file handle. UMS drivers can
2427 the last application holding a file handle opened on the device closes 2416 implement it to acquire device resources. KMS drivers can't use the
2428 it. Both methods are mostly used for UMS (User Mode Setting) drivers to 2417 method and must acquire resources in the <methodname>load</methodname>
2429 acquire and release device resources which should be done in the 2418 method instead.
2430 <methodname>load</methodname> and <methodname>unload</methodname>
2431 methods for KMS drivers.
2432 </para> 2419 </para>
2433 <para> 2420 <para>
2434 Note that the <methodname>lastclose</methodname> method is also called 2421 Similarly the <methodname>lastclose</methodname> method is called when
2435 at module unload time or, for hot-pluggable devices, when the device is 2422 the last application holding a file handle opened on the device closes
2436 unplugged. The <methodname>firstopen</methodname> and 2423 it, for both UMS and KMS drivers. Additionally, the method is also
2424 called at module unload time or, for hot-pluggable devices, when the
2425 device is unplugged. The <methodname>firstopen</methodname> and
2437 <methodname>lastclose</methodname> calls can thus be unbalanced. 2426 <methodname>lastclose</methodname> calls can thus be unbalanced.
2438 </para> 2427 </para>
2439 <para> 2428 <para>
@@ -2462,7 +2451,12 @@ void (*postclose) (struct drm_device *, struct drm_file *);</synopsis>
2462 <para> 2451 <para>
2463 The <methodname>lastclose</methodname> method should restore CRTC and 2452 The <methodname>lastclose</methodname> method should restore CRTC and
2464 plane properties to default value, so that a subsequent open of the 2453 plane properties to default value, so that a subsequent open of the
2465 device will not inherit state from the previous user. 2454 device will not inherit state from the previous user. It can also be
2455 used to execute delayed power switching state changes, e.g. in
2456 conjunction with the vga-switcheroo infrastructure. Beyond that KMS
2457 drivers should not do any further cleanup. Only legacy UMS drivers might
2458 need to clean up device state so that the vga console or an independent
2459 fbdev driver could take over.
2466 </para> 2460 </para>
2467 </sect2> 2461 </sect2>
2468 <sect2> 2462 <sect2>
@@ -2498,7 +2492,6 @@ void (*postclose) (struct drm_device *, struct drm_file *);</synopsis>
2498 <programlisting> 2492 <programlisting>
2499 .poll = drm_poll, 2493 .poll = drm_poll,
2500 .read = drm_read, 2494 .read = drm_read,
2501 .fasync = drm_fasync,
2502 .llseek = no_llseek, 2495 .llseek = no_llseek,
2503 </programlisting> 2496 </programlisting>
2504 </para> 2497 </para>
@@ -2657,6 +2650,69 @@ int (*resume) (struct drm_device *);</synopsis>
2657 info, since man pages should cover the rest. 2650 info, since man pages should cover the rest.
2658 </para> 2651 </para>
2659 2652
2653 <!-- External: render nodes -->
2654
2655 <sect1>
2656 <title>Render nodes</title>
2657 <para>
2658 DRM core provides multiple character-devices for user-space to use.
2659 Depending on which device is opened, user-space can perform a different
2660 set of operations (mainly ioctls). The primary node is always created
2661 and called <term>card&lt;num&gt;</term>. Additionally, a currently
2662 unused control node, called <term>controlD&lt;num&gt;</term> is also
2663 created. The primary node provides all legacy operations and
2664 historically was the only interface used by userspace. With KMS, the
2665 control node was introduced. However, the planned KMS control interface
2666 has never been written and so the control node stays unused to date.
2667 </para>
2668 <para>
2669 With the increased use of offscreen renderers and GPGPU applications,
2670 clients no longer require running compositors or graphics servers to
2671 make use of a GPU. But the DRM API required unprivileged clients to
2672 authenticate to a DRM-Master prior to getting GPU access. To avoid this
2673 step and to grant clients GPU access without authenticating, render