diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4446-drm-amdgpu-use-the-JPEG-structure-for-general-driver.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4446-drm-amdgpu-use-the-JPEG-structure-for-general-driver.patch | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4446-drm-amdgpu-use-the-JPEG-structure-for-general-driver.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4446-drm-amdgpu-use-the-JPEG-structure-for-general-driver.patch new file mode 100644 index 00000000..ffcbfd8a --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4446-drm-amdgpu-use-the-JPEG-structure-for-general-driver.patch @@ -0,0 +1,95 @@ +From acacc1b13681b090b5ccc01dc76706436fd659a4 Mon Sep 17 00:00:00 2001 +From: Leo Liu <leo.liu@amd.com> +Date: Fri, 8 Nov 2019 10:23:14 -0500 +Subject: [PATCH 4446/4736] drm/amdgpu: use the JPEG structure for general + driver support + +JPEG1.0 will be functional along with VCN1.0 + +Signed-off-by: Leo Liu <leo.liu@amd.com> +Reviewed-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 4 ++-- + drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 6 +++--- + drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 8 +++----- + 3 files changed, 8 insertions(+), 10 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c +index 0300635f6f63..3ad8ccc6630b 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c +@@ -172,10 +172,10 @@ static int amdgpu_ctx_init(struct amdgpu_device *adev, + } + break; + case AMDGPU_HW_IP_VCN_JPEG: +- for (j = 0; j < adev->vcn.num_vcn_inst; ++j) { ++ for (j = 0; j < adev->jpeg.num_jpeg_inst; ++j) { + if (adev->vcn.harvest_config & (1 << j)) + continue; +- rings[num_rings++] = &adev->vcn.inst[j].ring_jpeg; ++ rings[num_rings++] = &adev->jpeg.inst[j].ring_dec; + } + break; + } +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c +index 488258f1138d..ab6e0fc5800f 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c +@@ -398,11 +398,11 @@ static int amdgpu_hw_ip_info(struct amdgpu_device *adev, + break; + case AMDGPU_HW_IP_VCN_JPEG: + type = AMD_IP_BLOCK_TYPE_VCN; +- for (i = 0; i < adev->vcn.num_vcn_inst; i++) { +- if (adev->uvd.harvest_config & (1 << i)) ++ for (i = 0; i < adev->jpeg.num_jpeg_inst; i++) { ++ if (adev->jpeg.harvest_config & (1 << i)) + continue; + +- if (adev->vcn.inst[i].ring_jpeg.sched.ready) ++ if (adev->jpeg.inst[i].ring_dec.sched.ready) + ++num_rings; + } + ib_start_alignment = 16; +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c +index c72819d55502..9daa42f03886 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c +@@ -213,8 +213,6 @@ int amdgpu_vcn_sw_fini(struct amdgpu_device *adev) + + for (i = 0; i < adev->vcn.num_enc_rings; ++i) + amdgpu_ring_fini(&adev->vcn.inst[j].ring_enc[i]); +- +- amdgpu_ring_fini(&adev->vcn.inst[j].ring_jpeg); + } + + release_firmware(adev->vcn.fw); +@@ -307,7 +305,7 @@ static void amdgpu_vcn_idle_work_handler(struct work_struct *work) + else + new_state.fw_based = VCN_DPG_STATE__UNPAUSE; + +- if (amdgpu_fence_count_emitted(&adev->vcn.inst[j].ring_jpeg)) ++ if (amdgpu_fence_count_emitted(&adev->jpeg.inst[j].ring_dec)) + new_state.jpeg = VCN_DPG_STATE__PAUSE; + else + new_state.jpeg = VCN_DPG_STATE__UNPAUSE; +@@ -315,7 +313,7 @@ static void amdgpu_vcn_idle_work_handler(struct work_struct *work) + adev->vcn.pause_dpg_mode(adev, &new_state); + } + +- fence[j] += amdgpu_fence_count_emitted(&adev->vcn.inst[j].ring_jpeg); ++ fence[j] += amdgpu_fence_count_emitted(&adev->jpeg.inst[j].ring_dec); + fence[j] += amdgpu_fence_count_emitted(&adev->vcn.inst[j].ring_dec); + fences += fence[j]; + } +@@ -359,7 +357,7 @@ void amdgpu_vcn_ring_begin_use(struct amdgpu_ring *ring) + else + new_state.fw_based = VCN_DPG_STATE__UNPAUSE; + +- if (amdgpu_fence_count_emitted(&adev->vcn.inst[ring->me].ring_jpeg)) ++ if (amdgpu_fence_count_emitted(&adev->jpeg.inst[ring->me].ring_dec)) + new_state.jpeg = VCN_DPG_STATE__PAUSE; + else + new_state.jpeg = VCN_DPG_STATE__UNPAUSE; +-- +2.17.1 + |