aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-12-15 18:52:01 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2014-12-15 18:52:01 -0500
commit988adfdffdd43cfd841df734664727993076d7cb (patch)
tree6794f7bba8f595500c2b7d33376ad6614adcfaf2 /Documentation
parent26178ec11ef3c6c814bf16a0a2b9c2f7242e3c64 (diff)
parent4e0cd68115620bc3236ff4e58e4c073948629b41 (diff)
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 ...
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/DocBook/drm.tmpl434
-rw-r--r--Documentation/devicetree/bindings/drm/imx/fsl-imx-drm.txt (renamed from Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt)0
-rw-r--r--Documentation/devicetree/bindings/drm/imx/hdmi.txt (renamed from Documentation/devicetree/bindings/staging/imx-drm/hdmi.txt)0
-rw-r--r--Documentation/devicetree/bindings/drm/imx/ldb.txt (renamed from Documentation/devicetree/bindings/staging/imx-drm/ldb.txt)0
-rw-r--r--Documentation/devicetree/bindings/gpu/nvidia,tegra20-host1x.txt2
-rw-r--r--Documentation/devicetree/bindings/gpu/st,stih4xx.txt29
-rw-r--r--Documentation/devicetree/bindings/panel/auo,b116xw03.txt7
-rw-r--r--Documentation/devicetree/bindings/panel/hannstar,hsd070pww1.txt7
-rw-r--r--Documentation/devicetree/bindings/panel/hit,tx23d38vm0caa.txt7
-rw-r--r--Documentation/devicetree/bindings/panel/innolux,g121i1-l01.txt7
-rw-r--r--Documentation/devicetree/bindings/panel/sharp,lq101r1sx01.txt49
-rw-r--r--Documentation/devicetree/bindings/vendor-prefixes.txt2
-rw-r--r--Documentation/devicetree/bindings/video/adi,adv7511.txt88
-rw-r--r--Documentation/devicetree/bindings/video/exynos_dsim.txt1
-rw-r--r--Documentation/devicetree/bindings/video/rockchip-drm.txt19
-rw-r--r--Documentation/devicetree/bindings/video/rockchip-vop.txt58
-rw-r--r--Documentation/devicetree/bindings/video/samsung-fimd.txt1
17 files changed, 567 insertions, 144 deletions
diff --git a/Documentation/DocBook/drm.tmpl b/Documentation/DocBook/drm.tmpl
index be35bc328b77..4b592ffbafee 100644
--- a/Documentation/DocBook/drm.tmpl
+++ b/Documentation/DocBook/drm.tmpl
@@ -492,10 +492,10 @@ char *date;</synopsis>
492 <sect2> 492 <sect2>
493 <title>The Translation Table Manager (TTM)</title> 493 <title>The Translation Table Manager (TTM)</title>
494 <para> 494 <para>
495 TTM design background and information belongs here. 495 TTM design background and information belongs here.
496 </para> 496 </para>
497 <sect3> 497 <sect3>
498 <title>TTM initialization</title> 498 <title>TTM initialization</title>
499 <warning><para>This section is outdated.</para></warning> 499 <warning><para>This section is outdated.</para></warning>
500 <para> 500 <para>
501 Drivers wishing to support TTM must fill out a drm_bo_driver 501 Drivers wishing to support TTM must fill out a drm_bo_driver
@@ -503,42 +503,42 @@ char *date;</synopsis>
503 pointers for initializing the TTM, allocating and freeing memory, 503 pointers for initializing the TTM, allocating and freeing memory,
504 waiting for command completion and fence synchronization, and memory 504 waiting for command completion and fence synchronization, and memory
505 migration. See the radeon_ttm.c file for an example of usage. 505 migration. See the radeon_ttm.c file for an example of usage.
506 </para> 506 </para>
507 <para> 507 <para>
508 The ttm_global_reference structure is made up of several fields: 508 The ttm_global_reference structure is made up of several fields:
509 </para> 509 </para>
510 <programlisting> 510 <programlisting>
511 struct ttm_global_reference { 511 struct ttm_global_reference {
512 enum ttm_global_types global_type; 512 enum ttm_global_types global_type;
513 size_t size; 513 size_t size;
514 void *object; 514 void *object;
515 int (*init) (struct ttm_global_reference *); 515 int (*init) (struct ttm_global_reference *);
516 void (*release) (struct ttm_global_reference *); 516 void (*release) (struct ttm_global_reference *);
517 }; 517 };
518 </programlisting> 518 </programlisting>
519 <para> 519 <para>
520 There should be one global reference structure for your memory 520 There should be one global reference structure for your memory
521 manager as a whole, and there will be others for each object 521 manager as a whole, and there will be others for each object
522 created by the memory manager at runtime. Your global TTM should 522 created by the memory manager at runtime. Your global TTM should
523 have a type of TTM_GLOBAL_TTM_MEM. The size field for the global 523 have a type of TTM_GLOBAL_TTM_MEM. The size field for the global
524 object should be sizeof(struct ttm_mem_global), and the init and 524 object should be sizeof(struct ttm_mem_global), and the init and
525 release hooks should point at your driver-specific init and 525 release hooks should point at your driver-specific init and
526 release routines, which probably eventually call 526 release routines, which probably eventually call
527 ttm_mem_global_init and ttm_mem_global_release, respectively. 527 ttm_mem_global_init and ttm_mem_global_release, respectively.
528 </para> 528 </para>
529 <para> 529 <para>
530 Once your global TTM accounting structure is set up and initialized 530 Once your global TTM accounting structure is set up and initialized
531 by calling ttm_global_item_ref() on it, 531 by calling ttm_global_item_ref() on it,
532 you need to create a buffer object TTM to 532 you need to create a buffer object TTM to
533 provide a pool for buffer object allocation by clients and the 533 provide a pool for buffer object allocation by clients and the
534 kernel itself. The type of this object should be TTM_GLOBAL_TTM_BO, 534 kernel itself. The type of this object should be TTM_GLOBAL_TTM_BO,
535 and its size should be sizeof(struct ttm_bo_global). Again, 535 and its size should be sizeof(struct ttm_bo_global). Again,
536 driver-specific init and release functions may be provided, 536 driver-specific init and release functions may be provided,
537 likely eventually calling ttm_bo_global_init() and 537 likely eventually calling ttm_bo_global_init() and
538 ttm_bo_global_release(), respectively. Also, like the previous 538 ttm_bo_global_release(), respectively. Also, like the previous
539 object, ttm_global_item_ref() is used to create an initial reference 539 object, ttm_global_item_ref() is used to create an initial reference
540 count for the TTM, which will call your initialization function. 540 count for the TTM, which will call your initialization function.
541 </para> 541 </para>
542 </sect3> 542 </sect3>
543 </sect2> 543 </sect2>
544 <sect2 id="drm-gem"> 544 <sect2 id="drm-gem">
@@ -566,19 +566,19 @@ char *date;</synopsis>
566 using driver-specific ioctls. 566 using driver-specific ioctls.
567 </para> 567 </para>
568 <para> 568 <para>
569 On a fundamental level, GEM involves several operations: 569 On a fundamental level, GEM involves several operations:
570 <itemizedlist> 570 <itemizedlist>
571 <listitem>Memory allocation and freeing</listitem> 571 <listitem>Memory allocation and freeing</listitem>
572 <listitem>Command execution</listitem> 572 <listitem>Command execution</listitem>
573 <listitem>Aperture management at command execution time</listitem> 573 <listitem>Aperture management at command execution time</listitem>
574 </itemizedlist> 574 </itemizedlist>
575 Buffer object allocation is relatively straightforward and largely 575 Buffer object allocation is relatively straightforward and largely
576 provided by Linux's shmem layer, which provides memory to back each 576 provided by Linux's shmem layer, which provides memory to back each
577 object. 577 object.
578 </para> 578 </para>
579 <para> 579 <para>
580 Device-specific operations, such as command execution, pinning, buffer 580 Device-specific operations, such as command execution, pinning, buffer
581 read &amp; write, mapping, and domain ownership transfers are left to 581 read &amp; write, mapping, and domain ownership transfers are left to
582 driver-specific ioctls. 582 driver-specific ioctls.
583 </para> 583 </para>
584 <sect3> 584 <sect3>
@@ -738,16 +738,16 @@ char *date;</synopsis>
738 respectively. The conversion is handled by the DRM core without any 738 respectively. The conversion is handled by the DRM core without any
739 driver-specific support. 739 driver-specific support.
740 </para> 740 </para>
741 <para> 741 <para>
742 GEM also supports buffer sharing with dma-buf file descriptors through 742 GEM also supports buffer sharing with dma-buf file descriptors through
743 PRIME. GEM-based drivers must use the provided helpers functions to 743 PRIME. GEM-based drivers must use the provided helpers functions to
744 implement the exporting and importing correctly. See <xref linkend="drm-prime-support" />. 744 implement the exporting and importing correctly. See <xref linkend="drm-prime-support" />.
745 Since sharing file descriptors is inherently more secure than the 745 Since sharing file descriptors is inherently more secure than the
746 easily guessable and global GEM names it is the preferred buffer 746 easily guessable and global GEM names it is the preferred buffer
747 sharing mechanism. Sharing buffers through GEM names is only supported 747 sharing mechanism. Sharing buffers through GEM names is only supported
748 for legacy userspace. Furthermore PRIME also allows cross-device 748 for legacy userspace. Furthermore PRIME also allows cross-device
749 buffer sharing since it is based on dma-bufs. 749 buffer sharing since it is based on dma-bufs.
750 </para> 750 </para>
751 </sect3> 751 </sect3>
752 <sect3 id="drm-gem-objects-mapping"> 752 <sect3 id="drm-gem-objects-mapping">
753 <title>GEM Objects Mapping</title> 753 <title>GEM Objects Mapping</title>
@@ -852,7 +852,7 @@ char *date;</synopsis>
852 <sect3> 852 <sect3>
853 <title>Command Execution</title> 853 <title>Command Execution</title>
854 <para> 854 <para>
855 Perhaps the most important GEM function for GPU devices is providing a 855 Perhaps the most important GEM function for GPU devices is providing a
856 command execution interface to clients. Client programs construct 856 command execution interface to clients. Client programs construct
857 command buffers containing references to previously allocated memory 857 command buffers containing references to previously allocated memory
858 objects, and then submit them to GEM. At that point, GEM takes care to 858 objects, and then submit them to GEM. At that point, GEM takes care to
@@ -874,95 +874,101 @@ char *date;</synopsis>
874 <title>GEM Function Reference</title> 874 <title>GEM Function Reference</title>
875!Edrivers/gpu/drm/drm_gem.c 875!Edrivers/gpu/drm/drm_gem.c
876 </sect3> 876 </sect3>
877 </sect2> 877 </sect2>
878 <sect2> 878 <sect2>
879 <title>VMA Offset Manager</title> 879 <title>VMA Offset Manager</title>
880!Pdrivers/gpu/drm/drm_vma_manager.c vma offset manager 880!Pdrivers/gpu/drm/drm_vma_manager.c vma offset manager
881!Edrivers/gpu/drm/drm_vma_manager.c 881!Edrivers/gpu/drm/drm_vma_manager.c
882!Iinclude/drm/drm_vma_manager.h 882!Iinclude/drm/drm_vma_manager.h
883 </sect2> 883 </sect2>
884 <sect2 id="drm-prime-support"> 884 <sect2 id="drm-prime-support">
885 <title>PRIME Buffer Sharing</title> 885 <title>PRIME Buffer Sharing</title>
886 <para> 886 <para>
887 PRIME is the cross device buffer sharing framework in drm, originally 887 PRIME is the cross device buffer sharing framework in drm, originally
888 created for the OPTIMUS range of multi-gpu platforms. To userspace 888 created for the OPTIMUS range of multi-gpu platforms. To userspace
889 PRIME buffers are dma-buf based file descriptors. 889 PRIME buffers are dma-buf based file descriptors.
890 </para> 890 </para>
891 <sect3> 891 <sect3>
892 <title>Overview and Driver Interface</title> 892 <title>Overview and Driver Interface</title>
893 <para> 893 <para>
894 Similar to GEM global names, PRIME file descriptors are 894 Similar to GEM global names, PRIME file descriptors are
895 also used to share buffer objects across processes. They offer 895 also used to share buffer objects across processes. They offer
896 additional security: as file descriptors must be explicitly sent over 896 additional security: as file descriptors must be explicitly sent over
897 UNIX domain sockets to be shared between applications, they can't be 897 UNIX domain sockets to be shared between applications, they can't be
898 guessed like the globally unique GEM names. 898 guessed like the globally unique GEM names.
899 </para> 899 </para>
900 <para> 900 <para>
901 Drivers that support the PRIME 901 Drivers that support the PRIME
902 API must set the DRIVER_PRIME bit in the struct 902 API must set the DRIVER_PRIME bit in the struct
903 <structname>drm_driver</structname> 903 <structname>drm_driver</structname>
904 <structfield>driver_features</structfield> field, and implement the 904 <structfield>driver_features</structfield> field, and implement the
905 <methodname>prime_handle_to_fd</methodname> and 905 <methodname>prime_handle_to_fd</methodname> and
906 <methodname>prime_fd_to_handle</methodname> operations. 906 <methodname>prime_fd_to_handle</methodname> operations.
907 </para> 907 </para>
908 <para> 908 <para>
909 <synopsis>int (*prime_handle_to_fd)(struct drm_device *dev, 909 <synopsis>int (*prime_handle_to_fd)(struct drm_device *dev,
910 struct drm_file *file_priv, uint32_t handle, 910 struct drm_file *file_priv, uint32_t handle,
911 uint32_t flags, int *prime_fd); 911 uint32_t flags, int *prime_fd);
912int (*prime_fd_to_handle)(struct drm_device *dev, 912int (*prime_fd_to_handle)(struct drm_device *dev,
913 struct drm_file *file_priv, int prime_fd, 913 struct drm_file *file_priv, int prime_fd,
914 uint32_t *handle);</synopsis> 914 uint32_t *handle);</synopsis>
915 Those two operations convert a handle to a PRIME file descriptor and 915 Those two operations convert a handle to a PRIME file descriptor and
916 vice versa. Drivers must use the kernel dma-buf buffer sharing framework 916 vice versa. Drivers must use the kernel dma-buf buffer sharing framework
917 to manage the PRIME file descriptors. Similar to the mode setting 917 to manage the PRIME file descriptors. Similar to the mode setting
918 API PRIME is agnostic to the underlying buffer object manager, as 918 API PRIME is agnostic to the underlying buffer object manager, as
919 long as handles are 32bit unsigned integers. 919 long as handles are 32bit unsigned integers.
920 </para> 920 </para>
921 <para> 921 <para>
922 While non-GEM drivers must implement the operations themselves, GEM 922 While non-GEM drivers must implement the operations themselves, GEM
923 drivers must use the <function>drm_gem_prime_handle_to_fd</function> 923 drivers must use the <function>drm_gem_prime_handle_to_fd</function>
924 and <function>drm_gem_prime_fd_to_handle</function> helper functions. 924 and <function>drm_gem_prime_fd_to_handle</function> helper functions.
925 Those helpers rely on the driver 925 Those helpers rely on the driver
926 <methodname>gem_prime_export</methodname> and 926 <methodname>gem_prime_export</methodname> and
927 <methodname>gem_prime_import</methodname> operations to create a dma-buf 927 <methodname>gem_prime_import</methodname> operations to create a dma-buf
928 instance from a GEM object (dma-buf exporter role) and to create a GEM 928 instance from a GEM object (dma-buf exporter role) and to create a GEM
929 object from a dma-buf instance (dma-buf importer role). 929 object from a dma-buf instance (dma-buf importer role).
930 </para> 930 </para>
931 <para> 931 <para>
932 <synopsis>struct dma_buf * (*gem_prime_export)(struct drm_device *dev, 932 <synopsis>struct dma_buf * (*gem_prime_export)(struct drm_device *dev,
933 struct drm_gem_object *obj, 933 struct drm_gem_object *obj,
934 int flags); 934 int flags);
935struct drm_gem_object * (*gem_prime_import)(struct drm_device *dev, 935struct drm_gem_object * (*gem_prime_import)(struct drm_device *dev,
936 struct dma_buf *dma_buf);</synopsis> 936 struct dma_buf *dma_buf);</synopsis>
937 These two operations are mandatory for GEM drivers that support 937 These two operations are mandatory for GEM drivers that support
938 PRIME. 938 PRIME.
939 </para> 939 </para>
940 </sect3>
941 <sect3>
942 <title>PRIME Helper Functions</title>
943!Pdrivers/gpu/drm/drm_prime.c PRIME Helpers
944 </sect3> 940 </sect3>
945 </sect2> 941 <sect3>
946 <sect2> 942 <title>PRIME Helper Functions</title>
947 <title>PRIME Function References</title> 943!Pdrivers/gpu/drm/drm_prime.c PRIME Helpers
944 </sect3>
945 </sect2>
946 <sect2>
947 <title>PRIME Function References</title>
948!Edrivers/gpu/drm/drm_prime.c 948!Edrivers/gpu/drm/drm_prime.c
949 </sect2> 949 </sect2>
950 <sect2> 950 <sect2>
951 <title>DRM MM Range Allocator</title> 951 <title>DRM MM Range Allocator</title>
952 <sect3> 952 <sect3>
953 <title>Overview</title> 953 <title>Overview</title>
954!Pdrivers/gpu/drm/drm_mm.c Overview 954!Pdrivers/gpu/drm/drm_mm.c Overview
955 </sect3> 955 </sect3>
956 <sect3> 956 <sect3>
957 <title>LRU Scan/Eviction Support</title> 957 <title>LRU Scan/Eviction Support</title>
958!Pdrivers/gpu/drm/drm_mm.c lru scan roaster 958!Pdrivers/gpu/drm/drm_mm.c lru scan roaster
959 </sect3> 959 </sect3>
960 </sect2> 960 </sect2>
961 <sect2> 961 <sect2>
962 <title>DRM MM Range Allocator Function References</title> 962 <title>DRM MM Range Allocator Function References</title>
963!Edrivers/gpu/drm/drm_mm.c 963!Edrivers/gpu/drm/drm_mm.c
964!Iinclude/drm/drm_mm.h 964!Iinclude/drm/drm_mm.h
965 </sect2> 965 </sect2>
966 <sect2>
967 <title>CMA Helper Functions Reference</title>
968!Pdrivers/gpu/drm/drm_gem_cma_helper.c cma helpers
969!Edrivers/gpu/drm/drm_gem_cma_helper.c
970!Iinclude/drm/drm_gem_cma_helper.h
971 </sect2>
966 </sect1> 972 </sect1>
967 973
968 <!-- Internals: mode setting --> 974 <!-- Internals: mode setting -->
@@ -996,6 +1002,10 @@ int max_width, max_height;</synopsis>
996!Edrivers/gpu/drm/drm_modes.c 1002!Edrivers/gpu/drm/drm_modes.c
997 </sect2> 1003 </sect2>
998 <sect2> 1004 <sect2>
1005 <title>Atomic Mode Setting Function Reference</title>
1006!Edrivers/gpu/drm/drm_atomic.c
1007 </sect2>
1008 <sect2>
999 <title>Frame Buffer Creation</title> 1009 <title>Frame Buffer Creation</title>
1000 <synopsis>struct drm_framebuffer *(*fb_create)(struct drm_device *dev, 1010 <synopsis>struct drm_framebuffer *(*fb_create)(struct drm_device *dev,
1001 struct drm_file *file_priv, 1011 struct drm_file *file_priv,
@@ -1827,6 +1837,10 @@ void intel_crt_init(struct drm_device *dev)
1827!Edrivers/gpu/drm/drm_crtc.c 1837!Edrivers/gpu/drm/drm_crtc.c
1828 </sect2> 1838 </sect2>
1829 <sect2> 1839 <sect2>
1840 <title>KMS Data Structures</title>
1841!Iinclude/drm/drm_crtc.h
1842 </sect2>
1843 <sect2>
1830 <title>KMS Locking</title> 1844 <title>KMS Locking</title>
1831!Pdrivers/gpu/drm/drm_modeset_lock.c kms locking 1845!Pdrivers/gpu/drm/drm_modeset_lock.c kms locking
1832!Iinclude/drm/drm_modeset_lock.h 1846!Iinclude/drm/drm_modeset_lock.h
@@ -1933,10 +1947,16 @@ void intel_crt_init(struct drm_device *dev)
1933 and then retrieves a list of modes by calling the connector 1947 and then retrieves a list of modes by calling the connector
1934 <methodname>get_modes</methodname> helper operation. 1948 <methodname>get_modes</methodname> helper operation.
1935 </para> 1949 </para>
1950 <para>
1951 If the helper operation returns no mode, and if the connector status
1952 is connector_status_connected, standard VESA DMT modes up to
1953 1024x768 are automatically added to the modes list by a call to
1954 <function>drm_add_modes_noedid</function>.
1955 </para>
1936 <para> 1956 <para>
1937 The function filters out modes larger than 1957 The function then filters out modes larger than
1938 <parameter>max_width</parameter> and <parameter>max_height</parameter> 1958 <parameter>max_width</parameter> and <parameter>max_height</parameter>
1939 if specified. It then calls the optional connector 1959 if specified. It finally calls the optional connector
1940 <methodname>mode_valid</methodname> helper operation for each mode in 1960 <methodname>mode_valid</methodname> helper operation for each mode in
1941 the probed list to check whether the mode is valid for the connector. 1961 the probed list to check whether the mode is valid for the connector.
1942 </para> 1962 </para>
@@ -2076,12 +2096,20 @@ void intel_crt_init(struct drm_device *dev)
2076 <synopsis>int (*get_modes)(struct drm_connector *connector);</synopsis> 2096 <synopsis>int (*get_modes)(struct drm_connector *connector);</synopsis>
2077 <para> 2097 <para>
2078 Fill the connector's <structfield>probed_modes</structfield> list 2098 Fill the connector's <structfield>probed_modes</structfield> list
2079 by parsing EDID data with <function>drm_add_edid_modes</function> or 2099 by parsing EDID data with <function>drm_add_edid_modes</function>,
2080 calling <function>drm_mode_probed_add</function> directly for every 2100 adding standard VESA DMT modes with <function>drm_add_modes_noedid</function>,
2101 or calling <function>drm_mode_probed_add</function> directly for every
2081 supported mode and return the number of modes it has detected. This 2102 supported mode and return the number of modes it has detected. This
2082 operation is mandatory. 2103 operation is mandatory.
2083 </para> 2104 </para>
2084 <para> 2105 <para>
2106 Note that the caller function will automatically add standard VESA
2107 DMT modes up to 1024x768 if the <methodname>get_modes</methodname>
2108 helper operation returns no mode and if the connector status is
2109 connector_status_connected. There is no need to call
2110 <function>drm_add_edid_modes</function> manually in that case.
2111 </para>
2112 <para>
2085 When adding modes manually the driver creates each mode with a call to 2113 When adding modes manually the driver creates each mode with a call to
2086 <function>drm_mode_create</function> and must fill the following fields. 2114 <function>drm_mode_create</function> and must fill the following fields.
2087 <itemizedlist> 2115 <itemizedlist>
@@ -2278,7 +2306,7 @@ void intel_crt_init(struct drm_device *dev)
2278 <function>drm_helper_probe_single_connector_modes</function>. 2306 <function>drm_helper_probe_single_connector_modes</function>.
2279 </para> 2307 </para>
2280 <para> 2308 <para>
2281 When parsing EDID data, <function>drm_add_edid_modes</function> fill the 2309 When parsing EDID data, <function>drm_add_edid_modes</function> fills the
2282 connector <structfield>display_info</structfield> 2310 connector <structfield>display_info</structfield>
2283 <structfield>width_mm</structfield> and 2311 <structfield>width_mm</structfield> and
2284 <structfield>height_mm</structfield> fields. When creating modes 2312 <structfield>height_mm</structfield> fields. When creating modes
@@ -2316,8 +2344,26 @@ void intel_crt_init(struct drm_device *dev)
2316 </itemizedlist> 2344 </itemizedlist>
2317 </sect2> 2345 </sect2>
2318 <sect2> 2346 <sect2>
2347 <title>Atomic Modeset Helper Functions Reference</title>
2348 <sect3>
2349 <title>Overview</title>
2350!Pdrivers/gpu/drm/drm_atomic_helper.c overview
2351 </sect3>
2352 <sect3>
2353 <title>Implementing Asynchronous Atomic Commit</title>
2354!Pdrivers/gpu/drm/drm_atomic_helper.c implementing async commit
2355 </sect3>
2356 <sect3>
2357 <title>Atomic State Reset and Initialization</title>
2358!Pdrivers/gpu/drm/drm_atomic_helper.c atomic state reset and initialization
2359 </sect3>
2360!Iinclude/drm/drm_atomic_helper.h
2361!Edrivers/gpu/drm/drm_atomic_helper.c
2362 </sect2>
2363 <sect2>
2319 <title>Modeset Helper Functions Reference</title> 2364 <title>Modeset Helper Functions Reference</title>
2320!Edrivers/gpu/drm/drm_crtc_helper.c 2365!Edrivers/gpu/drm/drm_crtc_helper.c
2366!Pdrivers/gpu/drm/drm_crtc_helper.c overview
2321 </sect2> 2367 </sect2>
2322 <sect2> 2368 <sect2>
2323 <title>Output Probing Helper Functions Reference</title> 2369 <title>Output Probing Helper Functions Reference</title>
@@ -2343,6 +2389,12 @@ void intel_crt_init(struct drm_device *dev)
2343!Edrivers/gpu/drm/drm_dp_mst_topology.c 2389!Edrivers/gpu/drm/drm_dp_mst_topology.c
2344 </sect2> 2390 </sect2>
2345 <sect2> 2391 <sect2>
2392 <title>MIPI DSI Helper Functions Reference</title>
2393!Pdrivers/gpu/drm/drm_mipi_dsi.c dsi helpers
2394!Iinclude/drm/drm_mipi_dsi.h
2395!Edrivers/gpu/drm/drm_mipi_dsi.c
2396 </sect2>
2397 <sect2>
2346 <title>EDID Helper Functions Reference</title> 2398 <title>EDID Helper Functions Reference</title>
2347!Edrivers/gpu/drm/drm_edid.c 2399!Edrivers/gpu/drm/drm_edid.c
2348 </sect2> 2400 </sect2>
@@ -2371,7 +2423,12 @@ void intel_crt_init(struct drm_device *dev)
2371 </sect2> 2423 </sect2>
2372 <sect2> 2424 <sect2>
2373 <title id="drm-kms-planehelpers">Plane Helper Reference</title> 2425 <title id="drm-kms-planehelpers">Plane Helper Reference</title>
2374!Edrivers/gpu/drm/drm_plane_helper.c Plane Helpers 2426!Edrivers/gpu/drm/drm_plane_helper.c
2427!Pdrivers/gpu/drm/drm_plane_helper.c overview
2428 </sect2>
2429 <sect2>
2430 <title>Tile group</title>
2431!Pdrivers/gpu/drm/drm_crtc.c Tile group
2375 </sect2> 2432 </sect2>
2376 </sect1> 2433 </sect1>
2377 2434
@@ -2507,8 +2564,8 @@ void intel_crt_init(struct drm_device *dev)
2507 <td valign="top" >Description/Restrictions</td> 2564 <td valign="top" >Description/Restrictions</td>
2508 </tr> 2565 </tr>
2509 <tr> 2566 <tr>
2510 <td rowspan="21" valign="top" >DRM</td> 2567 <td rowspan="25" valign="top" >DRM</td>
2511 <td rowspan="2" valign="top" >Generic</td> 2568 <td rowspan="4" valign="top" >Generic</td>
2512 <td valign="top" >“EDID”</td> 2569 <td valign="top" >“EDID”</td>
2513 <td valign="top" >BLOB | IMMUTABLE</td> 2570 <td valign="top" >BLOB | IMMUTABLE</td>
2514 <td valign="top" >0</td> 2571 <td valign="top" >0</td>
@@ -2523,6 +2580,20 @@ void intel_crt_init(struct drm_device *dev)
2523 <td valign="top" >Contains DPMS operation mode value.</td> 2580 <td valign="top" >Contains DPMS operation mode value.</td>
2524 </tr> 2581 </tr>
2525 <tr> 2582 <tr>
2583 <td valign="top" >“PATH”</td>
2584 <td valign="top" >BLOB | IMMUTABLE</td>
2585 <td valign="top" >0</td>
2586 <td valign="top" >Connector</td>
2587 <td valign="top" >Contains topology path to a connector.</td>
2588 </tr>
2589 <tr>
2590 <td valign="top" >“TILE”</td>
2591 <td valign="top" >BLOB | IMMUTABLE</td>
2592 <td valign="top" >0</td>
2593 <td valign="top" >Connector</td>
2594 <td valign="top" >Contains tiling information for a connector.</td>
2595 </tr>
2596 <tr>
2526 <td rowspan="1" valign="top" >Plane</td> 2597 <td rowspan="1" valign="top" >Plane</td>
2527 <td valign="top" >“type”</td> 2598 <td valign="top" >“type”</td>
2528 <td valign="top" >ENUM | IMMUTABLE</td> 2599 <td valign="top" >ENUM | IMMUTABLE</td>
@@ -2638,6 +2709,21 @@ void intel_crt_init(struct drm_device *dev)
2638 <td valign="top" >TBD</td> 2709 <td valign="top" >TBD</td>
2639 </tr> 2710 </tr>
2640 <tr> 2711 <tr>
2712 <td rowspan="2" valign="top" >Virtual GPU</td>
2713 <td valign="top" >“suggested X”</td>
2714 <td valign="top" >RANGE</td>
2715 <td valign="top" >Min=0, Max=0xffffffff</td>
2716 <td valign="top" >Connector</td>
2717 <td valign="top" >property to suggest an X offset for a connector</td>
2718 </tr>
2719 <tr>
2720 <td valign="top" >“suggested Y”</td>
2721 <td valign="top" >RANGE</td>
2722 <td valign="top" >Min=0, Max=0xffffffff</td>
2723 <td valign="top" >Connector</td>
2724 <td valign="top" >property to suggest an Y offset for a connector</td>
2725 </tr>
2726 <tr>
2641 <td rowspan="3" valign="top" >Optional</td> 2727 <td rowspan="3" valign="top" >Optional</td>
2642 <td valign="top" >“scaling mode”</td> 2728 <td valign="top" >“scaling mode”</td>
2643 <td valign="top" >ENUM</td> 2729 <td valign="top" >ENUM</td>
@@ -3788,6 +3874,26 @@ int num_ioctls;</synopsis>
3788 those have basic support through the gma500 drm driver. 3874 those have basic support through the gma500 drm driver.
3789 </para> 3875 </para>
3790 <sect1> 3876 <sect1>
3877 <title>Core Driver Infrastructure</title>
3878 <para>
3879 This section covers core driver infrastructure used by both the display
3880 and the GEM parts of the driver.
3881 </para>
3882 <sect2>
3883 <title>Runtime Power Management</title>
3884!Pdrivers/gpu/drm/i915/intel_runtime_pm.c runtime pm
3885!Idrivers/gpu/drm/i915/intel_runtime_pm.c
3886 </sect2>
3887 <sect2>
3888 <title>Interrupt Handling</title>
3889!Pdrivers/gpu/drm/i915/i915_irq.c interrupt handling
3890!Fdrivers/gpu/drm/i915/i915_irq.c intel_irq_init intel_irq_init_hw intel_hpd_init
3891!Fdrivers/gpu/drm/i915/i915_irq.c intel_irq_fini
3892!Fdrivers/gpu/drm/i915/i915_irq.c intel_runtime_pm_disable_interrupts
3893!Fdrivers/gpu/drm/i915/i915_irq.c intel_runtime_pm_enable_interrupts
3894 </sect2>
3895 </sect1>
3896 <sect1>
3791 <title>Display Hardware Handling</title> 3897 <title>Display Hardware Handling</title>
3792 <para> 3898 <para>
3793 This section covers everything related to the display hardware including 3899 This section covers everything related to the display hardware including
@@ -3804,6 +3910,18 @@ int num_ioctls;</synopsis>
3804 </para> 3910 </para>
3805 </sect2> 3911 </sect2>
3806 <sect2> 3912 <sect2>
3913 <title>Frontbuffer Tracking</title>
3914!Pdrivers/gpu/drm/i915/intel_frontbuffer.c frontbuffer tracking
3915!Idrivers/gpu/drm/i915/intel_frontbuffer.c
3916!Fdrivers/gpu/drm/i915/intel_drv.h intel_frontbuffer_flip
3917!Fdrivers/gpu/drm/i915/i915_gem.c i915_gem_track_fb
3918 </sect2>
3919 <sect2>
3920 <title>Display FIFO Underrun Reporting</title>
3921!Pdrivers/gpu/drm/i915/intel_fifo_underrun.c fifo underrun handling
3922!Idrivers/gpu/drm/i915/intel_fifo_underrun.c
3923 </sect2>
3924 <sect2>
3807 <title>Plane Configuration</title> 3925 <title>Plane Configuration</title>
3808 <para> 3926 <para>
3809 This section covers plane configuration and composition with the 3927 This section covers plane configuration and composition with the
@@ -3823,6 +3941,16 @@ int num_ioctls;</synopsis>
3823 </para> 3941 </para>
3824 </sect2> 3942 </sect2>
3825 <sect2> 3943 <sect2>
3944 <title>High Definition Audio</title>
3945!Pdrivers/gpu/drm/i915/intel_audio.c High Definition Audio over HDMI and Display Port
3946!Idrivers/gpu/drm/i915/intel_audio.c
3947 </sect2>
3948 <sect2>
3949 <title>Panel Self Refresh PSR (PSR/SRD)</title>
3950!Pdrivers/gpu/drm/i915/intel_psr.c Panel Self Refresh (PSR/SRD)
3951!Idrivers/gpu/drm/i915/intel_psr.c
3952 </sect2>
3953 <sect2>
3826 <title>DPIO</title> 3954 <title>DPIO</title>
3827!Pdrivers/gpu/drm/i915/i915_reg.h DPIO 3955!Pdrivers/gpu/drm/i915/i915_reg.h DPIO
3828 <table id="dpiox2"> 3956 <table id="dpiox2">
@@ -3931,6 +4059,28 @@ int num_ioctls;</synopsis>
3931!Idrivers/gpu/drm/i915/intel_lrc.c 4059!Idrivers/gpu/drm/i915/intel_lrc.c
3932 </sect2> 4060 </sect2>
3933 </sect1> 4061 </sect1>
4062
4063 <sect1>
4064 <title> Tracing </title>
4065 <para>
4066 This sections covers all things related to the tracepoints implemented in
4067 the i915 driver.
4068 </para>
4069 <sect2>
4070 <title> i915_ppgtt_create and i915_ppgtt_release </title>
4071!Pdrivers/gpu/drm/i915/i915_trace.h i915_ppgtt_create and i915_ppgtt_release tracepoints
4072 </sect2>
4073 <sect2>
4074 <title> i915_context_create and i915_context_free </title>
4075!Pdrivers/gpu/drm/i915/i915_trace.h i915_context_create and i915_context_free tracepoints
4076 </sect2>
4077 <sect2>
4078 <title> switch_mm </title>
4079!Pdrivers/gpu/drm/i915/i915_trace.h switch_mm tracepoint
4080 </sect2>
4081 </sect1>
4082
3934 </chapter> 4083 </chapter>
4084!Cdrivers/gpu/drm/i915/i915_irq.c
3935</part> 4085</part>
3936</book> 4086</book>
diff --git a/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt b/Documentation/devicetree/bindings/drm/imx/fsl-imx-drm.txt
index e75f0e549fff..e75f0e549fff 100644
--- a/Documentation/devicetree/bindings/staging/imx-drm/fsl-imx-drm.txt
+++ b/Documentation/devicetree/bindings/drm/imx/fsl-imx-drm.txt
diff --git a/Documentation/devicetree/bindings/staging/imx-drm/hdmi.txt b/Documentation/devicetree/bindings/drm/imx/hdmi.txt
index 1b756cf9afb0..1b756cf9afb0 100644
--- a/Documentation/devicetree/bindings/staging/imx-drm/hdmi.txt
+++ b/Documentation/devicetree/bindings/drm/imx/hdmi.txt
diff --git a/Documentation/devicetree/bindings/staging/imx-drm/ldb.txt b/Documentation/devicetree/bindings/drm/imx/ldb.txt
index 443bcb6134d5..443bcb6134d5 100644
--- a/Documentation/devicetree/bindings/staging/imx-drm/ldb.txt
+++ b/Documentation/devicetree/bindings/drm/imx/ldb.txt
diff --git a/Documentation/devicetree/bindings/gpu/nvidia,tegra20-host1x.txt b/Documentation/devicetree/bindings/gpu/nvidia,tegra20-host1x.txt
index b48f4ef31d93..4c32ef0b7db8 100644
--- a/Documentation/devicetree/bindings/gpu/nvidia,tegra20-host1x.txt
+++ b/Documentation/devicetree/bindings/gpu/nvidia,tegra20-host1x.txt
@@ -191,6 +191,8 @@ of the following host1x client modules:
191 - nvidia,hpd-gpio: specifies a GPIO used for hotplug detection 191 - nvidia,hpd-gpio: specifies a GPIO used for hotplug detection
192 - nvidia,edid: supplies a binary EDID blob 192 - nvidia,edid: supplies a binary EDID blob
193 - nvidia,panel: phandle of a display panel 193 - nvidia,panel: phandle of a display panel
194 - nvidia,ganged-mode: contains a phandle to a second DSI controller to gang
195 up with in order to support up to 8 data lanes
194 196
195- sor: serial output resource 197- sor: serial output resource
196 198
diff --git a/Documentation/devicetree/bindings/gpu/st,stih4xx.txt b/Documentation/devicetree/bindings/gpu/st,stih4xx.txt
index 2d150c311a05..c99eb34e640b 100644
--- a/Documentation/devicetree/bindings/gpu/st,stih4xx.txt
+++ b/Documentation/devicetree/bindings/gpu/st,stih4xx.txt
@@ -68,7 +68,7 @@ STMicroelectronics stih4xx platforms
68 number of clocks may depend of the SoC type. 68 number of clocks may depend of the SoC type.
69 - clock-names: names of the clocks listed in clocks property in the same 69 - clock-names: names of the clocks listed in clocks property in the same
70 order. 70 order.
71 - hdmi,hpd-gpio: gpio id to detect if an hdmi cable is plugged or not. 71 - ddc: phandle of an I2C controller used for DDC EDID probing
72 72
73sti-hda: 73sti-hda:
74 Required properties: 74 Required properties:
@@ -83,6 +83,22 @@ sti-hda:
83 - clock-names: names of the clocks listed in clocks property in the same 83 - clock-names: names of the clocks listed in clocks property in the same
84 order. 84 order.
85 85
86sti-hqvdp:
87 must be a child of sti-display-subsystem
88 Required properties:
89 - compatible: "st,stih<chip>-hqvdp"
90 - reg: Physical base address of the IP registers and length of memory mapped region.
91 - clocks: from common clock binding: handle hardware IP needed clocks, the
92 number of clocks may depend of the SoC type.
93 See ../clocks/clock-bindings.txt for details.
94 - clock-names: names of the clocks listed in clocks property in the same
95 order.
96 - resets: resets to be used by the device
97 See ../reset/reset.txt for details.
98 - reset-names: names of the resets listed in resets property in the same
99 order.
100 - st,vtg: phandle on vtg main device node.
101
86Example: 102Example:
87 103
88/ { 104/ {
@@ -173,7 +189,6 @@ Example:
173 interrupt-names = "irq"; 189 interrupt-names = "irq";
174 clock-names = "pix", "tmds", "phy", "audio"; 190 clock-names = "pix", "tmds", "phy", "audio";
175 clocks = <&clockgen_c_vcc CLK_S_PIX_HDMI>, <&clockgen_c_vcc CLK_S_TMDS_HDMI>, <&clockgen_c_vcc CLK_S_HDMI_REJECT_PLL>, <&clockgen_b1 CLK_S_PCM_0>; 191 clocks = <&clockgen_c_vcc CLK_S_PIX_HDMI>, <&clockgen_c_vcc CLK_S_TMDS_HDMI>, <&clockgen_c_vcc CLK_S_HDMI_REJECT_PLL>, <&clockgen_b1 CLK_S_PCM_0>;
176 hdmi,hpd-gpio = <&PIO2 5>;
177 }; 192 };
178 193
179 sti-hda@fe85a000 { 194 sti-hda@fe85a000 {
@@ -184,6 +199,16 @@ Example:
184 clocks = <&clockgen_c_vcc CLK_S_PIX_HD>, <&clockgen_c_vcc CLK_S_HDDAC>; 199 clocks = <&clockgen_c_vcc CLK_S_PIX_HD>, <&clockgen_c_vcc CLK_S_HDDAC>;
185 }; 200 };
186 }; 201 };
202
203 sti-hqvdp@9c000000 {
204 compatible = "st,stih407-hqvdp";
205 reg = <0x9C00000 0x100000>;
206 clock-names = "hqvdp", "pix_main";
207 clocks = <&clk_s_c0_flexgen CLK_MAIN_DISP>, <&clk_s_d2_flexgen CLK_PIX_MAIN_DISP>;
208 reset-names = "hqvdp";
209 resets = <&softreset STIH407_HDQVDP_SOFTRESET>;
210 st,vtg = <&vtg_main>;
211 };
187 }; 212 };
188 ... 213 ...
189}; 214};
diff --git a/Documentation/devicetree/bindings/panel/auo,b116xw03.txt b/Documentation/devicetree/bindings/panel/auo,b116xw03.txt
new file mode 100644
index 000000000000..690d0a568ef3
--- /dev/null
+++ b/Documentation/devicetree/bindings/panel/auo,b116xw03.txt
@@ -0,0 +1,7 @@
1AU Optronics Corporation 11.6" HD (1366x768) color TFT-LCD panel
2
3Required properties:
4- compatible: should be "auo,b116xw03"
5
6This binding is compatible with the simple-panel binding, which is specified
7in simple-panel.txt in this directory.
diff --git a/Documentation/devicetree/bindings/panel/hannstar,hsd070pww1.txt b/Documentation/devicetree/bindings/panel/hannstar,hsd070pww1.txt
new file mode 100644
index 000000000000..7da1d5c038ff
--- /dev/null
+++ b/Documentation/devicetree/bindings/panel/hannstar,hsd070pww1.txt
@@ -0,0 +1,7 @@
1HannStar Display Corp. HSD070PWW1 7.0" WXGA TFT LCD panel
2
3Required properties:
4- compatible: should be "hannstar,hsd070pww1"
5
6This binding is compatible with the simple-panel binding, which is specified
7in simple-panel.txt in this directory.
diff --git a/Documentation/devicetree/bindings/panel/hit,tx23d38vm0caa.txt b/Documentation/devicetree/bindings/panel/hit,tx23d38vm0caa.txt
new file mode 100644
index 000000000000..04caaae19af6
--- /dev/null
+++ b/Documentation/devicetree/bindings/panel/hit,tx23d38vm0caa.txt
@@ -0,0 +1,7 @@
1Hitachi Ltd. Corporation 9" WVGA (800x480) TFT LCD panel
2
3Required properties:
4- compatible: should be "hit,tx23d38vm0caa"
5
6This binding is compatible with the simple-panel binding, which is specified
7in simple-panel.txt in this directory.
diff --git a/Documentation/devicetree/bindings/panel/innolux,g121i1-l01.txt b/Documentation/devicetree/bindings/panel/innolux,g121i1-l01.txt
new file mode 100644
index 000000000000..2743b07cd2f2
--- /dev/null
+++ b/Documentation/devicetree/bindings/panel/innolux,g121i1-l01.txt
@@ -0,0 +1,7 @@
1Innolux Corporation 12.1" WXGA (1280x800) TFT LCD panel
2
3Required properties:
4- compatible: should be "innolux,g121i1-l01"
5
6This binding is compatible with the simple-panel binding, which is specified
7in simple-panel.txt in this directory.
diff --git a/Documentation/devicetree/bindings/panel/sharp,lq101r1sx01.txt b/Documentation/devicetree/bindings/panel/sharp,lq101r1sx01.txt
new file mode 100644
index 000000000000..f522bb8e47e1
--- /dev/null
+++ b/Documentation/devicetree/bindings/panel/sharp,lq101r1sx01.txt
@@ -0,0 +1,49 @@
1Sharp Microelectronics 10.1" WQXGA TFT LCD panel
2
3This panel requires a dual-channel DSI host to operate. It supports two modes:
4- left-right: each channel drives the left or right half of the screen
5- even-odd: each channel drives the even or odd lines of the screen
6
7Each of the DSI channels controls a separate DSI peripheral. The peripheral
8driven by the first link (DSI-LINK1), left or even, is considered the primary
9peripheral and controls the device. The 'link2' property contains a phandle
10to the peripheral driven by the second link (DSI-LINK2, right or odd).
11
12Note that in video mode the DSI-LINK1 interface always provides the left/even
13pixels and DSI-LINK2 always provides the right/odd pixels. In command mode it
14is possible to program either link to drive the left/even or right/odd pixels
15but for the sake of consistency this binding assumes that the same assignment
16is chosen as for video mode.
17
18Required properties:
19- compatible: should be "sharp,lq101r1sx01"
20- reg: DSI virtual channel of the peripheral
21
22Required properties (for DSI-LINK1 only):
23- link2: phandle to the DSI peripheral on the secondary link. Note that the
24 presence of this property marks the containing node as DSI-LINK1.
25- power-supply: phandle of the regulator that provides the supply voltage
26
27Optional properties (for DSI-LINK1 only):
28- backlight: phandle of the backlight device attached to the panel
29
30Example:
31
32 dsi@54300000 {
33 panel: panel@0 {
34 compatible = "sharp,lq101r1sx01";
35 reg = <0>;
36
37 link2 = <&secondary>;
38
39 power-supply = <...>;
40 backlight = <...>;
41 };
42 };
43
44 dsi@54400000 {
45 secondary: panel@0 {
46 compatible = "sharp,lq101r1sx01";
47 reg = <0>;
48 };
49 };
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
index cc6151c431c8..423d47418e72 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -66,8 +66,10 @@ gmt Global Mixed-mode Technology, Inc.
66google Google, Inc. 66google Google, Inc.
67gumstix Gumstix, Inc. 67gumstix Gumstix, Inc.
68gw Gateworks Corporation 68gw Gateworks Corporation
69hannstar HannStar Display Corporation
69haoyu Haoyu Microelectronic Co. Ltd. 70haoyu Haoyu Microelectronic Co. Ltd.
70hisilicon Hisilicon Limited. 71hisilicon Hisilicon Limited.
72hit Hitachi Ltd.
71honeywell Honeywell 73honeywell Honeywell
72hp Hewlett Packard 74hp Hewlett Packard
73i2se I2SE GmbH 75i2se I2SE GmbH
diff --git a/Documentation/devicetree/bindings/video/adi,adv7511.txt b/Documentation/devicetree/bindings/video/adi,adv7511.txt
new file mode 100644
index 000000000000..96c25ee01501
--- /dev/null
+++ b/Documentation/devicetree/bindings/video/adi,adv7511.txt
@@ -0,0 +1,88 @@
1Analog Device ADV7511(W)/13 HDMI Encoders
2-----------------------------------------
3
4The ADV7511, ADV7511W and ADV7513 are HDMI audio and video transmitters
5compatible with HDMI 1.4 and DVI 1.0. They support color space conversion,
6S/PDIF, CEC and HDCP.
7
8Required properties:
9
10- compatible: Should be one of "adi,adv7511", "adi,adv7511w" or "adi,adv7513"
11- reg: I2C slave address
12
13The ADV7511 supports a large number of input data formats that differ by their
14color depth, color format, clock mode, bit justification and random
15arrangement of components on the data bus. The combination of the following
16properties describe the input and map directly to the video input tables of the
17ADV7511 datasheet that document all the supported combinations.
18
19- adi,input-depth: Number of bits per color component at the input (8, 10 or
20 12).
21- adi,input-colorspace: The input color space, one of "rgb", "yuv422" or
22 "yuv444".
23- adi,input-clock: The input clock type, one of "1x" (one clock cycle per
24 pixel), "2x" (two clock cycles per pixel), "ddr" (one clock cycle per pixel,
25 data driven on both edges).
26
27The following input format properties are required except in "rgb 1x" and
28"yuv444 1x" modes, in which case they must not be specified.
29
30- adi,input-style: The input components arrangement variant (1, 2 or 3), as
31 listed in the input format tables in the datasheet.
32- adi,input-justification: The input bit justification ("left", "evenly",
33 "right").
34
35Optional properties:
36
37- interrupts: Specifier for the ADV7511 interrupt
38- pd-gpios: Specifier for the GPIO connected to the power down signal
39
40- adi,clock-delay: Video data clock delay relative to the pixel clock, in ps
41 (-1200 ps .. 1600 ps). Defaults to no delay.
42- adi,embedded-sync: The input uses synchronization signals embedded in the
43 data stream (similar to BT.656). Defaults to separate H/V synchronization
44 signals.
45
46Required nodes:
47
48The ADV7511 has two video ports. Their connections are modelled using the OF
49graph bindings specified in Documentation/devicetree/bindings/graph.txt.
50
51- Video port 0 for the RGB or YUV input
52- Video port 1 for the HDMI output
53
54
55Example
56-------
57
58 adv7511w: hdmi@39 {
59 compatible = "adi,adv7511w";
60 reg = <39>;
61 interrupt-parent = <&gpio3>;
62 interrupts = <29 IRQ_TYPE_EDGE_FALLING>;
63
64 adi,input-depth = <8>;
65 adi,input-colorspace = "rgb";
66 adi,input-clock = "1x";
67 adi,input-style = <1>;
68 adi,input-justification = "evenly";
69
70 ports {
71 #address-cells = <1>;
72 #size-cells = <0>;
73
74 port@0 {
75 reg = <0>;
76 adv7511w_in: endpoint {
77 remote-endpoint = <&dpi_out>;
78 };
79 };
80
81 port@1 {
82 reg = <1>;
83 adv7511_out: endpoint {
84 remote-endpoint = <&hdmi_connector_in>;
85 };
86 };
87 };
88 };
diff --git a/Documentation/devicetree/bindings/video/exynos_dsim.txt b/Documentation/devicetree/bindings/video/exynos_dsim.txt
index e74243b4b317..ca2b4aacd9af 100644
--- a/Documentation/devicetree/bindings/video/exynos_dsim.txt
+++ b/Documentation/devicetree/bindings/video/exynos_dsim.txt
@@ -4,6 +4,7 @@ Required properties:
4 - compatible: value should be one of the following 4 - compatible: value should be one of the following
5 "samsung,exynos3250-mipi-dsi" /* for Exynos3250/3472 SoCs */ 5 "samsung,exynos3250-mipi-dsi" /* for Exynos3250/3472 SoCs */
6 "samsung,exynos4210-mipi-dsi" /* for Exynos4 SoCs */ 6 "samsung,exynos4210-mipi-dsi" /* for Exynos4 SoCs */
7 "samsung,exynos4415-mipi-dsi" /* for Exynos4415 SoC */
7 "samsung,exynos5410-mipi-dsi" /* for Exynos5410/5420/5440 SoCs */ 8 "samsung,exynos5410-mipi-dsi" /* for Exynos5410/5420/5440 SoCs */
8 - reg: physical base address and length of the registers set for the device 9 - reg: physical base address and length of the registers set for the device
9 - interrupts: should contain DSI interrupt 10 - interrupts: should contain DSI interrupt
diff --git a/Documentation/devicetree/bindings/video/rockchip-drm.txt b/Documentation/devicetree/bindings/video/rockchip-drm.txt
new file mode 100644
index 000000000000..7fff582495a2
--- /dev/null
+++ b/Documentation/devicetree/bindings/video/rockchip-drm.txt
@@ -0,0 +1,19 @@
1Rockchip DRM master device
2================================
3
4The Rockchip DRM master device is a virtual device needed to list all
5vop devices or other display interface nodes that comprise the
6graphics subsystem.
7
8Required properties:
9- compatible: Should be "rockchip,display-subsystem"
10- ports: Should contain a list of phandles pointing to display interface port
11 of vop devices. vop definitions as defined in
12 Documentation/devicetree/bindings/video/rockchip-vop.txt
13
14example:
15
16display-subsystem {
17 compatible = "rockchip,display-subsystem";
18 ports = <&vopl_out>, <&vopb_out>;
19};
diff --git a/Documentation/devicetree/bindings/video/rockchip-vop.txt b/Documentation/devicetree/bindings/video/rockchip-vop.txt
new file mode 100644
index 000000000000..d15351f2313d
--- /dev/null
+++ b/Documentation/devicetree/bindings/video/rockchip-vop.txt
@@ -0,0 +1,58 @@
1device-tree bindings for rockchip soc display controller (vop)
2
3VOP (Visual Output Processor) is the Display Controller for the Rockchip
4series of SoCs which transfers the image data from a video memory
5buffer to an external LCD interface.
6
7Required properties:
8- compatible: value should be one of the following
9 "rockchip,rk3288-vop";
10
11- interrupts: should contain a list of all VOP IP block interrupts in the
12 order: VSYNC, LCD_SYSTEM. The interrupt specifier
13 format depends on the interrupt controller used.
14
15- clocks: must include clock specifiers corresponding to entries in the
16 clock-names property.
17
18- clock-names: Must contain
19 aclk_vop: for ddr buffer transfer.
20 hclk_vop: for ahb bus to R/W the phy regs.
21 dclk_vop: pixel clock.
22
23- resets: Must contain an entry for each entry in reset-names.
24 See ../reset/reset.txt for details.
25- reset-names: Must include the following entries:
26 - axi
27 - ahb
28 - dclk
29
30- iommus: required a iommu node
31
32- port: A port node with endpoint definitions as defined in
33 Documentation/devicetree/bindings/media/video-interfaces.txt.
34
35Example:
36SoC specific DT entry:
37 vopb: vopb@ff930000 {
38 compatible = "rockchip,rk3288-vop";
39 reg = <0xff930000 0x19c>;
40 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
41 clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
42 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
43 resets = <&cru SRST_LCDC1_AXI>, <&cru SRST_LCDC1_AHB>, <&cru SRST_LCDC1_DCLK>;
44 reset-names = "axi", "ahb", "dclk";
45 iommus = <&vopb_mmu>;
46 vopb_out: port {
47 #address-cells = <1>;
48 #size-cells = <0>;
49 vopb_out_edp: endpoint@0 {
50 reg = <0>;
51 remote-endpoint=<&edp_in_vopb>;
52 };
53 vopb_out_hdmi: endpoint@1 {
54 reg = <1>;
55 remote-endpoint=<&hdmi_in_vopb>;
56 };
57 };
58 };
diff --git a/Documentation/devicetree/bindings/video/samsung-fimd.txt b/Documentation/devicetree/bindings/video/samsung-fimd.txt
index 4e6c77c85546..cf1af6371021 100644
--- a/Documentation/devicetree/bindings/video/samsung-fimd.txt
+++ b/Documentation/devicetree/bindings/video/samsung-fimd.txt
@@ -11,6 +11,7 @@ Required properties:
11 "samsung,s5pv210-fimd"; /* for S5PV210 SoC */ 11 "samsung,s5pv210-fimd"; /* for S5PV210 SoC */
12 "samsung,exynos3250-fimd"; /* for Exynos3250/3472 SoCs */ 12 "samsung,exynos3250-fimd"; /* for Exynos3250/3472 SoCs */
13 "samsung,exynos4210-fimd"; /* for Exynos4 SoCs */ 13 "samsung,exynos4210-fimd"; /* for Exynos4 SoCs */
14 "samsung,exynos4415-fimd"; /* for Exynos4415 SoC */
14 "samsung,exynos5250-fimd"; /* for Exynos5 SoCs */ 15 "samsung,exynos5250-fimd"; /* for Exynos5 SoCs */
15 16
16- reg: physical base address and length of the FIMD registers set. 17- reg: physical base address and length of the FIMD registers set.