Commit a24e4b09 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm-misc-next-2019-10-24-2' of git://anongit.freedesktop.org/drm/drm-misc into drm-next



drm-misc-next for 5.5:

UAPI Changes:
-syncobj: allow querying the last submitted timeline value (David)
-fourcc: explicitly defineDRM_FORMAT_BIG_ENDIAN as unsigned (Adam)
-omap: revert the OMAP_BO_* flags that were added -- no userspace (Sean)

Cross-subsystem Changes:
-MAINTAINERS: add Mihail as komeda co-maintainer (Mihail)

Core Changes:
-edid: a few cleanups, add AVI infoframe bar info (Ville)
-todo: remove i915 device_link item and add difficulty levels (Daniel)
-dp_helpers: add a few new helpers to parse dpcd (Thierry)

Driver Changes:
-gma500: fix a few memory disclosure leaks (Kangjie)
-qxl: convert to use the new drm_gem_object_funcs.mmap (Gerd)
-various: open code dp_link helpers in preparation for helper removal (Thierry)

Cc: Chunming Zhou <david1.zhou@amd.com>
Cc: Adam Jackson <ajax@redhat.com>
Cc: Sean Paul <seanpaul@chromium.org>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Kangjie Lu <kjlu@umn.edu>
Cc: Mihail Atanassov <mihail.atanassov@arm.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Thierry Reding <treding@nvidia.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>

From: Sean Paul <sean@poorly.run>
Link: https://patchwork.freedesktop.org/patch/msgid/20191024155535.GA10294@art_vandelay
parents 60845e34 9a42c7c6
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -37,6 +37,8 @@ Optional properties:
    Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt)
    to be used for the framebuffer; if not present, the framebuffer may
    be located anywhere in memory.
  - arm,malidp-arqos-high-level: integer of u32 value describing the ARQoS
    levels of DP500's QoS signaling.


Example:
@@ -54,6 +56,7 @@ Example:
		clocks = <&oscclk2>, <&fpgaosc0>, <&fpgaosc1>, <&fpgaosc1>;
		clock-names = "pxlclk", "mclk", "aclk", "pclk";
		arm,malidp-output-port-lines = /bits/ 8 <8 8 8>;
		arm,malidp-arqos-high-level = <0xd000d000>;
		port {
			dp0_output: endpoint {
				remote-endpoint = <&tda998x_2_input>;
+5 −1
Original line number Diff line number Diff line
@@ -20,6 +20,10 @@ Required properties:
		"rockchip,rk3228-vop";
		"rockchip,rk3328-vop";

- reg: Must contain one entry corresponding to the base address and length
	of the register space. Can optionally contain a second entry
	corresponding to the CRTC gamma LUT address.

- interrupts: should contain a list of all VOP IP block interrupts in the
		 order: VSYNC, LCD_SYSTEM. The interrupt specifier
		 format depends on the interrupt controller used.
@@ -48,7 +52,7 @@ Example:
SoC specific DT entry:
	vopb: vopb@ff930000 {
		compatible = "rockchip,rk3288-vop";
		reg = <0xff930000 0x19c>;
		reg = <0x0 0xff930000 0x0 0x19c>, <0x0 0xff931000 0x0 0x1000>;
		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
		clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
+0 −3
Original line number Diff line number Diff line
@@ -77,9 +77,6 @@ Atomic State Reset and Initialization
Atomic State Helper Reference
-----------------------------

.. kernel-doc:: include/drm/drm_atomic_state_helper.h
   :internal:

.. kernel-doc:: drivers/gpu/drm/drm_atomic_state_helper.c
   :export:

+100 −19
Original line number Diff line number Diff line
@@ -7,6 +7,22 @@ TODO list
This section contains a list of smaller janitorial tasks in the kernel DRM
graphics subsystem useful as newbie projects. Or for slow rainy days.

Difficulty
----------

To make it easier task are categorized into different levels:

Starter: Good tasks to get started with the DRM subsystem.

Intermediate: Tasks which need some experience with working in the DRM
subsystem, or some specific GPU/display graphics knowledge. For debugging issue
it's good to have the relevant hardware (or a virtual driver set up) available
for testing.

Advanced: Tricky tasks that need fairly good understanding of the DRM subsystem
and graphics topics. Generally need the relevant hardware for development and
testing.

Subsystem-wide refactorings
===========================

@@ -20,6 +36,8 @@ implementations), and then remove it.

Contact: Daniel Vetter, respective driver maintainers

Level: Intermediate

Convert existing KMS drivers to atomic modesetting
--------------------------------------------------

@@ -38,6 +56,8 @@ do by directly using the new atomic helper driver callbacks.

Contact: Daniel Vetter, respective driver maintainers

Level: Advanced

Clean up the clipped coordination confusion around planes
---------------------------------------------------------

@@ -50,6 +70,8 @@ helpers.

Contact: Ville Syrjälä, Daniel Vetter, driver maintainers

Level: Advanced

Convert early atomic drivers to async commit helpers
----------------------------------------------------

@@ -63,6 +85,8 @@ events for atomic commits correctly. But fixing these bugs is good anyway.

Contact: Daniel Vetter, respective driver maintainers

Level: Advanced

Fallout from atomic KMS
-----------------------

@@ -91,6 +115,8 @@ interfaces to fix these issues:

Contact: Daniel Vetter

Level: Intermediate

Get rid of dev->struct_mutex from GEM drivers
---------------------------------------------

@@ -114,6 +140,8 @@ fine-grained per-buffer object and per-context lockings scheme. Currently only t

Contact: Daniel Vetter, respective driver maintainers

Level: Advanced

Convert instances of dev_info/dev_err/dev_warn to their DRM_DEV_* equivalent
----------------------------------------------------------------------------

@@ -129,6 +157,8 @@ are better.

Contact: Sean Paul, Maintainer of the driver you plan to convert

Level: Starter

Convert drivers to use simple modeset suspend/resume
----------------------------------------------------

@@ -139,6 +169,8 @@ of the atomic suspend/resume code in older atomic modeset drivers.

Contact: Maintainer of the driver you plan to convert

Level: Intermediate

Convert drivers to use drm_fb_helper_fbdev_setup/teardown()
-----------------------------------------------------------

@@ -157,6 +189,8 @@ probably use drm_fb_helper_fbdev_teardown().

Contact: Maintainer of the driver you plan to convert

Level: Intermediate

Clean up mmap forwarding
------------------------

@@ -166,6 +200,8 @@ There's drm_gem_prime_mmap() for this now, but still needs to be rolled out.

Contact: Daniel Vetter

Level: Intermediate

Generic fbdev defio support
---------------------------

@@ -196,6 +232,8 @@ Might be good to also have some igt testcases for this.

Contact: Daniel Vetter, Noralf Tronnes

Level: Advanced

idr_init_base()
---------------

@@ -206,6 +244,8 @@ efficient.

Contact: Daniel Vetter

Level: Starter

struct drm_gem_object_funcs
---------------------------

@@ -216,6 +256,8 @@ We also need a 2nd version of the CMA define that doesn't require the
vmapping to be present (different hook for prime importing). Plus this needs to
be rolled out to all drivers using their own implementations, too.

Level: Intermediate

Use DRM_MODESET_LOCK_ALL_* helpers instead of boilerplate
---------------------------------------------------------

@@ -231,6 +273,8 @@ As a reference, take a look at the conversions already completed in drm core.

Contact: Sean Paul, respective driver maintainers

Level: Starter

Rename CMA helpers to DMA helpers
---------------------------------

@@ -241,6 +285,9 @@ no one knows what that means) since underneath they just use dma_alloc_coherent.

Contact: Laurent Pinchart, Daniel Vetter

Level: Intermediate (mostly because it is a huge tasks without good partial
milestones, not technically itself that challenging)

Convert direct mode.vrefresh accesses to use drm_mode_vrefresh()
----------------------------------------------------------------

@@ -259,6 +306,8 @@ drm_display_mode to avoid future use.

Contact: Sean Paul

Level: Starter

Remove drm_display_mode.hsync
-----------------------------

@@ -269,6 +318,8 @@ it to use drm_mode_hsync() instead.

Contact: Sean Paul

Level: Starter

drm_fb_helper tasks
-------------------

@@ -284,6 +335,8 @@ drm_fb_helper tasks
  removed: drm_fb_helper_single_add_all_connectors(),
  drm_fb_helper_add_one_connector() and drm_fb_helper_remove_one_connector().

Level: Intermediate

connector register/unregister fixes
-----------------------------------

@@ -296,21 +349,11 @@ connector register/unregister fixes
  drm_dp_aux_init, and moving the actual registering into a late_register
  callback as recommended in the kerneldoc.

Level: Intermediate

Core refactorings
=================

Clean up the DRM header mess
----------------------------

The DRM subsystem originally had only one huge global header, ``drmP.h``. This
is now split up, but many source files still include it. The remaining part of
the cleanup work here is to replace any ``#include <drm/drmP.h>`` by only the
headers needed (and fixing up any missing pre-declarations in the headers).

In the end no .c file should need to include ``drmP.h`` anymore.

Contact: Daniel Vetter

Make panic handling work
------------------------

@@ -350,6 +393,8 @@ This is a really varied tasks with lots of little bits and pieces:

Contact: Daniel Vetter

Level: Advanced

Clean up the debugfs support
----------------------------

@@ -379,6 +424,8 @@ There's a bunch of issues with it:

Contact: Daniel Vetter

Level: Intermediate

KMS cleanups
------------

@@ -394,6 +441,8 @@ Some of these date from the very introduction of KMS in 2008 ...
  end, for which we could add drm_*_cleanup_kfree(). And then there's the (for
  historical reasons) misnamed drm_primary_helper_destroy() function.

Level: Intermediate

Better Testing
==============

@@ -402,6 +451,8 @@ Enable trinity for DRM

And fix up the fallout. Should be really interesting ...

Level: Advanced

Make KMS tests in i-g-t generic
-------------------------------

@@ -415,6 +466,8 @@ converting things over. For modeset tests we also first need a bit of
infrastructure to use dumb buffers for untiled buffers, to be able to run all
the non-i915 specific modeset tests.

Level: Advanced

Extend virtual test driver (VKMS)
---------------------------------

@@ -424,6 +477,8 @@ fit the available time.

Contact: Daniel Vetter

Level: See details

Backlight Refactoring
---------------------

@@ -437,6 +492,8 @@ Plan to fix this:

Contact: Daniel Vetter

Level: Intermediate

Driver Specific
===============

@@ -450,13 +507,6 @@ See drivers/gpu/drm/amd/display/TODO for tasks.

Contact: Harry Wentland, Alex Deucher

i915
----

- Our early/late pm callbacks could be removed in favour of using
  device_link_add to model the dependency between i915 and snd_had. See
  https://dri.freedesktop.org/docs/drm/driver-api/device_link.html

Bootsplash
==========

@@ -472,5 +522,36 @@ for fbdev.

Contact: Sam Ravnborg

Level: Advanced

Outside DRM
===========

Convert fbdev drivers to DRM
----------------------------

There are plenty of fbdev drivers for older hardware. Some hwardware has
become obsolete, but some still provides good(-enough) framebuffers. The
drivers that are still useful should be converted to DRM and afterwards
removed from fbdev.

Very simple fbdev drivers can best be converted by starting with a new
DRM driver. Simple KMS helpers and SHMEM should be able to handle any
existing hardware. The new driver's call-back functions are filled from
existing fbdev code.

More complex fbdev drivers can be refactored step-by-step into a DRM
driver with the help of the DRM fbconv helpers. [1] These helpers provide
the transition layer between the DRM core infrastructure and the fbdev
driver interface. Create a new DRM driver on top of the fbconv helpers,
copy over the fbdev driver, and hook it up to the DRM code. Examples for
several fbdev drivers are available at [1] and a tutorial of this process
available at [2]. The result is a primitive DRM driver that can run X11
and Weston.

 - [1] https://gitlab.freedesktop.org/tzimmermann/linux/tree/fbconv
 - [2] https://gitlab.freedesktop.org/tzimmermann/linux/blob/fbconv/drivers/gpu/drm/drm_fbconv_helper.c

Contact: Thomas Zimmermann <tzimmermann@suse.de>

Level: Advanced
+1 −0
Original line number Diff line number Diff line
@@ -1251,6 +1251,7 @@ F: Documentation/devicetree/bindings/display/arm,hdlcd.txt
ARM KOMEDA DRM-KMS DRIVER
M:	James (Qian) Wang <james.qian.wang@arm.com>
M:	Liviu Dudau <liviu.dudau@arm.com>
M:	Mihail Atanassov <mihail.atanassov@arm.com>
L:	Mali DP Maintainers <malidp@foss.arm.com>
S:	Supported
T:	git git://anongit.freedesktop.org/drm/drm-misc
Loading