aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0586-drm-amd-dal-Fix-uint64-vs-int64-warnings.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0586-drm-amd-dal-Fix-uint64-vs-int64-warnings.patch')
-rw-r--r--common/recipes-kernel/linux/files/0586-drm-amd-dal-Fix-uint64-vs-int64-warnings.patch98
1 files changed, 98 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0586-drm-amd-dal-Fix-uint64-vs-int64-warnings.patch b/common/recipes-kernel/linux/files/0586-drm-amd-dal-Fix-uint64-vs-int64-warnings.patch
new file mode 100644
index 00000000..faccde51
--- /dev/null
+++ b/common/recipes-kernel/linux/files/0586-drm-amd-dal-Fix-uint64-vs-int64-warnings.patch
@@ -0,0 +1,98 @@
+From b28613871a2ee3fa67ee67d18a9a47603ecf4cb2 Mon Sep 17 00:00:00 2001
+From: Jordan Lazare <Jordan.Lazare@amd.com>
+Date: Mon, 30 Nov 2015 17:55:33 -0500
+Subject: [PATCH 0586/1110] drm/amd/dal: Fix uint64 vs int64 warnings
+
+Signed-off-by: Jordan Lazare <Jordan.Lazare@amd.com>
+Reviewed-by: Harry Wentland <Harry.Wentland@amd.com>
+---
+ drivers/gpu/drm/amd/dal/dc/calcs/bandwidth_calcs.c | 8 ++++----
+ drivers/gpu/drm/amd/dal/dc/calcs/bw_fixed.c | 12 ++++++++----
+ drivers/gpu/drm/amd/dal/dc/core/dc_resource.c | 4 ++--
+ 3 files changed, 14 insertions(+), 10 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/dal/dc/calcs/bandwidth_calcs.c b/drivers/gpu/drm/amd/dal/dc/calcs/bandwidth_calcs.c
+index e9fc75f..542b3d7 100644
+--- a/drivers/gpu/drm/amd/dal/dc/calcs/bandwidth_calcs.c
++++ b/drivers/gpu/drm/amd/dal/dc/calcs/bandwidth_calcs.c
+@@ -1357,8 +1357,8 @@ static void calculate_bandwidth(const struct bw_calcs_input_dceip *dceip,
+ int_to_fixed(4));
+ }
+
+- div64_u64_rem(mode_data->underlay_pitch_in_pixels.value,
+- results->inefficient_underlay_pitch_in_pixels.value,
++ div64_u64_rem((uint64_t)mode_data->underlay_pitch_in_pixels.value,
++ (uint64_t)results->inefficient_underlay_pitch_in_pixels.value,
+ &remainder);
+
+ if (mode_data->underlay_tiling_mode == linear
+@@ -1413,11 +1413,11 @@ static void calculate_bandwidth(const struct bw_calcs_input_dceip *dceip,
+ int_to_fixed(0);
+ for (i = 0; i <= maximum_number_of_surfaces - 1; i += 1) {
+ if (results->enable[i]) {
+- uint64_t arg1 = mul(results->pitch_in_pixels_after_surface_type[i],
++ uint64_t arg1 = (uint64_t)mul(results->pitch_in_pixels_after_surface_type[i],
+ results->bytes_per_pixel[i]).value;
+
+ div64_u64_rem(arg1,
+- results->inefficient_linear_pitch_in_bytes.value,
++ (uint64_t)results->inefficient_linear_pitch_in_bytes.value,
+ &remainder);
+
+ if (results->scatter_gather_enable_for_pipe[i] == true
+diff --git a/drivers/gpu/drm/amd/dal/dc/calcs/bw_fixed.c b/drivers/gpu/drm/amd/dal/dc/calcs/bw_fixed.c
+index 8bdd0fb..646fafe 100644
+--- a/drivers/gpu/drm/amd/dal/dc/calcs/bw_fixed.c
++++ b/drivers/gpu/drm/amd/dal/dc/calcs/bw_fixed.c
+@@ -90,8 +90,8 @@ struct bw_fixed frc_to_fixed(int64_t numerator, int64_t denominator)
+
+ ASSERT(denominator != 0);
+
+- arg1_value = abs_i64(numerator);
+- arg2_value = abs_i64(denominator);
++ arg1_value = (uint64_t)abs_i64(numerator);
++ arg2_value = (uint64_t)abs_i64(denominator);
+ res_value = div64_u64_rem(arg1_value, arg2_value, &remainder);
+
+ ASSERT(res_value <= MAX_I32);
+@@ -144,7 +144,7 @@ struct bw_fixed bw_floor(const struct bw_fixed arg, const struct bw_fixed signif
+ {
+ struct bw_fixed result;
+ int64_t multiplicand;
+- multiplicand = div64_u64(arg.value, abs_i64(significance.value));
++ multiplicand = div64_s64(arg.value, abs_i64(significance.value));
+ result.value = abs_i64(significance.value) * multiplicand;
+ ASSERT(abs_i64(result.value) <= abs_i64(arg.value));
+ return result;
+@@ -153,7 +153,11 @@ struct bw_fixed bw_floor(const struct bw_fixed arg, const struct bw_fixed signif
+ struct bw_fixed bw_ceil(const struct bw_fixed arg, const struct bw_fixed significance)
+ {
+ struct bw_fixed result;
+- div64_u64_rem(arg.value, abs_i64(significance.value), &result.value);
++ div64_u64_rem(
++ (uint64_t)arg.value,
++ (uint64_t)abs_i64(significance.value),
++ (uint64_t *)&result.value
++ );
+ result.value += arg.value;
+ if (result.value < significance.value)
+ result.value = significance.value;
+diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc_resource.c b/drivers/gpu/drm/amd/dal/dc/core/dc_resource.c
+index 7d90532..861d80a 100644
+--- a/drivers/gpu/drm/amd/dal/dc/core/dc_resource.c
++++ b/drivers/gpu/drm/amd/dal/dc/core/dc_resource.c
+@@ -280,9 +280,9 @@ static void calculate_scaling_ratios(
+ == PLANE_STEREO_FORMAT_TOP_AND_BOTTOM)
+ stream->ratios.vert.value *= 2;
+
+- stream->ratios.vert.value = div64_u64(stream->ratios.vert.value * in_h,
++ stream->ratios.vert.value = div64_s64(stream->ratios.vert.value * in_h,
+ out_h);
+- stream->ratios.horz.value = div64_u64(stream->ratios.horz.value * in_w ,
++ stream->ratios.horz.value = div64_s64(stream->ratios.horz.value * in_w ,
+ out_w);
+
+ stream->ratios.horz_c = stream->ratios.horz;
+--
+2.7.4
+