diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/4679-drm-amd-display-fix-invalid-function-table-override.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/4679-drm-amd-display-fix-invalid-function-table-override.patch | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/4679-drm-amd-display-fix-invalid-function-table-override.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/4679-drm-amd-display-fix-invalid-function-table-override.patch new file mode 100644 index 00000000..5aa95528 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/4679-drm-amd-display-fix-invalid-function-table-override.patch @@ -0,0 +1,73 @@ +From f5adcecec19eb742b92c3a24dac3d2672024b9fe Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com> +Date: Fri, 6 Jul 2018 13:46:05 +0200 +Subject: [PATCH 4679/5725] drm/amd/display: fix invalid function table + override +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Otherwise we try to program hardware with the wrong watermark functions +when multiple DCE generations are installed in one system. + +Signed-off-by: Christian König <christian.koenig@amd.com> +Reviewed-by: Harry Wentland <harry.wentland@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +Cc: stable@vger.kernel.org +--- + drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c | 27 ++++++++++++++++++++-- + 1 file changed, 25 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c b/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c +index b235a75..bae7523 100644 +--- a/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c ++++ b/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c +@@ -741,6 +741,29 @@ static struct mem_input_funcs dce_mi_funcs = { + .mem_input_is_flip_pending = dce_mi_is_flip_pending + }; + ++static struct mem_input_funcs dce112_mi_funcs = { ++ .mem_input_program_display_marks = dce112_mi_program_display_marks, ++ .allocate_mem_input = dce_mi_allocate_dmif, ++ .free_mem_input = dce_mi_free_dmif, ++ .mem_input_program_surface_flip_and_addr = ++ dce_mi_program_surface_flip_and_addr, ++ .mem_input_program_pte_vm = dce_mi_program_pte_vm, ++ .mem_input_program_surface_config = ++ dce_mi_program_surface_config, ++ .mem_input_is_flip_pending = dce_mi_is_flip_pending ++}; ++ ++static struct mem_input_funcs dce120_mi_funcs = { ++ .mem_input_program_display_marks = dce120_mi_program_display_marks, ++ .allocate_mem_input = dce_mi_allocate_dmif, ++ .free_mem_input = dce_mi_free_dmif, ++ .mem_input_program_surface_flip_and_addr = ++ dce_mi_program_surface_flip_and_addr, ++ .mem_input_program_pte_vm = dce_mi_program_pte_vm, ++ .mem_input_program_surface_config = ++ dce_mi_program_surface_config, ++ .mem_input_is_flip_pending = dce_mi_is_flip_pending ++}; + + void dce_mem_input_construct( + struct dce_mem_input *dce_mi, +@@ -769,7 +792,7 @@ void dce112_mem_input_construct( + const struct dce_mem_input_mask *mi_mask) + { + dce_mem_input_construct(dce_mi, ctx, inst, regs, mi_shift, mi_mask); +- dce_mi->base.funcs->mem_input_program_display_marks = dce112_mi_program_display_marks; ++ dce_mi->base.funcs = &dce112_mi_funcs; + } + + void dce120_mem_input_construct( +@@ -781,5 +804,5 @@ void dce120_mem_input_construct( + const struct dce_mem_input_mask *mi_mask) + { + dce_mem_input_construct(dce_mi, ctx, inst, regs, mi_shift, mi_mask); +- dce_mi->base.funcs->mem_input_program_display_marks = dce120_mi_program_display_marks; ++ dce_mi->base.funcs = &dce120_mi_funcs; + } +-- +2.7.4 + |