Skip to content

Commit

Permalink
Merge tag 'drm-misc-next-2019-03-21' of git://anongit.freedesktop.org…
Browse files Browse the repository at this point in the history
…/drm/drm-misc into drm-next

drm-misc-next for 5.2:

UAPI Changes:
- Add Colorspace connector property (Uma)
- fourcc: Several new YUV formats from ARM (Brian & Ayan)
- fourcc: Fix merge conflicts between new formats above and Swati's that
  went in via topic/hdr-formats-2019-03-07 branch (Maarten)

Cross-subsystem Changes:
- Typed component support via topic/component-typed-2019-02-11 (Maxime/Daniel)

Core Changes:
- Improve component helper documentation (Daniel)
- Avoid calling drm_dev_unregister() twice on unplugged devices (Noralf)
- Add device managed (devm) drm_device init function (Noralf)
- Graduate TINYDRM_MODE to DRM_SIMPLE_MODE in core (Noralf)
- Move MIPI/DSI rate control params computation into core from i915 (David)
- Add support for shmem backed gem objects (Noralf)

Driver Changes:
- various: Use of_node_name_eq for node name comparisons (Rob Herring)
- sun4i: Add DSI burst mode support (Konstantin)
- panel: Add Ronbo RB070D30 MIPI/DSI panel support (Konstantin)
- virtio: A few prime improvements (Gerd)
- tinydrm: Remove tinydrm_device (Noralf)
- vc4: Add load tracker to driver to detect underflow in atomic check (Boris)
- vboxvideo: Move it out of staging \o/ (Hans)
- v3d: Add support for V3D v4.2 (Eric)

Cc: Konstantin Sudakov <k.sudakov@integrasources.com>
Cc: Rob Herring <robh@kernel.org>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Maxime Ripard <maxime.ripard@bootlin.com>
Cc: Uma Shankar <uma.shankar@intel.com>
Cc: Noralf Trønnes <noralf@tronnes.org>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: David Francis <David.Francis@amd.com>
Cc: Boris Brezillon <boris.brezillon@bootlin.com>
Cc: Eric Anholt <eric@anholt.net>
Cc: Hans de Goede <hdegoede@redhat.com>
Cc: Brian Starkey <brian.starkey@arm.com>
Cc: Ayan Kumar Halder <ayan.halder@arm.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>

From: Sean Paul <sean@poorly.run>
Link: https://patchwork.freedesktop.org/patch/msgid/20190321170805.GA50145@art_vandelay
  • Loading branch information
Daniel Vetter committed Mar 25, 2019
2 parents 535f6f5 + ff01e69 commit 0bec621
Show file tree
Hide file tree
Showing 170 changed files with 4,555 additions and 1,906 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -60,15 +60,14 @@ Required properties:
- reg: base address and size of he following memory-mapped regions :
- vpu
- hhi
- dmc
- reg-names: should contain the names of the previous memory regions
- interrupts: should contain the VENC Vsync interrupt number
- amlogic,canvas: phandle to canvas provider node as described in the file
../soc/amlogic/amlogic,canvas.txt

Optional properties:
- power-domains: Optional phandle to associated power domain as described in
the file ../power/power_domain.txt
- amlogic,canvas: phandle to canvas provider node as described in the file
../soc/amlogic/amlogic,canvas.txt

Required nodes:

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# SPDX-License-Identifier: (GPL-2.0+ OR X11)
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/panel/ronbo,rb070d30.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Ronbo RB070D30 DSI Display Panel

maintainers:
- Maxime Ripard <maxime.ripard@bootlin.com>

properties:
compatible:
const: ronbo,rb070d30

reg:
description: MIPI-DSI virtual channel

power-gpios:
description: GPIO used for the power pin
maxItems: 1

reset-gpios:
description: GPIO used for the reset pin
maxItems: 1

shlr-gpios:
description: GPIO used for the shlr pin (horizontal flip)
maxItems: 1

updn-gpios:
description: GPIO used for the updn pin (vertical flip)
maxItems: 1

vcc-lcd-supply:
description: Power regulator

backlight:
description: Backlight used by the panel
$ref: "/schemas/types.yaml#/definitions/phandle"

required:
- compatible
- power-gpios
- reg
- reset-gpios
- shlr-gpios
- updn-gpios
- vcc-lcd-supply

additionalProperties: false
11 changes: 8 additions & 3 deletions Documentation/devicetree/bindings/gpu/brcm,bcm-v3d.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,20 @@ For V3D 2.x, see brcm,bcm-vc4.txt.
Required properties:
- compatible: Should be "brcm,7268-v3d" or "brcm,7278-v3d"
- reg: Physical base addresses and lengths of the register areas
- reg-names: Names for the register areas. The "hub", "bridge", and "core0"
- reg-names: Names for the register areas. The "hub" and "core0"
register areas are always required. The "gca" register area
is required if the GCA cache controller is present.
is required if the GCA cache controller is present. The
"bridge" register area is required if an external reset
controller is not present.
- interrupts: The interrupt numbers. The first interrupt is for the hub,
while the following interrupts are for the cores.
while the following interrupts are separate interrupt lines
for the cores (if they don't share the hub's interrupt).
See bindings/interrupt-controller/interrupts.txt

Optional properties:
- clocks: The core clock the unit runs on
- resets: The reset line for v3d, if not using a mapping of the bridge
See bindings/reset/reset.txt

v3d {
compatible = "brcm,7268-v3d";
Expand Down
1 change: 1 addition & 0 deletions Documentation/devicetree/bindings/vendor-prefixes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,7 @@ rikomagic Rikomagic Tech Corp. Ltd
riscv RISC-V Foundation
rockchip Fuzhou Rockchip Electronics Co., Ltd
rohm ROHM Semiconductor Co., Ltd
ronbo Ronbo Electronics
roofull Shenzhen Roofull Technology Co, Ltd
samsung Samsung Semiconductor
samtec Samtec/Softing company
Expand Down
2 changes: 2 additions & 0 deletions Documentation/driver-api/component.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
.. _component:

======================================
Component Helper for Aggregate Drivers
======================================
Expand Down
3 changes: 3 additions & 0 deletions Documentation/driver-model/devres.txt
Original file line number Diff line number Diff line change
Expand Up @@ -256,6 +256,9 @@ DMA
dmam_pool_create()
dmam_pool_destroy()

DRM
devm_drm_dev_init()

GPIO
devm_gpiod_get()
devm_gpiod_get_index()
Expand Down
5 changes: 5 additions & 0 deletions Documentation/gpu/drm-internals.rst
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,11 @@ Device Instance and Driver Handling
Driver Load
-----------

Component Helper Usage
~~~~~~~~~~~~~~~~~~~~~~

.. kernel-doc:: drivers/gpu/drm/drm_drv.c
:doc: component helper usage recommendations

IRQ Helper Library
~~~~~~~~~~~~~~~~~~
Expand Down
12 changes: 12 additions & 0 deletions Documentation/gpu/drm-kms-helpers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -369,3 +369,15 @@ Legacy CRTC/Modeset Helper Functions Reference

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

SHMEM GEM Helper Reference
==========================

.. kernel-doc:: drivers/gpu/drm/drm_gem_shmem_helper.c
:doc: overview

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

.. kernel-doc:: drivers/gpu/drm/drm_gem_shmem_helper.c
:export:
30 changes: 9 additions & 21 deletions Documentation/gpu/tinydrm.rst
Original file line number Diff line number Diff line change
@@ -1,34 +1,22 @@
==========================
drm/tinydrm Driver library
==========================
============================
drm/tinydrm Tiny DRM drivers
============================

.. kernel-doc:: drivers/gpu/drm/tinydrm/core/tinydrm-core.c
:doc: overview

Core functionality
==================
tinydrm is a collection of DRM drivers that are so small they can fit in a
single source file.

.. kernel-doc:: drivers/gpu/drm/tinydrm/core/tinydrm-core.c
:doc: core
Helpers
=======

.. kernel-doc:: include/drm/tinydrm/tinydrm.h
.. kernel-doc:: include/drm/tinydrm/tinydrm-helpers.h
:internal:

.. kernel-doc:: drivers/gpu/drm/tinydrm/core/tinydrm-core.c
.. kernel-doc:: drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c
:export:

.. kernel-doc:: drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c
:export:

Additional helpers
==================

.. kernel-doc:: include/drm/tinydrm/tinydrm-helpers.h
:internal:

.. kernel-doc:: drivers/gpu/drm/tinydrm/core/tinydrm-helpers.c
:export:

MIPI DBI Compatible Controllers
===============================

Expand Down
12 changes: 4 additions & 8 deletions Documentation/gpu/todo.rst
Original file line number Diff line number Diff line change
Expand Up @@ -215,12 +215,12 @@ Might be good to also have some igt testcases for this.

Contact: Daniel Vetter, Noralf Tronnes

Put a reservation_object into drm_gem_object
Remove the ->gem_prime_res_obj callback
--------------------------------------------

This would remove the need for the ->gem_prime_res_obj callback. It would also
allow us to implement generic helpers for waiting for a bo, allowing for quite a
bit of refactoring in the various wait ioctl implementations.
The ->gem_prime_res_obj callback can be removed from drivers by using the
reservation_object in the drm_gem_object. It may also be possible to use the
generic drm_gem_reservation_object_wait helper for waiting for a bo.

Contact: Daniel Vetter

Expand Down Expand Up @@ -469,10 +469,6 @@ those drivers as simple as possible, so lots of room for refactoring:
one of the ideas for having a shared dsi/dbi helper, abstracting away the
transport details more.

- Quick aside: The unregister devm stuff is kinda getting the lifetimes of
a drm_device wrong. Doesn't matter, since everyone else gets it wrong
too :-)

Contact: Noralf Trønnes, Daniel Vetter

AMD DC Display Driver
Expand Down
7 changes: 7 additions & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -5045,6 +5045,13 @@ S: Odd Fixes
F: drivers/gpu/drm/udl/
T: git git://anongit.freedesktop.org/drm/drm-misc

DRM DRIVER FOR VIRTUALBOX VIRTUAL GPU
M: Hans de Goede <hdegoede@redhat.com>
L: dri-devel@lists.freedesktop.org
S: Maintained
F: drivers/gpu/drm/vboxvideo/
T: git git://anongit.freedesktop.org/drm/drm-misc

DRM DRIVER FOR VIRTUAL KERNEL MODESETTING (VKMS)
M: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
R: Haneen Mohammed <hamohammed.sa@gmail.com>
Expand Down
8 changes: 8 additions & 0 deletions drivers/dma-buf/reservation.c
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ int reservation_object_reserve_shared(struct reservation_object *obj,
struct reservation_object_list *old, *new;
unsigned int i, j, k, max;

reservation_object_assert_held(obj);

old = reservation_object_get_list(obj);

if (old && old->shared_max) {
Expand Down Expand Up @@ -151,6 +153,8 @@ void reservation_object_add_shared_fence(struct reservation_object *obj,

dma_fence_get(fence);

reservation_object_assert_held(obj);

fobj = reservation_object_get_list(obj);
count = fobj->shared_count;

Expand Down Expand Up @@ -196,6 +200,8 @@ void reservation_object_add_excl_fence(struct reservation_object *obj,
struct reservation_object_list *old;
u32 i = 0;

reservation_object_assert_held(obj);

old = reservation_object_get_list(obj);
if (old)
i = old->shared_count;
Expand Down Expand Up @@ -236,6 +242,8 @@ int reservation_object_copy_fences(struct reservation_object *dst,
size_t size;
unsigned i;

reservation_object_assert_held(dst);

rcu_read_lock();
src_list = rcu_dereference(src->fence);

Expand Down
8 changes: 8 additions & 0 deletions drivers/gpu/drm/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,12 @@ config DRM_KMS_CMA_HELPER
help
Choose this if you need the KMS CMA helper functions

config DRM_GEM_SHMEM_HELPER
bool
depends on DRM
help
Choose this if you need the GEM shmem helper functions

config DRM_VM
bool
depends on DRM && MMU
Expand Down Expand Up @@ -329,6 +335,8 @@ source "drivers/gpu/drm/tve200/Kconfig"

source "drivers/gpu/drm/xen/Kconfig"

source "drivers/gpu/drm/vboxvideo/Kconfig"

# Keep legacy drivers last

menuconfig DRM_LEGACY
Expand Down
2 changes: 2 additions & 0 deletions drivers/gpu/drm/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ drm-$(CONFIG_DRM_LIB_RANDOM) += lib/drm_random.o
drm-$(CONFIG_DRM_VM) += drm_vm.o
drm-$(CONFIG_COMPAT) += drm_ioc32.o
drm-$(CONFIG_DRM_GEM_CMA_HELPER) += drm_gem_cma_helper.o
drm-$(CONFIG_DRM_GEM_SHMEM_HELPER) += drm_gem_shmem_helper.o
drm-$(CONFIG_PCI) += ati_pcigart.o
drm-$(CONFIG_DRM_PANEL) += drm_panel.o
drm-$(CONFIG_OF) += drm_of.o
Expand Down Expand Up @@ -109,3 +110,4 @@ obj-$(CONFIG_DRM_TINYDRM) += tinydrm/
obj-$(CONFIG_DRM_PL111) += pl111/
obj-$(CONFIG_DRM_TVE200) += tve200/
obj-$(CONFIG_DRM_XEN) += xen/
obj-$(CONFIG_DRM_VBOXVIDEO) += vboxvideo/
1 change: 1 addition & 0 deletions drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -974,6 +974,7 @@ amdgpu_pci_remove(struct pci_dev *pdev)

DRM_ERROR("Device removal is currently not supported outside of fbcon\n");
drm_dev_unplug(dev);
drm_dev_put(dev);
pci_disable_device(pdev);
pci_set_drvdata(pdev, NULL);
}
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
Original file line number Diff line number Diff line change
Expand Up @@ -886,7 +886,7 @@ static int gmc_v6_0_sw_init(void *handle)
pci_set_consistent_dma_mask(adev->pdev, DMA_BIT_MASK(32));
dev_warn(adev->dev, "amdgpu: No coherent DMA available.\n");
}
adev->need_swiotlb = drm_get_max_iomem() > ((u64)1 << dma_bits);
adev->need_swiotlb = drm_need_swiotlb(dma_bits);

r = gmc_v6_0_init_microcode(adev);
if (r) {
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
Original file line number Diff line number Diff line change
Expand Up @@ -1030,7 +1030,7 @@ static int gmc_v7_0_sw_init(void *handle)
pci_set_consistent_dma_mask(adev->pdev, DMA_BIT_MASK(32));
pr_warn("amdgpu: No coherent DMA available\n");
}
adev->need_swiotlb = drm_get_max_iomem() > ((u64)1 << dma_bits);
adev->need_swiotlb = drm_need_swiotlb(dma_bits);

r = gmc_v7_0_init_microcode(adev);
if (r) {
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
Original file line number Diff line number Diff line change
Expand Up @@ -1155,7 +1155,7 @@ static int gmc_v8_0_sw_init(void *handle)
pci_set_consistent_dma_mask(adev->pdev, DMA_BIT_MASK(32));
pr_warn("amdgpu: No coherent DMA available\n");
}
adev->need_swiotlb = drm_get_max_iomem() > ((u64)1 << dma_bits);
adev->need_swiotlb = drm_need_swiotlb(dma_bits);

r = gmc_v8_0_init_microcode(adev);
if (r) {
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
Original file line number Diff line number Diff line change
Expand Up @@ -1011,7 +1011,7 @@ static int gmc_v9_0_sw_init(void *handle)
pci_set_consistent_dma_mask(adev->pdev, DMA_BIT_MASK(32));
printk(KERN_WARNING "amdgpu: No coherent DMA available.\n");
}
adev->need_swiotlb = drm_get_max_iomem() > ((u64)1 << dma_bits);
adev->need_swiotlb = drm_need_swiotlb(dma_bits);

if (adev->gmc.xgmi.supported) {
r = gfxhub_v1_1_get_xgmi_info(adev);
Expand Down
Loading

0 comments on commit 0bec621

Please sign in to comment.