diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/4534-drm-amd-display-replace-msleep-with-udelay-in-fbc-pa.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/4534-drm-amd-display-replace-msleep-with-udelay-in-fbc-pa.patch | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/4534-drm-amd-display-replace-msleep-with-udelay-in-fbc-pa.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/4534-drm-amd-display-replace-msleep-with-udelay-in-fbc-pa.patch new file mode 100644 index 00000000..9253aa6e --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/4534-drm-amd-display-replace-msleep-with-udelay-in-fbc-pa.patch @@ -0,0 +1,55 @@ +From 5bacec606d24bf99af3a58f4be396fe092e23308 Mon Sep 17 00:00:00 2001 +From: Roman Li <Roman.Li@amd.com> +Date: Thu, 3 May 2018 13:29:42 -0400 +Subject: [PATCH 4534/5725] drm/amd/display: replace msleep with udelay in fbc + path + +FBC enabling and disabling path has msleep which leads to +BUG hit when called in atomic context, hence this patch +replaces msleeps with udelays appropriately. + +Signed-off-by: Shirish S <shirish.s@amd.com> +Signed-off-by: Roman Li <Roman.Li@amd.com> +Reviewed-by: Tony Cheng <Tony.Cheng@amd.com> +Acked-by: Harry Wentland <harry.wentland@amd.com> +--- + drivers/gpu/drm/amd/display/dc/dce110/dce110_compressor.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_compressor.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_compressor.c +index 9150d26..e2994d3 100644 +--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_compressor.c ++++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_compressor.c +@@ -121,10 +121,10 @@ static void reset_lb_on_vblank(struct dc_context *ctx) + frame_count = dm_read_reg(ctx, mmCRTC_STATUS_FRAME_COUNT); + + +- for (retry = 100; retry > 0; retry--) { ++ for (retry = 10000; retry > 0; retry--) { + if (frame_count != dm_read_reg(ctx, mmCRTC_STATUS_FRAME_COUNT)) + break; +- msleep(1); ++ udelay(10); + } + if (!retry) + dm_error("Frame count did not increase for 100ms.\n"); +@@ -147,14 +147,14 @@ static void wait_for_fbc_state_changed( + uint32_t addr = mmFBC_STATUS; + uint32_t value; + +- while (counter < 10) { ++ while (counter < 1000) { + value = dm_read_reg(cp110->base.ctx, addr); + if (get_reg_field_value( + value, + FBC_STATUS, + FBC_ENABLE_STATUS) == enabled) + break; +- msleep(10); ++ udelay(100); + counter++; + } + +-- +2.7.4 + |