diff options
author | Dave Airlie <airlied@redhat.com> | 2018-11-18 19:40:00 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2018-11-18 19:40:33 -0500 |
commit | d7563c55ef9fc1fd2301b8708b3c1f53509d6745 (patch) | |
tree | d7c8ba37972ecab71b056356366e136d5f2527ec /drivers/gpu/drm/amd | |
parent | 9ff01193a20d391e8dbce4403dd5ef87c7eaaca6 (diff) | |
parent | e7afb623b4fb82089c9a50c733c740522b8220bc (diff) |
Merge tag 'drm-misc-next-2018-11-07' of git://anongit.freedesktop.org/drm/drm-misc into drm-next
drm-misc-next for v4.21, part 1:
UAPI Changes:
- Add syncobj timeline support to drm.
Cross-subsystem Changes:
- Remove shared fence staging in dma-buf's fence object, and allow
reserving more than 1 fence and add more paranoia when debugging.
- Constify infoframe functions in video/hdmi.
Core Changes:
- Add vkms todo, and a lot of assorted doc fixes.
- Drop transitional helpers and convert drivers to use drm_atomic_helper_shutdown().
- Move atomic state helper functions to drm_atomic_state_helper.[ch]
- Refactor drm selftests, and add new tests.
- DP MST atomic state cleanups.
- Drop EXPORT_SYMBOL from drm leases.
- Lease cleanups and fixes.
- Create render node for vgem.
Driver Changes:
- Fix build failure in imx without fbdev emulation.
- Add rotation quirk for GPD win2 panel.
- Add support for various CDTech panels, Banana Pi Panel, DLC1010GIG,
Olimex LCD-O-LinuXino, Samsung S6D16D0, Truly NT35597 WQXGA,
Himax HX8357D, simulated RTSM AEMv8.
- Add dw_hdmi support to rockchip driver.
- Fix YUV support in vc4.
- Fix resource id handling in virtio.
- Make rockchip use dw-mipi-dsi bridge driver, and add dual dsi support.
- Advertise that tinydrm only supports DRM_FORMAT_MOD_LINEAR.
- Convert many drivers to use atomic helpers, and drm_fbdev_generic_setup().
- Add Mali linear tiled formats, and enable them in the Mali-DP driver.
- Add support for H6 DE3 mixer 0, DW HDMI, HDMI PHY and TCON TOP.
- Assorted driver cleanups and fixes.
Signed-off-by: Dave Airlie <airlied@redhat.com>
From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/be7ebd91-edd9-8fa4-4286-1c57e3165113@linux.intel.com
Diffstat (limited to 'drivers/gpu/drm/amd')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 14 |
5 files changed, 12 insertions, 14 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c index 663043c8f0f5..35bc8fc3bc70 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | |||
@@ -955,7 +955,7 @@ static int amdgpu_cs_vm_handling(struct amdgpu_cs_parser *p) | |||
955 | if (r) | 955 | if (r) |
956 | return r; | 956 | return r; |
957 | 957 | ||
958 | r = reservation_object_reserve_shared(vm->root.base.bo->tbo.resv); | 958 | r = reservation_object_reserve_shared(vm->root.base.bo->tbo.resv, 1); |
959 | if (r) | 959 | if (r) |
960 | return r; | 960 | return r; |
961 | 961 | ||
@@ -1104,7 +1104,7 @@ static int amdgpu_syncobj_lookup_and_add_to_sync(struct amdgpu_cs_parser *p, | |||
1104 | { | 1104 | { |
1105 | int r; | 1105 | int r; |
1106 | struct dma_fence *fence; | 1106 | struct dma_fence *fence; |
1107 | r = drm_syncobj_find_fence(p->filp, handle, 0, &fence); | 1107 | r = drm_syncobj_find_fence(p->filp, handle, 0, 0, &fence); |
1108 | if (r) | 1108 | if (r) |
1109 | return r; | 1109 | return r; |
1110 | 1110 | ||
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c index 904014dc5915..cf768acb51dc 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | |||
@@ -640,7 +640,7 @@ int amdgpu_bo_backup_to_shadow(struct amdgpu_device *adev, | |||
640 | bo_addr = amdgpu_bo_gpu_offset(bo); | 640 | bo_addr = amdgpu_bo_gpu_offset(bo); |
641 | shadow_addr = amdgpu_bo_gpu_offset(bo->shadow); | 641 | shadow_addr = amdgpu_bo_gpu_offset(bo->shadow); |
642 | 642 | ||
643 | r = reservation_object_reserve_shared(bo->tbo.resv); | 643 | r = reservation_object_reserve_shared(bo->tbo.resv, 1); |
644 | if (r) | 644 | if (r) |
645 | goto err; | 645 | goto err; |
646 | 646 | ||
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c index e45e929aaab5..3e44d889f7af 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c | |||
@@ -339,8 +339,6 @@ static const struct dma_buf_ops amdgpu_dmabuf_ops = { | |||
339 | .unmap_dma_buf = drm_gem_unmap_dma_buf, | 339 | .unmap_dma_buf = drm_gem_unmap_dma_buf, |
340 | .release = drm_gem_dmabuf_release, | 340 | .release = drm_gem_dmabuf_release, |
341 | .begin_cpu_access = amdgpu_gem_begin_cpu_access, | 341 | .begin_cpu_access = amdgpu_gem_begin_cpu_access, |
342 | .map = drm_gem_dmabuf_kmap, | ||
343 | .unmap = drm_gem_dmabuf_kunmap, | ||
344 | .mmap = drm_gem_dmabuf_mmap, | 342 | .mmap = drm_gem_dmabuf_mmap, |
345 | .vmap = drm_gem_dmabuf_vmap, | 343 | .vmap = drm_gem_dmabuf_vmap, |
346 | .vunmap = drm_gem_dmabuf_vunmap, | 344 | .vunmap = drm_gem_dmabuf_vunmap, |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c index dad0e2342df9..58a2363040dd 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | |||
@@ -773,7 +773,7 @@ static int amdgpu_vm_clear_bo(struct amdgpu_device *adev, | |||
773 | 773 | ||
774 | ring = container_of(vm->entity.rq->sched, struct amdgpu_ring, sched); | 774 | ring = container_of(vm->entity.rq->sched, struct amdgpu_ring, sched); |
775 | 775 | ||
776 | r = reservation_object_reserve_shared(bo->tbo.resv); | 776 | r = reservation_object_reserve_shared(bo->tbo.resv, 1); |
777 | if (r) | 777 | if (r) |
778 | return r; | 778 | return r; |
779 | 779 | ||
@@ -1842,7 +1842,7 @@ static int amdgpu_vm_bo_update_mapping(struct amdgpu_device *adev, | |||
1842 | if (r) | 1842 | if (r) |
1843 | goto error_free; | 1843 | goto error_free; |
1844 | 1844 | ||
1845 | r = reservation_object_reserve_shared(vm->root.base.bo->tbo.resv); | 1845 | r = reservation_object_reserve_shared(vm->root.base.bo->tbo.resv, 1); |
1846 | if (r) | 1846 | if (r) |
1847 | goto error_free; | 1847 | goto error_free; |
1848 | 1848 | ||
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index c1262f62cd9f..5064768642f3 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | |||
@@ -3185,7 +3185,6 @@ amdgpu_dm_connector_helper_funcs = { | |||
3185 | */ | 3185 | */ |
3186 | .get_modes = get_modes, | 3186 | .get_modes = get_modes, |
3187 | .mode_valid = amdgpu_dm_connector_mode_valid, | 3187 | .mode_valid = amdgpu_dm_connector_mode_valid, |
3188 | .best_encoder = drm_atomic_helper_best_encoder | ||
3189 | }; | 3188 | }; |
3190 | 3189 | ||
3191 | static void dm_crtc_helper_disable(struct drm_crtc *crtc) | 3190 | static void dm_crtc_helper_disable(struct drm_crtc *crtc) |
@@ -3588,14 +3587,17 @@ static int to_drm_connector_type(enum signal_type st) | |||
3588 | } | 3587 | } |
3589 | } | 3588 | } |
3590 | 3589 | ||
3590 | static struct drm_encoder *amdgpu_dm_connector_to_encoder(struct drm_connector *connector) | ||
3591 | { | ||
3592 | return drm_encoder_find(connector->dev, NULL, connector->encoder_ids[0]); | ||
3593 | } | ||
3594 | |||
3591 | static void amdgpu_dm_get_native_mode(struct drm_connector *connector) | 3595 | static void amdgpu_dm_get_native_mode(struct drm_connector *connector) |
3592 | { | 3596 | { |
3593 | const struct drm_connector_helper_funcs *helper = | ||
3594 | connector->helper_private; | ||
3595 | struct drm_encoder *encoder; | 3597 | struct drm_encoder *encoder; |
3596 | struct amdgpu_encoder *amdgpu_encoder; | 3598 | struct amdgpu_encoder *amdgpu_encoder; |
3597 | 3599 | ||
3598 | encoder = helper->best_encoder(connector); | 3600 | encoder = amdgpu_dm_connector_to_encoder(connector); |
3599 | 3601 | ||
3600 | if (encoder == NULL) | 3602 | if (encoder == NULL) |
3601 | return; | 3603 | return; |
@@ -3722,14 +3724,12 @@ static void amdgpu_dm_connector_ddc_get_modes(struct drm_connector *connector, | |||
3722 | 3724 | ||
3723 | static int amdgpu_dm_connector_get_modes(struct drm_connector *connector) | 3725 | static int amdgpu_dm_connector_get_modes(struct drm_connector *connector) |
3724 | { | 3726 | { |
3725 | const struct drm_connector_helper_funcs *helper = | ||
3726 | connector->helper_private; | ||
3727 | struct amdgpu_dm_connector *amdgpu_dm_connector = | 3727 | struct amdgpu_dm_connector *amdgpu_dm_connector = |
3728 | to_amdgpu_dm_connector(connector); | 3728 | to_amdgpu_dm_connector(connector); |
3729 | struct drm_encoder *encoder; | 3729 | struct drm_encoder *encoder; |
3730 | struct edid *edid = amdgpu_dm_connector->edid; | 3730 | struct edid *edid = amdgpu_dm_connector->edid; |
3731 | 3731 | ||
3732 | encoder = helper->best_encoder(connector); | 3732 | encoder = amdgpu_dm_connector_to_encoder(connector); |
3733 | 3733 | ||
3734 | if (!edid || !drm_edid_is_valid(edid)) { | 3734 | if (!edid || !drm_edid_is_valid(edid)) { |
3735 | amdgpu_dm_connector->num_modes = | 3735 | amdgpu_dm_connector->num_modes = |