Skip to content

Commit 2dc7bad

Browse files
committed
Merge tag 'drm-misc-next-2018-09-13' of git://anongit.freedesktop.org/drm/drm-misc into drm-next
drm-misc-next for 4.20: UAPI Changes: - Add host endian variants for the most common formats (Gerd) - Fail ADDFB2 for big-endian drivers that don't advertise BE quirk (Gerd) - clear smem_start in fbdev for drm drivers to avoid leaking fb addr (Daniel) Cross-subsystem Changes: Core Changes: - fix drm_mode_addfb() on big endian machines (Gerd) - add timeline point to syncobj find+replace (Chunming) - more drmP.h removal effort (Daniel) - split uapi portions of drm_atomic.c into drm_atomic_uapi.c (Daniel) Driver Changes: - bochs: Convert open-coded portions to use helpers (Peter) - vkms: Add cursor support (Haneen) - udmabuf: Lots of fixups (mostly cosmetic afaict) (Gerd) - qxl: Convert to use fbdev helper (Peter) Cc: Gerd Hoffmann <kraxel@redhat.com> Cc: Chunming Zhou <david1.zhou@amd.com> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: Peter Wu <peter@lekensteyn.nl> Cc: Haneen Mohammed <hamohammed.sa@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com> From: Sean Paul <sean@poorly.run> Link: https://patchwork.freedesktop.org/patch/msgid/20180913130254.GA156437@art_vandelay
2 parents b1c1566 + 169cc4c commit 2dc7bad

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+2327
-2261
lines changed

Documentation/gpu/drivers.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ GPU Driver Documentation
1313
tve200
1414
v3d
1515
vc4
16+
vkms
1617
bridge/dw-hdmi
1718
xen-front
1819

Documentation/gpu/drm-kms.rst

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -287,8 +287,14 @@ Atomic Mode Setting Function Reference
287287
.. kernel-doc:: drivers/gpu/drm/drm_atomic.c
288288
:export:
289289

290-
.. kernel-doc:: drivers/gpu/drm/drm_atomic.c
291-
:internal:
290+
Atomic Mode Setting IOCTL and UAPI Functions
291+
--------------------------------------------
292+
293+
.. kernel-doc:: drivers/gpu/drm/drm_atomic_uapi.c
294+
:doc: overview
295+
296+
.. kernel-doc:: drivers/gpu/drm/drm_atomic_uapi.c
297+
:export:
292298

293299
CRTC Abstraction
294300
================
@@ -566,7 +572,7 @@ Tile Group Property
566572
Explicit Fencing Properties
567573
---------------------------
568574

569-
.. kernel-doc:: drivers/gpu/drm/drm_atomic.c
575+
.. kernel-doc:: drivers/gpu/drm/drm_atomic_uapi.c
570576
:doc: explicit fencing properties
571577

572578
Existing KMS Properties

Documentation/gpu/todo.rst

Lines changed: 15 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,8 @@ interfaces to fix these issues:
127127
the acquire context explicitly on stack and then also pass it down into
128128
drivers explicitly so that the legacy-on-atomic functions can use them.
129129

130-
Except for some driver code this is done.
130+
Except for some driver code this is done. This task should be finished by
131+
adding WARN_ON(!drm_drv_uses_atomic_modeset) in drm_modeset_lock_all().
131132

132133
* A bunch of the vtable hooks are now in the wrong place: DRM has a split
133134
between core vfunc tables (named ``drm_foo_funcs``), which are used to
@@ -137,13 +138,6 @@ interfaces to fix these issues:
137138
``_helper_funcs`` since they are not part of the core ABI. There's a
138139
``FIXME`` comment in the kerneldoc for each such case in ``drm_crtc.h``.
139140

140-
* There's a new helper ``drm_atomic_helper_best_encoder()`` which could be
141-
used by all atomic drivers which don't select the encoder for a given
142-
connector at runtime. That's almost all of them, and would allow us to get
143-
rid of a lot of ``best_encoder`` boilerplate in drivers.
144-
145-
This was almost done, but new drivers added a few more cases again.
146-
147141
Contact: Daniel Vetter
148142

149143
Get rid of dev->struct_mutex from GEM drivers
@@ -164,9 +158,8 @@ private lock. The tricky part is the BO free functions, since those can't
164158
reliably take that lock any more. Instead state needs to be protected with
165159
suitable subordinate locks or some cleanup work pushed to a worker thread. For
166160
performance-critical drivers it might also be better to go with a more
167-
fine-grained per-buffer object and per-context lockings scheme. Currently the
168-
following drivers still use ``struct_mutex``: ``msm``, ``omapdrm`` and
169-
``udl``.
161+
fine-grained per-buffer object and per-context lockings scheme. Currently only the
162+
``msm`` driver still use ``struct_mutex``.
170163

171164
Contact: Daniel Vetter, respective driver maintainers
172165

@@ -190,7 +183,8 @@ Convert drivers to use simple modeset suspend/resume
190183

191184
Most drivers (except i915 and nouveau) that use
192185
drm_atomic_helper_suspend/resume() can probably be converted to use
193-
drm_mode_config_helper_suspend/resume().
186+
drm_mode_config_helper_suspend/resume(). Also there's still open-coded version
187+
of the atomic suspend/resume code in older atomic modeset drivers.
194188

195189
Contact: Maintainer of the driver you plan to convert
196190

@@ -246,20 +240,10 @@ Core refactorings
246240
Clean up the DRM header mess
247241
----------------------------
248242

249-
Currently the DRM subsystem has only one global header, ``drmP.h``. This is
250-
used both for functions exported to helper libraries and drivers and functions
251-
only used internally in the ``drm.ko`` module. The goal would be to move all
252-
header declarations not needed outside of ``drm.ko`` into
253-
``drivers/gpu/drm/drm_*_internal.h`` header files. ``EXPORT_SYMBOL`` also
254-
needs to be dropped for these functions.
255-
256-
This would nicely tie in with the below task to create kerneldoc after the API
257-
is cleaned up. Or with the "hide legacy cruft better" task.
258-
259-
Note that this is well in progress, but ``drmP.h`` is still huge. The updated
260-
plan is to switch to per-file driver API headers, which will also structure
261-
the kerneldoc better. This should also allow more fine-grained ``#include``
262-
directives.
243+
The DRM subsystem originally had only one huge global header, ``drmP.h``. This
244+
is now split up, but many source files still include it. The remaining part of
245+
the cleanup work here is to replace any ``#include <drm/drmP.h>`` by only the
246+
headers needed (and fixing up any missing pre-declarations in the headers).
263247

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

@@ -278,26 +262,6 @@ See https://dri.freedesktop.org/docs/drm/ for what's there already.
278262

279263
Contact: Daniel Vetter
280264

281-
Hide legacy cruft better
282-
------------------------
283-
284-
Way back DRM supported only drivers which shadow-attached to PCI devices with
285-
userspace or fbdev drivers setting up outputs. Modern DRM drivers take charge
286-
of the entire device, you can spot them with the DRIVER_MODESET flag.
287-
288-
Unfortunately there's still large piles of legacy code around which needs to
289-
be hidden so that driver writers don't accidentally end up using it. And to
290-
prevent security issues in those legacy IOCTLs from being exploited on modern
291-
drivers. This has multiple possible subtasks:
292-
293-
* Extract support code for legacy features into a ``drm-legacy.ko`` kernel
294-
module and compile it only when one of the legacy drivers is enabled.
295-
296-
This is mostly done, the only thing left is to split up ``drm_irq.c`` into
297-
legacy cruft and the parts needed by modern KMS drivers.
298-
299-
Contact: Daniel Vetter
300-
301265
Make panic handling work
302266
------------------------
303267

@@ -396,17 +360,12 @@ converting things over. For modeset tests we also first need a bit of
396360
infrastructure to use dumb buffers for untiled buffers, to be able to run all
397361
the non-i915 specific modeset tests.
398362

399-
Contact: Daniel Vetter
400-
401-
Create a virtual KMS driver for testing (vkms)
402-
----------------------------------------------
403-
404-
With all the latest helpers it should be fairly simple to create a virtual KMS
405-
driver useful for testing, or for running X or similar on headless machines
406-
(to be able to still use the GPU). This would be similar to vgem, but aimed at
407-
the modeset side.
363+
Extend virtual test driver (VKMS)
364+
---------------------------------
408365

409-
Once the basics are there there's tons of possibilities to extend it.
366+
See the documentation of :ref:`VKMS <vkms>` for more details. This is an ideal
367+
internship task, since it only requires a virtual machine and can be sized to
368+
fit the available time.
410369

411370
Contact: Daniel Vetter
412371

Documentation/gpu/vkms.rst

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
.. _vkms:
2+
3+
==========================================
4+
drm/vkms Virtual Kernel Modesetting
5+
==========================================
6+
7+
.. kernel-doc:: drivers/gpu/drm/vkms/vkms_drv.c
8+
:doc: vkms (Virtual Kernel Modesetting)
9+
10+
TODO
11+
====
12+
13+
CRC API
14+
-------
15+
16+
- Optimize CRC computation ``compute_crc()`` and plane blending ``blend()``
17+
18+
- Use the alpha value to blend vaddr_src with vaddr_dst instead of
19+
overwriting it in ``blend()``.
20+
21+
- Add igt test to check cleared alpha value for XRGB plane format.
22+
23+
- Add igt test to check extreme alpha values i.e. fully opaque and fully
24+
transparent (intermediate values are affected by hw-specific rounding modes).

drivers/dma-buf/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ config UDMABUF
3434
bool "userspace dmabuf misc driver"
3535
default n
3636
depends on DMA_SHARED_BUFFER
37+
depends on MEMFD_CREATE || COMPILE_TEST
3738
help
3839
A driver to let userspace turn memfd regions into dma-bufs.
3940
Qemu can use this to create host dmabufs for guest framebuffers.

0 commit comments

Comments
 (0)