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

Commit 76ea0f33 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm-misc-next-2018-02-13' of git://anongit.freedesktop.org/drm/drm-misc into drm-next

drm-misc-next for 4.17:

UAPI Changes:
- drm/vc4: Expose performance counters to userspace (Boris)

Cross-subsystem Changes:
- MAINTAINERS: Linus to maintain panel-arm-versatile in -misc (Linus)

Core Changes:
- Only use swiotlb when necessary (Chunming)

Driver Changes:
- drm/panel: Add support for ARM Versatile panels (Linus)
- pl111: Improvements around versatile panel support (Linus)

----------------------------------------
Tagged on 2018-02-06:
drm-misc-next for 4.17:

UAPI Changes:
- Validate mode flags + type (Ville)
- Deprecate unused mode flags PIXMUX, BCAST (Ville)
- Deprecate unused mode types BUILTIN, CRTC_C, CLOCK_C, DEFAULT (Ville)

Cross-subsystem Changes:
- MAINTAINERS: s/Daniel/Maarten/ for drm-misc (Daniel)

Core Changes:
- gem: Export gem functions for drivers to use (Samuel)
- bridge: Introduce bridge timings in drm_bridge (Linus)
- dma-buf: Allow exclusive fence to be bundled in fence array when
	   calling reservation_object_get_fences_rcu (Christian)
- dp: Add training pattern 4 and HBR3 support to dp helpers (Manasi)
- fourcc: Add alpha bit to formats to avoid driver format LUTs (Maxime)
- mode: Various cleanups + add new device-wide .mode_valid hook (Ville)
- atomic: Fix state leak when non-blocking commits fail (Leo)
	  NOTE: IIRC, this was cross-picked to -fixes so it might fall out
- crc: Allow polling on the data fd (Maarten)

Driver Changes:
- bridge/vga-dac: Add THS8134* support (Linus)
- tinydrm: Various MIPI DBI improvements/cleanups (Noralf)
- bridge/dw-mipi-dsi: Cleanups + use create_packet helper (Brian)
- drm/sun4i: Add Display Engine frontend support (Maxime)
- drm/sun4i: Add zpos support + increase num planes from 2 to 4 (Maxime)
- various: Use drm_mode_get_hv_timing() to fill plane clip rectangle (Ville)
- stm: Add 8-bit clut support, add dsi phy v1.31 support, +fixes (Phillipe)

Cc: Boris Brezillon <boris.brezillon@free-electrons.com>
Cc: Chunming Zhou <david1.zhou@amd.com>
Cc: Samuel Li <Samuel.Li@amd.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Noralf Trønnes <noralf@tronnes.org>
Cc: Brian Norris <briannorris@chromium.org>
Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: Manasi Navare <manasi.d.navare@intel.com>
Cc: Philippe Cornu <philippe.cornu@st.com>
Cc: Leo (Sunpeng) Li <sunpeng.li@amd.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>

* tag 'drm-misc-next-2018-02-13' of git://anongit.freedesktop.org/drm/drm-misc: (115 commits)
  drm/radeon: only enable swiotlb path when need v2
  drm/amdgpu: only enable swiotlb alloc when need v2
  drm: add func to get max iomem address v2
  drm/vc4: Expose performance counters to userspace
  drm: Print the pid when debug logging an ioctl error.
  drm/stm: ltdc: remove non-alpha color formats on layer 2 for older hw
  drm/stm: ltdc: add non-alpha color formats
  drm/bridge/synopsys: dsi: Add 1.31 version support
  drm/bridge/synopsys: dsi: Add read feature
  drm/pl111: Support multiple endpoints on the CLCD
  drm/pl111: Support variants with broken VBLANK
  drm/pl111: Support variants with broken clock divider
  drm/pl111: Handle the Versatile RGB/BGR565 mode
  drm/pl111: Properly detect the ARM PL110 variants
  drm/panel: Add support for ARM Versatile panels
  drm/panel: Device tree bindings for ARM Versatile panels
  drm/bridge: Rename argument from crtc to bridge
  drm/crc: Add support for polling on the data fd.
  drm/sun4i: Use drm_mode_get_hv_timing() to populate plane clip rectangle
  drm/rcar-du: Use drm_mode_get_hv_timing() to populate plane clip rectangle
  ...
parents f0308d76 1bc3d3cc
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
THS8135 Video DAC
-----------------
THS8134 and THS8135 Video DAC
-----------------------------

This is the binding for Texas Instruments THS8135 Video DAC bridge.
This is the binding for Texas Instruments THS8134, THS8134A, THS8134B and
THS8135 Video DAC bridges.

Required properties:

- compatible: Must be "ti,ths8135"
- compatible: Must be one of
  "ti,ths8134"
  "ti,ths8134a," "ti,ths8134"
  "ti,ths8134b", "ti,ths8134"
  "ti,ths8135"

Required nodes:

+31 −0
Original line number Diff line number Diff line
ARM Versatile TFT Panels

These panels are connected to the daughterboards found on the
ARM Versatile reference designs.

This device node must appear as a child to a "syscon"-compatible
node.

Required properties:
- compatible: should be "arm,versatile-tft-panel"

Required subnodes:
- port: see display/panel/panel-common.txt, graph.txt


Example:

sysreg@0 {
	compatible = "arm,versatile-sysreg", "syscon", "simple-mfd";
	reg = <0x00000 0x1000>;

	panel: display@0 {
		compatible = "arm,versatile-tft-panel";

		port {
			panel_in: endpoint {
				remote-endpoint = <&foo>;
			};
		};
	};
};
+1 −1
Original line number Diff line number Diff line
@@ -98,7 +98,7 @@ Example 2: DSI panel
			compatible = "st,stm32-dsi";
			reg = <0x40016c00 0x800>;
			clocks = <&rcc 1 CLK_F469_DSI>, <&clk_hse>;
			clock-names = "ref", "pclk";
			clock-names = "pclk", "ref";
			resets = <&rcc STM32F4_APB2_RESET(DSI)>;
			reset-names = "apb";

+8 −1
Original line number Diff line number Diff line
@@ -4456,6 +4456,13 @@ T: git git://anongit.freedesktop.org/drm/drm-misc
S:	Supported
F:	drivers/gpu/drm/pl111/

DRM DRIVER FOR ARM VERSATILE TFT PANELS
M:	Linus Walleij <linus.walleij@linaro.org>
T:	git git://anongit.freedesktop.org/drm/drm-misc
S:	Maintained
F:	drivers/gpu/drm/panel/panel-arm-versatile.c
F:	Documentation/devicetree/bindings/display/panel/arm,versatile-tft-panel.txt

DRM DRIVER FOR AST SERVER GRAPHICS CHIPS
M:	Dave Airlie <airlied@redhat.com>
S:	Odd Fixes
@@ -4610,8 +4617,8 @@ F: include/uapi/drm/
F:	include/linux/vga*

DRM DRIVERS AND MISC GPU PATCHES
M:	Daniel Vetter <daniel.vetter@intel.com>
M:	Gustavo Padovan <gustavo@padovan.org>
M:	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
M:	Sean Paul <seanpaul@chromium.org>
W:	https://01.org/linuxgraphics/gfx-docs/maintainer-tools/drm-misc.html
S:	Maintained
+22 −9
Original line number Diff line number Diff line
@@ -374,8 +374,9 @@ EXPORT_SYMBOL(reservation_object_copy_fences);
 * @pshared: the array of shared fence ptrs returned (array is krealloc'd to
 * the required size, and must be freed by caller)
 *
 * RETURNS
 * Zero or -errno
 * Retrieve all fences from the reservation object. If the pointer for the
 * exclusive fence is not specified the fence is put into the array of the
 * shared fences as well. Returns either zero or -ENOMEM.
 */
int reservation_object_get_fences_rcu(struct reservation_object *obj,
				      struct dma_fence **pfence_excl,
@@ -389,8 +390,8 @@ int reservation_object_get_fences_rcu(struct reservation_object *obj,

	do {
		struct reservation_object_list *fobj;
		unsigned seq;
		unsigned int i;
		unsigned int i, seq;
		size_t sz = 0;

		shared_count = i = 0;

@@ -402,9 +403,14 @@ int reservation_object_get_fences_rcu(struct reservation_object *obj,
			goto unlock;

		fobj = rcu_dereference(obj->fence);
		if (fobj) {
		if (fobj)
			sz += sizeof(*shared) * fobj->shared_max;

		if (!pfence_excl && fence_excl)
			sz += sizeof(*shared);

		if (sz) {
			struct dma_fence **nshared;
			size_t sz = sizeof(*shared) * fobj->shared_max;

			nshared = krealloc(shared, sz,
					   GFP_NOWAIT | __GFP_NOWARN);
@@ -420,13 +426,19 @@ int reservation_object_get_fences_rcu(struct reservation_object *obj,
				break;
			}
			shared = nshared;
			shared_count = fobj->shared_count;

			shared_count = fobj ? fobj->shared_count : 0;
			for (i = 0; i < shared_count; ++i) {
				shared[i] = rcu_dereference(fobj->shared[i]);
				if (!dma_fence_get_rcu(shared[i]))
					break;
			}

			if (!pfence_excl && fence_excl) {
				shared[i] = fence_excl;
				fence_excl = NULL;
				++i;
				++shared_count;
			}
		}

		if (i != shared_count || read_seqcount_retry(&obj->seq, seq)) {
@@ -448,6 +460,7 @@ int reservation_object_get_fences_rcu(struct reservation_object *obj,

	*pshared_count = shared_count;
	*pshared = shared;
	if (pfence_excl)
		*pfence_excl = fence_excl;

	return ret;
Loading