drm/amd/display: Fix incorrect end slope of EETF
authorSivapiriyanKumarasamy <sivapiriyan.kumarasamy@amd.com>
Tue, 2 Oct 2018 12:44:04 +0000 (08:44 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 5 Nov 2018 19:20:51 +0000 (14:20 -0500)
Force the E2 to dc_fixpt_one when E1 exceeds that value. This is the
correct thing to do to avoid corruption.

Signed-off-by: SivapiriyanKumarasamy <sivapiriyan.kumarasamy@amd.com>
Reviewed-by: Krunoslav Kovac <Krunoslav.Kovac@amd.com>
Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/modules/color/color_gamma.c

index 2e215c9e54453e1232ab652af35ef93a87f311b1..bba5186842434384e87b0a4bf43655b601266744 100644 (file)
@@ -789,7 +789,8 @@ static void hermite_spline_eetf(struct fixed31_32 input_x,
                // (t^3 - 2t^2 + t) * (1-ks)
                E2 = dc_fixpt_add(E2, dc_fixpt_mul(temp2,
                                dc_fixpt_add(t, dc_fixpt_sub(t3, temp1))));
-       }
+       } else
+               E2 = dc_fixpt_one;
 
        temp1 = dc_fixpt_sub(dc_fixpt_one, E2);
        temp2 = dc_fixpt_mul(temp1, temp1);