aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2018-11-18 19:40:00 -0500
committerDave Airlie <airlied@redhat.com>2018-11-18 19:40:33 -0500
commitd7563c55ef9fc1fd2301b8708b3c1f53509d6745 (patch)
treed7c8ba37972ecab71b056356366e136d5f2527ec /drivers/gpu/drm/amd
parent9ff01193a20d391e8dbce4403dd5ef87c7eaaca6 (diff)
parente7afb623b4fb82089c9a50c733c740522b8220bc (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.c4
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_object.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c4
-rw-r--r--drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c14
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
3191static void dm_crtc_helper_disable(struct drm_crtc *crtc) 3190static 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
3590static 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
3591static void amdgpu_dm_get_native_mode(struct drm_connector *connector) 3595static 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
3723static int amdgpu_dm_connector_get_modes(struct drm_connector *connector) 3725static 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 =