/* SPDX-License-Identifier: GPL-2.0-only
 *
 * Copyright (c) 2016 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 *
 * DPP poly-phase filter coefficients
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

#include <linux/types.h>

/* 8-tap Filter Coefficient */
const s16 h_coef_8t[7][16][8] = {
	{	/* Ratio <= 65536 (~8:8) Selection = 0 */
		{   0,	 0,   0, 512,	0,   0,   0,   0 },
		{  -2,	 8, -25, 509,  30,  -9,   2,  -1 },
		{  -4,	14, -46, 499,  64, -19,   5,  -1 },
		{  -5,	20, -62, 482, 101, -30,   8,  -2 },
		{  -6,	23, -73, 458, 142, -41,  12,  -3 },
		{  -6,	25, -80, 429, 185, -53,  15,  -3 },
		{  -6,	26, -83, 395, 228, -63,  19,  -4 },
		{  -6,	25, -82, 357, 273, -71,  21,  -5 },
		{  -5,	23, -78, 316, 316, -78,  23,  -5 },
		{  -5,	21, -71, 273, 357, -82,  25,  -6 },
		{  -4,	19, -63, 228, 395, -83,  26,  -6 },
		{  -3,	15, -53, 185, 429, -80,  25,  -6 },
		{  -3,	12, -41, 142, 458, -73,  23,  -6 },
		{  -2,	 8, -30, 101, 482, -62,  20,  -5 },
		{  -1,	 5, -19,  64, 499, -46,  14,  -4 },
		{  -1,	 2,  -9,  30, 509, -25,   8,  -2 }
	},
	{	/* 65536 < Ratio <= 74898 (~8:7) Selection = 1 */
		{ 12, -32,  56, 444,  52, -32,  12,   0 },
		{  9, -24,  29, 445,  82, -39,  13,  -3 },
		{  7, -16,   6, 438, 112, -46,  14,  -3 },
		{  5,  -9, -14, 426, 144, -52,  15,  -3 },
		{  3,  -3, -30, 410, 177, -58,  16,  -3 },
		{  2,   2, -43, 390, 211, -63,  16,  -3 },
		{  1,   7, -53, 365, 244, -66,  16,  -2 },
		{  0,  10, -60, 338, 277, -66,  15,  -2 },
		{ -1,  13, -65, 309, 309, -65,  13,  -1 },
		{ -2,  15, -66, 277, 338, -60,  10,   0 },
		{ -2,  16, -66, 244, 365, -53,   7,   1 },
		{ -3,  16, -63, 211, 390, -43,   2,   2 },
		{ -3,  16, -58, 177, 410, -30,  -3,   3 },
		{ -3,  15, -52, 144, 426, -14,  -9,   5 },
		{ -3,  14, -46, 112, 438,   6, -16,   7 },
		{ -3,  13, -39,  82, 445,  29, -24,   9 }
	},
	{	/* 74898 < Ratio <= 87381 (~8:6) Selection = 2 */
		{  8, -44, 100, 384, 100, -44,   8,   0 },
		{  9, -40,  77, 382, 123, -47,   8,   0 },
		{  8, -36,  57, 377, 147, -49,   7,   1 },
		{  8, -32,  38, 369, 171, -49,   5,   2 },
		{  8, -27,  20, 358, 196, -48,   3,   2 },
		{  7, -22,   5, 344, 221, -47,   1,   3 },
		{  7, -18,  -9, 329, 245, -43,  -2,   3 },
		{  5, -13, -20, 310, 268, -37,  -5,   4 },
		{  5,  -9, -30, 290, 290, -30,  -9,   5 },
		{  4,  -5, -37, 268, 310, -20, -13,   5 },
		{  3,  -2, -43, 245, 329,  -9, -18,   7 },
		{  3,   1, -47, 221, 344,   5, -22,   7 },
		{  2,   3, -48, 196, 358,  20, -27,   8 },
		{  2,   5, -49, 171, 369,  38, -32,   8 },
		{  1,   7, -49, 147, 377,  57, -36,   8 },
		{  0,   8, -47, 123, 382,  77, -40,   9 }
	},
	{	/* 87381 < Ratio <= 104857 (~8:5) Selection = 3 */
		{ -3, -31, 130, 320, 130, -31,  -3,   0 },
		{ -3, -32, 113, 319, 147, -29,  -6,   3 },
		{ -1, -33,  97, 315, 165, -26,  -8,   3 },
		{  0, -32,  81, 311, 182, -22, -11,   3 },
		{  1, -31,  66, 304, 199, -17, -13,   3 },
		{  2, -30,  52, 296, 216, -11, -16,   3 },
		{  2, -28,  38, 286, 232, -3,  -18,   3 },
		{  3, -25,  26, 274, 247,  5,  -21,   3 },
		{  3, -23,  15, 261, 261, 15,  -23,   3 },
		{  3, -21,   5, 247, 274, 26,  -25,   3 },
		{  3, -18,  -3, 232, 286, 38,  -28,   2 },
		{  3, -16, -11, 216, 296, 52,  -30,   2 },
		{  3, -13, -17, 199, 304, 66,  -31,   1 },
		{  3, -11, -22, 182, 311, 81,  -32,   0 },
		{  3,  -8, -26, 165, 315, 97,  -33,  -1 },
		{  3,  -6, -29, 147, 319, 113, -32,  -3 }
	},
	{	/* 104857 < Ratio <= 131072 (~8:4) Selection = 4 */
		{ -11,	 0, 140, 255, 140,   0, -12,   0 },
		{ -10,	-4, 129, 254, 151,   5, -13,   0 },
		{  -9,	-7, 117, 253, 163,  10, -14,  -1 },
		{  -8, -10, 106, 250, 174,  16, -15,  -1 },
		{  -7, -12,  95, 246, 185,  22, -16,  -1 },
		{  -6, -14,  85, 241, 195,  29, -16,  -2 },
		{  -5, -15,  74, 236, 204,  37, -17,  -2 },
		{  -5, -16,  64, 229, 214,  46, -17,  -3 },
		{  -4, -17,  55, 222, 222,  55, -17,  -4 },
		{  -3, -17,  46, 214, 229,  64, -16,  -5 },
		{  -2, -17,  37, 204, 236,  74, -15,  -5 },
		{  -2, -16,  29, 195, 241,  85, -14,  -6 },
		{  -1, -16,  22, 185, 246,  95, -12,  -7 },
		{  -1, -15,  16, 174, 250, 106, -10,  -8 },
		{  -1, -14,  10, 163, 253, 117,  -7,  -9 },
		{   0, -13,   5, 151, 254, 129,  -4, -10 }
	},
	{	/* 131072 < Ratio <= 174762 (~8:3) Selection = 5 */
		{  -5,	31, 133, 195, 133,  31,  -6,   0 },
		{  -5,	27, 126, 195, 139,  37,  -4,  -3 },
		{  -5,	23, 119, 194, 146,  41,  -3,  -3 },
		{  -5,	19, 112, 193, 152,  47,  -2,  -4 },
		{  -5,	16, 105, 191, 158,  53,  -2,  -4 },
		{  -5,	12,  98, 189, 163,  59,   0,  -4 },
		{  -5,	10,  91, 185, 169,  65,   1,  -4 },
		{  -5,	 7,  84, 182, 174,  71,   3,  -4 },
		{  -5,	 5,  78, 178, 178,  78,   5,  -5 },
		{  -4,	 3,  71, 174, 182,  84,   7,  -5 },
		{  -4,	 1,  65, 169, 185,  91,  10,  -5 },
		{  -4,	 0,  59, 163, 189,  98,  12,  -5 },
		{  -4,	-2,  53, 158, 191, 105,  16,  -5 },
		{  -4,	-2,  47, 152, 193, 112,  19,  -5 },
		{  -3,	-3,  41, 146, 194, 119,  23,  -5 },
		{  -3,	-4,  37, 139, 195, 126,  27,  -5 }
	},
	{	/* 174762 < Ratio <= 262144 (~8:2) Selection = 6 */
		{  10,	52, 118, 152, 118,  52,  10,   0 },
		{   9,	48, 114, 152, 122,  56,  11,   0 },
		{   7,	45, 110, 151, 125,  60,  13,   1 },
		{   6,	41, 106, 150, 129,  64,  15,   1 },
		{   5,	38, 102, 149, 132,  68,  17,   1 },
		{   4,	35,  98, 148, 135,  72,  19,   1 },
		{   4,	31,  94, 146, 138,  77,  21,   1 },
		{   3,	29,  89, 145, 140,  81,  23,   2 },
		{   2,	26,  85, 143, 143,  85,  26,   2 },
		{   2,	23,  81, 140, 145,  89,  29,   3 },
		{   1,	21,  77, 138, 146,  94,  31,   4 },
		{   1,	19,  72, 135, 148,  98,  35,   4 },
		{   1,	17,  68, 132, 149, 102,  38,   5 },
		{   1,	15,  64, 129, 150, 106,  41,   6 },
		{   1,	13,  60, 125, 151, 110,  45,   7 },
		{   0,	11,  56, 122, 152, 114,  48,   9 }
	}
};

/* 4-tap Filter Coefficient */
const s16 v_coef_4t[7][16][4] = {
	{	/* Ratio <= 65536 (~8:8) Selection = 0 */
		{   0, 512,   0,   0 },
		{ -15, 508,  20,  -1 },
		{ -25, 495,  45,  -3 },
		{ -31, 473,  75,  -5 },
		{ -33, 443, 110,  -8 },
		{ -33, 408, 148, -11 },
		{ -31, 367, 190, -14 },
		{ -27, 324, 234, -19 },
		{ -23, 279, 279, -23 },
		{ -19, 234, 324, -27 },
		{ -14, 190, 367, -31 },
		{ -11, 148, 408, -33 },
		{  -8, 110, 443, -33 },
		{  -5,  75, 473, -31 },
		{  -3,  45, 495, -25 },
		{  -1,  20, 508, -15 }
	},
	{	/* 65536 < Ratio <= 74898 (~8:7) Selection = 1 */
		{  32, 448,  32,   0 },
		{  17, 446,  55,  -6 },
		{   3, 437,  79,  -7 },
		{  -7, 421, 107,  -9 },
		{ -14, 399, 138, -11 },
		{ -18, 373, 170, -13 },
		{ -20, 343, 204, -15 },
		{ -20, 310, 240, -18 },
		{ -19, 275, 275, -19 },
		{ -18, 240, 310, -20 },
		{ -15, 204, 343, -20 },
		{ -13, 170, 373, -18 },
		{ -11, 138, 399, -14 },
		{  -9, 107, 421,  -7 },
		{  -7,  79, 437,   3 },
		{  -6,  55, 446,  17 }
	},
	{	/* 74898 < Ratio <= 87381 (~8:6) Selection = 2 */
		{  61, 390,  61,   0 },
		{  46, 390,  83,  -7 },
		{  31, 383, 106,  -8 },
		{  19, 371, 130,  -8 },
		{   9, 356, 156,  -9 },
		{   2, 337, 183, -10 },
		{  -3, 315, 210, -10 },
		{  -7, 291, 238, -10 },
		{  -9, 265, 265,  -9 },
		{ -10, 238, 291,  -7 },
		{ -10, 210, 315,  -3 },
		{ -10, 183, 337,   2 },
		{  -9, 156, 356,   9 },
		{  -8, 130, 371,  19 },
		{  -8, 106, 383,  31 },
		{  -7,  83, 390,  46 }
	},
	{	/* 87381 < Ratio <= 104857 (~8:5) Selection = 3 */
		{  85, 341,  86,   0 },
		{  71, 341, 105,  -5 },
		{  56, 336, 124,  -4 },
		{  43, 328, 145,  -4 },
		{  32, 317, 166,  -3 },
		{  23, 304, 187,  -2 },
		{  16, 288, 209,  -1 },
		{   9, 271, 231,   1 },
		{   5, 251, 251,   5 },
		{   1, 231, 271,   9 },
		{  -1, 209, 288,  16 },
		{  -2, 187, 304,  23 },
		{  -3, 166, 317,  32 },
		{  -4, 145, 328,  43 },
		{  -4, 124, 336,  56 },
		{  -5, 105, 341,  71 }
	},
	{	/* 104857 < Ratio <= 131072 (~8:4) Selection = 4 */
		{ 104, 304, 104,   0 },
		{  89, 302, 120,   1 },
		{  76, 298, 136,   2 },
		{  63, 293, 153,   3 },
		{  52, 285, 170,   5 },
		{  42, 275, 188,   7 },
		{  33, 264, 205,  10 },
		{  26, 251, 221,  14 },
		{  20, 236, 236,  20 },
		{  14, 221, 251,  26 },
		{  10, 205, 264,  33 },
		{   7, 188, 275,  42 },
		{   5, 170, 285,  52 },
		{   3, 153, 293,  63 },
		{   2, 136, 298,  76 },
		{   1, 120, 302,  89 }
	},
	{	/* 131072 < Ratio <= 174762 (~8:3) Selection = 5 */
		{ 118, 276, 118,   0 },
		{ 103, 273, 129,   7 },
		{  90, 270, 143,   9 },
		{  78, 266, 157,  11 },
		{  67, 260, 171,  14 },
		{  57, 253, 185,  17 },
		{  48, 244, 199,  21 },
		{  40, 234, 211,  27 },
		{  33, 223, 223,  33 },
		{  27, 211, 234,  40 },
		{  21, 199, 244,  48 },
		{  17, 185, 253,  57 },
		{  14, 171, 260,  67 },
		{  11, 157, 266,  78 },
		{   9, 143, 270,  90 },
		{   7, 129, 273, 103 }
	},
	{	/* 174762 < Ratio <= 262144 (~8:2) Selection = 6 */
		{ 127, 258, 127,   0 },
		{ 111, 252, 135,  14 },
		{ 100, 250, 147,  15 },
		{  88, 247, 159,  18 },
		{  78, 242, 171,  21 },
		{  68, 237, 182,  25 },
		{  59, 230, 193,  30 },
		{  50, 222, 204,  36 },
		{  43, 213, 213,  43 },
		{  36, 204, 222,  50 },
		{  30, 193, 230,  59 },
		{  25, 182, 237,  68 },
		{  21, 171, 242,  78 },
		{  18, 159, 247,  88 },
		{  15, 147, 250, 100 },
		{  14, 135, 252, 111 }
	}
};

/* 3x3 CSC Coefficient for BT2020 : 3.9 format */
const u16 csc_3x3_t[4][3][3] = {
	/* CSC_ID = 0 : BT_2020_LIMITTED */
	{
		{0x254, 0x000, 0x36F},
		{0x254, 0xF9E, 0xEAC},
		{0x254, 0x461, 0x000},
	},
	/* CSC_ID = 0 : BT_2020_FULL */
	{
		{0x200, 0x000, 0x2F3},
		{0x200, 0xFAC, 0xEDB},
		{0x200, 0x3C3, 0x000},
	},

	/* CSC_ID = 1 : DCI_P3_LIMITTED */
	{
		{0x254, 0x000, 0x3AE},
		{0x254, 0xF96, 0xEEE},
		{0x254, 0x456, 0x000},
	},
	/* CSC_ID = 1 : DCI_P3_FULL */
	{
		{0x200, 0x000, 0x329},
		{0x200, 0xFA5, 0xF15},
		{0x200, 0x3B9, 0x000},
	},

	/* CSC_ID = 2 : Add if necessary */
};

/* 3x3 CSC Coefficient Y2R : 7.9 format */
const u16 csc_y2r_3x3_t[16][3][3] = {

	/* 00: CSC_BT601/625/525 line Limited */
	{
		{0x0254, 0x0000, 0x0331},
		{0x0254, 0xFF37, 0xFE60},
		{0x0254, 0x0409, 0x0000},
	},
	/* 01: CSC_BT601/625/525 line Full */
	{
		{0x0200, 0x0000, 0x02BE},
		{0x0200, 0xFF54, 0xFE9B},
		{0x0200, 0x0377, 0x0000},
	},

	/* 02: BT601_625_UNADJUSTED Limited */
	{
		{0x0254, 0x0000, 0x038B},
		{0x0254, 0xFF93, 0xFEE3},
		{0x0254, 0x043B, 0x0000},
	},
	/* 03: BT601_625_UNADJUSTED Full */
	{
		{0x0200, 0x0000, 0x030B},
		{0x0200, 0xFFA3, 0xFF0B},
		{0x0200, 0x03A2, 0x0000},
	},

	/* 04: CSC_BT601/625/525 line Limited */
	{
		{0x0254, 0x0000, 0x0331},
		{0x0254, 0xFF37, 0xFE60},
		{0x0254, 0x0409, 0x0000},
	},
	/* 05: CSC_BT601/625/525 line Full */
	{
		{0x0200, 0x0000, 0x02BE},
		{0x0200, 0xFF54, 0xFE9B},
		{0x0200, 0x0377, 0x0000},
	},

	/* 06: BT601_525_UNADJUSTE Limited */
	{
		{0x0254, 0x0000, 0x0397},
		{0x0254, 0xFF7C, 0xFEEA},
		{0x0254, 0x0428, 0x0000},
	},
	/* 07: BT601_525_UNADJUSTE Full */
	{
		{0x0200, 0x0000, 0x0315},
		{0x0200, 0xFF8F, 0xFF11},
		{0x0200, 0x0392, 0x0000},
	},

	/* 08: CSC_BT_2020_CONSTANT_LUMINANCE -> CSC_BT601 Limited */
	{
		{0x0254, 0x0000, 0x0331},
		{0x0254, 0xFF37, 0xFE60},
		{0x0254, 0x0409, 0x0000},
	},
	/* 09: CSC_BT_2020_CONSTANT_LUMINANCE -> CSC_BT601 Full */
	{
		{0x0200, 0x0000, 0x02BE},
		{0x0200, 0xFF54, 0xFE9B},
		{0x0200, 0x0377, 0x0000},
	},

	/* 10: CSC_BT_470M Limited */
	{
		{0x0254, 0x0000, 0x0331},
		{0x0254, 0xFF37, 0xFE60},
		{0x0254, 0x0409, 0x0000},
	},
	/* 11: CSC_BT_470M Full */
	{
		{0x0200, 0x0000, 0x02BE},
		{0x0200, 0xFF54, 0xFE9B},
		{0x0200, 0x0377, 0x0000},
	},

	/* 12: CSC_FILM Limited */
	{
		{0x0254, 0x0000, 0x0366},
		{0x0254, 0xFF93, 0xFEBA},
		{0x0254, 0x043E, 0x0000},
	},
	/* 13: CSC_FILM Full */
	{
		{0x0200, 0x0000, 0x02EB},
		{0x0200, 0xFFA2, 0xFEE8},
		{0x0200, 0x03A5, 0x0000},
	},

	/* 14: CSC_ADOBE Limited */
	{
		{0x0254, 0x0000, 0x0333},
		{0x0254, 0xFF7F, 0xFE7C},
		{0x0254, 0x0436, 0x0000},
	},
	/* 15: CSC_ADOBE Full */
	{
		{0x0200, 0x0000, 0x02BF},
		{0x0200, 0xFF91, 0xFEB3},
		{0x0200, 0x039E, 0x0000},
	},

	/* Add if necessary */
};

/* 3x3 CSC Coefficient R2Y : 7.9 format */
const u16 csc_r2y_3x3_t[16][3][3] = {

	/* 00: CSC_BT601/625/525 line Limited */
	{
		{0x0083, 0x0102, 0x0032},
		{0xFFB4, 0xFF6B, 0x00E1},
		{0x00E1, 0xFF44, 0xFFDB},
	},

	/* 01: CSC_BT601/625/525 line Full */
	{
		{0x0099, 0x012D, 0x003A},
		{0xFFA8, 0xFF53, 0x0106},
		{0x0106, 0xFF25, 0xFFD5},
	},

	/* 02: BT601_625_UNADJUSTED Limited */
	{
		{0x0062, 0x0137, 0x001F},
		{0xFFCA, 0xFF55, 0x00E1},
		{0x00E1, 0xFF34, 0xFFEB},
	},

	/* 03: BT601_625_UNADJUSTED Full */
	{
		{0x0072, 0x016A, 0x0024},
		{0xFFC1, 0xFF39, 0x0106},
		{0x0106, 0xFF12, 0xFFE8},
	},

	/* 04: CSC_BT601/625/525 line Limited */
	{
		{0x0083, 0x0102, 0x0032},
		{0xFFB4, 0xFF6B, 0x00E1},
		{0x00E1, 0xFF44, 0xFFDB},
	},

	/* 05: CSC_BT601/625/525 line Full */
	{
		{0x0099, 0x012D, 0x003A},
		{0xFFA8, 0xFF53, 0x0106},
		{0x0106, 0xFF25, 0xFFD5},
	},

	/* 06: BT601_525_UNADJUSTED Limited */
	{
		{0x005D, 0x0134, 0x0026},
		{0xFFCC, 0xFF53, 0x00E1},
		{0x00E1, 0xFF38, 0xFFE7},
	},

	/* 07: BT601_525_UNADJUSTED Full */
	{
		{0x006D, 0x0167, 0x002D},
		{0xFFC3, 0xFF37, 0x0106},
		{0x0106, 0xFF17, 0xFFE3},
	},

	/* 08: CSC_BT_2020_CONSTANT_LUMINANCE -> CSC_BT601 Limited */
	{
		{0x0083, 0x0102, 0x0032},
		{0xFFB4, 0xFF6B, 0x00E1},
		{0x00E1, 0xFF44, 0xFFDB},
	},

	/* 09: CSC_BT_2020_CONSTANT_LUMINANCE -> CSC_BT601 Full */
	{
		{0x0099, 0x012D, 0x003A},
		{0xFFA8, 0xFF53, 0x0106},
		{0x0106, 0xFF25, 0xFFD5},
	},

	/* 10: CSC_BT_470M Limited */
	{
		{0x0083, 0x0102, 0x0032},
		{0xFFB4, 0xFF6B, 0x00E1},
		{0x00E1, 0xFF44, 0xFFDB},
	},

	/* 11: CSC_BT_470M Full */
	{
		{0x0099, 0x012D, 0x003A},
		{0xFFA8, 0xFF53, 0x0106},
		{0x0106, 0xFF25, 0xFFD5},
	},

	/* 12: CSC_FILM Limited */
	{
		{0x0070, 0x012A, 0x001E},
		{0xFFC3, 0xFF5C, 0x00E1},
		{0x00E1, 0xFF34, 0xFFEC},
	},

	/* 13: CSC_FILM Full */
	{
		{0x0082, 0x015B, 0x0023},
		{0xFFB9, 0xFF42, 0x0106},
		{0x0106, 0xFF12, 0xFFE8},
	},

	/* 14: CSC_ADOBE Limited */
	{
		{0x0083, 0x0114, 0x0021},
		{0xFFB8, 0xFF67, 0x00E1},
		{0x00E1, 0xFF37, 0xFFE8},
	},

	/* 15: CSC_ADOBE Full */
	{
		{0x0098, 0x0141, 0x0027},
		{0xFFAC, 0xFF4E, 0x0106},
		{0x0106, 0xFF16, 0xFFE4},
	},

	/* Add if necessary */
};
