OSDN Git Service

drm/amd/display: Use hardware max low point when sampling OTF
authorLeo (Sunpeng) Li <sunpeng.li@amd.com>
Fri, 2 Feb 2018 14:46:41 +0000 (09:46 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 19 Feb 2018 19:20:05 +0000 (14:20 -0500)
The MAX_LOW_POINT macro should reflect the maximum low point within
hardware. Otherwise, sampling for the hardware points from the output
transfer function (OTF) will be incorrect.

Also, fix usage of MAX_LOW_POINT accordingly.

Signed-off-by: Leo (Sunpeng) Li <sunpeng.li@amd.com>
Reviewed-by: Krunoslav Kovac <Krunoslav.Kovac@amd.com>
Acked-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c

index 9e97cd7..bc69864 100644 (file)
@@ -409,7 +409,7 @@ static bool convert_to_custom_float(struct pwl_result_data *rgb_resulted,
        return true;
 }
 
-#define MAX_LOW_POINT      11
+#define MAX_LOW_POINT      25
 #define NUMBER_REGIONS     16
 #define NUMBER_SW_SEGMENTS 16
 
@@ -443,8 +443,8 @@ dce110_translate_regamma_to_hw_format(const struct dc_transfer_func *output_tf,
                /* 16 segments
                 * segments are from 2^-11 to 2^5
                 */
-               region_start = -MAX_LOW_POINT;
-               region_end = NUMBER_REGIONS - MAX_LOW_POINT;
+               region_start = -11;
+               region_end = region_start + NUMBER_REGIONS;
 
                for (i = 0; i < NUMBER_REGIONS; i++)
                        seg_distr[i] = 4;