Skip to content

Commit 79a106f

Browse files
committed
Merge tag 'drm-fixes-2021-05-21-1' of git://anongit.freedesktop.org/drm/drm
Pull drm fixes from Dave Airlie: "Usual collection, mostly amdgpu and some i915 regression fixes. I nearly managed to hose my build/sign machine this week, but I recovered it just in time, and I even got clang12 built. dma-buf: - WARN fix amdgpu: - Fix downscaling ratio on DCN3.x - Fix for non-4K pages - PCO/RV compute hang fix - Dongle fix - Aldebaran codec query support - Refcount leak fix - Use after free fix - Navi12 golden settings updates - GPU reset fixes radeon: - Fix for imported BO handling i915: - Pin the L-shape quirked object as unshrinkable to fix crashes - Disable HiZ Raw Stall Optimization on broken gen7 to fix glitches, gfx corruption - GVT: Move mdev attribute groups into kvmgt module to fix kconfig deps issue exynos: - Correct kerneldoc of fimd_shadow_protect_win function - Drop redundant error messages" * tag 'drm-fixes-2021-05-21-1' of git://anongit.freedesktop.org/drm/drm: dma-buf: fix unintended pin/unpin warnings drm/amdgpu: stop touching sched.ready in the backend drm/amd/amdgpu: fix a potential deadlock in gpu reset drm/amdgpu: update sdma golden setting for Navi12 drm/amdgpu: update gc golden setting for Navi12 drm/amdgpu: Fix a use-after-free drm/amdgpu: add video_codecs query support for aldebaran drm/amd/amdgpu: fix refcount leak drm/amd/display: Disconnect non-DP with no EDID drm/amdgpu: disable 3DCGCG on picasso/raven1 to avoid compute hang drm/amdgpu: Fix GPU TLB update error when PAGE_SIZE > AMDGPU_PAGE_SIZE drm/radeon: use the dummy page for GART if needed drm/amd/display: Use the correct max downscaling value for DCN3.x family drm/i915/gt: Disable HiZ Raw Stall Optimization on broken gen7 drm/i915/gem: Pin the L-shape quirked object as unshrinkable drm/exynos/decon5433: Remove redundant error printing in exynos5433_decon_probe() drm/exynos: Remove redundant error printing in exynos_dsi_probe() drm/exynos: correct exynos_drm_fimd kerneldoc drm/i915/gvt: Move mdev attribute groups into kvmgt module
2 parents ba816d3 + dd6ad05 commit 79a106f

29 files changed

Lines changed: 191 additions & 192 deletions

drivers/dma-buf/dma-buf.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -760,7 +760,7 @@ dma_buf_dynamic_attach(struct dma_buf *dmabuf, struct device *dev,
760760

761761
if (dma_buf_is_dynamic(attach->dmabuf)) {
762762
dma_resv_lock(attach->dmabuf->resv, NULL);
763-
ret = dma_buf_pin(attach);
763+
ret = dmabuf->ops->pin(attach);
764764
if (ret)
765765
goto err_unlock;
766766
}
@@ -786,7 +786,7 @@ dma_buf_dynamic_attach(struct dma_buf *dmabuf, struct device *dev,
786786

787787
err_unpin:
788788
if (dma_buf_is_dynamic(attach->dmabuf))
789-
dma_buf_unpin(attach);
789+
dmabuf->ops->unpin(attach);
790790

791791
err_unlock:
792792
if (dma_buf_is_dynamic(attach->dmabuf))
@@ -843,7 +843,7 @@ void dma_buf_detach(struct dma_buf *dmabuf, struct dma_buf_attachment *attach)
843843
__unmap_dma_buf(attach, attach->sgt, attach->dir);
844844

845845
if (dma_buf_is_dynamic(attach->dmabuf)) {
846-
dma_buf_unpin(attach);
846+
dmabuf->ops->unpin(attach);
847847
dma_resv_unlock(attach->dmabuf->resv);
848848
}
849849
}
@@ -956,7 +956,7 @@ struct sg_table *dma_buf_map_attachment(struct dma_buf_attachment *attach,
956956
if (dma_buf_is_dynamic(attach->dmabuf)) {
957957
dma_resv_assert_held(attach->dmabuf->resv);
958958
if (!IS_ENABLED(CONFIG_DMABUF_MOVE_NOTIFY)) {
959-
r = dma_buf_pin(attach);
959+
r = attach->dmabuf->ops->pin(attach);
960960
if (r)
961961
return ERR_PTR(r);
962962
}
@@ -968,7 +968,7 @@ struct sg_table *dma_buf_map_attachment(struct dma_buf_attachment *attach,
968968

969969
if (IS_ERR(sg_table) && dma_buf_is_dynamic(attach->dmabuf) &&
970970
!IS_ENABLED(CONFIG_DMABUF_MOVE_NOTIFY))
971-
dma_buf_unpin(attach);
971+
attach->dmabuf->ops->unpin(attach);
972972

973973
if (!IS_ERR(sg_table) && attach->dmabuf->ops->cache_sgt_mapping) {
974974
attach->sgt = sg_table;

drivers/gpu/drm/amd/amdgpu/amdgpu_device.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4479,7 +4479,6 @@ int amdgpu_do_asic_reset(struct list_head *device_list_handle,
44794479
r = amdgpu_ib_ring_tests(tmp_adev);
44804480
if (r) {
44814481
dev_err(tmp_adev->dev, "ib ring test failed (%d).\n", r);
4482-
r = amdgpu_device_ip_suspend(tmp_adev);
44834482
need_full_reset = true;
44844483
r = -EAGAIN;
44854484
goto end;

drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,10 +288,13 @@ static int amdgpufb_create(struct drm_fb_helper *helper,
288288
static int amdgpu_fbdev_destroy(struct drm_device *dev, struct amdgpu_fbdev *rfbdev)
289289
{
290290
struct amdgpu_framebuffer *rfb = &rfbdev->rfb;
291+
int i;
291292

292293
drm_fb_helper_unregister_fbi(&rfbdev->helper);
293294

294295
if (rfb->base.obj[0]) {
296+
for (i = 0; i < rfb->base.format->num_planes; i++)
297+
drm_gem_object_put(rfb->base.obj[0]);
295298
amdgpufb_destroy_pinned_object(rfb->base.obj[0]);
296299
rfb->base.obj[0] = NULL;
297300
drm_framebuffer_unregister_private(&rfb->base);

drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ static int amdgpu_ttm_map_buffer(struct ttm_buffer_object *bo,
225225
*addr += mm_cur->start & ~PAGE_MASK;
226226

227227
num_dw = ALIGN(adev->mman.buffer_funcs->copy_num_dw, 8);
228-
num_bytes = num_pages * 8;
228+
num_bytes = num_pages * 8 * AMDGPU_GPU_PAGES_IN_CPU_PAGE;
229229

230230
r = amdgpu_job_alloc_with_ib(adev, num_dw * 4 + num_bytes,
231231
AMDGPU_IB_POOL_DELAYED, &job);
@@ -1210,6 +1210,7 @@ static void amdgpu_ttm_tt_unpopulate(struct ttm_device *bdev,
12101210
if (gtt && gtt->userptr) {
12111211
amdgpu_ttm_tt_set_user_pages(ttm, NULL);
12121212
kfree(ttm->sg);
1213+
ttm->sg = NULL;
12131214
ttm->page_flags &= ~TTM_PAGE_FLAG_SG;
12141215
return;
12151216
}

drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1395,9 +1395,10 @@ static const struct soc15_reg_golden golden_settings_gc_10_1_2[] =
13951395
SOC15_REG_GOLDEN_VALUE(GC, 0, mmDB_DEBUG, 0xffffffff, 0x20000000),
13961396
SOC15_REG_GOLDEN_VALUE(GC, 0, mmDB_DEBUG2, 0xffffffff, 0x00000420),
13971397
SOC15_REG_GOLDEN_VALUE(GC, 0, mmDB_DEBUG3, 0xffffffff, 0x00000200),
1398-
SOC15_REG_GOLDEN_VALUE(GC, 0, mmDB_DEBUG4, 0xffffffff, 0x04800000),
1398+
SOC15_REG_GOLDEN_VALUE(GC, 0, mmDB_DEBUG4, 0xffffffff, 0x04900000),
13991399
SOC15_REG_GOLDEN_VALUE(GC, 0, mmDB_DFSM_TILES_IN_FLIGHT, 0x0000ffff, 0x0000003f),
14001400
SOC15_REG_GOLDEN_VALUE(GC, 0, mmDB_LAST_OF_BURST_CONFIG, 0xffffffff, 0x03860204),
1401+
SOC15_REG_GOLDEN_VALUE(GC, 0, mmGB_ADDR_CONFIG, 0x0c1800ff, 0x00000044),
14011402
SOC15_REG_GOLDEN_VALUE(GC, 0, mmGCR_GENERAL_CNTL, 0x1ff0ffff, 0x00000500),
14021403
SOC15_REG_GOLDEN_VALUE(GC, 0, mmGE_PRIV_CONTROL, 0x00007fff, 0x000001fe),
14031404
SOC15_REG_GOLDEN_VALUE(GC, 0, mmGL1_PIPE_STEER, 0xffffffff, 0xe4e4e4e4),
@@ -1415,12 +1416,13 @@ static const struct soc15_reg_golden golden_settings_gc_10_1_2[] =
14151416
SOC15_REG_GOLDEN_VALUE(GC, 0, mmPA_SC_ENHANCE_2, 0x00000820, 0x00000820),
14161417
SOC15_REG_GOLDEN_VALUE(GC, 0, mmPA_SC_LINE_STIPPLE_STATE, 0x0000ff0f, 0x00000000),
14171418
SOC15_REG_GOLDEN_VALUE(GC, 0, mmRMI_SPARE, 0xffffffff, 0xffff3101),
1419+
SOC15_REG_GOLDEN_VALUE(GC, 0, mmSPI_CONFIG_CNTL_1, 0x001f0000, 0x00070104),
14181420
SOC15_REG_GOLDEN_VALUE(GC, 0, mmSQ_ALU_CLK_CTRL, 0xffffffff, 0xffffffff),
14191421
SOC15_REG_GOLDEN_VALUE(GC, 0, mmSQ_ARB_CONFIG, 0x00000133, 0x00000130),
14201422
SOC15_REG_GOLDEN_VALUE(GC, 0, mmSQ_LDS_CLK_CTRL, 0xffffffff, 0xffffffff),
14211423
SOC15_REG_GOLDEN_VALUE(GC, 0, mmTA_CNTL_AUX, 0xfff7ffff, 0x01030000),
14221424
SOC15_REG_GOLDEN_VALUE(GC, 0, mmTCP_CNTL, 0xffdf80ff, 0x479c0010),
1423-
SOC15_REG_GOLDEN_VALUE(GC, 0, mmUTCL1_CTRL, 0xffffffff, 0x00800000)
1425+
SOC15_REG_GOLDEN_VALUE(GC, 0, mmUTCL1_CTRL, 0xffffffff, 0x00c00000)
14241426
};
14251427

14261428
static bool gfx_v10_is_rlcg_rw(struct amdgpu_device *adev, u32 offset, uint32_t *flag, bool write)

drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4943,7 +4943,7 @@ static void gfx_v9_0_update_3d_clock_gating(struct amdgpu_device *adev,
49434943
amdgpu_gfx_rlc_enter_safe_mode(adev);
49444944

49454945
/* Enable 3D CGCG/CGLS */
4946-
if (enable && (adev->cg_flags & AMD_CG_SUPPORT_GFX_3D_CGCG)) {
4946+
if (enable) {
49474947
/* write cmd to clear cgcg/cgls ov */
49484948
def = data = RREG32_SOC15(GC, 0, mmRLC_CGTT_MGCG_OVERRIDE);
49494949
/* unset CGCG override */
@@ -4955,8 +4955,12 @@ static void gfx_v9_0_update_3d_clock_gating(struct amdgpu_device *adev,
49554955
/* enable 3Dcgcg FSM(0x0000363f) */
49564956
def = RREG32_SOC15(GC, 0, mmRLC_CGCG_CGLS_CTRL_3D);
49574957

4958-
data = (0x36 << RLC_CGCG_CGLS_CTRL_3D__CGCG_GFX_IDLE_THRESHOLD__SHIFT) |
4959-
RLC_CGCG_CGLS_CTRL_3D__CGCG_EN_MASK;
4958+
if (adev->cg_flags & AMD_CG_SUPPORT_GFX_3D_CGCG)
4959+
data = (0x36 << RLC_CGCG_CGLS_CTRL_3D__CGCG_GFX_IDLE_THRESHOLD__SHIFT) |
4960+
RLC_CGCG_CGLS_CTRL_3D__CGCG_EN_MASK;
4961+
else
4962+
data = 0x0 << RLC_CGCG_CGLS_CTRL_3D__CGCG_GFX_IDLE_THRESHOLD__SHIFT;
4963+
49604964
if (adev->cg_flags & AMD_CG_SUPPORT_GFX_3D_CGLS)
49614965
data |= (0x000F << RLC_CGCG_CGLS_CTRL_3D__CGLS_REP_COMPANSAT_DELAY__SHIFT) |
49624966
RLC_CGCG_CGLS_CTRL_3D__CGLS_EN_MASK;

drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,8 +198,6 @@ static int jpeg_v2_5_hw_fini(void *handle)
198198
if (adev->jpeg.cur_state != AMD_PG_STATE_GATE &&
199199
RREG32_SOC15(JPEG, i, mmUVD_JRBC_STATUS))
200200
jpeg_v2_5_set_powergating_state(adev, AMD_PG_STATE_GATE);
201-
202-
ring->sched.ready = false;
203201
}
204202

205203
return 0;

drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,6 @@ static int jpeg_v3_0_hw_fini(void *handle)
166166
RREG32_SOC15(JPEG, 0, mmUVD_JRBC_STATUS))
167167
jpeg_v3_0_set_powergating_state(adev, AMD_PG_STATE_GATE);
168168

169-
ring->sched.ready = false;
170-
171169
return 0;
172170
}
173171

drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,10 @@ static const struct soc15_reg_golden golden_settings_sdma_nv14[] = {
123123

124124
static const struct soc15_reg_golden golden_settings_sdma_nv12[] = {
125125
SOC15_REG_GOLDEN_VALUE(GC, 0, mmSDMA0_RLC3_RB_WPTR_POLL_CNTL, 0xfffffff7, 0x00403000),
126+
SOC15_REG_GOLDEN_VALUE(GC, 0, mmSDMA0_GB_ADDR_CONFIG, 0x001877ff, 0x00000044),
127+
SOC15_REG_GOLDEN_VALUE(GC, 0, mmSDMA0_GB_ADDR_CONFIG_READ, 0x001877ff, 0x00000044),
128+
SOC15_REG_GOLDEN_VALUE(GC, 0, mmSDMA1_GB_ADDR_CONFIG, 0x001877ff, 0x00000044),
129+
SOC15_REG_GOLDEN_VALUE(GC, 0, mmSDMA1_GB_ADDR_CONFIG_READ, 0x001877ff, 0x00000044),
126130
SOC15_REG_GOLDEN_VALUE(GC, 0, mmSDMA1_RLC3_RB_WPTR_POLL_CNTL, 0xfffffff7, 0x00403000),
127131
};
128132

drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -497,11 +497,6 @@ static void sdma_v5_2_gfx_stop(struct amdgpu_device *adev)
497497
ib_cntl = REG_SET_FIELD(ib_cntl, SDMA0_GFX_IB_CNTL, IB_ENABLE, 0);
498498
WREG32(sdma_v5_2_get_reg_offset(adev, i, mmSDMA0_GFX_IB_CNTL), ib_cntl);
499499
}
500-
501-
sdma0->sched.ready = false;
502-
sdma1->sched.ready = false;
503-
sdma2->sched.ready = false;
504-
sdma3->sched.ready = false;
505500
}
506501

507502
/**

0 commit comments

Comments
 (0)