diff --git a/srcpkgs/linux5.6/patches/navi-fp-fix.patch b/srcpkgs/linux5.6/patches/navi-fp-fix.patch deleted file mode 100644 index 2ef8d398922..00000000000 --- a/srcpkgs/linux5.6/patches/navi-fp-fix.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 0539bf1adfbbb04db0eda74e487fb16d7c5f8570 Mon Sep 17 00:00:00 2001 -From: Daniel Kolesa -Date: Wed, 29 Apr 2020 16:51:37 +0200 -Subject: [PATCH] drm/amd/display: work around fp code being emitted outside of - DC_FP_START/END - -The dcn20_validate_bandwidth function would have code touching the -incorrect registers emitted outside of the boundaries of the -DC_FP_START/END macros, at least on ppc64le. Work around the -problem by wrapping the whole function instead. - -Signed-off-by: Daniel Kolesa ---- - .../drm/amd/display/dc/dcn20/dcn20_resource.c | 31 ++++++++++++++----- - 1 file changed, 23 insertions(+), 8 deletions(-) - -diff --git a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c -index e310d67..1b0bca9 100644 ---- a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c -+++ b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c -@@ -3034,25 +3034,32 @@ static bool dcn20_validate_bandwidth_internal(struct dc *dc, struct dc_state *co - return out; - } - -- --bool dcn20_validate_bandwidth(struct dc *dc, struct dc_state *context, -- bool fast_validate) -+/* -+ * This must be noinline to ensure anything that deals with FP registers -+ * is contained within this call; previously our compiling with hard-float -+ * would result in fp instructions being emitted outside of the boundaries -+ * of the DC_FP_START/END macros, which makes sense as the compiler has no -+ * idea about what is wrapped and what is not -+ * -+ * This is largely just a workaround to avoid breakage introduced with 5.6, -+ * ideally all fp-using code should be moved into its own file, only that -+ * should be compiled with hard-float, and all code exported from there -+ * should be strictly wrapped with DC_FP_START/END -+ */ -+static noinline bool dcn20_validate_bandwidth_fp(struct dc *dc, -+ struct dc_state *context, bool fast_validate) - { - bool voltage_supported = false; - bool full_pstate_supported = false; - bool dummy_pstate_supported = false; - double p_state_latency_us; - -- DC_FP_START(); - p_state_latency_us = context->bw_ctx.dml.soc.dram_clock_change_latency_us; - context->bw_ctx.dml.soc.disable_dram_clock_change_vactive_support = - dc->debug.disable_dram_clock_change_vactive_support; - - if (fast_validate) { -- voltage_supported = dcn20_validate_bandwidth_internal(dc, context, true); -- -- DC_FP_END(); -- return voltage_supported; -+ return dcn20_validate_bandwidth_internal(dc, context, true); - } - - // Best case, we support full UCLK switch latency -@@ -3081,7 +3088,15 @@ bool dcn20_validate_bandwidth(struct dc *dc, struct dc_state *context, - - restore_dml_state: - context->bw_ctx.dml.soc.dram_clock_change_latency_us = p_state_latency_us; -+ return voltage_supported; -+} - -+bool dcn20_validate_bandwidth(struct dc *dc, struct dc_state *context, -+ bool fast_validate) -+{ -+ bool voltage_supported = false; -+ DC_FP_START(); -+ voltage_supported = dcn20_validate_bandwidth_fp(dc, context, fast_validate); - DC_FP_END(); - return voltage_supported; - } --- -2.26.2 - diff --git a/srcpkgs/linux5.6/template b/srcpkgs/linux5.6/template index 88325f1f97a..c83fc61dd97 100644 --- a/srcpkgs/linux5.6/template +++ b/srcpkgs/linux5.6/template @@ -1,6 +1,6 @@ # Template file for 'linux5.6' pkgname=linux5.6 -version=5.6.11 +version=5.6.13 revision=1 wrksrc="linux-${version}" short_desc="Linux kernel and modules (${version%.*} series)" @@ -8,7 +8,7 @@ maintainer="Orphaned " license="GPL-2.0-only" homepage="https://www.kernel.org" distfiles="https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-${version}.tar.xz" -checksum=d6dd6cbe99429f088eddb248abce7832e8f8e45eb072cbf0d0f86b5b87221baa +checksum=f125d79c8f6974213638787adcad6b575bbd35a05851802fd83f622ec18ff987 python_version=3 patch_args="-Np1"