diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0067-drm-amd-display-Refactor-to-move-color-helper-into-m.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0067-drm-amd-display-Refactor-to-move-color-helper-into-m.patch | 316 |
1 files changed, 0 insertions, 316 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0067-drm-amd-display-Refactor-to-move-color-helper-into-m.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0067-drm-amd-display-Refactor-to-move-color-helper-into-m.patch deleted file mode 100644 index 99b4e8d8..00000000 --- a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/0067-drm-amd-display-Refactor-to-move-color-helper-into-m.patch +++ /dev/null @@ -1,316 +0,0 @@ -From f66f6ae0ebc1fee69c1a55c60776baaea1057d29 Mon Sep 17 00:00:00 2001 -From: Anthony Koo <Anthony.Koo@amd.com> -Date: Wed, 14 Dec 2016 16:26:27 -0500 -Subject: [PATCH 0067/4131] drm/amd/display: Refactor to move color helper into - module - -Refactor part 2 - Moving color helper into color module - -The color module will need table defined in the helper in order to calculate -the logical regamma curve, and also to fully handle gamut remapping. - -Signed-off-by: Anthony Koo <anthony.koo@amd.com> -Reviewed-by: Aric Cyr <Aric.Cyr@amd.com> -Acked-by: Harry Wentland <Harry.Wentland@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> ---- - .../drm/amd/display/modules/color/color_helper.c | 199 +++++++++++++++++++++ - .../drm/amd/display/modules/color/color_helper.h | 50 ++++++ - .../gpu/drm/amd/display/modules/inc/mod_color.h | 4 +- - 3 files changed, 251 insertions(+), 2 deletions(-) - create mode 100644 drivers/gpu/drm/amd/display/modules/color/color_helper.c - create mode 100644 drivers/gpu/drm/amd/display/modules/color/color_helper.h - -diff --git a/drivers/gpu/drm/amd/display/modules/color/color_helper.c b/drivers/gpu/drm/amd/display/modules/color/color_helper.c -new file mode 100644 -index 0000000..c47d296 ---- /dev/null -+++ b/drivers/gpu/drm/amd/display/modules/color/color_helper.c -@@ -0,0 +1,199 @@ -+ -+/** -+ * @file -+ * @date Copyright (c) 2008 Advanced Micro Devices, Inc. (unpublished) -+ * -+ * @brief Helper functions for color gamut calculation -+ * -+ * @internal -+ * All rights reserved. This notice is intended as a precaution against -+ * inadvertent publication and does not imply publication or any waiver -+ * of confidentiality. The year included in the foregoing notice is the -+ * year of creation of the work. -+ */ -+ -+#include "dm_services.h" -+#include "dc.h" -+#include "mod_color.h" -+#include "color_helper.h" -+ -+const struct gamut_space_entry predefined_gamuts[] = { -+ /* x_red y_red x_gr y_gr x_blue y_blue a0 a1 a2 a3 gamma */ -+ [gamut_type_bt709] = {6400, 3300, 3000, 6000, 1500, 600, 180000, 4500, 99, 99, 2200}, -+ [gamut_type_bt601] = {6400, 3300, 2900, 6000, 1500, 600, 180000, 4500, 99, 99, 2200}, -+ [gamut_type_adobe_rgb] = {6400, 3300, 2100, 7100, 1500, 600, 180000, 4500, 99, 99, 2200}, -+ [gamut_type_srgb] = {6400, 3300, 3000, 6000, 1500, 600, 31308, 12920, 55, 55, 2400}, -+ [gamut_type_bt2020] = {7080, 2920, 1700, 7970, 1310, 460, 180000, 4500, 99, 99, 2200} -+}; -+ -+const struct white_point_coodinates_entry predefined_white_points[] = { -+ [white_point_type_5000k_horizon] = {5000, 3473, 3561}, -+ [white_point_type_6500k_noon] = {6500, 3127, 3290}, -+ [white_point_type_7500k_north_sky] = {7500, 3022, 3129}, -+ [white_point_type_9300k] = {9300, 2866, 2950} -+}; -+ -+const unsigned int white_point_entries = 91; -+ -+const struct white_point_coodinates_entry white_point_temps[] = { -+ /*001*/{1000, 6499, 3474}, -+ /*002*/{1100, 6361, 3594}, -+ /*003*/{1200, 6226, 3703}, -+ /*004*/{1300, 6095, 3801}, -+ /*005*/{1400, 5966, 3887}, -+ /*006*/{1500, 5841, 3962}, -+ /*007*/{1600, 5720, 4025}, -+ /*008*/{1700, 5601, 4076}, -+ /*009*/{1800, 5486, 4118}, -+ /*010*/{1900, 5375, 4150}, -+ /*011*/{2000, 5267, 4173}, -+ /*012*/{2100, 5162, 4188}, -+ /*013*/{2200, 5062, 4196}, -+ /*014*/{2300, 4965, 4198}, -+ /*015*/{2400, 4872, 4194}, -+ /*016*/{2500, 4782, 4186}, -+ /*017*/{2600, 4696, 4173}, -+ /*018*/{2700, 4614, 4158}, -+ /*019*/{2800, 4535, 4139}, -+ /*020*/{2900, 4460, 4118}, -+ /*021*/{3000, 4388, 4095}, -+ /*022*/{3100, 4320, 4070}, -+ /*023*/{3200, 4254, 4044}, -+ /*024*/{3300, 4192, 4018}, -+ /*025*/{3400, 4132, 3990}, -+ /*026*/{3500, 4075, 3962}, -+ /*027*/{3600, 4021, 3934}, -+ /*028*/{3700, 3969, 3905}, -+ /*029*/{3800, 3919, 3877}, -+ /*030*/{3900, 3872, 3849}, -+ /*031*/{4000, 3827, 3820}, -+ /*032*/{4100, 3784, 3793}, -+ /*033*/{4200, 3743, 3765}, -+ /*034*/{4300, 3704, 3738}, -+ /*035*/{4400, 3666, 3711}, -+ /*036*/{4500, 3631, 3685}, -+ /*037*/{4600, 3596, 3659}, -+ /*038*/{4700, 3563, 3634}, -+ /*039*/{4800, 3532, 3609}, -+ /*040*/{4900, 3502, 3585}, -+ /*041*/{5000, 3473, 3561}, -+ /*042*/{5100, 3446, 3538}, -+ /*043*/{5200, 3419, 3516}, -+ /*044*/{5300, 3394, 3494}, -+ /*045*/{5400, 3369, 3472}, -+ /*046*/{5500, 3346, 3451}, -+ /*047*/{5600, 3323, 3431}, -+ /*048*/{5700, 3302, 3411}, -+ /*049*/{5800, 3281, 3392}, -+ /*050*/{5900, 3261, 3373}, -+ /*051*/{6000, 3242, 3355}, -+ /*052*/{6100, 3223, 3337}, -+ /*053*/{6200, 3205, 3319}, -+ /*054*/{6300, 3188, 3302}, -+ /*055*/{6400, 3161, 3296}, -+ /*056*/{6500, 3127, 3290}, /* This is the real white point sRGB */ -+ /*057*/{6600, 3126, 3264}, -+ /*058*/{6700, 3125, 3238}, -+ /*059*/{6800, 3110, 3224}, -+ /*060*/{6900, 3097, 3209}, -+ /*061*/{7000, 3083, 3195}, -+ /*062*/{7100, 3070, 3181}, -+ /*063*/{7200, 3058, 3168}, -+ /*064*/{7300, 3045, 3154}, -+ /*065*/{7400, 3034, 3142}, -+ /*066*/{7500, 3022, 3129}, -+ /*067*/{7600, 3011, 3117}, -+ /*068*/{7700, 3000, 3105}, -+ /*069*/{7800, 2990, 3094}, -+ /*070*/{7900, 2980, 3082}, -+ /*071*/{8000, 2970, 3071}, -+ /*072*/{8100, 2961, 3061}, -+ /*073*/{8200, 2952, 3050}, -+ /*074*/{8300, 2943, 3040}, -+ /*075*/{8400, 2934, 3030}, -+ /*076*/{8500, 2926, 3020}, -+ /*077*/{8600, 2917, 3011}, -+ /*078*/{8700, 2910, 3001}, -+ /*079*/{8800, 2902, 2992}, -+ /*080*/{8900, 2894, 2983}, -+ /*081*/{9000, 2887, 2975}, -+ /*082*/{9100, 2880, 2966}, -+ /*083*/{9200, 2873, 2958}, -+ /*084*/{9300, 2866, 2950}, -+ /*085*/{9400, 2860, 2942}, -+ /*086*/{9500, 2853, 2934}, -+ /*087*/{9600, 2847, 2927}, -+ /*088*/{9700, 2841, 2919}, -+ /*089*/{9800, 2835, 2912}, -+ /*090*/{9900, 2829, 2905}, -+ /*091*/{10000, 2824, 2898} -+}; -+ -+bool mod_color_find_predefined_gamut( -+ struct gamut_space_coordinates *out_gamut, -+ enum predefined_gamut_type type) -+{ -+ out_gamut->redX = predefined_gamuts[type].redX; -+ out_gamut->redY = predefined_gamuts[type].redY; -+ out_gamut->greenX = predefined_gamuts[type].greenX; -+ out_gamut->greenY = predefined_gamuts[type].greenY; -+ out_gamut->blueX = predefined_gamuts[type].blueX; -+ out_gamut->blueY = predefined_gamuts[type].blueY; -+ -+ return true; -+} -+ -+bool mod_color_find_predefined_white_point( -+ struct white_point_coodinates *out_white_point, -+ enum predefined_white_point_type type) -+{ -+ out_white_point->whiteX = predefined_white_points[type].whiteX; -+ out_white_point->whiteY = predefined_white_points[type].whiteY; -+ -+ return true; -+} -+ -+bool mod_color_find_white_point_from_temperature( -+ struct white_point_coodinates *out_white_point, -+ unsigned int temperature) -+{ -+ int i; -+ unsigned int found = false; -+ struct white_point_coodinates_entry temp_white_point = -+ white_point_temps[55]; -+ -+ if (temperature < 1000 || temperature > 10000) -+ return false; -+ -+ for (i = 0; i < white_point_entries; i++) { -+ if (temperature == white_point_temps[i].temperature) { -+ temp_white_point = white_point_temps[i]; -+ found = true; -+ break; -+ } -+ } -+ -+ out_white_point->whiteX = temp_white_point.whiteX; -+ out_white_point->whiteY = temp_white_point.whiteY; -+ -+ return found; -+} -+ -+bool mod_color_find_temperature_from_white_point( -+ struct white_point_coodinates *in_white_point, -+ unsigned int *out_temperature) -+{ -+ unsigned int i; -+ *out_temperature = 6500; -+ -+ for (i = 0; i < white_point_entries; i++) { -+ if (in_white_point->whiteX == white_point_temps[i].whiteX && -+ in_white_point->whiteY == white_point_temps[i].whiteY) { -+ *out_temperature = white_point_temps[i].temperature; -+ return true; -+ } -+ } -+ -+ return false; -+} -+ -diff --git a/drivers/gpu/drm/amd/display/modules/color/color_helper.h b/drivers/gpu/drm/amd/display/modules/color/color_helper.h -new file mode 100644 -index 0000000..c0e6334 ---- /dev/null -+++ b/drivers/gpu/drm/amd/display/modules/color/color_helper.h -@@ -0,0 +1,50 @@ -+/** -+ * @file -+ * @date Copyright (c) 2008 Advanced Micro Devices, Inc. (unpublished) -+ * -+ * @brief Helper functions for color gamut calculation -+ * -+ * @internal -+ * All rights reserved. This notice is intended as a precaution against -+ * inadvertent publication and does not imply publication or any waiver -+ * of confidentiality. The year included in the foregoing notice is the -+ * year of creation of the work. -+ */ -+ -+#ifndef COLOR_MOD_COLOR_HELPER_H_ -+#define COLOR_MOD_COLOR_HELPER_H_ -+ -+enum predefined_gamut_type { -+ gamut_type_bt709, -+ gamut_type_bt601, -+ gamut_type_adobe_rgb, -+ gamut_type_srgb, -+ gamut_type_bt2020, -+ gamut_type_unknown, -+}; -+ -+enum predefined_white_point_type { -+ white_point_type_5000k_horizon, -+ white_point_type_6500k_noon, -+ white_point_type_7500k_north_sky, -+ white_point_type_9300k, -+ white_point_type_unknown, -+}; -+ -+bool mod_color_find_predefined_gamut( -+ struct gamut_space_coordinates *out_gamut, -+ enum predefined_gamut_type type); -+ -+bool mod_color_find_predefined_white_point( -+ struct white_point_coodinates *out_white_point, -+ unsigned int index); -+ -+bool mod_color_find_white_point_from_temperature( -+ struct white_point_coodinates *out_white_point, -+ unsigned int temperature); -+ -+bool mod_color_find_temperature_from_white_point( -+ struct white_point_coodinates *in_white_point, -+ unsigned int *out_temperature); -+ -+#endif /* COLOR_MOD_COLOR_HELPER_H_ */ -diff --git a/drivers/gpu/drm/amd/display/modules/inc/mod_color.h b/drivers/gpu/drm/amd/display/modules/inc/mod_color.h -index 91abc17..787c2c0 100644 ---- a/drivers/gpu/drm/amd/display/modules/inc/mod_color.h -+++ b/drivers/gpu/drm/amd/display/modules/inc/mod_color.h -@@ -28,6 +28,7 @@ - #define MOD_COLOR_H_ - - #include "dm_services.h" -+#include "color_helper.h" - - struct mod_color { - int dummy; -@@ -54,7 +55,6 @@ struct gamut_space_coordinates { - }; - - struct gamut_space_entry { -- unsigned int index; - unsigned int redX; - unsigned int redY; - unsigned int greenX; -@@ -75,7 +75,7 @@ struct white_point_coodinates { - }; - - struct white_point_coodinates_entry { -- unsigned int index; -+ unsigned int temperature; - unsigned int whiteX; - unsigned int whiteY; - }; --- -2.7.4 - |