mdp_csc_table.h 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642
  1. /* drivers/video/msm/mdp_csc_table.h
  2. *
  3. * Copyright (C) 2007 QUALCOMM Incorporated
  4. * Copyright (C) 2007 Google Incorporated
  5. *
  6. * This software is licensed under the terms of the GNU General Public
  7. * License version 2, as published by the Free Software Foundation, and
  8. * may be copied, distributed, and modified under those terms.
  9. *
  10. * This program is distributed in the hope that it will be useful,
  11. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. * GNU General Public License for more details.
  14. */
  15. static struct {
  16. uint32_t reg;
  17. uint32_t val;
  18. } csc_matrix_config_table[] = {
  19. /* RGB -> YUV primary forward matrix (set1). */
  20. { MDP_CSC_PFMVn(0), 0x83 },
  21. { MDP_CSC_PFMVn(1), 0x102 },
  22. { MDP_CSC_PFMVn(2), 0x32 },
  23. { MDP_CSC_PFMVn(3), 0xffffffb5 },
  24. { MDP_CSC_PFMVn(4), 0xffffff6c },
  25. { MDP_CSC_PFMVn(5), 0xe1 },
  26. { MDP_CSC_PFMVn(6), 0xe1 },
  27. { MDP_CSC_PFMVn(7), 0xffffff45 },
  28. { MDP_CSC_PFMVn(8), 0xffffffdc },
  29. /* YUV -> RGB primary reverse matrix (set2) */
  30. { MDP_CSC_PRMVn(0), 0x254 },
  31. { MDP_CSC_PRMVn(1), 0x0 },
  32. { MDP_CSC_PRMVn(2), 0x331 },
  33. { MDP_CSC_PRMVn(3), 0x254 },
  34. { MDP_CSC_PRMVn(4), 0xffffff38 },
  35. { MDP_CSC_PRMVn(5), 0xfffffe61 },
  36. { MDP_CSC_PRMVn(6), 0x254 },
  37. { MDP_CSC_PRMVn(7), 0x409 },
  38. { MDP_CSC_PRMVn(8), 0x0 },
  39. #ifndef CONFIG_MSM_MDP31
  40. /* For MDP 2.2/3.0 */
  41. /* primary limit vector */
  42. { MDP_CSC_PLVn(0), 0x10 },
  43. { MDP_CSC_PLVn(1), 0xeb },
  44. { MDP_CSC_PLVn(2), 0x10 },
  45. { MDP_CSC_PLVn(3), 0xf0 },
  46. /* primary bias vector */
  47. { MDP_CSC_PBVn(0), 0x10 },
  48. { MDP_CSC_PBVn(1), 0x80 },
  49. { MDP_CSC_PBVn(2), 0x80 },
  50. #else /* CONFIG_MSM_MDP31 */
  51. /* limit vectors configuration */
  52. /* rgb -> yuv (set1) pre-limit vector */
  53. { MDP_PPP_CSC_PRE_LV1n(0), 0x10 },
  54. { MDP_PPP_CSC_PRE_LV1n(1), 0xeb },
  55. { MDP_PPP_CSC_PRE_LV1n(2), 0x10 },
  56. { MDP_PPP_CSC_PRE_LV1n(3), 0xf0 },
  57. { MDP_PPP_CSC_PRE_LV1n(4), 0x10 },
  58. { MDP_PPP_CSC_PRE_LV1n(5), 0xf0 },
  59. /* rgb -> yuv (set1) post-limit vector */
  60. { MDP_PPP_CSC_POST_LV1n(0), 0x0 },
  61. { MDP_PPP_CSC_POST_LV1n(1), 0xff },
  62. { MDP_PPP_CSC_POST_LV1n(2), 0x0 },
  63. { MDP_PPP_CSC_POST_LV1n(3), 0xff },
  64. { MDP_PPP_CSC_POST_LV1n(4), 0x0 },
  65. { MDP_PPP_CSC_POST_LV1n(5), 0xff },
  66. /* yuv -> rgb (set2) pre-limit vector */
  67. { MDP_PPP_CSC_PRE_LV2n(0), 0x0 },
  68. { MDP_PPP_CSC_PRE_LV2n(1), 0xff },
  69. { MDP_PPP_CSC_PRE_LV2n(2), 0x0 },
  70. { MDP_PPP_CSC_PRE_LV2n(3), 0xff },
  71. { MDP_PPP_CSC_PRE_LV2n(4), 0x0 },
  72. { MDP_PPP_CSC_PRE_LV2n(5), 0xff },
  73. /* yuv -> rgb (set2) post-limit vector */
  74. { MDP_PPP_CSC_POST_LV2n(0), 0x10 },
  75. { MDP_PPP_CSC_POST_LV2n(1), 0xeb },
  76. { MDP_PPP_CSC_POST_LV2n(2), 0x10 },
  77. { MDP_PPP_CSC_POST_LV2n(3), 0xf0 },
  78. { MDP_PPP_CSC_POST_LV2n(4), 0x10 },
  79. { MDP_PPP_CSC_POST_LV2n(5), 0xf0 },
  80. /* bias vectors configuration */
  81. /* XXX: why is set2 used for rgb->yuv, but set1 */
  82. /* used for yuv -> rgb??!? Seems to be the reverse of the
  83. * other vectors. */
  84. /* RGB -> YUV pre-bias vector... */
  85. { MDP_PPP_CSC_PRE_BV2n(0), 0 },
  86. { MDP_PPP_CSC_PRE_BV2n(1), 0 },
  87. { MDP_PPP_CSC_PRE_BV2n(2), 0 },
  88. /* RGB -> YUV post-bias vector */
  89. { MDP_PPP_CSC_POST_BV2n(0), 0x10 },
  90. { MDP_PPP_CSC_POST_BV2n(1), 0x80 },
  91. { MDP_PPP_CSC_POST_BV2n(2), 0x80 },
  92. /* YUV -> RGB pre-bias vector... */
  93. { MDP_PPP_CSC_PRE_BV1n(0), 0x1f0 },
  94. { MDP_PPP_CSC_PRE_BV1n(1), 0x180 },
  95. { MDP_PPP_CSC_PRE_BV1n(2), 0x180 },
  96. /* YUV -> RGB post-bias vector */
  97. { MDP_PPP_CSC_POST_BV1n(0), 0 },
  98. { MDP_PPP_CSC_POST_BV1n(1), 0 },
  99. { MDP_PPP_CSC_POST_BV1n(2), 0 },
  100. /* luma filter coefficients */
  101. { MDP_PPP_DEINT_COEFFn(0), 0x3e0 },
  102. { MDP_PPP_DEINT_COEFFn(1), 0x360 },
  103. { MDP_PPP_DEINT_COEFFn(2), 0x120 },
  104. { MDP_PPP_DEINT_COEFFn(3), 0x140 },
  105. #endif
  106. };
  107. static struct {
  108. uint32_t reg;
  109. uint32_t val;
  110. } csc_color_lut[] = {
  111. { 0x40800, 0x0 },
  112. { 0x40804, 0x151515 },
  113. { 0x40808, 0x1d1d1d },
  114. { 0x4080c, 0x232323 },
  115. { 0x40810, 0x272727 },
  116. { 0x40814, 0x2b2b2b },
  117. { 0x40818, 0x2f2f2f },
  118. { 0x4081c, 0x333333 },
  119. { 0x40820, 0x363636 },
  120. { 0x40824, 0x393939 },
  121. { 0x40828, 0x3b3b3b },
  122. { 0x4082c, 0x3e3e3e },
  123. { 0x40830, 0x404040 },
  124. { 0x40834, 0x434343 },
  125. { 0x40838, 0x454545 },
  126. { 0x4083c, 0x474747 },
  127. { 0x40840, 0x494949 },
  128. { 0x40844, 0x4b4b4b },
  129. { 0x40848, 0x4d4d4d },
  130. { 0x4084c, 0x4f4f4f },
  131. { 0x40850, 0x515151 },
  132. { 0x40854, 0x535353 },
  133. { 0x40858, 0x555555 },
  134. { 0x4085c, 0x565656 },
  135. { 0x40860, 0x585858 },
  136. { 0x40864, 0x5a5a5a },
  137. { 0x40868, 0x5b5b5b },
  138. { 0x4086c, 0x5d5d5d },
  139. { 0x40870, 0x5e5e5e },
  140. { 0x40874, 0x606060 },
  141. { 0x40878, 0x616161 },
  142. { 0x4087c, 0x636363 },
  143. { 0x40880, 0x646464 },
  144. { 0x40884, 0x666666 },
  145. { 0x40888, 0x676767 },
  146. { 0x4088c, 0x686868 },
  147. { 0x40890, 0x6a6a6a },
  148. { 0x40894, 0x6b6b6b },
  149. { 0x40898, 0x6c6c6c },
  150. { 0x4089c, 0x6e6e6e },
  151. { 0x408a0, 0x6f6f6f },
  152. { 0x408a4, 0x707070 },
  153. { 0x408a8, 0x717171 },
  154. { 0x408ac, 0x727272 },
  155. { 0x408b0, 0x747474 },
  156. { 0x408b4, 0x757575 },
  157. { 0x408b8, 0x767676 },
  158. { 0x408bc, 0x777777 },
  159. { 0x408c0, 0x787878 },
  160. { 0x408c4, 0x797979 },
  161. { 0x408c8, 0x7a7a7a },
  162. { 0x408cc, 0x7c7c7c },
  163. { 0x408d0, 0x7d7d7d },
  164. { 0x408d4, 0x7e7e7e },
  165. { 0x408d8, 0x7f7f7f },
  166. { 0x408dc, 0x808080 },
  167. { 0x408e0, 0x818181 },
  168. { 0x408e4, 0x828282 },
  169. { 0x408e8, 0x838383 },
  170. { 0x408ec, 0x848484 },
  171. { 0x408f0, 0x858585 },
  172. { 0x408f4, 0x868686 },
  173. { 0x408f8, 0x878787 },
  174. { 0x408fc, 0x888888 },
  175. { 0x40900, 0x898989 },
  176. { 0x40904, 0x8a8a8a },
  177. { 0x40908, 0x8b8b8b },
  178. { 0x4090c, 0x8c8c8c },
  179. { 0x40910, 0x8d8d8d },
  180. { 0x40914, 0x8e8e8e },
  181. { 0x40918, 0x8f8f8f },
  182. { 0x4091c, 0x8f8f8f },
  183. { 0x40920, 0x909090 },
  184. { 0x40924, 0x919191 },
  185. { 0x40928, 0x929292 },
  186. { 0x4092c, 0x939393 },
  187. { 0x40930, 0x949494 },
  188. { 0x40934, 0x959595 },
  189. { 0x40938, 0x969696 },
  190. { 0x4093c, 0x969696 },
  191. { 0x40940, 0x979797 },
  192. { 0x40944, 0x989898 },
  193. { 0x40948, 0x999999 },
  194. { 0x4094c, 0x9a9a9a },
  195. { 0x40950, 0x9b9b9b },
  196. { 0x40954, 0x9c9c9c },
  197. { 0x40958, 0x9c9c9c },
  198. { 0x4095c, 0x9d9d9d },
  199. { 0x40960, 0x9e9e9e },
  200. { 0x40964, 0x9f9f9f },
  201. { 0x40968, 0xa0a0a0 },
  202. { 0x4096c, 0xa0a0a0 },
  203. { 0x40970, 0xa1a1a1 },
  204. { 0x40974, 0xa2a2a2 },
  205. { 0x40978, 0xa3a3a3 },
  206. { 0x4097c, 0xa4a4a4 },
  207. { 0x40980, 0xa4a4a4 },
  208. { 0x40984, 0xa5a5a5 },
  209. { 0x40988, 0xa6a6a6 },
  210. { 0x4098c, 0xa7a7a7 },
  211. { 0x40990, 0xa7a7a7 },
  212. { 0x40994, 0xa8a8a8 },
  213. { 0x40998, 0xa9a9a9 },
  214. { 0x4099c, 0xaaaaaa },
  215. { 0x409a0, 0xaaaaaa },
  216. { 0x409a4, 0xababab },
  217. { 0x409a8, 0xacacac },
  218. { 0x409ac, 0xadadad },
  219. { 0x409b0, 0xadadad },
  220. { 0x409b4, 0xaeaeae },
  221. { 0x409b8, 0xafafaf },
  222. { 0x409bc, 0xafafaf },
  223. { 0x409c0, 0xb0b0b0 },
  224. { 0x409c4, 0xb1b1b1 },
  225. { 0x409c8, 0xb2b2b2 },
  226. { 0x409cc, 0xb2b2b2 },
  227. { 0x409d0, 0xb3b3b3 },
  228. { 0x409d4, 0xb4b4b4 },
  229. { 0x409d8, 0xb4b4b4 },
  230. { 0x409dc, 0xb5b5b5 },
  231. { 0x409e0, 0xb6b6b6 },
  232. { 0x409e4, 0xb6b6b6 },
  233. { 0x409e8, 0xb7b7b7 },
  234. { 0x409ec, 0xb8b8b8 },
  235. { 0x409f0, 0xb8b8b8 },
  236. { 0x409f4, 0xb9b9b9 },
  237. { 0x409f8, 0xbababa },
  238. { 0x409fc, 0xbababa },
  239. { 0x40a00, 0xbbbbbb },
  240. { 0x40a04, 0xbcbcbc },
  241. { 0x40a08, 0xbcbcbc },
  242. { 0x40a0c, 0xbdbdbd },
  243. { 0x40a10, 0xbebebe },
  244. { 0x40a14, 0xbebebe },
  245. { 0x40a18, 0xbfbfbf },
  246. { 0x40a1c, 0xc0c0c0 },
  247. { 0x40a20, 0xc0c0c0 },
  248. { 0x40a24, 0xc1c1c1 },
  249. { 0x40a28, 0xc1c1c1 },
  250. { 0x40a2c, 0xc2c2c2 },
  251. { 0x40a30, 0xc3c3c3 },
  252. { 0x40a34, 0xc3c3c3 },
  253. { 0x40a38, 0xc4c4c4 },
  254. { 0x40a3c, 0xc5c5c5 },
  255. { 0x40a40, 0xc5c5c5 },
  256. { 0x40a44, 0xc6c6c6 },
  257. { 0x40a48, 0xc6c6c6 },
  258. { 0x40a4c, 0xc7c7c7 },
  259. { 0x40a50, 0xc8c8c8 },
  260. { 0x40a54, 0xc8c8c8 },
  261. { 0x40a58, 0xc9c9c9 },
  262. { 0x40a5c, 0xc9c9c9 },
  263. { 0x40a60, 0xcacaca },
  264. { 0x40a64, 0xcbcbcb },
  265. { 0x40a68, 0xcbcbcb },
  266. { 0x40a6c, 0xcccccc },
  267. { 0x40a70, 0xcccccc },
  268. { 0x40a74, 0xcdcdcd },
  269. { 0x40a78, 0xcecece },
  270. { 0x40a7c, 0xcecece },
  271. { 0x40a80, 0xcfcfcf },
  272. { 0x40a84, 0xcfcfcf },
  273. { 0x40a88, 0xd0d0d0 },
  274. { 0x40a8c, 0xd0d0d0 },
  275. { 0x40a90, 0xd1d1d1 },
  276. { 0x40a94, 0xd2d2d2 },
  277. { 0x40a98, 0xd2d2d2 },
  278. { 0x40a9c, 0xd3d3d3 },
  279. { 0x40aa0, 0xd3d3d3 },
  280. { 0x40aa4, 0xd4d4d4 },
  281. { 0x40aa8, 0xd4d4d4 },
  282. { 0x40aac, 0xd5d5d5 },
  283. { 0x40ab0, 0xd6d6d6 },
  284. { 0x40ab4, 0xd6d6d6 },
  285. { 0x40ab8, 0xd7d7d7 },
  286. { 0x40abc, 0xd7d7d7 },
  287. { 0x40ac0, 0xd8d8d8 },
  288. { 0x40ac4, 0xd8d8d8 },
  289. { 0x40ac8, 0xd9d9d9 },
  290. { 0x40acc, 0xd9d9d9 },
  291. { 0x40ad0, 0xdadada },
  292. { 0x40ad4, 0xdbdbdb },
  293. { 0x40ad8, 0xdbdbdb },
  294. { 0x40adc, 0xdcdcdc },
  295. { 0x40ae0, 0xdcdcdc },
  296. { 0x40ae4, 0xdddddd },
  297. { 0x40ae8, 0xdddddd },
  298. { 0x40aec, 0xdedede },
  299. { 0x40af0, 0xdedede },
  300. { 0x40af4, 0xdfdfdf },
  301. { 0x40af8, 0xdfdfdf },
  302. { 0x40afc, 0xe0e0e0 },
  303. { 0x40b00, 0xe0e0e0 },
  304. { 0x40b04, 0xe1e1e1 },
  305. { 0x40b08, 0xe1e1e1 },
  306. { 0x40b0c, 0xe2e2e2 },
  307. { 0x40b10, 0xe3e3e3 },
  308. { 0x40b14, 0xe3e3e3 },
  309. { 0x40b18, 0xe4e4e4 },
  310. { 0x40b1c, 0xe4e4e4 },
  311. { 0x40b20, 0xe5e5e5 },
  312. { 0x40b24, 0xe5e5e5 },
  313. { 0x40b28, 0xe6e6e6 },
  314. { 0x40b2c, 0xe6e6e6 },
  315. { 0x40b30, 0xe7e7e7 },
  316. { 0x40b34, 0xe7e7e7 },
  317. { 0x40b38, 0xe8e8e8 },
  318. { 0x40b3c, 0xe8e8e8 },
  319. { 0x40b40, 0xe9e9e9 },
  320. { 0x40b44, 0xe9e9e9 },
  321. { 0x40b48, 0xeaeaea },
  322. { 0x40b4c, 0xeaeaea },
  323. { 0x40b50, 0xebebeb },
  324. { 0x40b54, 0xebebeb },
  325. { 0x40b58, 0xececec },
  326. { 0x40b5c, 0xececec },
  327. { 0x40b60, 0xededed },
  328. { 0x40b64, 0xededed },
  329. { 0x40b68, 0xeeeeee },
  330. { 0x40b6c, 0xeeeeee },
  331. { 0x40b70, 0xefefef },
  332. { 0x40b74, 0xefefef },
  333. { 0x40b78, 0xf0f0f0 },
  334. { 0x40b7c, 0xf0f0f0 },
  335. { 0x40b80, 0xf1f1f1 },
  336. { 0x40b84, 0xf1f1f1 },
  337. { 0x40b88, 0xf2f2f2 },
  338. { 0x40b8c, 0xf2f2f2 },
  339. { 0x40b90, 0xf2f2f2 },
  340. { 0x40b94, 0xf3f3f3 },
  341. { 0x40b98, 0xf3f3f3 },
  342. { 0x40b9c, 0xf4f4f4 },
  343. { 0x40ba0, 0xf4f4f4 },
  344. { 0x40ba4, 0xf5f5f5 },
  345. { 0x40ba8, 0xf5f5f5 },
  346. { 0x40bac, 0xf6f6f6 },
  347. { 0x40bb0, 0xf6f6f6 },
  348. { 0x40bb4, 0xf7f7f7 },
  349. { 0x40bb8, 0xf7f7f7 },
  350. { 0x40bbc, 0xf8f8f8 },
  351. { 0x40bc0, 0xf8f8f8 },
  352. { 0x40bc4, 0xf9f9f9 },
  353. { 0x40bc8, 0xf9f9f9 },
  354. { 0x40bcc, 0xfafafa },
  355. { 0x40bd0, 0xfafafa },
  356. { 0x40bd4, 0xfafafa },
  357. { 0x40bd8, 0xfbfbfb },
  358. { 0x40bdc, 0xfbfbfb },
  359. { 0x40be0, 0xfcfcfc },
  360. { 0x40be4, 0xfcfcfc },
  361. { 0x40be8, 0xfdfdfd },
  362. { 0x40bec, 0xfdfdfd },
  363. { 0x40bf0, 0xfefefe },
  364. { 0x40bf4, 0xfefefe },
  365. { 0x40bf8, 0xffffff },
  366. { 0x40bfc, 0xffffff },
  367. { 0x40c00, 0x0 },
  368. { 0x40c04, 0x0 },
  369. { 0x40c08, 0x0 },
  370. { 0x40c0c, 0x0 },
  371. { 0x40c10, 0x0 },
  372. { 0x40c14, 0x0 },
  373. { 0x40c18, 0x0 },
  374. { 0x40c1c, 0x0 },
  375. { 0x40c20, 0x0 },
  376. { 0x40c24, 0x0 },
  377. { 0x40c28, 0x0 },
  378. { 0x40c2c, 0x0 },
  379. { 0x40c30, 0x0 },
  380. { 0x40c34, 0x0 },
  381. { 0x40c38, 0x0 },
  382. { 0x40c3c, 0x0 },
  383. { 0x40c40, 0x10101 },
  384. { 0x40c44, 0x10101 },
  385. { 0x40c48, 0x10101 },
  386. { 0x40c4c, 0x10101 },
  387. { 0x40c50, 0x10101 },
  388. { 0x40c54, 0x10101 },
  389. { 0x40c58, 0x10101 },
  390. { 0x40c5c, 0x10101 },
  391. { 0x40c60, 0x10101 },
  392. { 0x40c64, 0x10101 },
  393. { 0x40c68, 0x20202 },
  394. { 0x40c6c, 0x20202 },
  395. { 0x40c70, 0x20202 },
  396. { 0x40c74, 0x20202 },
  397. { 0x40c78, 0x20202 },
  398. { 0x40c7c, 0x20202 },
  399. { 0x40c80, 0x30303 },
  400. { 0x40c84, 0x30303 },
  401. { 0x40c88, 0x30303 },
  402. { 0x40c8c, 0x30303 },
  403. { 0x40c90, 0x30303 },
  404. { 0x40c94, 0x40404 },
  405. { 0x40c98, 0x40404 },
  406. { 0x40c9c, 0x40404 },
  407. { 0x40ca0, 0x40404 },
  408. { 0x40ca4, 0x40404 },
  409. { 0x40ca8, 0x50505 },
  410. { 0x40cac, 0x50505 },
  411. { 0x40cb0, 0x50505 },
  412. { 0x40cb4, 0x50505 },
  413. { 0x40cb8, 0x60606 },
  414. { 0x40cbc, 0x60606 },
  415. { 0x40cc0, 0x60606 },
  416. { 0x40cc4, 0x70707 },
  417. { 0x40cc8, 0x70707 },
  418. { 0x40ccc, 0x70707 },
  419. { 0x40cd0, 0x70707 },
  420. { 0x40cd4, 0x80808 },
  421. { 0x40cd8, 0x80808 },
  422. { 0x40cdc, 0x80808 },
  423. { 0x40ce0, 0x90909 },
  424. { 0x40ce4, 0x90909 },
  425. { 0x40ce8, 0xa0a0a },
  426. { 0x40cec, 0xa0a0a },
  427. { 0x40cf0, 0xa0a0a },
  428. { 0x40cf4, 0xb0b0b },
  429. { 0x40cf8, 0xb0b0b },
  430. { 0x40cfc, 0xb0b0b },
  431. { 0x40d00, 0xc0c0c },
  432. { 0x40d04, 0xc0c0c },
  433. { 0x40d08, 0xd0d0d },
  434. { 0x40d0c, 0xd0d0d },
  435. { 0x40d10, 0xe0e0e },
  436. { 0x40d14, 0xe0e0e },
  437. { 0x40d18, 0xe0e0e },
  438. { 0x40d1c, 0xf0f0f },
  439. { 0x40d20, 0xf0f0f },
  440. { 0x40d24, 0x101010 },
  441. { 0x40d28, 0x101010 },
  442. { 0x40d2c, 0x111111 },
  443. { 0x40d30, 0x111111 },
  444. { 0x40d34, 0x121212 },
  445. { 0x40d38, 0x121212 },
  446. { 0x40d3c, 0x131313 },
  447. { 0x40d40, 0x131313 },
  448. { 0x40d44, 0x141414 },
  449. { 0x40d48, 0x151515 },
  450. { 0x40d4c, 0x151515 },
  451. { 0x40d50, 0x161616 },
  452. { 0x40d54, 0x161616 },
  453. { 0x40d58, 0x171717 },
  454. { 0x40d5c, 0x171717 },
  455. { 0x40d60, 0x181818 },
  456. { 0x40d64, 0x191919 },
  457. { 0x40d68, 0x191919 },
  458. { 0x40d6c, 0x1a1a1a },
  459. { 0x40d70, 0x1b1b1b },
  460. { 0x40d74, 0x1b1b1b },
  461. { 0x40d78, 0x1c1c1c },
  462. { 0x40d7c, 0x1c1c1c },
  463. { 0x40d80, 0x1d1d1d },
  464. { 0x40d84, 0x1e1e1e },
  465. { 0x40d88, 0x1f1f1f },
  466. { 0x40d8c, 0x1f1f1f },
  467. { 0x40d90, 0x202020 },
  468. { 0x40d94, 0x212121 },
  469. { 0x40d98, 0x212121 },
  470. { 0x40d9c, 0x222222 },
  471. { 0x40da0, 0x232323 },
  472. { 0x40da4, 0x242424 },
  473. { 0x40da8, 0x242424 },
  474. { 0x40dac, 0x252525 },
  475. { 0x40db0, 0x262626 },
  476. { 0x40db4, 0x272727 },
  477. { 0x40db8, 0x272727 },
  478. { 0x40dbc, 0x282828 },
  479. { 0x40dc0, 0x292929 },
  480. { 0x40dc4, 0x2a2a2a },
  481. { 0x40dc8, 0x2b2b2b },
  482. { 0x40dcc, 0x2c2c2c },
  483. { 0x40dd0, 0x2c2c2c },
  484. { 0x40dd4, 0x2d2d2d },
  485. { 0x40dd8, 0x2e2e2e },
  486. { 0x40ddc, 0x2f2f2f },
  487. { 0x40de0, 0x303030 },
  488. { 0x40de4, 0x313131 },
  489. { 0x40de8, 0x323232 },
  490. { 0x40dec, 0x333333 },
  491. { 0x40df0, 0x333333 },
  492. { 0x40df4, 0x343434 },
  493. { 0x40df8, 0x353535 },
  494. { 0x40dfc, 0x363636 },
  495. { 0x40e00, 0x373737 },
  496. { 0x40e04, 0x383838 },
  497. { 0x40e08, 0x393939 },
  498. { 0x40e0c, 0x3a3a3a },
  499. { 0x40e10, 0x3b3b3b },
  500. { 0x40e14, 0x3c3c3c },
  501. { 0x40e18, 0x3d3d3d },
  502. { 0x40e1c, 0x3e3e3e },
  503. { 0x40e20, 0x3f3f3f },
  504. { 0x40e24, 0x404040 },
  505. { 0x40e28, 0x414141 },
  506. { 0x40e2c, 0x424242 },
  507. { 0x40e30, 0x434343 },
  508. { 0x40e34, 0x444444 },
  509. { 0x40e38, 0x464646 },
  510. { 0x40e3c, 0x474747 },
  511. { 0x40e40, 0x484848 },
  512. { 0x40e44, 0x494949 },
  513. { 0x40e48, 0x4a4a4a },
  514. { 0x40e4c, 0x4b4b4b },
  515. { 0x40e50, 0x4c4c4c },
  516. { 0x40e54, 0x4d4d4d },
  517. { 0x40e58, 0x4f4f4f },
  518. { 0x40e5c, 0x505050 },
  519. { 0x40e60, 0x515151 },
  520. { 0x40e64, 0x525252 },
  521. { 0x40e68, 0x535353 },
  522. { 0x40e6c, 0x545454 },
  523. { 0x40e70, 0x565656 },
  524. { 0x40e74, 0x575757 },
  525. { 0x40e78, 0x585858 },
  526. { 0x40e7c, 0x595959 },
  527. { 0x40e80, 0x5b5b5b },
  528. { 0x40e84, 0x5c5c5c },
  529. { 0x40e88, 0x5d5d5d },
  530. { 0x40e8c, 0x5e5e5e },
  531. { 0x40e90, 0x606060 },
  532. { 0x40e94, 0x616161 },
  533. { 0x40e98, 0x626262 },
  534. { 0x40e9c, 0x646464 },
  535. { 0x40ea0, 0x656565 },
  536. { 0x40ea4, 0x666666 },
  537. { 0x40ea8, 0x686868 },
  538. { 0x40eac, 0x696969 },
  539. { 0x40eb0, 0x6a6a6a },
  540. { 0x40eb4, 0x6c6c6c },
  541. { 0x40eb8, 0x6d6d6d },
  542. { 0x40ebc, 0x6f6f6f },
  543. { 0x40ec0, 0x707070 },
  544. { 0x40ec4, 0x717171 },
  545. { 0x40ec8, 0x737373 },
  546. { 0x40ecc, 0x747474 },
  547. { 0x40ed0, 0x767676 },
  548. { 0x40ed4, 0x777777 },
  549. { 0x40ed8, 0x797979 },
  550. { 0x40edc, 0x7a7a7a },
  551. { 0x40ee0, 0x7c7c7c },
  552. { 0x40ee4, 0x7d7d7d },
  553. { 0x40ee8, 0x7f7f7f },
  554. { 0x40eec, 0x808080 },
  555. { 0x40ef0, 0x828282 },
  556. { 0x40ef4, 0x838383 },
  557. { 0x40ef8, 0x858585 },
  558. { 0x40efc, 0x868686 },
  559. { 0x40f00, 0x888888 },
  560. { 0x40f04, 0x898989 },
  561. { 0x40f08, 0x8b8b8b },
  562. { 0x40f0c, 0x8d8d8d },
  563. { 0x40f10, 0x8e8e8e },
  564. { 0x40f14, 0x909090 },
  565. { 0x40f18, 0x919191 },
  566. { 0x40f1c, 0x939393 },
  567. { 0x40f20, 0x959595 },
  568. { 0x40f24, 0x969696 },
  569. { 0x40f28, 0x989898 },
  570. { 0x40f2c, 0x9a9a9a },
  571. { 0x40f30, 0x9b9b9b },
  572. { 0x40f34, 0x9d9d9d },
  573. { 0x40f38, 0x9f9f9f },
  574. { 0x40f3c, 0xa1a1a1 },
  575. { 0x40f40, 0xa2a2a2 },
  576. { 0x40f44, 0xa4a4a4 },
  577. { 0x40f48, 0xa6a6a6 },
  578. { 0x40f4c, 0xa7a7a7 },
  579. { 0x40f50, 0xa9a9a9 },
  580. { 0x40f54, 0xababab },
  581. { 0x40f58, 0xadadad },
  582. { 0x40f5c, 0xafafaf },
  583. { 0x40f60, 0xb0b0b0 },
  584. { 0x40f64, 0xb2b2b2 },
  585. { 0x40f68, 0xb4b4b4 },
  586. { 0x40f6c, 0xb6b6b6 },
  587. { 0x40f70, 0xb8b8b8 },
  588. { 0x40f74, 0xbababa },
  589. { 0x40f78, 0xbbbbbb },
  590. { 0x40f7c, 0xbdbdbd },
  591. { 0x40f80, 0xbfbfbf },
  592. { 0x40f84, 0xc1c1c1 },
  593. { 0x40f88, 0xc3c3c3 },
  594. { 0x40f8c, 0xc5c5c5 },
  595. { 0x40f90, 0xc7c7c7 },
  596. { 0x40f94, 0xc9c9c9 },
  597. { 0x40f98, 0xcbcbcb },
  598. { 0x40f9c, 0xcdcdcd },
  599. { 0x40fa0, 0xcfcfcf },
  600. { 0x40fa4, 0xd1d1d1 },
  601. { 0x40fa8, 0xd3d3d3 },
  602. { 0x40fac, 0xd5d5d5 },
  603. { 0x40fb0, 0xd7d7d7 },
  604. { 0x40fb4, 0xd9d9d9 },
  605. { 0x40fb8, 0xdbdbdb },
  606. { 0x40fbc, 0xdddddd },
  607. { 0x40fc0, 0xdfdfdf },
  608. { 0x40fc4, 0xe1e1e1 },
  609. { 0x40fc8, 0xe3e3e3 },
  610. { 0x40fcc, 0xe5e5e5 },
  611. { 0x40fd0, 0xe7e7e7 },
  612. { 0x40fd4, 0xe9e9e9 },
  613. { 0x40fd8, 0xebebeb },
  614. { 0x40fdc, 0xeeeeee },
  615. { 0x40fe0, 0xf0f0f0 },
  616. { 0x40fe4, 0xf2f2f2 },
  617. { 0x40fe8, 0xf4f4f4 },
  618. { 0x40fec, 0xf6f6f6 },
  619. { 0x40ff0, 0xf8f8f8 },
  620. { 0x40ff4, 0xfbfbfb },
  621. { 0x40ff8, 0xfdfdfd },
  622. { 0x40ffc, 0xffffff },
  623. };