Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'drm-fixes-5.2' of git://people.freedesktop.org/~agd5f/linux into drm-fixes

Fixes for 5.2:
- Extend previous vce fix for resume to uvd and vcn
- Fix bounds checking in ras debugfs interface
- Fix a regression on SI using amdgpu

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
From: Alex Deucher <alexdeucher@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190613021856.3307-1-alexander.deucher@amd.com

+15 -5
+2 -2
drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
··· 2492 2492 2493 2493 int amdgpu_pm_load_smu_firmware(struct amdgpu_device *adev, uint32_t *smu_version) 2494 2494 { 2495 - int r = -EINVAL; 2495 + int r; 2496 2496 2497 2497 if (adev->powerplay.pp_funcs && adev->powerplay.pp_funcs->load_firmware) { 2498 2498 r = adev->powerplay.pp_funcs->load_firmware(adev->powerplay.pp_handle); ··· 2502 2502 } 2503 2503 *smu_version = adev->pm.fw_version; 2504 2504 } 2505 - return r; 2505 + return 0; 2506 2506 } 2507 2507 2508 2508 int amdgpu_pm_sysfs_init(struct amdgpu_device *adev)
+2
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h
··· 172 172 { 173 173 struct amdgpu_ras *ras = amdgpu_ras_get_context(adev); 174 174 175 + if (block >= AMDGPU_RAS_BLOCK_COUNT) 176 + return 0; 175 177 return ras && (ras->supported & (1 << block)); 176 178 } 177 179
+3 -1
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
··· 594 594 int amdgpu_vcn_enc_ring_test_ring(struct amdgpu_ring *ring) 595 595 { 596 596 struct amdgpu_device *adev = ring->adev; 597 - uint32_t rptr = amdgpu_ring_get_rptr(ring); 597 + uint32_t rptr; 598 598 unsigned i; 599 599 int r; 600 600 601 601 r = amdgpu_ring_alloc(ring, 16); 602 602 if (r) 603 603 return r; 604 + 605 + rptr = amdgpu_ring_get_rptr(ring); 604 606 605 607 amdgpu_ring_write(ring, VCN_ENC_CMD_END); 606 608 amdgpu_ring_commit(ring);
+4 -1
drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c
··· 170 170 static int uvd_v6_0_enc_ring_test_ring(struct amdgpu_ring *ring) 171 171 { 172 172 struct amdgpu_device *adev = ring->adev; 173 - uint32_t rptr = amdgpu_ring_get_rptr(ring); 173 + uint32_t rptr; 174 174 unsigned i; 175 175 int r; 176 176 177 177 r = amdgpu_ring_alloc(ring, 16); 178 178 if (r) 179 179 return r; 180 + 181 + rptr = amdgpu_ring_get_rptr(ring); 182 + 180 183 amdgpu_ring_write(ring, HEVC_ENC_CMD_END); 181 184 amdgpu_ring_commit(ring); 182 185
+4 -1
drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c
··· 175 175 static int uvd_v7_0_enc_ring_test_ring(struct amdgpu_ring *ring) 176 176 { 177 177 struct amdgpu_device *adev = ring->adev; 178 - uint32_t rptr = amdgpu_ring_get_rptr(ring); 178 + uint32_t rptr; 179 179 unsigned i; 180 180 int r; 181 181 ··· 185 185 r = amdgpu_ring_alloc(ring, 16); 186 186 if (r) 187 187 return r; 188 + 189 + rptr = amdgpu_ring_get_rptr(ring); 190 + 188 191 amdgpu_ring_write(ring, HEVC_ENC_CMD_END); 189 192 amdgpu_ring_commit(ring); 190 193