arm: tegra: Add panel csc configuration data.
Markus Holtmanns [Fri, 28 Sep 2012 18:59:40 +0000 (21:59 +0300)]
Add panel specific CSC matrix values based on
raw measurement of color primaries and applying
chromatic adaption with a Bradford matrix.

Bug 1047348

Change-Id: Ia69f622223760ad18ef5d18bc86381b5575c7138
Signed-off-by: Markus Holtmanns <mholtmanns@nvidia.com>
Signed-off-by: Mitch Luban <mluban@nvidia.com>
Reviewed-on: http://git-master/r/160048
Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com>

arch/arm/mach-tegra/board-dalmore-panel.c
arch/arm/mach-tegra/board-pluto-panel.c

index 47c0adb..284a0ee 100644 (file)
@@ -749,13 +749,186 @@ static struct tegra_fb_data dalmore_disp1_fb_data = {
 #endif
 };
 
+#ifdef CONFIG_TEGRA_DC_CMU
+static struct tegra_dc_cmu dalmore_panasonic_cmu = {
+       /* lut1 maps sRGB to linear space. */
+       {
+       0,    1,    2,    4,    5,    6,    7,    9,
+       10,   11,   12,   14,   15,   16,   18,   20,
+       21,   23,   25,   27,   29,   31,   33,   35,
+       37,   40,   42,   45,   48,   50,   53,   56,
+       59,   62,   66,   69,   72,   76,   79,   83,
+       87,   91,   95,   99,   103,  107,  112,  116,
+       121,  126,  131,  136,  141,  146,  151,  156,
+       162,  168,  173,  179,  185,  191,  197,  204,
+       210,  216,  223,  230,  237,  244,  251,  258,
+       265,  273,  280,  288,  296,  304,  312,  320,
+       329,  337,  346,  354,  363,  372,  381,  390,
+       400,  409,  419,  428,  438,  448,  458,  469,
+       479,  490,  500,  511,  522,  533,  544,  555,
+       567,  578,  590,  602,  614,  626,  639,  651,
+       664,  676,  689,  702,  715,  728,  742,  755,
+       769,  783,  797,  811,  825,  840,  854,  869,
+       884,  899,  914,  929,  945,  960,  976,  992,
+       1008, 1024, 1041, 1057, 1074, 1091, 1108, 1125,
+       1142, 1159, 1177, 1195, 1213, 1231, 1249, 1267,
+       1286, 1304, 1323, 1342, 1361, 1381, 1400, 1420,
+       1440, 1459, 1480, 1500, 1520, 1541, 1562, 1582,
+       1603, 1625, 1646, 1668, 1689, 1711, 1733, 1755,
+       1778, 1800, 1823, 1846, 1869, 1892, 1916, 1939,
+       1963, 1987, 2011, 2035, 2059, 2084, 2109, 2133,
+       2159, 2184, 2209, 2235, 2260, 2286, 2312, 2339,
+       2365, 2392, 2419, 2446, 2473, 2500, 2527, 2555,
+       2583, 2611, 2639, 2668, 2696, 2725, 2754, 2783,
+       2812, 2841, 2871, 2901, 2931, 2961, 2991, 3022,
+       3052, 3083, 3114, 3146, 3177, 3209, 3240, 3272,
+       3304, 3337, 3369, 3402, 3435, 3468, 3501, 3535,
+       3568, 3602, 3636, 3670, 3705, 3739, 3774, 3809,
+       3844, 3879, 3915, 3950, 3986, 4022, 4059, 4095,
+       },
+       /* csc */
+       {
+               0x12D, 0x3BE, 0x014, /* 1.176 -0.254 0.078 */
+               0x3F6, 0x116, 0x3E6, /* -0.037 1.086 -0.098 */
+               0x3FE, 0x3F8, 0x0DB, /* -0.003 -0.027 0.859 */
+       },
+       /* lut2 maps linear space to sRGB */
+       {
+               0,    1,    2,    2,    3,    4,    5,    6,
+               6,    7,    8,    9,    10,   10,   11,   12,
+               13,   13,   14,   15,   15,   16,   16,   17,
+               18,   18,   19,   19,   20,   20,   21,   21,
+               22,   22,   23,   23,   23,   24,   24,   25,
+               25,   25,   26,   26,   27,   27,   27,   28,
+               28,   29,   29,   29,   30,   30,   30,   31,
+               31,   31,   32,   32,   32,   33,   33,   33,
+               34,   34,   34,   34,   35,   35,   35,   36,
+               36,   36,   37,   37,   37,   37,   38,   38,
+               38,   38,   39,   39,   39,   40,   40,   40,
+               40,   41,   41,   41,   41,   42,   42,   42,
+               42,   43,   43,   43,   43,   43,   44,   44,
+               44,   44,   45,   45,   45,   45,   46,   46,
+               46,   46,   46,   47,   47,   47,   47,   48,
+               48,   48,   48,   48,   49,   49,   49,   49,
+               49,   50,   50,   50,   50,   50,   51,   51,
+               51,   51,   51,   52,   52,   52,   52,   52,
+               53,   53,   53,   53,   53,   54,   54,   54,
+               54,   54,   55,   55,   55,   55,   55,   55,
+               56,   56,   56,   56,   56,   57,   57,   57,
+               57,   57,   57,   58,   58,   58,   58,   58,
+               58,   59,   59,   59,   59,   59,   59,   60,
+               60,   60,   60,   60,   60,   61,   61,   61,
+               61,   61,   61,   62,   62,   62,   62,   62,
+               62,   63,   63,   63,   63,   63,   63,   64,
+               64,   64,   64,   64,   64,   64,   65,   65,
+               65,   65,   65,   65,   66,   66,   66,   66,
+               66,   66,   66,   67,   67,   67,   67,   67,
+               67,   67,   68,   68,   68,   68,   68,   68,
+               68,   69,   69,   69,   69,   69,   69,   69,
+               70,   70,   70,   70,   70,   70,   70,   71,
+               71,   71,   71,   71,   71,   71,   72,   72,
+               72,   72,   72,   72,   72,   72,   73,   73,
+               73,   73,   73,   73,   73,   74,   74,   74,
+               74,   74,   74,   74,   74,   75,   75,   75,
+               75,   75,   75,   75,   75,   76,   76,   76,
+               76,   76,   76,   76,   77,   77,   77,   77,
+               77,   77,   77,   77,   78,   78,   78,   78,
+               78,   78,   78,   78,   78,   79,   79,   79,
+               79,   79,   79,   79,   79,   80,   80,   80,
+               80,   80,   80,   80,   80,   81,   81,   81,
+               81,   81,   81,   81,   81,   81,   82,   82,
+               82,   82,   82,   82,   82,   82,   83,   83,
+               83,   83,   83,   83,   83,   83,   83,   84,
+               84,   84,   84,   84,   84,   84,   84,   84,
+               85,   85,   85,   85,   85,   85,   85,   85,
+               85,   86,   86,   86,   86,   86,   86,   86,
+               86,   86,   87,   87,   87,   87,   87,   87,
+               87,   87,   87,   88,   88,   88,   88,   88,
+               88,   88,   88,   88,   88,   89,   89,   89,
+               89,   89,   89,   89,   89,   89,   90,   90,
+               90,   90,   90,   90,   90,   90,   90,   90,
+               91,   91,   91,   91,   91,   91,   91,   91,
+               91,   91,   92,   92,   92,   92,   92,   92,
+               92,   92,   92,   92,   93,   93,   93,   93,
+               93,   93,   93,   93,   93,   93,   94,   94,
+               94,   94,   94,   94,   94,   94,   94,   94,
+               95,   95,   95,   95,   95,   95,   95,   95,
+               95,   95,   96,   96,   96,   96,   96,   96,
+               96,   96,   96,   96,   96,   97,   97,   97,
+               97,   97,   97,   97,   97,   97,   97,   98,
+               98,   98,   98,   98,   98,   98,   98,   98,
+               98,   98,   99,   99,   99,   99,   99,   99,
+               99,   100,  101,  101,  102,  103,  103,  104,
+               105,  105,  106,  107,  107,  108,  109,  109,
+               110,  111,  111,  112,  113,  113,  114,  115,
+               115,  116,  116,  117,  118,  118,  119,  119,
+               120,  120,  121,  122,  122,  123,  123,  124,
+               124,  125,  126,  126,  127,  127,  128,  128,
+               129,  129,  130,  130,  131,  131,  132,  132,
+               133,  133,  134,  134,  135,  135,  136,  136,
+               137,  137,  138,  138,  139,  139,  140,  140,
+               141,  141,  142,  142,  143,  143,  144,  144,
+               145,  145,  145,  146,  146,  147,  147,  148,
+               148,  149,  149,  150,  150,  150,  151,  151,
+               152,  152,  153,  153,  153,  154,  154,  155,
+               155,  156,  156,  156,  157,  157,  158,  158,
+               158,  159,  159,  160,  160,  160,  161,  161,
+               162,  162,  162,  163,  163,  164,  164,  164,
+               165,  165,  166,  166,  166,  167,  167,  167,
+               168,  168,  169,  169,  169,  170,  170,  170,
+               171,  171,  172,  172,  172,  173,  173,  173,
+               174,  174,  174,  175,  175,  176,  176,  176,
+               177,  177,  177,  178,  178,  178,  179,  179,
+               179,  180,  180,  180,  181,  181,  182,  182,
+               182,  183,  183,  183,  184,  184,  184,  185,
+               185,  185,  186,  186,  186,  187,  187,  187,
+               188,  188,  188,  189,  189,  189,  189,  190,
+               190,  190,  191,  191,  191,  192,  192,  192,
+               193,  193,  193,  194,  194,  194,  195,  195,
+               195,  196,  196,  196,  196,  197,  197,  197,
+               198,  198,  198,  199,  199,  199,  200,  200,
+               200,  200,  201,  201,  201,  202,  202,  202,
+               202,  203,  203,  203,  204,  204,  204,  205,
+               205,  205,  205,  206,  206,  206,  207,  207,
+               207,  207,  208,  208,  208,  209,  209,  209,
+               209,  210,  210,  210,  211,  211,  211,  211,
+               212,  212,  212,  213,  213,  213,  213,  214,
+               214,  214,  214,  215,  215,  215,  216,  216,
+               216,  216,  217,  217,  217,  217,  218,  218,
+               218,  219,  219,  219,  219,  220,  220,  220,
+               220,  221,  221,  221,  221,  222,  222,  222,
+               223,  223,  223,  223,  224,  224,  224,  224,
+               225,  225,  225,  225,  226,  226,  226,  226,
+               227,  227,  227,  227,  228,  228,  228,  228,
+               229,  229,  229,  229,  230,  230,  230,  230,
+               231,  231,  231,  231,  232,  232,  232,  232,
+               233,  233,  233,  233,  234,  234,  234,  234,
+               235,  235,  235,  235,  236,  236,  236,  236,
+               237,  237,  237,  237,  238,  238,  238,  238,
+               239,  239,  239,  239,  240,  240,  240,  240,
+               240,  241,  241,  241,  241,  242,  242,  242,
+               242,  243,  243,  243,  243,  244,  244,  244,
+               244,  244,  245,  245,  245,  245,  246,  246,
+               246,  246,  247,  247,  247,  247,  247,  248,
+               248,  248,  248,  249,  249,  249,  249,  249,
+               250,  250,  250,  250,  251,  251,  251,  251,
+               251,  252,  252,  252,  252,  253,  253,  253,
+               253,  253,  254,  254,  254,  254,  255,  255,
+       },
+};
+#endif
+
 static struct tegra_dc_platform_data dalmore_disp1_pdata = {
        .flags          = TEGRA_DC_FLAG_ENABLED,
        .default_out    = &dalmore_disp1_out,
        .fb             = &dalmore_disp1_fb_data,
        .emc_clk_rate   = 204000000,
-
+#ifdef CONFIG_TEGRA_DC_CMU
        .cmu_enable     = 1,
+#if PANEL_10_1_PANASONIC_1920_1200
+       .cmu = &dalmore_panasonic_cmu,
+#endif
+#endif
 };
 
 static struct tegra_fb_data dalmore_disp2_fb_data = {
index d67ea4f..c0b2172 100644 (file)
@@ -820,13 +820,186 @@ static struct tegra_fb_data pluto_disp1_fb_data = {
 #endif
 };
 
+#ifdef CONFIG_TEGRA_DC_CMU
+static struct tegra_dc_cmu pluto_lg_cmu = {
+       /* lut1 maps sRGB to linear space. */
+       {
+               0,    1,    2,    4,    5,    6,    7,    9,
+               10,   11,   12,   14,   15,   16,   18,   20,
+               21,   23,   25,   27,   29,   31,   33,   35,
+               37,   40,   42,   45,   48,   50,   53,   56,
+               59,   62,   66,   69,   72,   76,   79,   83,
+               87,   91,   95,   99,   103,  107,  112,  116,
+               121,  126,  131,  136,  141,  146,  151,  156,
+               162,  168,  173,  179,  185,  191,  197,  204,
+               210,  216,  223,  230,  237,  244,  251,  258,
+               265,  273,  280,  288,  296,  304,  312,  320,
+               329,  337,  346,  354,  363,  372,  381,  390,
+               400,  409,  419,  428,  438,  448,  458,  469,
+               479,  490,  500,  511,  522,  533,  544,  555,
+               567,  578,  590,  602,  614,  626,  639,  651,
+               664,  676,  689,  702,  715,  728,  742,  755,
+               769,  783,  797,  811,  825,  840,  854,  869,
+               884,  899,  914,  929,  945,  960,  976,  992,
+               1008, 1024, 1041, 1057, 1074, 1091, 1108, 1125,
+               1142, 1159, 1177, 1195, 1213, 1231, 1249, 1267,
+               1286, 1304, 1323, 1342, 1361, 1381, 1400, 1420,
+               1440, 1459, 1480, 1500, 1520, 1541, 1562, 1582,
+               1603, 1625, 1646, 1668, 1689, 1711, 1733, 1755,
+               1778, 1800, 1823, 1846, 1869, 1892, 1916, 1939,
+               1963, 1987, 2011, 2035, 2059, 2084, 2109, 2133,
+               2159, 2184, 2209, 2235, 2260, 2286, 2312, 2339,
+               2365, 2392, 2419, 2446, 2473, 2500, 2527, 2555,
+               2583, 2611, 2639, 2668, 2696, 2725, 2754, 2783,
+               2812, 2841, 2871, 2901, 2931, 2961, 2991, 3022,
+               3052, 3083, 3114, 3146, 3177, 3209, 3240, 3272,
+               3304, 3337, 3369, 3402, 3435, 3468, 3501, 3535,
+               3568, 3602, 3636, 3670, 3705, 3739, 3774, 3809,
+               3844, 3879, 3915, 3950, 3986, 4022, 4059, 4095,
+       },
+       /* csc */
+       {
+               0x10D, 0x3F3, 0x000, /* 1.05036053  -0.05066457 0.00030404 */
+               0x000, 0x0FC, 0x003, /* -0.00012137 0.98659651  0.01352485 */
+               0x002, 0x001, 0x0FC, /* 0.00722989  0.00559134  0.98717878 */
+       },
+       /* lut2 maps linear space to sRGB */
+       {
+               0,    1,    2,    2,    3,    4,    5,    6,
+               6,    7,    8,    9,    10,   10,   11,   12,
+               13,   13,   14,   15,   15,   16,   16,   17,
+               18,   18,   19,   19,   20,   20,   21,   21,
+               22,   22,   23,   23,   23,   24,   24,   25,
+               25,   25,   26,   26,   27,   27,   27,   28,
+               28,   29,   29,   29,   30,   30,   30,   31,
+               31,   31,   32,   32,   32,   33,   33,   33,
+               34,   34,   34,   34,   35,   35,   35,   36,
+               36,   36,   37,   37,   37,   37,   38,   38,
+               38,   38,   39,   39,   39,   40,   40,   40,
+               40,   41,   41,   41,   41,   42,   42,   42,
+               42,   43,   43,   43,   43,   43,   44,   44,
+               44,   44,   45,   45,   45,   45,   46,   46,
+               46,   46,   46,   47,   47,   47,   47,   48,
+               48,   48,   48,   48,   49,   49,   49,   49,
+               49,   50,   50,   50,   50,   50,   51,   51,
+               51,   51,   51,   52,   52,   52,   52,   52,
+               53,   53,   53,   53,   53,   54,   54,   54,
+               54,   54,   55,   55,   55,   55,   55,   55,
+               56,   56,   56,   56,   56,   57,   57,   57,
+               57,   57,   57,   58,   58,   58,   58,   58,
+               58,   59,   59,   59,   59,   59,   59,   60,
+               60,   60,   60,   60,   60,   61,   61,   61,
+               61,   61,   61,   62,   62,   62,   62,   62,
+               62,   63,   63,   63,   63,   63,   63,   64,
+               64,   64,   64,   64,   64,   64,   65,   65,
+               65,   65,   65,   65,   66,   66,   66,   66,
+               66,   66,   66,   67,   67,   67,   67,   67,
+               67,   67,   68,   68,   68,   68,   68,   68,
+               68,   69,   69,   69,   69,   69,   69,   69,
+               70,   70,   70,   70,   70,   70,   70,   71,
+               71,   71,   71,   71,   71,   71,   72,   72,
+               72,   72,   72,   72,   72,   72,   73,   73,
+               73,   73,   73,   73,   73,   74,   74,   74,
+               74,   74,   74,   74,   74,   75,   75,   75,
+               75,   75,   75,   75,   75,   76,   76,   76,
+               76,   76,   76,   76,   77,   77,   77,   77,
+               77,   77,   77,   77,   78,   78,   78,   78,
+               78,   78,   78,   78,   78,   79,   79,   79,
+               79,   79,   79,   79,   79,   80,   80,   80,
+               80,   80,   80,   80,   80,   81,   81,   81,
+               81,   81,   81,   81,   81,   81,   82,   82,
+               82,   82,   82,   82,   82,   82,   83,   83,
+               83,   83,   83,   83,   83,   83,   83,   84,
+               84,   84,   84,   84,   84,   84,   84,   84,
+               85,   85,   85,   85,   85,   85,   85,   85,
+               85,   86,   86,   86,   86,   86,   86,   86,
+               86,   86,   87,   87,   87,   87,   87,   87,
+               87,   87,   87,   88,   88,   88,   88,   88,
+               88,   88,   88,   88,   88,   89,   89,   89,
+               89,   89,   89,   89,   89,   89,   90,   90,
+               90,   90,   90,   90,   90,   90,   90,   90,
+               91,   91,   91,   91,   91,   91,   91,   91,
+               91,   91,   92,   92,   92,   92,   92,   92,
+               92,   92,   92,   92,   93,   93,   93,   93,
+               93,   93,   93,   93,   93,   93,   94,   94,
+               94,   94,   94,   94,   94,   94,   94,   94,
+               95,   95,   95,   95,   95,   95,   95,   95,
+               95,   95,   96,   96,   96,   96,   96,   96,
+               96,   96,   96,   96,   96,   97,   97,   97,
+               97,   97,   97,   97,   97,   97,   97,   98,
+               98,   98,   98,   98,   98,   98,   98,   98,
+               98,   98,   99,   99,   99,   99,   99,   99,
+               99,   100,  101,  101,  102,  103,  103,  104,
+               105,  105,  106,  107,  107,  108,  109,  109,
+               110,  111,  111,  112,  113,  113,  114,  115,
+               115,  116,  116,  117,  118,  118,  119,  119,
+               120,  120,  121,  122,  122,  123,  123,  124,
+               124,  125,  126,  126,  127,  127,  128,  128,
+               129,  129,  130,  130,  131,  131,  132,  132,
+               133,  133,  134,  134,  135,  135,  136,  136,
+               137,  137,  138,  138,  139,  139,  140,  140,
+               141,  141,  142,  142,  143,  143,  144,  144,
+               145,  145,  145,  146,  146,  147,  147,  148,
+               148,  149,  149,  150,  150,  150,  151,  151,
+               152,  152,  153,  153,  153,  154,  154,  155,
+               155,  156,  156,  156,  157,  157,  158,  158,
+               158,  159,  159,  160,  160,  160,  161,  161,
+               162,  162,  162,  163,  163,  164,  164,  164,
+               165,  165,  166,  166,  166,  167,  167,  167,
+               168,  168,  169,  169,  169,  170,  170,  170,
+               171,  171,  172,  172,  172,  173,  173,  173,
+               174,  174,  174,  175,  175,  176,  176,  176,
+               177,  177,  177,  178,  178,  178,  179,  179,
+               179,  180,  180,  180,  181,  181,  182,  182,
+               182,  183,  183,  183,  184,  184,  184,  185,
+               185,  185,  186,  186,  186,  187,  187,  187,
+               188,  188,  188,  189,  189,  189,  189,  190,
+               190,  190,  191,  191,  191,  192,  192,  192,
+               193,  193,  193,  194,  194,  194,  195,  195,
+               195,  196,  196,  196,  196,  197,  197,  197,
+               198,  198,  198,  199,  199,  199,  200,  200,
+               200,  200,  201,  201,  201,  202,  202,  202,
+               202,  203,  203,  203,  204,  204,  204,  205,
+               205,  205,  205,  206,  206,  206,  207,  207,
+               207,  207,  208,  208,  208,  209,  209,  209,
+               209,  210,  210,  210,  211,  211,  211,  211,
+               212,  212,  212,  213,  213,  213,  213,  214,
+               214,  214,  214,  215,  215,  215,  216,  216,
+               216,  216,  217,  217,  217,  217,  218,  218,
+               218,  219,  219,  219,  219,  220,  220,  220,
+               220,  221,  221,  221,  221,  222,  222,  222,
+               223,  223,  223,  223,  224,  224,  224,  224,
+               225,  225,  225,  225,  226,  226,  226,  226,
+               227,  227,  227,  227,  228,  228,  228,  228,
+               229,  229,  229,  229,  230,  230,  230,  230,
+               231,  231,  231,  231,  232,  232,  232,  232,
+               233,  233,  233,  233,  234,  234,  234,  234,
+               235,  235,  235,  235,  236,  236,  236,  236,
+               237,  237,  237,  237,  238,  238,  238,  238,
+               239,  239,  239,  239,  240,  240,  240,  240,
+               240,  241,  241,  241,  241,  242,  242,  242,
+               242,  243,  243,  243,  243,  244,  244,  244,
+               244,  244,  245,  245,  245,  245,  246,  246,
+               246,  246,  247,  247,  247,  247,  247,  248,
+               248,  248,  248,  249,  249,  249,  249,  249,
+               250,  250,  250,  250,  251,  251,  251,  251,
+               251,  252,  252,  252,  252,  253,  253,  253,
+               253,  253,  254,  254,  254,  254,  255,  255,
+       },
+};
+#endif
+
 static struct tegra_dc_platform_data pluto_disp1_pdata = {
        .flags          = TEGRA_DC_FLAG_ENABLED,
        .default_out    = &pluto_disp1_out,
        .fb             = &pluto_disp1_fb_data,
        .emc_clk_rate   = 204000000,
-
+#ifdef CONFIG_TEGRA_DC_CMU
        .cmu_enable     = 1,
+#if PANEL_5_LG_720_1280
+       .cmu = &pluto_lg_cmu,
+#endif
+#endif
 };
 
 static struct tegra_fb_data pluto_disp2_fb_data = {