1 /* drivers/video/msm_fb/mdp_scale_tables.c 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 16 #include "mdp_scale_tables.h" 17 #include "mdp_hw.h" 18 19 struct mdp_table_entry mdp_upscale_table[] = { 20 { 0x5fffc, 0x0 }, 21 { 0x50200, 0x7fc00000 }, 22 { 0x5fffc, 0xff80000d }, 23 { 0x50204, 0x7ec003f9 }, 24 { 0x5fffc, 0xfec0001c }, 25 { 0x50208, 0x7d4003f3 }, 26 { 0x5fffc, 0xfe40002b }, 27 { 0x5020c, 0x7b8003ed }, 28 { 0x5fffc, 0xfd80003c }, 29 { 0x50210, 0x794003e8 }, 30 { 0x5fffc, 0xfcc0004d }, 31 { 0x50214, 0x76c003e4 }, 32 { 0x5fffc, 0xfc40005f }, 33 { 0x50218, 0x73c003e0 }, 34 { 0x5fffc, 0xfb800071 }, 35 { 0x5021c, 0x708003de }, 36 { 0x5fffc, 0xfac00085 }, 37 { 0x50220, 0x6d0003db }, 38 { 0x5fffc, 0xfa000098 }, 39 { 0x50224, 0x698003d9 }, 40 { 0x5fffc, 0xf98000ac }, 41 { 0x50228, 0x654003d8 }, 42 { 0x5fffc, 0xf8c000c1 }, 43 { 0x5022c, 0x610003d7 }, 44 { 0x5fffc, 0xf84000d5 }, 45 { 0x50230, 0x5c8003d7 }, 46 { 0x5fffc, 0xf7c000e9 }, 47 { 0x50234, 0x580003d7 }, 48 { 0x5fffc, 0xf74000fd }, 49 { 0x50238, 0x534003d8 }, 50 { 0x5fffc, 0xf6c00112 }, 51 { 0x5023c, 0x4e8003d8 }, 52 { 0x5fffc, 0xf6800126 }, 53 { 0x50240, 0x494003da }, 54 { 0x5fffc, 0xf600013a }, 55 { 0x50244, 0x448003db }, 56 { 0x5fffc, 0xf600014d }, 57 { 0x50248, 0x3f4003dd }, 58 { 0x5fffc, 0xf5c00160 }, 59 { 0x5024c, 0x3a4003df }, 60 { 0x5fffc, 0xf5c00172 }, 61 { 0x50250, 0x354003e1 }, 62 { 0x5fffc, 0xf5c00184 }, 63 { 0x50254, 0x304003e3 }, 64 { 0x5fffc, 0xf6000195 }, 65 { 0x50258, 0x2b0003e6 }, 66 { 0x5fffc, 0xf64001a6 }, 67 { 0x5025c, 0x260003e8 }, 68 { 0x5fffc, 0xf6c001b4 }, 69 { 0x50260, 0x214003eb }, 70 { 0x5fffc, 0xf78001c2 }, 71 { 0x50264, 0x1c4003ee }, 72 { 0x5fffc, 0xf80001cf }, 73 { 0x50268, 0x17c003f1 }, 74 { 0x5fffc, 0xf90001db }, 75 { 0x5026c, 0x134003f3 }, 76 { 0x5fffc, 0xfa0001e5 }, 77 { 0x50270, 0xf0003f6 }, 78 { 0x5fffc, 0xfb4001ee }, 79 { 0x50274, 0xac003f9 }, 80 { 0x5fffc, 0xfcc001f5 }, 81 { 0x50278, 0x70003fb }, 82 { 0x5fffc, 0xfe4001fb }, 83 { 0x5027c, 0x34003fe }, 84 }; 85 86 static struct mdp_table_entry mdp_downscale_x_table_PT2TOPT4[] = { 87 { 0x5fffc, 0x740008c }, 88 { 0x50280, 0x33800088 }, 89 { 0x5fffc, 0x800008e }, 90 { 0x50284, 0x33400084 }, 91 { 0x5fffc, 0x8400092 }, 92 { 0x50288, 0x33000080 }, 93 { 0x5fffc, 0x9000094 }, 94 { 0x5028c, 0x3300007b }, 95 { 0x5fffc, 0x9c00098 }, 96 { 0x50290, 0x32400077 }, 97 { 0x5fffc, 0xa40009b }, 98 { 0x50294, 0x32000073 }, 99 { 0x5fffc, 0xb00009d }, 100 { 0x50298, 0x31c0006f }, 101 { 0x5fffc, 0xbc000a0 }, 102 { 0x5029c, 0x3140006b }, 103 { 0x5fffc, 0xc8000a2 }, 104 { 0x502a0, 0x31000067 }, 105 { 0x5fffc, 0xd8000a5 }, 106 { 0x502a4, 0x30800062 }, 107 { 0x5fffc, 0xe4000a8 }, 108 { 0x502a8, 0x2fc0005f }, 109 { 0x5fffc, 0xec000aa }, 110 { 0x502ac, 0x2fc0005b }, 111 { 0x5fffc, 0xf8000ad }, 112 { 0x502b0, 0x2f400057 }, 113 { 0x5fffc, 0x108000b0 }, 114 { 0x502b4, 0x2e400054 }, 115 { 0x5fffc, 0x114000b2 }, 116 { 0x502b8, 0x2e000050 }, 117 { 0x5fffc, 0x124000b4 }, 118 { 0x502bc, 0x2d80004c }, 119 { 0x5fffc, 0x130000b6 }, 120 { 0x502c0, 0x2d000049 }, 121 { 0x5fffc, 0x140000b8 }, 122 { 0x502c4, 0x2c800045 }, 123 { 0x5fffc, 0x150000b9 }, 124 { 0x502c8, 0x2c000042 }, 125 { 0x5fffc, 0x15c000bd }, 126 { 0x502cc, 0x2b40003e }, 127 { 0x5fffc, 0x16c000bf }, 128 { 0x502d0, 0x2a80003b }, 129 { 0x5fffc, 0x17c000bf }, 130 { 0x502d4, 0x2a000039 }, 131 { 0x5fffc, 0x188000c2 }, 132 { 0x502d8, 0x29400036 }, 133 { 0x5fffc, 0x19c000c4 }, 134 { 0x502dc, 0x28800032 }, 135 { 0x5fffc, 0x1ac000c5 }, 136 { 0x502e0, 0x2800002f }, 137 { 0x5fffc, 0x1bc000c7 }, 138 { 0x502e4, 0x2740002c }, 139 { 0x5fffc, 0x1cc000c8 }, 140 { 0x502e8, 0x26c00029 }, 141 { 0x5fffc, 0x1dc000c9 }, 142 { 0x502ec, 0x26000027 }, 143 { 0x5fffc, 0x1ec000cc }, 144 { 0x502f0, 0x25000024 }, 145 { 0x5fffc, 0x200000cc }, 146 { 0x502f4, 0x24800021 }, 147 { 0x5fffc, 0x210000cd }, 148 { 0x502f8, 0x23800020 }, 149 { 0x5fffc, 0x220000ce }, 150 { 0x502fc, 0x2300001d }, 151 }; 152 153 static struct mdp_table_entry mdp_downscale_x_table_PT4TOPT6[] = { 154 { 0x5fffc, 0x740008c }, 155 { 0x50280, 0x33800088 }, 156 { 0x5fffc, 0x800008e }, 157 { 0x50284, 0x33400084 }, 158 { 0x5fffc, 0x8400092 }, 159 { 0x50288, 0x33000080 }, 160 { 0x5fffc, 0x9000094 }, 161 { 0x5028c, 0x3300007b }, 162 { 0x5fffc, 0x9c00098 }, 163 { 0x50290, 0x32400077 }, 164 { 0x5fffc, 0xa40009b }, 165 { 0x50294, 0x32000073 }, 166 { 0x5fffc, 0xb00009d }, 167 { 0x50298, 0x31c0006f }, 168 { 0x5fffc, 0xbc000a0 }, 169 { 0x5029c, 0x3140006b }, 170 { 0x5fffc, 0xc8000a2 }, 171 { 0x502a0, 0x31000067 }, 172 { 0x5fffc, 0xd8000a5 }, 173 { 0x502a4, 0x30800062 }, 174 { 0x5fffc, 0xe4000a8 }, 175 { 0x502a8, 0x2fc0005f }, 176 { 0x5fffc, 0xec000aa }, 177 { 0x502ac, 0x2fc0005b }, 178 { 0x5fffc, 0xf8000ad }, 179 { 0x502b0, 0x2f400057 }, 180 { 0x5fffc, 0x108000b0 }, 181 { 0x502b4, 0x2e400054 }, 182 { 0x5fffc, 0x114000b2 }, 183 { 0x502b8, 0x2e000050 }, 184 { 0x5fffc, 0x124000b4 }, 185 { 0x502bc, 0x2d80004c }, 186 { 0x5fffc, 0x130000b6 }, 187 { 0x502c0, 0x2d000049 }, 188 { 0x5fffc, 0x140000b8 }, 189 { 0x502c4, 0x2c800045 }, 190 { 0x5fffc, 0x150000b9 }, 191 { 0x502c8, 0x2c000042 }, 192 { 0x5fffc, 0x15c000bd }, 193 { 0x502cc, 0x2b40003e }, 194 { 0x5fffc, 0x16c000bf }, 195 { 0x502d0, 0x2a80003b }, 196 { 0x5fffc, 0x17c000bf }, 197 { 0x502d4, 0x2a000039 }, 198 { 0x5fffc, 0x188000c2 }, 199 { 0x502d8, 0x29400036 }, 200 { 0x5fffc, 0x19c000c4 }, 201 { 0x502dc, 0x28800032 }, 202 { 0x5fffc, 0x1ac000c5 }, 203 { 0x502e0, 0x2800002f }, 204 { 0x5fffc, 0x1bc000c7 }, 205 { 0x502e4, 0x2740002c }, 206 { 0x5fffc, 0x1cc000c8 }, 207 { 0x502e8, 0x26c00029 }, 208 { 0x5fffc, 0x1dc000c9 }, 209 { 0x502ec, 0x26000027 }, 210 { 0x5fffc, 0x1ec000cc }, 211 { 0x502f0, 0x25000024 }, 212 { 0x5fffc, 0x200000cc }, 213 { 0x502f4, 0x24800021 }, 214 { 0x5fffc, 0x210000cd }, 215 { 0x502f8, 0x23800020 }, 216 { 0x5fffc, 0x220000ce }, 217 { 0x502fc, 0x2300001d }, 218 }; 219 220 static struct mdp_table_entry mdp_downscale_x_table_PT6TOPT8[] = { 221 { 0x5fffc, 0xfe000070 }, 222 { 0x50280, 0x4bc00068 }, 223 { 0x5fffc, 0xfe000078 }, 224 { 0x50284, 0x4bc00060 }, 225 { 0x5fffc, 0xfe000080 }, 226 { 0x50288, 0x4b800059 }, 227 { 0x5fffc, 0xfe000089 }, 228 { 0x5028c, 0x4b000052 }, 229 { 0x5fffc, 0xfe400091 }, 230 { 0x50290, 0x4a80004b }, 231 { 0x5fffc, 0xfe40009a }, 232 { 0x50294, 0x4a000044 }, 233 { 0x5fffc, 0xfe8000a3 }, 234 { 0x50298, 0x4940003d }, 235 { 0x5fffc, 0xfec000ac }, 236 { 0x5029c, 0x48400037 }, 237 { 0x5fffc, 0xff0000b4 }, 238 { 0x502a0, 0x47800031 }, 239 { 0x5fffc, 0xff8000bd }, 240 { 0x502a4, 0x4640002b }, 241 { 0x5fffc, 0xc5 }, 242 { 0x502a8, 0x45000026 }, 243 { 0x5fffc, 0x8000ce }, 244 { 0x502ac, 0x43800021 }, 245 { 0x5fffc, 0x10000d6 }, 246 { 0x502b0, 0x4240001c }, 247 { 0x5fffc, 0x18000df }, 248 { 0x502b4, 0x40800018 }, 249 { 0x5fffc, 0x24000e6 }, 250 { 0x502b8, 0x3f000014 }, 251 { 0x5fffc, 0x30000ee }, 252 { 0x502bc, 0x3d400010 }, 253 { 0x5fffc, 0x40000f5 }, 254 { 0x502c0, 0x3b80000c }, 255 { 0x5fffc, 0x50000fc }, 256 { 0x502c4, 0x39800009 }, 257 { 0x5fffc, 0x6000102 }, 258 { 0x502c8, 0x37c00006 }, 259 { 0x5fffc, 0x7000109 }, 260 { 0x502cc, 0x35800004 }, 261 { 0x5fffc, 0x840010e }, 262 { 0x502d0, 0x33800002 }, 263 { 0x5fffc, 0x9800114 }, 264 { 0x502d4, 0x31400000 }, 265 { 0x5fffc, 0xac00119 }, 266 { 0x502d8, 0x2f4003fe }, 267 { 0x5fffc, 0xc40011e }, 268 { 0x502dc, 0x2d0003fc }, 269 { 0x5fffc, 0xdc00121 }, 270 { 0x502e0, 0x2b0003fb }, 271 { 0x5fffc, 0xf400125 }, 272 { 0x502e4, 0x28c003fa }, 273 { 0x5fffc, 0x11000128 }, 274 { 0x502e8, 0x268003f9 }, 275 { 0x5fffc, 0x12c0012a }, 276 { 0x502ec, 0x244003f9 }, 277 { 0x5fffc, 0x1480012c }, 278 { 0x502f0, 0x224003f8 }, 279 { 0x5fffc, 0x1640012e }, 280 { 0x502f4, 0x200003f8 }, 281 { 0x5fffc, 0x1800012f }, 282 { 0x502f8, 0x1e0003f8 }, 283 { 0x5fffc, 0x1a00012f }, 284 { 0x502fc, 0x1c0003f8 }, 285 }; 286 287 static struct mdp_table_entry mdp_downscale_x_table_PT8TO1[] = { 288 { 0x5fffc, 0x0 }, 289 { 0x50280, 0x7fc00000 }, 290 { 0x5fffc, 0xff80000d }, 291 { 0x50284, 0x7ec003f9 }, 292 { 0x5fffc, 0xfec0001c }, 293 { 0x50288, 0x7d4003f3 }, 294 { 0x5fffc, 0xfe40002b }, 295 { 0x5028c, 0x7b8003ed }, 296 { 0x5fffc, 0xfd80003c }, 297 { 0x50290, 0x794003e8 }, 298 { 0x5fffc, 0xfcc0004d }, 299 { 0x50294, 0x76c003e4 }, 300 { 0x5fffc, 0xfc40005f }, 301 { 0x50298, 0x73c003e0 }, 302 { 0x5fffc, 0xfb800071 }, 303 { 0x5029c, 0x708003de }, 304 { 0x5fffc, 0xfac00085 }, 305 { 0x502a0, 0x6d0003db }, 306 { 0x5fffc, 0xfa000098 }, 307 { 0x502a4, 0x698003d9 }, 308 { 0x5fffc, 0xf98000ac }, 309 { 0x502a8, 0x654003d8 }, 310 { 0x5fffc, 0xf8c000c1 }, 311 { 0x502ac, 0x610003d7 }, 312 { 0x5fffc, 0xf84000d5 }, 313 { 0x502b0, 0x5c8003d7 }, 314 { 0x5fffc, 0xf7c000e9 }, 315 { 0x502b4, 0x580003d7 }, 316 { 0x5fffc, 0xf74000fd }, 317 { 0x502b8, 0x534003d8 }, 318 { 0x5fffc, 0xf6c00112 }, 319 { 0x502bc, 0x4e8003d8 }, 320 { 0x5fffc, 0xf6800126 }, 321 { 0x502c0, 0x494003da }, 322 { 0x5fffc, 0xf600013a }, 323 { 0x502c4, 0x448003db }, 324 { 0x5fffc, 0xf600014d }, 325 { 0x502c8, 0x3f4003dd }, 326 { 0x5fffc, 0xf5c00160 }, 327 { 0x502cc, 0x3a4003df }, 328 { 0x5fffc, 0xf5c00172 }, 329 { 0x502d0, 0x354003e1 }, 330 { 0x5fffc, 0xf5c00184 }, 331 { 0x502d4, 0x304003e3 }, 332 { 0x5fffc, 0xf6000195 }, 333 { 0x502d8, 0x2b0003e6 }, 334 { 0x5fffc, 0xf64001a6 }, 335 { 0x502dc, 0x260003e8 }, 336 { 0x5fffc, 0xf6c001b4 }, 337 { 0x502e0, 0x214003eb }, 338 { 0x5fffc, 0xf78001c2 }, 339 { 0x502e4, 0x1c4003ee }, 340 { 0x5fffc, 0xf80001cf }, 341 { 0x502e8, 0x17c003f1 }, 342 { 0x5fffc, 0xf90001db }, 343 { 0x502ec, 0x134003f3 }, 344 { 0x5fffc, 0xfa0001e5 }, 345 { 0x502f0, 0xf0003f6 }, 346 { 0x5fffc, 0xfb4001ee }, 347 { 0x502f4, 0xac003f9 }, 348 { 0x5fffc, 0xfcc001f5 }, 349 { 0x502f8, 0x70003fb }, 350 { 0x5fffc, 0xfe4001fb }, 351 { 0x502fc, 0x34003fe }, 352 }; 353 354 struct mdp_table_entry *mdp_downscale_x_table[MDP_DOWNSCALE_MAX] = { 355 [MDP_DOWNSCALE_PT2TOPT4] = mdp_downscale_x_table_PT2TOPT4, 356 [MDP_DOWNSCALE_PT4TOPT6] = mdp_downscale_x_table_PT4TOPT6, 357 [MDP_DOWNSCALE_PT6TOPT8] = mdp_downscale_x_table_PT6TOPT8, 358 [MDP_DOWNSCALE_PT8TO1] = mdp_downscale_x_table_PT8TO1, 359 }; 360 361 static struct mdp_table_entry mdp_downscale_y_table_PT2TOPT4[] = { 362 { 0x5fffc, 0x740008c }, 363 { 0x50300, 0x33800088 }, 364 { 0x5fffc, 0x800008e }, 365 { 0x50304, 0x33400084 }, 366 { 0x5fffc, 0x8400092 }, 367 { 0x50308, 0x33000080 }, 368 { 0x5fffc, 0x9000094 }, 369 { 0x5030c, 0x3300007b }, 370 { 0x5fffc, 0x9c00098 }, 371 { 0x50310, 0x32400077 }, 372 { 0x5fffc, 0xa40009b }, 373 { 0x50314, 0x32000073 }, 374 { 0x5fffc, 0xb00009d }, 375 { 0x50318, 0x31c0006f }, 376 { 0x5fffc, 0xbc000a0 }, 377 { 0x5031c, 0x3140006b }, 378 { 0x5fffc, 0xc8000a2 }, 379 { 0x50320, 0x31000067 }, 380 { 0x5fffc, 0xd8000a5 }, 381 { 0x50324, 0x30800062 }, 382 { 0x5fffc, 0xe4000a8 }, 383 { 0x50328, 0x2fc0005f }, 384 { 0x5fffc, 0xec000aa }, 385 { 0x5032c, 0x2fc0005b }, 386 { 0x5fffc, 0xf8000ad }, 387 { 0x50330, 0x2f400057 }, 388 { 0x5fffc, 0x108000b0 }, 389 { 0x50334, 0x2e400054 }, 390 { 0x5fffc, 0x114000b2 }, 391 { 0x50338, 0x2e000050 }, 392 { 0x5fffc, 0x124000b4 }, 393 { 0x5033c, 0x2d80004c }, 394 { 0x5fffc, 0x130000b6 }, 395 { 0x50340, 0x2d000049 }, 396 { 0x5fffc, 0x140000b8 }, 397 { 0x50344, 0x2c800045 }, 398 { 0x5fffc, 0x150000b9 }, 399 { 0x50348, 0x2c000042 }, 400 { 0x5fffc, 0x15c000bd }, 401 { 0x5034c, 0x2b40003e }, 402 { 0x5fffc, 0x16c000bf }, 403 { 0x50350, 0x2a80003b }, 404 { 0x5fffc, 0x17c000bf }, 405 { 0x50354, 0x2a000039 }, 406 { 0x5fffc, 0x188000c2 }, 407 { 0x50358, 0x29400036 }, 408 { 0x5fffc, 0x19c000c4 }, 409 { 0x5035c, 0x28800032 }, 410 { 0x5fffc, 0x1ac000c5 }, 411 { 0x50360, 0x2800002f }, 412 { 0x5fffc, 0x1bc000c7 }, 413 { 0x50364, 0x2740002c }, 414 { 0x5fffc, 0x1cc000c8 }, 415 { 0x50368, 0x26c00029 }, 416 { 0x5fffc, 0x1dc000c9 }, 417 { 0x5036c, 0x26000027 }, 418 { 0x5fffc, 0x1ec000cc }, 419 { 0x50370, 0x25000024 }, 420 { 0x5fffc, 0x200000cc }, 421 { 0x50374, 0x24800021 }, 422 { 0x5fffc, 0x210000cd }, 423 { 0x50378, 0x23800020 }, 424 { 0x5fffc, 0x220000ce }, 425 { 0x5037c, 0x2300001d }, 426 }; 427 428 static struct mdp_table_entry mdp_downscale_y_table_PT4TOPT6[] = { 429 { 0x5fffc, 0x740008c }, 430 { 0x50300, 0x33800088 }, 431 { 0x5fffc, 0x800008e }, 432 { 0x50304, 0x33400084 }, 433 { 0x5fffc, 0x8400092 }, 434 { 0x50308, 0x33000080 }, 435 { 0x5fffc, 0x9000094 }, 436 { 0x5030c, 0x3300007b }, 437 { 0x5fffc, 0x9c00098 }, 438 { 0x50310, 0x32400077 }, 439 { 0x5fffc, 0xa40009b }, 440 { 0x50314, 0x32000073 }, 441 { 0x5fffc, 0xb00009d }, 442 { 0x50318, 0x31c0006f }, 443 { 0x5fffc, 0xbc000a0 }, 444 { 0x5031c, 0x3140006b }, 445 { 0x5fffc, 0xc8000a2 }, 446 { 0x50320, 0x31000067 }, 447 { 0x5fffc, 0xd8000a5 }, 448 { 0x50324, 0x30800062 }, 449 { 0x5fffc, 0xe4000a8 }, 450 { 0x50328, 0x2fc0005f }, 451 { 0x5fffc, 0xec000aa }, 452 { 0x5032c, 0x2fc0005b }, 453 { 0x5fffc, 0xf8000ad }, 454 { 0x50330, 0x2f400057 }, 455 { 0x5fffc, 0x108000b0 }, 456 { 0x50334, 0x2e400054 }, 457 { 0x5fffc, 0x114000b2 }, 458 { 0x50338, 0x2e000050 }, 459 { 0x5fffc, 0x124000b4 }, 460 { 0x5033c, 0x2d80004c }, 461 { 0x5fffc, 0x130000b6 }, 462 { 0x50340, 0x2d000049 }, 463 { 0x5fffc, 0x140000b8 }, 464 { 0x50344, 0x2c800045 }, 465 { 0x5fffc, 0x150000b9 }, 466 { 0x50348, 0x2c000042 }, 467 { 0x5fffc, 0x15c000bd }, 468 { 0x5034c, 0x2b40003e }, 469 { 0x5fffc, 0x16c000bf }, 470 { 0x50350, 0x2a80003b }, 471 { 0x5fffc, 0x17c000bf }, 472 { 0x50354, 0x2a000039 }, 473 { 0x5fffc, 0x188000c2 }, 474 { 0x50358, 0x29400036 }, 475 { 0x5fffc, 0x19c000c4 }, 476 { 0x5035c, 0x28800032 }, 477 { 0x5fffc, 0x1ac000c5 }, 478 { 0x50360, 0x2800002f }, 479 { 0x5fffc, 0x1bc000c7 }, 480 { 0x50364, 0x2740002c }, 481 { 0x5fffc, 0x1cc000c8 }, 482 { 0x50368, 0x26c00029 }, 483 { 0x5fffc, 0x1dc000c9 }, 484 { 0x5036c, 0x26000027 }, 485 { 0x5fffc, 0x1ec000cc }, 486 { 0x50370, 0x25000024 }, 487 { 0x5fffc, 0x200000cc }, 488 { 0x50374, 0x24800021 }, 489 { 0x5fffc, 0x210000cd }, 490 { 0x50378, 0x23800020 }, 491 { 0x5fffc, 0x220000ce }, 492 { 0x5037c, 0x2300001d }, 493 }; 494 495 static struct mdp_table_entry mdp_downscale_y_table_PT6TOPT8[] = { 496 { 0x5fffc, 0xfe000070 }, 497 { 0x50300, 0x4bc00068 }, 498 { 0x5fffc, 0xfe000078 }, 499 { 0x50304, 0x4bc00060 }, 500 { 0x5fffc, 0xfe000080 }, 501 { 0x50308, 0x4b800059 }, 502 { 0x5fffc, 0xfe000089 }, 503 { 0x5030c, 0x4b000052 }, 504 { 0x5fffc, 0xfe400091 }, 505 { 0x50310, 0x4a80004b }, 506 { 0x5fffc, 0xfe40009a }, 507 { 0x50314, 0x4a000044 }, 508 { 0x5fffc, 0xfe8000a3 }, 509 { 0x50318, 0x4940003d }, 510 { 0x5fffc, 0xfec000ac }, 511 { 0x5031c, 0x48400037 }, 512 { 0x5fffc, 0xff0000b4 }, 513 { 0x50320, 0x47800031 }, 514 { 0x5fffc, 0xff8000bd }, 515 { 0x50324, 0x4640002b }, 516 { 0x5fffc, 0xc5 }, 517 { 0x50328, 0x45000026 }, 518 { 0x5fffc, 0x8000ce }, 519 { 0x5032c, 0x43800021 }, 520 { 0x5fffc, 0x10000d6 }, 521 { 0x50330, 0x4240001c }, 522 { 0x5fffc, 0x18000df }, 523 { 0x50334, 0x40800018 }, 524 { 0x5fffc, 0x24000e6 }, 525 { 0x50338, 0x3f000014 }, 526 { 0x5fffc, 0x30000ee }, 527 { 0x5033c, 0x3d400010 }, 528 { 0x5fffc, 0x40000f5 }, 529 { 0x50340, 0x3b80000c }, 530 { 0x5fffc, 0x50000fc }, 531 { 0x50344, 0x39800009 }, 532 { 0x5fffc, 0x6000102 }, 533 { 0x50348, 0x37c00006 }, 534 { 0x5fffc, 0x7000109 }, 535 { 0x5034c, 0x35800004 }, 536 { 0x5fffc, 0x840010e }, 537 { 0x50350, 0x33800002 }, 538 { 0x5fffc, 0x9800114 }, 539 { 0x50354, 0x31400000 }, 540 { 0x5fffc, 0xac00119 }, 541 { 0x50358, 0x2f4003fe }, 542 { 0x5fffc, 0xc40011e }, 543 { 0x5035c, 0x2d0003fc }, 544 { 0x5fffc, 0xdc00121 }, 545 { 0x50360, 0x2b0003fb }, 546 { 0x5fffc, 0xf400125 }, 547 { 0x50364, 0x28c003fa }, 548 { 0x5fffc, 0x11000128 }, 549 { 0x50368, 0x268003f9 }, 550 { 0x5fffc, 0x12c0012a }, 551 { 0x5036c, 0x244003f9 }, 552 { 0x5fffc, 0x1480012c }, 553 { 0x50370, 0x224003f8 }, 554 { 0x5fffc, 0x1640012e }, 555 { 0x50374, 0x200003f8 }, 556 { 0x5fffc, 0x1800012f }, 557 { 0x50378, 0x1e0003f8 }, 558 { 0x5fffc, 0x1a00012f }, 559 { 0x5037c, 0x1c0003f8 }, 560 }; 561 562 static struct mdp_table_entry mdp_downscale_y_table_PT8TO1[] = { 563 { 0x5fffc, 0x0 }, 564 { 0x50300, 0x7fc00000 }, 565 { 0x5fffc, 0xff80000d }, 566 { 0x50304, 0x7ec003f9 }, 567 { 0x5fffc, 0xfec0001c }, 568 { 0x50308, 0x7d4003f3 }, 569 { 0x5fffc, 0xfe40002b }, 570 { 0x5030c, 0x7b8003ed }, 571 { 0x5fffc, 0xfd80003c }, 572 { 0x50310, 0x794003e8 }, 573 { 0x5fffc, 0xfcc0004d }, 574 { 0x50314, 0x76c003e4 }, 575 { 0x5fffc, 0xfc40005f }, 576 { 0x50318, 0x73c003e0 }, 577 { 0x5fffc, 0xfb800071 }, 578 { 0x5031c, 0x708003de }, 579 { 0x5fffc, 0xfac00085 }, 580 { 0x50320, 0x6d0003db }, 581 { 0x5fffc, 0xfa000098 }, 582 { 0x50324, 0x698003d9 }, 583 { 0x5fffc, 0xf98000ac }, 584 { 0x50328, 0x654003d8 }, 585 { 0x5fffc, 0xf8c000c1 }, 586 { 0x5032c, 0x610003d7 }, 587 { 0x5fffc, 0xf84000d5 }, 588 { 0x50330, 0x5c8003d7 }, 589 { 0x5fffc, 0xf7c000e9 }, 590 { 0x50334, 0x580003d7 }, 591 { 0x5fffc, 0xf74000fd }, 592 { 0x50338, 0x534003d8 }, 593 { 0x5fffc, 0xf6c00112 }, 594 { 0x5033c, 0x4e8003d8 }, 595 { 0x5fffc, 0xf6800126 }, 596 { 0x50340, 0x494003da }, 597 { 0x5fffc, 0xf600013a }, 598 { 0x50344, 0x448003db }, 599 { 0x5fffc, 0xf600014d }, 600 { 0x50348, 0x3f4003dd }, 601 { 0x5fffc, 0xf5c00160 }, 602 { 0x5034c, 0x3a4003df }, 603 { 0x5fffc, 0xf5c00172 }, 604 { 0x50350, 0x354003e1 }, 605 { 0x5fffc, 0xf5c00184 }, 606 { 0x50354, 0x304003e3 }, 607 { 0x5fffc, 0xf6000195 }, 608 { 0x50358, 0x2b0003e6 }, 609 { 0x5fffc, 0xf64001a6 }, 610 { 0x5035c, 0x260003e8 }, 611 { 0x5fffc, 0xf6c001b4 }, 612 { 0x50360, 0x214003eb }, 613 { 0x5fffc, 0xf78001c2 }, 614 { 0x50364, 0x1c4003ee }, 615 { 0x5fffc, 0xf80001cf }, 616 { 0x50368, 0x17c003f1 }, 617 { 0x5fffc, 0xf90001db }, 618 { 0x5036c, 0x134003f3 }, 619 { 0x5fffc, 0xfa0001e5 }, 620 { 0x50370, 0xf0003f6 }, 621 { 0x5fffc, 0xfb4001ee }, 622 { 0x50374, 0xac003f9 }, 623 { 0x5fffc, 0xfcc001f5 }, 624 { 0x50378, 0x70003fb }, 625 { 0x5fffc, 0xfe4001fb }, 626 { 0x5037c, 0x34003fe }, 627 }; 628 629 struct mdp_table_entry *mdp_downscale_y_table[MDP_DOWNSCALE_MAX] = { 630 [MDP_DOWNSCALE_PT2TOPT4] = mdp_downscale_y_table_PT2TOPT4, 631 [MDP_DOWNSCALE_PT4TOPT6] = mdp_downscale_y_table_PT4TOPT6, 632 [MDP_DOWNSCALE_PT6TOPT8] = mdp_downscale_y_table_PT6TOPT8, 633 [MDP_DOWNSCALE_PT8TO1] = mdp_downscale_y_table_PT8TO1, 634 }; 635 636 struct mdp_table_entry mdp_gaussian_blur_table[] = { 637 /* max variance */ 638 { 0x5fffc, 0x20000080 }, 639 { 0x50280, 0x20000080 }, 640 { 0x5fffc, 0x20000080 }, 641 { 0x50284, 0x20000080 }, 642 { 0x5fffc, 0x20000080 }, 643 { 0x50288, 0x20000080 }, 644 { 0x5fffc, 0x20000080 }, 645 { 0x5028c, 0x20000080 }, 646 { 0x5fffc, 0x20000080 }, 647 { 0x50290, 0x20000080 }, 648 { 0x5fffc, 0x20000080 }, 649 { 0x50294, 0x20000080 }, 650 { 0x5fffc, 0x20000080 }, 651 { 0x50298, 0x20000080 }, 652 { 0x5fffc, 0x20000080 }, 653 { 0x5029c, 0x20000080 }, 654 { 0x5fffc, 0x20000080 }, 655 { 0x502a0, 0x20000080 }, 656 { 0x5fffc, 0x20000080 }, 657 { 0x502a4, 0x20000080 }, 658 { 0x5fffc, 0x20000080 }, 659 { 0x502a8, 0x20000080 }, 660 { 0x5fffc, 0x20000080 }, 661 { 0x502ac, 0x20000080 }, 662 { 0x5fffc, 0x20000080 }, 663 { 0x502b0, 0x20000080 }, 664 { 0x5fffc, 0x20000080 }, 665 { 0x502b4, 0x20000080 }, 666 { 0x5fffc, 0x20000080 }, 667 { 0x502b8, 0x20000080 }, 668 { 0x5fffc, 0x20000080 }, 669 { 0x502bc, 0x20000080 }, 670 { 0x5fffc, 0x20000080 }, 671 { 0x502c0, 0x20000080 }, 672 { 0x5fffc, 0x20000080 }, 673 { 0x502c4, 0x20000080 }, 674 { 0x5fffc, 0x20000080 }, 675 { 0x502c8, 0x20000080 }, 676 { 0x5fffc, 0x20000080 }, 677 { 0x502cc, 0x20000080 }, 678 { 0x5fffc, 0x20000080 }, 679 { 0x502d0, 0x20000080 }, 680 { 0x5fffc, 0x20000080 }, 681 { 0x502d4, 0x20000080 }, 682 { 0x5fffc, 0x20000080 }, 683 { 0x502d8, 0x20000080 }, 684 { 0x5fffc, 0x20000080 }, 685 { 0x502dc, 0x20000080 }, 686 { 0x5fffc, 0x20000080 }, 687 { 0x502e0, 0x20000080 }, 688 { 0x5fffc, 0x20000080 }, 689 { 0x502e4, 0x20000080 }, 690 { 0x5fffc, 0x20000080 }, 691 { 0x502e8, 0x20000080 }, 692 { 0x5fffc, 0x20000080 }, 693 { 0x502ec, 0x20000080 }, 694 { 0x5fffc, 0x20000080 }, 695 { 0x502f0, 0x20000080 }, 696 { 0x5fffc, 0x20000080 }, 697 { 0x502f4, 0x20000080 }, 698 { 0x5fffc, 0x20000080 }, 699 { 0x502f8, 0x20000080 }, 700 { 0x5fffc, 0x20000080 }, 701 { 0x502fc, 0x20000080 }, 702 { 0x5fffc, 0x20000080 }, 703 { 0x50300, 0x20000080 }, 704 { 0x5fffc, 0x20000080 }, 705 { 0x50304, 0x20000080 }, 706 { 0x5fffc, 0x20000080 }, 707 { 0x50308, 0x20000080 }, 708 { 0x5fffc, 0x20000080 }, 709 { 0x5030c, 0x20000080 }, 710 { 0x5fffc, 0x20000080 }, 711 { 0x50310, 0x20000080 }, 712 { 0x5fffc, 0x20000080 }, 713 { 0x50314, 0x20000080 }, 714 { 0x5fffc, 0x20000080 }, 715 { 0x50318, 0x20000080 }, 716 { 0x5fffc, 0x20000080 }, 717 { 0x5031c, 0x20000080 }, 718 { 0x5fffc, 0x20000080 }, 719 { 0x50320, 0x20000080 }, 720 { 0x5fffc, 0x20000080 }, 721 { 0x50324, 0x20000080 }, 722 { 0x5fffc, 0x20000080 }, 723 { 0x50328, 0x20000080 }, 724 { 0x5fffc, 0x20000080 }, 725 { 0x5032c, 0x20000080 }, 726 { 0x5fffc, 0x20000080 }, 727 { 0x50330, 0x20000080 }, 728 { 0x5fffc, 0x20000080 }, 729 { 0x50334, 0x20000080 }, 730 { 0x5fffc, 0x20000080 }, 731 { 0x50338, 0x20000080 }, 732 { 0x5fffc, 0x20000080 }, 733 { 0x5033c, 0x20000080 }, 734 { 0x5fffc, 0x20000080 }, 735 { 0x50340, 0x20000080 }, 736 { 0x5fffc, 0x20000080 }, 737 { 0x50344, 0x20000080 }, 738 { 0x5fffc, 0x20000080 }, 739 { 0x50348, 0x20000080 }, 740 { 0x5fffc, 0x20000080 }, 741 { 0x5034c, 0x20000080 }, 742 { 0x5fffc, 0x20000080 }, 743 { 0x50350, 0x20000080 }, 744 { 0x5fffc, 0x20000080 }, 745 { 0x50354, 0x20000080 }, 746 { 0x5fffc, 0x20000080 }, 747 { 0x50358, 0x20000080 }, 748 { 0x5fffc, 0x20000080 }, 749 { 0x5035c, 0x20000080 }, 750 { 0x5fffc, 0x20000080 }, 751 { 0x50360, 0x20000080 }, 752 { 0x5fffc, 0x20000080 }, 753 { 0x50364, 0x20000080 }, 754 { 0x5fffc, 0x20000080 }, 755 { 0x50368, 0x20000080 }, 756 { 0x5fffc, 0x20000080 }, 757 { 0x5036c, 0x20000080 }, 758 { 0x5fffc, 0x20000080 }, 759 { 0x50370, 0x20000080 }, 760 { 0x5fffc, 0x20000080 }, 761 { 0x50374, 0x20000080 }, 762 { 0x5fffc, 0x20000080 }, 763 { 0x50378, 0x20000080 }, 764 { 0x5fffc, 0x20000080 }, 765 { 0x5037c, 0x20000080 }, 766 }; 767