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

Configure Feed

Select the types of activity you want to include in your feed.

drm/amdgpu: add queue reset support for jpeg 5.3

Enable queue reset for JPEG 5.3.

Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

+19
+19
drivers/gpu/drm/amd/amdgpu/jpeg_v5_3_0.c
··· 104 104 /* TODO: Add queue reset mask when FW fully supports it */ 105 105 adev->jpeg.supported_reset = 106 106 amdgpu_get_soft_full_reset_mask(&adev->jpeg.inst[0].ring_dec[0]); 107 + if (!amdgpu_sriov_vf(adev)) 108 + adev->jpeg.supported_reset |= AMDGPU_RESET_TYPE_PER_QUEUE; 107 109 r = amdgpu_jpeg_sysfs_reset_mask_init(adev); 108 110 if (r) 109 111 return r; ··· 627 625 return 0; 628 626 } 629 627 628 + static int jpeg_v5_3_0_ring_reset(struct amdgpu_ring *ring, 629 + unsigned int vmid, 630 + struct amdgpu_fence *timedout_fence) 631 + { 632 + int r; 633 + 634 + amdgpu_ring_reset_helper_begin(ring, timedout_fence); 635 + r = jpeg_v5_3_0_stop(ring->adev); 636 + if (r) 637 + return r; 638 + r = jpeg_v5_3_0_start(ring->adev); 639 + if (r) 640 + return r; 641 + return amdgpu_ring_reset_helper_end(ring, timedout_fence); 642 + } 643 + 630 644 static const struct amd_ip_funcs jpeg_v5_3_0_ip_funcs = { 631 645 .name = "jpeg_v5_3_0", 632 646 .early_init = jpeg_v5_3_0_early_init, ··· 686 668 .emit_wreg = jpeg_v4_0_3_dec_ring_emit_wreg, 687 669 .emit_reg_wait = jpeg_v4_0_3_dec_ring_emit_reg_wait, 688 670 .emit_reg_write_reg_wait = amdgpu_ring_emit_reg_write_reg_wait_helper, 671 + .reset = jpeg_v5_3_0_ring_reset, 689 672 }; 690 673 691 674 static void jpeg_v5_3_0_set_dec_ring_funcs(struct amdgpu_device *adev)