0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #include "sun8i_vi_scaler.h"
0013
0014 static const u32 lan3coefftab32_left[480] = {
0015 0x40000000, 0x40fe0000, 0x3ffd0100, 0x3efc0100,
0016 0x3efb0100, 0x3dfa0200, 0x3cf90200, 0x3bf80200,
0017 0x39f70200, 0x37f70200, 0x35f70200, 0x33f70200,
0018 0x31f70200, 0x2ef70200, 0x2cf70200, 0x2af70200,
0019 0x27f70200, 0x24f80100, 0x22f80100, 0x1ef90100,
0020 0x1cf90100, 0x19fa0100, 0x17fa0100, 0x14fb0100,
0021 0x11fc0000, 0x0ffc0000, 0x0cfd0000, 0x0afd0000,
0022 0x08fe0000, 0x05ff0000, 0x03ff0000, 0x02000000,
0023
0024 0x3806fc02, 0x3805fc02, 0x3803fd01, 0x3801fe01,
0025 0x3700fe01, 0x35ffff01, 0x35fdff01, 0x34fc0001,
0026 0x34fb0000, 0x33fa0000, 0x31fa0100, 0x2ff90100,
0027 0x2df80200, 0x2bf80200, 0x2af70200, 0x28f70200,
0028 0x27f70200, 0x24f70300, 0x22f70300, 0x1ff70300,
0029 0x1ef70300, 0x1cf70300, 0x1af70300, 0x18f70300,
0030 0x16f80300, 0x13f80300, 0x11f90300, 0x0ef90300,
0031 0x0efa0200, 0x0cfa0200, 0x0afb0200, 0x08fb0200,
0032
0033 0x320bfa02, 0x3309fa02, 0x3208fb02, 0x3206fb02,
0034 0x3205fb02, 0x3104fc02, 0x3102fc01, 0x3001fd01,
0035 0x3000fd01, 0x2ffffd01, 0x2efefe01, 0x2dfdfe01,
0036 0x2bfcff01, 0x29fcff01, 0x28fbff01, 0x27fa0001,
0037 0x26fa0000, 0x24f90000, 0x22f90100, 0x20f90100,
0038 0x1ff80100, 0x1ef80100, 0x1cf80100, 0x1af80200,
0039 0x18f80200, 0x17f80200, 0x15f80200, 0x12f80200,
0040 0x11f90200, 0x0ff90200, 0x0df90200, 0x0cfa0200,
0041
0042 0x2e0efa01, 0x2f0dfa01, 0x2f0bfa01, 0x2e0afa01,
0043 0x2e09fa01, 0x2e07fb01, 0x2d06fb01, 0x2d05fb01,
0044 0x2c04fb01, 0x2b03fc01, 0x2a02fc01, 0x2a01fc01,
0045 0x2800fd01, 0x28fffd01, 0x26fefd01, 0x25fefe01,
0046 0x24fdfe01, 0x23fcfe01, 0x21fcff01, 0x20fbff01,
0047 0x1efbff01, 0x1efbff00, 0x1cfa0000, 0x1bfa0000,
0048 0x19fa0000, 0x18fa0000, 0x17f90000, 0x15f90100,
0049 0x14f90100, 0x12f90100, 0x11f90100, 0x0ff90100,
0050
0051 0x2b10fa00, 0x2b0ffa00, 0x2b0efa00, 0x2b0cfa00,
0052 0x2b0bfa00, 0x2a0afb01, 0x2a09fb01, 0x2908fb01,
0053 0x2807fb01, 0x2806fb01, 0x2805fb01, 0x2604fc01,
0054 0x2503fc01, 0x2502fc01, 0x2401fc01, 0x2301fc01,
0055 0x2100fd01, 0x21fffd01, 0x21fffd01, 0x20fefd01,
0056 0x1dfefe01, 0x1cfdfe01, 0x1cfdfe00, 0x1bfcfe00,
0057 0x19fcff00, 0x19fbff00, 0x17fbff00, 0x16fbff00,
0058 0x15fbff00, 0x14fb0000, 0x13fa0000, 0x11fa0000,
0059
0060 0x2811fcff, 0x2810fcff, 0x280ffbff, 0x280efbff,
0061 0x270dfb00, 0x270cfb00, 0x270bfb00, 0x260afb00,
0062 0x2609fb00, 0x2508fb00, 0x2507fb00, 0x2407fb00,
0063 0x2406fc00, 0x2305fc00, 0x2204fc00, 0x2203fc00,
0064 0x2103fc00, 0x2002fc00, 0x1f01fd00, 0x1e01fd00,
0065 0x1d00fd00, 0x1dfffd00, 0x1cfffd00, 0x1bfefd00,
0066 0x1afefe00, 0x19fefe00, 0x18fdfe00, 0x17fdfe00,
0067 0x16fdfe00, 0x15fcff00, 0x13fcff00, 0x12fcff00,
0068
0069 0x2512fdfe, 0x2511fdff, 0x2410fdff, 0x240ffdff,
0070 0x240efcff, 0x240dfcff, 0x240dfcff, 0x240cfcff,
0071 0x230bfcff, 0x230afc00, 0x2209fc00, 0x2108fc00,
0072 0x2108fc00, 0x2007fc00, 0x2006fc00, 0x2005fc00,
0073 0x1f05fc00, 0x1e04fc00, 0x1e03fc00, 0x1c03fd00,
0074 0x1c02fd00, 0x1b02fd00, 0x1b01fd00, 0x1a00fd00,
0075 0x1900fd00, 0x1800fd00, 0x17fffe00, 0x16fffe00,
0076 0x16fefe00, 0x14fefe00, 0x13fefe00, 0x13fdfe00,
0077
0078 0x2212fffe, 0x2211fefe, 0x2211fefe, 0x2110fefe,
0079 0x210ffeff, 0x220efdff, 0x210dfdff, 0x210dfdff,
0080 0x210cfdff, 0x210bfdff, 0x200afdff, 0x200afdff,
0081 0x1f09fdff, 0x1f08fdff, 0x1d08fd00, 0x1c07fd00,
0082 0x1d06fd00, 0x1b06fd00, 0x1b05fd00, 0x1c04fd00,
0083 0x1b04fd00, 0x1a03fd00, 0x1a03fd00, 0x1902fd00,
0084 0x1802fd00, 0x1801fd00, 0x1701fd00, 0x1600fd00,
0085 0x1400fe00, 0x1400fe00, 0x14fffe00, 0x13fffe00,
0086
0087 0x201200fe, 0x201100fe, 0x1f11fffe, 0x2010fffe,
0088 0x1f0ffffe, 0x1e0ffffe, 0x1f0efeff, 0x1f0dfeff,
0089 0x1f0dfeff, 0x1e0cfeff, 0x1e0bfeff, 0x1d0bfeff,
0090 0x1d0afeff, 0x1d09fdff, 0x1d09fdff, 0x1c08fdff,
0091 0x1c07fdff, 0x1b07fd00, 0x1b06fd00, 0x1a06fd00,
0092 0x1a05fd00, 0x1805fd00, 0x1904fd00, 0x1804fd00,
0093 0x1703fd00, 0x1703fd00, 0x1602fe00, 0x1502fe00,
0094 0x1501fe00, 0x1401fe00, 0x1301fe00, 0x1300fe00,
0095
0096 0x1c1202fe, 0x1c1102fe, 0x1b1102fe, 0x1c1001fe,
0097 0x1b1001fe, 0x1b0f01ff, 0x1b0e00ff, 0x1b0e00ff,
0098 0x1b0d00ff, 0x1a0d00ff, 0x1a0c00ff, 0x1a0cffff,
0099 0x1a0bffff, 0x1a0bffff, 0x1a0affff, 0x180affff,
0100 0x1909ffff, 0x1809ffff, 0x1808ffff, 0x1808feff,
0101 0x1807feff, 0x1707fe00, 0x1606fe00, 0x1506fe00,
0102 0x1605fe00, 0x1505fe00, 0x1504fe00, 0x1304fe00,
0103 0x1304fe00, 0x1303fe00, 0x1203fe00, 0x1203fe00,
0104
0105 0x181104ff, 0x191103ff, 0x191003ff, 0x181003ff,
0106 0x180f03ff, 0x190f02ff, 0x190e02ff, 0x180e02ff,
0107 0x180d02ff, 0x180d01ff, 0x180d01ff, 0x180c01ff,
0108 0x180c01ff, 0x180b00ff, 0x170b00ff, 0x170a00ff,
0109 0x170a00ff, 0x170900ff, 0x160900ff, 0x160900ff,
0110 0x1608ffff, 0x1508ffff, 0x1507ff00, 0x1507ff00,
0111 0x1407ff00, 0x1306ff00, 0x1306ff00, 0x1305ff00,
0112 0x1205ff00, 0x1105ff00, 0x1204ff00, 0x1104ff00,
0113
0114 0x171005ff, 0x171005ff, 0x171004ff, 0x170f04ff,
0115 0x160f04ff, 0x170f03ff, 0x170e03ff, 0x160e03ff,
0116 0x160d03ff, 0x160d02ff, 0x160d02ff, 0x160c02ff,
0117 0x160c02ff, 0x160c02ff, 0x160b01ff, 0x150b01ff,
0118 0x150a01ff, 0x150a01ff, 0x150a01ff, 0x140901ff,
0119 0x14090000, 0x14090000, 0x14080000, 0x13080000,
0120 0x13070000, 0x12070000, 0x12070000, 0x12060000,
0121 0x11060000, 0x11060000, 0x11050000, 0x1105ff00,
0122
0123 0x14100600, 0x15100500, 0x150f0500, 0x150f0500,
0124 0x140f0500, 0x150e0400, 0x140e0400, 0x130e0400,
0125 0x140d0400, 0x150d0300, 0x130d0300, 0x140c0300,
0126 0x140c0300, 0x140c0200, 0x140b0200, 0x130b0200,
0127 0x120b0200, 0x130a0200, 0x130a0200, 0x130a0100,
0128 0x13090100, 0x12090100, 0x11090100, 0x12080100,
0129 0x11080100, 0x10080100, 0x11070100, 0x11070000,
0130 0x10070000, 0x11060000, 0x10060000, 0x10060000,
0131
0132 0x140f0600, 0x140f0600, 0x130f0600, 0x140f0500,
0133 0x140e0500, 0x130e0500, 0x130e0500, 0x140d0400,
0134 0x140d0400, 0x130d0400, 0x120d0400, 0x130c0400,
0135 0x130c0300, 0x130c0300, 0x130b0300, 0x130b0300,
0136 0x110b0300, 0x130a0200, 0x120a0200, 0x120a0200,
0137 0x120a0200, 0x12090200, 0x10090200, 0x11090100,
0138 0x11080100, 0x11080100, 0x10080100, 0x10080100,
0139 0x10070100, 0x10070100, 0x0f070100, 0x10060100,
0140
0141 0x120f0701, 0x130f0601, 0x130e0601, 0x130e0601,
0142 0x120e0601, 0x130e0501, 0x130e0500, 0x130d0500,
0143 0x120d0500, 0x120d0500, 0x130c0400, 0x130c0400,
0144 0x120c0400, 0x110c0400, 0x120b0400, 0x120b0300,
0145 0x120b0300, 0x120b0300, 0x120a0300, 0x110a0300,
0146 0x110a0200, 0x11090200, 0x11090200, 0x10090200,
0147 0x10090200, 0x10080200, 0x10080200, 0x10080100,
0148 0x0f080100, 0x10070100, 0x0f070100, 0x0f070100
0149 };
0150
0151 static const u32 lan3coefftab32_right[480] = {
0152 0x00000000, 0x00000002, 0x0000ff04, 0x0000ff06,
0153 0x0000fe08, 0x0000fd0a, 0x0000fd0c, 0x0000fc0f,
0154 0x0000fc12, 0x0001fb14, 0x0001fa17, 0x0001fa19,
0155 0x0001f91c, 0x0001f91f, 0x0001f822, 0x0001f824,
0156 0x0002f727, 0x0002f72a, 0x0002f72c, 0x0002f72f,
0157 0x0002f731, 0x0002f733, 0x0002f735, 0x0002f737,
0158 0x0002f73a, 0x0002f83b, 0x0002f93c, 0x0002fa3d,
0159 0x0001fb3e, 0x0001fc3f, 0x0001fd40, 0x0000fe40,
0160
0161 0x0002fc06, 0x0002fb08, 0x0002fb0a, 0x0002fa0c,
0162 0x0002fa0e, 0x0003f910, 0x0003f912, 0x0003f814,
0163 0x0003f816, 0x0003f719, 0x0003f71a, 0x0003f71d,
0164 0x0003f71f, 0x0003f721, 0x0003f723, 0x0003f725,
0165 0x0002f727, 0x0002f729, 0x0002f72b, 0x0002f82d,
0166 0x0002f82e, 0x0001f930, 0x0001fa31, 0x0000fa34,
0167 0x0000fb34, 0x0100fc35, 0x01fffd36, 0x01ffff37,
0168 0x01fe0037, 0x01fe0138, 0x01fd0338, 0x02fc0538,
0169
0170 0x0002fa0b, 0x0002fa0c, 0x0002f90e, 0x0002f910,
0171 0x0002f911, 0x0002f813, 0x0002f816, 0x0002f817,
0172 0x0002f818, 0x0002f81a, 0x0001f81c, 0x0001f81e,
0173 0x0001f820, 0x0001f921, 0x0001f923, 0x0000f925,
0174 0x0000fa26, 0x0100fa28, 0x01fffb29, 0x01fffc2a,
0175 0x01fffc2c, 0x01fefd2d, 0x01fefe2e, 0x01fdff2f,
0176 0x01fd0030, 0x01fd0130, 0x01fc0232, 0x02fc0432,
0177 0x02fb0532, 0x02fb0633, 0x02fb0833, 0x02fa0933,
0178
0179 0x0001fa0e, 0x0001f90f, 0x0001f911, 0x0001f913,
0180 0x0001f914, 0x0001f915, 0x0000f918, 0x0000fa18,
0181 0x0000fa1a, 0x0000fa1b, 0x0000fa1d, 0x00fffb1e,
0182 0x01fffb1f, 0x01fffb20, 0x01fffc22, 0x01fefc23,
0183 0x01fefd24, 0x01fefe25, 0x01fdfe27, 0x01fdff28,
0184 0x01fd0029, 0x01fc012a, 0x01fc022b, 0x01fc032b,
0185 0x01fb042d, 0x01fb052d, 0x01fb062e, 0x01fb072e,
0186 0x01fa092e, 0x01fa0a2f, 0x01fa0b2f, 0x01fa0d2f,
0187
0188 0x0000fa11, 0x0000fa12, 0x0000fa13, 0x0000fb14,
0189 0x00fffb16, 0x00fffb16, 0x00fffb17, 0x00fffb19,
0190 0x00fffc1a, 0x00fefc1c, 0x00fefd1c, 0x01fefd1d,
0191 0x01fefe1e, 0x01fdfe20, 0x01fdff21, 0x01fdff22,
0192 0x01fd0023, 0x01fc0124, 0x01fc0124, 0x01fc0225,
0193 0x01fc0326, 0x01fc0427, 0x01fb0528, 0x01fb0629,
0194 0x01fb0729, 0x01fb0829, 0x01fb092a, 0x01fb0a2a,
0195 0x00fa0b2c, 0x00fa0c2b, 0x00fa0e2b, 0x00fa0f2c,
0196
0197 0x00fffc11, 0x00fffc12, 0x00fffc14, 0x00fffc15,
0198 0x00fefd16, 0x00fefd17, 0x00fefd18, 0x00fefe19,
0199 0x00fefe1a, 0x00fdfe1d, 0x00fdff1d, 0x00fdff1e,
0200 0x00fd001d, 0x00fd011e, 0x00fd0120, 0x00fc0221,
0201 0x00fc0321, 0x00fc0323, 0x00fc0423, 0x00fc0523,
0202 0x00fc0624, 0x00fb0725, 0x00fb0726, 0x00fb0827,
0203 0x00fb0926, 0x00fb0a26, 0x00fb0b27, 0x00fb0c27,
0204 0x00fb0d27, 0xfffb0e28, 0xfffb0f29, 0xfffc1028,
0205
0206 0x00fefd13, 0x00fefd13, 0x00fefe14, 0x00fefe15,
0207 0x00fefe17, 0x00feff17, 0x00feff17, 0x00fd0018,
0208 0x00fd001a, 0x00fd001a, 0x00fd011b, 0x00fd021c,
0209 0x00fd021c, 0x00fd031d, 0x00fc031f, 0x00fc041f,
0210 0x00fc051f, 0x00fc0521, 0x00fc0621, 0x00fc0721,
0211 0x00fc0821, 0x00fc0822, 0x00fc0922, 0x00fc0a23,
0212 0xfffc0b24, 0xfffc0c24, 0xfffc0d24, 0xfffc0d25,
0213 0xfffc0e25, 0xfffd0f25, 0xfffd1025, 0xfffd1125,
0214
0215 0x00feff12, 0x00feff14, 0x00feff14, 0x00fe0015,
0216 0x00fe0015, 0x00fd0017, 0x00fd0118, 0x00fd0118,
0217 0x00fd0218, 0x00fd0219, 0x00fd031a, 0x00fd031a,
0218 0x00fd041b, 0x00fd041c, 0x00fd051c, 0x00fd061d,
0219 0x00fd061d, 0x00fd071e, 0x00fd081e, 0xfffd081f,
0220 0xfffd091f, 0xfffd0a20, 0xfffd0a20, 0xfffd0b21,
0221 0xfffd0c21, 0xfffd0d21, 0xfffd0d22, 0xfffd0e23,
0222 0xfffe0f22, 0xfefe1022, 0xfefe1122, 0xfefe1123,
0223
0224 0x00fe0012, 0x00fe0013, 0x00fe0114, 0x00fe0114,
0225 0x00fe0116, 0x00fe0216, 0x00fe0216, 0x00fd0317,
0226 0x00fd0317, 0x00fd0418, 0x00fd0419, 0x00fd0519,
0227 0x00fd051a, 0x00fd061b, 0x00fd061b, 0x00fd071c,
0228 0xfffd071e, 0xfffd081d, 0xfffd091d, 0xfffd091e,
0229 0xfffe0a1d, 0xfffe0b1e, 0xfffe0b1e, 0xfffe0c1e,
0230 0xfffe0d1f, 0xfffe0d1f, 0xfffe0e1f, 0xfeff0f1f,
0231 0xfeff0f20, 0xfeff1020, 0xfeff1120, 0xfe001120,
0232
0233 0x00fe0212, 0x00fe0312, 0x00fe0313, 0x00fe0314,
0234 0x00fe0414, 0x00fe0414, 0x00fe0416, 0x00fe0515,
0235 0x00fe0516, 0x00fe0616, 0x00fe0617, 0x00fe0717,
0236 0xfffe0719, 0xfffe0818, 0xffff0818, 0xffff0919,
0237 0xffff0919, 0xffff0a19, 0xffff0a1a, 0xffff0b1a,
0238 0xffff0b1b, 0xffff0c1a, 0xff000c1b, 0xff000d1b,
0239 0xff000d1b, 0xff000e1b, 0xff000e1c, 0xff010f1c,
0240 0xfe01101c, 0xfe01101d, 0xfe02111c, 0xfe02111c,
0241
0242 0x00ff0411, 0x00ff0411, 0x00ff0412, 0x00ff0512,
0243 0x00ff0513, 0x00ff0513, 0x00ff0613, 0x00ff0614,
0244 0x00ff0714, 0x00ff0715, 0x00ff0715, 0xffff0816,
0245 0xffff0816, 0xff000916, 0xff000917, 0xff000918,
0246 0xff000a17, 0xff000a18, 0xff000b18, 0xff000b18,
0247 0xff010c18, 0xff010c19, 0xff010d18, 0xff010d18,
0248 0xff020d18, 0xff020e19, 0xff020e19, 0xff020f19,
0249 0xff030f19, 0xff031019, 0xff031019, 0xff031119,
0250
0251 0x00ff0511, 0x00ff0511, 0x00000511, 0x00000611,
0252 0x00000612, 0x00000612, 0x00000712, 0x00000713,
0253 0x00000714, 0x00000814, 0x00000814, 0x00000914,
0254 0x00000914, 0xff010914, 0xff010a15, 0xff010a16,
0255 0xff010a17, 0xff010b16, 0xff010b16, 0xff020c16,
0256 0xff020c16, 0xff020c16, 0xff020d16, 0xff020d17,
0257 0xff030d17, 0xff030e17, 0xff030e17, 0xff030f17,
0258 0xff040f17, 0xff040f17, 0xff041017, 0xff051017,
0259
0260 0x00000610, 0x00000610, 0x00000611, 0x00000611,
0261 0x00000711, 0x00000712, 0x00010712, 0x00010812,
0262 0x00010812, 0x00010812, 0x00010913, 0x00010913,
0263 0x00010913, 0x00010a13, 0x00020a13, 0x00020a14,
0264 0x00020b14, 0x00020b14, 0x00020b14, 0x00020c14,
0265 0x00030c14, 0x00030c15, 0x00030d15, 0x00030d15,
0266 0x00040d15, 0x00040e15, 0x00040e15, 0x00040e16,
0267 0x00050f15, 0x00050f15, 0x00050f16, 0x00051015,
0268
0269 0x00000611, 0x00010610, 0x00010710, 0x00010710,
0270 0x00010711, 0x00010811, 0x00010811, 0x00010812,
0271 0x00010812, 0x00010912, 0x00020912, 0x00020912,
0272 0x00020a12, 0x00020a12, 0x00020a13, 0x00020a13,
0273 0x00030b13, 0x00030b13, 0x00030b14, 0x00030c13,
0274 0x00030c13, 0x00040c13, 0x00040d14, 0x00040d14,
0275 0x00040d15, 0x00040d15, 0x00050e14, 0x00050e14,
0276 0x00050e15, 0x00050f14, 0x00060f14, 0x00060f14,
0277
0278 0x0001070f, 0x0001070f, 0x00010710, 0x00010710,
0279 0x00010810, 0x00010810, 0x00020810, 0x00020811,
0280 0x00020911, 0x00020911, 0x00020912, 0x00020912,
0281 0x00020a12, 0x00030a12, 0x00030a12, 0x00030b12,
0282 0x00030b12, 0x00030b12, 0x00040b12, 0x00040c12,
0283 0x00040c13, 0x00040c14, 0x00040c14, 0x00050d13,
0284 0x00050d13, 0x00050d14, 0x00050e13, 0x01050e13,
0285 0x01060e13, 0x01060e13, 0x01060e14, 0x01060f13
0286 };
0287
0288 static const u32 lan2coefftab32[480] = {
0289 0x00004000, 0x000140ff, 0x00033ffe, 0x00043ffd,
0290 0x00063efc, 0xff083dfc, 0x000a3bfb, 0xff0d39fb,
0291 0xff0f37fb, 0xff1136fa, 0xfe1433fb, 0xfe1631fb,
0292 0xfd192ffb, 0xfd1c2cfb, 0xfd1f29fb, 0xfc2127fc,
0293 0xfc2424fc, 0xfc2721fc, 0xfb291ffd, 0xfb2c1cfd,
0294 0xfb2f19fd, 0xfb3116fe, 0xfb3314fe, 0xfa3611ff,
0295 0xfb370fff, 0xfb390dff, 0xfb3b0a00, 0xfc3d08ff,
0296 0xfc3e0600, 0xfd3f0400, 0xfe3f0300, 0xff400100,
0297
0298 0xff053804, 0xff063803, 0xff083801, 0xff093701,
0299 0xff0a3700, 0xff0c3500, 0xff0e34ff, 0xff1033fe,
0300 0xff1232fd, 0xfe1431fd, 0xfe162ffd, 0xfe182dfd,
0301 0xfd1b2cfc, 0xfd1d2afc, 0xfd1f28fc, 0xfd2126fc,
0302 0xfd2323fd, 0xfc2621fd, 0xfc281ffd, 0xfc2a1dfd,
0303 0xfc2c1bfd, 0xfd2d18fe, 0xfd2f16fe, 0xfd3114fe,
0304 0xfd3212ff, 0xfe3310ff, 0xff340eff, 0x00350cff,
0305 0x00360a00, 0x01360900, 0x02370700, 0x03370600,
0306
0307 0xff083207, 0xff093206, 0xff0a3205, 0xff0c3203,
0308 0xff0d3103, 0xff0e3102, 0xfe113001, 0xfe132f00,
0309 0xfe142e00, 0xfe162dff, 0xfe182bff, 0xfe192aff,
0310 0xfe1b29fe, 0xfe1d27fe, 0xfe1f25fe, 0xfd2124fe,
0311 0xfe2222fe, 0xfe2421fd, 0xfe251ffe, 0xfe271dfe,
0312 0xfe291bfe, 0xff2a19fe, 0xff2b18fe, 0xff2d16fe,
0313 0x002e14fe, 0x002f12ff, 0x013010ff, 0x02300fff,
0314 0x03310dff, 0x04310cff, 0x05310a00, 0x06310900,
0315
0316 0xff0a2e09, 0xff0b2e08, 0xff0c2e07, 0xff0e2d06,
0317 0xff0f2d05, 0xff102d04, 0xff122c03, 0xfe142c02,
0318 0xfe152b02, 0xfe172a01, 0xfe182901, 0xfe1a2800,
0319 0xfe1b2700, 0xfe1d2500, 0xff1e24ff, 0xfe2023ff,
0320 0xff2121ff, 0xff2320fe, 0xff241eff, 0x00251dfe,
0321 0x00261bff, 0x00281afe, 0x012818ff, 0x012a16ff,
0322 0x022a15ff, 0x032b13ff, 0x032c12ff, 0x052c10ff,
0323 0x052d0fff, 0x062d0d00, 0x072d0c00, 0x082d0b00,
0324
0325 0xff0c2a0b, 0xff0d2a0a, 0xff0e2a09, 0xff0f2a08,
0326 0xff102a07, 0xff112a06, 0xff132905, 0xff142904,
0327 0xff162803, 0xff172703, 0xff182702, 0xff1a2601,
0328 0xff1b2501, 0xff1c2401, 0xff1e2300, 0xff1f2200,
0329 0x00202000, 0x00211f00, 0x01221d00, 0x01231c00,
0330 0x01251bff, 0x02251aff, 0x032618ff, 0x032717ff,
0331 0x042815ff, 0x052814ff, 0x052913ff, 0x06291100,
0332 0x072a10ff, 0x082a0e00, 0x092a0d00, 0x0a2a0c00,
0333
0334 0xff0d280c, 0xff0e280b, 0xff0f280a, 0xff102809,
0335 0xff112808, 0xff122708, 0xff142706, 0xff152705,
0336 0xff162605, 0xff172604, 0xff192503, 0xff1a2403,
0337 0x001b2302, 0x001c2202, 0x001d2201, 0x001e2101,
0338 0x011f1f01, 0x01211e00, 0x01221d00, 0x02221c00,
0339 0x02231b00, 0x03241900, 0x04241800, 0x04251700,
0340 0x052616ff, 0x06261400, 0x072713ff, 0x08271100,
0341 0x08271100, 0x09271000, 0x0a280e00, 0x0b280d00,
0342
0343 0xff0e260d, 0xff0f260c, 0xff10260b, 0xff11260a,
0344 0xff122609, 0xff132608, 0xff142508, 0xff152507,
0345 0x00152506, 0x00172405, 0x00182305, 0x00192304,
0346 0x001b2203, 0x001c2103, 0x011d2002, 0x011d2002,
0347 0x011f1f01, 0x021f1e01, 0x02201d01, 0x03211c00,
0348 0x03221b00, 0x04221a00, 0x04231801, 0x05241700,
0349 0x06241600, 0x07241500, 0x08251300, 0x09251200,
0350 0x09261100, 0x0a261000, 0x0b260f00, 0x0c260e00,
0351
0352 0xff0e250e, 0xff0f250d, 0xff10250c, 0xff11250b,
0353 0x0011250a, 0x00132409, 0x00142408, 0x00152407,
0354 0x00162307, 0x00172306, 0x00182206, 0x00192205,
0355 0x011a2104, 0x011b2004, 0x011c2003, 0x021c1f03,
0356 0x021e1e02, 0x031e1d02, 0x03201c01, 0x04201b01,
0357 0x04211a01, 0x05221900, 0x05221801, 0x06231700,
0358 0x07231600, 0x07241500, 0x08241400, 0x09241300,
0359 0x0a241200, 0x0b241100, 0x0c241000, 0x0d240f00,
0360
0361 0x000e240e, 0x000f240d, 0x0010240c, 0x0011240b,
0362 0x0013230a, 0x0013230a, 0x00142309, 0x00152308,
0363 0x00162208, 0x00172207, 0x01182106, 0x01192105,
0364 0x011a2005, 0x021b1f04, 0x021b1f04, 0x021d1e03,
0365 0x031d1d03, 0x031e1d02, 0x041e1c02, 0x041f1b02,
0366 0x05201a01, 0x05211901, 0x06211801, 0x07221700,
0367 0x07221601, 0x08231500, 0x09231400, 0x0a231300,
0368 0x0a231300, 0x0b231200, 0x0c231100, 0x0d231000,
0369
0370 0x000f220f, 0x0010220e, 0x0011220d, 0x0012220c,
0371 0x0013220b, 0x0013220b, 0x0015210a, 0x0015210a,
0372 0x01162108, 0x01172008, 0x01182007, 0x02191f06,
0373 0x02191f06, 0x021a1e06, 0x031a1e05, 0x031c1d04,
0374 0x041c1c04, 0x041d1c03, 0x051d1b03, 0x051e1a03,
0375 0x061f1902, 0x061f1902, 0x07201801, 0x08201701,
0376 0x08211601, 0x09211501, 0x0a211500, 0x0b211400,
0377 0x0b221300, 0x0c221200, 0x0d221100, 0x0e221000,
0378
0379 0x0010210f, 0x0011210e, 0x0011210e, 0x0012210d,
0380 0x0013210c, 0x0014200c, 0x0114200b, 0x0115200a,
0381 0x01161f0a, 0x01171f09, 0x02171f08, 0x02181e08,
0382 0x03181e07, 0x031a1d06, 0x031a1d06, 0x041b1c05,
0383 0x041c1c04, 0x051c1b04, 0x051d1a04, 0x061d1a03,
0384 0x071d1903, 0x071e1803, 0x081e1802, 0x081f1702,
0385 0x091f1602, 0x0a201501, 0x0b1f1501, 0x0b201401,
0386 0x0c211300, 0x0d211200, 0x0e201200, 0x0e211100,
0387
0388 0x00102010, 0x0011200f, 0x0012200e, 0x0013200d,
0389 0x0013200d, 0x01141f0c, 0x01151f0b, 0x01151f0b,
0390 0x01161f0a, 0x02171e09, 0x02171e09, 0x03181d08,
0391 0x03191d07, 0x03191d07, 0x041a1c06, 0x041b1c05,
0392 0x051b1b05, 0x051c1b04, 0x061c1a04, 0x071d1903,
0393 0x071d1903, 0x081d1803, 0x081e1703, 0x091e1702,
0394 0x0a1f1601, 0x0a1f1502, 0x0b1f1501, 0x0c1f1401,
0395 0x0d201300, 0x0d201300, 0x0e201200, 0x0f201100,
0396
0397 0x00102010, 0x0011200f, 0x00121f0f, 0x00131f0e,
0398 0x00141f0d, 0x01141f0c, 0x01141f0c, 0x01151e0c,
0399 0x02161e0a, 0x02171e09, 0x03171d09, 0x03181d08,
0400 0x03181d08, 0x04191c07, 0x041a1c06, 0x051a1b06,
0401 0x051b1b05, 0x061b1a05, 0x061c1a04, 0x071c1904,
0402 0x081c1903, 0x081d1803, 0x091d1703, 0x091e1702,
0403 0x0a1e1602, 0x0b1e1502, 0x0c1e1501, 0x0c1f1401,
0404 0x0d1f1400, 0x0e1f1300, 0x0e1f1201, 0x0f1f1200,
0405
0406 0x00111e11, 0x00121e10, 0x00131e0f, 0x00131e0f,
0407 0x01131e0e, 0x01141d0e, 0x02151d0c, 0x02151d0c,
0408 0x02161d0b, 0x03161c0b, 0x03171c0a, 0x04171c09,
0409 0x04181b09, 0x05181b08, 0x05191b07, 0x06191a07,
0410 0x061a1a06, 0x071a1906, 0x071b1905, 0x081b1805,
0411 0x091b1804, 0x091c1704, 0x0a1c1703, 0x0a1c1604,
0412 0x0b1d1602, 0x0c1d1502, 0x0c1d1502, 0x0d1d1402,
0413 0x0e1d1401, 0x0e1e1301, 0x0f1e1300, 0x101e1200,
0414
0415 0x00111e11, 0x00121e10, 0x00131d10, 0x01131d0f,
0416 0x01141d0e, 0x01141d0e, 0x02151c0d, 0x02151c0d,
0417 0x03161c0b, 0x03161c0b, 0x04171b0a, 0x04171b0a,
0418 0x05171b09, 0x05181a09, 0x06181a08, 0x06191a07,
0419 0x07191907, 0x071a1906, 0x081a1806, 0x081a1806,
0420 0x091a1805, 0x0a1b1704, 0x0a1b1704, 0x0b1c1603,
0421 0x0b1c1603, 0x0c1c1503, 0x0d1c1502, 0x0d1d1402,
0422 0x0e1d1401, 0x0f1d1301, 0x0f1d1301, 0x101e1200,
0423 };
0424
0425 static const u32 bicubic8coefftab32_left[480] = {
0426 0x40000000, 0x40ff0000, 0x3ffe0000, 0x3efe0000,
0427 0x3dfd0000, 0x3cfc0000, 0x3bfc0000, 0x39fc0000,
0428 0x36fc0000, 0x35fb0000, 0x33fb0000, 0x31fb0000,
0429 0x2ffb0000, 0x2cfb0000, 0x29fc0000, 0x27fc0000,
0430 0x24fc0000, 0x21fc0000, 0x1efd0000, 0x1cfd0000,
0431 0x19fd0000, 0x16fe0000, 0x14fe0000, 0x11fe0000,
0432 0x0dff0000, 0x0cff0000, 0x0aff0000, 0x08ff0000,
0433 0x05000000, 0x03000000, 0x02000000, 0x01000000,
0434
0435 0x3904ff00, 0x3903ff00, 0x3902ff00, 0x38010000,
0436 0x37000000, 0x36ff0000, 0x35ff0000, 0x34fe0000,
0437 0x32fe0000, 0x31fd0000, 0x30fd0000, 0x2efc0000,
0438 0x2cfc0000, 0x2afc0000, 0x28fc0000, 0x26fc0000,
0439 0x24fc0000, 0x22fc0000, 0x20fc0000, 0x1efc0000,
0440 0x1cfc0000, 0x19fc0000, 0x17fc0000, 0x15fd0000,
0441 0x12fd0000, 0x11fd0000, 0x0ffd0000, 0x0dfe0000,
0442 0x0bfe0000, 0x09fe0000, 0x08fe0000, 0x06ff0000,
0443
0444 0x3209fe00, 0x3407fe00, 0x3306fe00, 0x3305fe00,
0445 0x3204fe00, 0x3102ff00, 0x3102ff00, 0x3001ff00,
0446 0x2f00ff00, 0x2effff00, 0x2cff0000, 0x2bfe0000,
0447 0x29fe0000, 0x28fe0000, 0x26fd0000, 0x24fd0000,
0448 0x23fd0000, 0x21fd0000, 0x20fc0000, 0x1efc0000,
0449 0x1dfc0000, 0x1bfc0000, 0x19fc0000, 0x17fc0000,
0450 0x16fc0000, 0x14fc0000, 0x12fc0000, 0x10fd0000,
0451 0x0ffd0000, 0x0dfd0000, 0x0cfd0000, 0x0afd0000,
0452
0453 0x2e0cfd00, 0x2e0bfd00, 0x2e09fd00, 0x2e08fd00,
0454 0x2e07fd00, 0x2c06fe00, 0x2c05fe00, 0x2b04fe00,
0455 0x2b03fe00, 0x2a02fe00, 0x2901fe00, 0x2701ff00,
0456 0x2700ff00, 0x26ffff00, 0x24ffff00, 0x23ffff00,
0457 0x22feff00, 0x20fe0000, 0x1ffe0000, 0x1efd0000,
0458 0x1dfd0000, 0x1bfd0000, 0x1afd0000, 0x19fd0000,
0459 0x17fd0000, 0x15fd0000, 0x13fd0000, 0x12fd0000,
0460 0x11fd0000, 0x10fd0000, 0x0ffd0000, 0x0cfd0000,
0461
0462 0x2a0efd00, 0x2a0dfd00, 0x2a0cfd00, 0x290bfd00,
0463 0x290afd00, 0x2909fd00, 0x2908fd00, 0x2807fd00,
0464 0x2706fd00, 0x2705fd00, 0x2604fe00, 0x2603fe00,
0465 0x2502fe00, 0x2402fe00, 0x2401fe00, 0x2200fe00,
0466 0x2200fe00, 0x2000ff00, 0x1fffff00, 0x1effff00,
0467 0x1dfeff00, 0x1cfeff00, 0x1afeff00, 0x19feff00,
0468 0x17fe0000, 0x16fd0000, 0x15fd0000, 0x14fd0000,
0469 0x12fd0000, 0x11fd0000, 0x10fd0000, 0x0ffd0000,
0470
0471 0x2610fd00, 0x260ffd00, 0x260efd00, 0x260dfd00,
0472 0x260cfd00, 0x260bfd00, 0x260afd00, 0x2609fd00,
0473 0x2508fd00, 0x2507fd00, 0x2406fd00, 0x2406fd00,
0474 0x2305fd00, 0x2304fd00, 0x2203fe00, 0x2103fe00,
0475 0x2002fe00, 0x1f01fe00, 0x1e01fe00, 0x1e00fe00,
0476 0x1c00fe00, 0x1b00fe00, 0x1afffe00, 0x19ffff00,
0477 0x18ffff00, 0x17feff00, 0x16feff00, 0x15feff00,
0478 0x14feff00, 0x13feff00, 0x11feff00, 0x10fd0000,
0479
0480 0x2411feff, 0x2410feff, 0x240ffeff, 0x230efeff,
0481 0x240dfeff, 0x240cfeff, 0x230cfd00, 0x230bfd00,
0482 0x230afd00, 0x2309fd00, 0x2208fd00, 0x2108fd00,
0483 0x2007fd00, 0x2106fd00, 0x2005fd00, 0x1f05fd00,
0484 0x1f04fd00, 0x1e03fd00, 0x1d03fe00, 0x1c02fe00,
0485 0x1b02fe00, 0x1a01fe00, 0x1a01fe00, 0x1900fe00,
0486 0x1800fe00, 0x1700fe00, 0x16fffe00, 0x15fffe00,
0487 0x13ffff00, 0x12ffff00, 0x12feff00, 0x11feff00,
0488
0489 0x2212fffe, 0x2211fffe, 0x2210ffff, 0x220ffeff,
0490 0x220efeff, 0x210efeff, 0x210dfeff, 0x210cfeff,
0491 0x210bfeff, 0x200bfeff, 0x200afeff, 0x1f09feff,
0492 0x1f08feff, 0x1d08fe00, 0x1e07fd00, 0x1e06fd00,
0493 0x1d06fd00, 0x1c05fd00, 0x1b04fe00, 0x1a04fe00,
0494 0x1a03fe00, 0x1903fe00, 0x1802fe00, 0x1802fe00,
0495 0x1701fe00, 0x1601fe00, 0x1501fe00, 0x1500fe00,
0496 0x1400fe00, 0x1400fe00, 0x13fffe00, 0x12fffe00,
0497
0498 0x201200fe, 0x201100fe, 0x1f1100fe, 0x2010fffe,
0499 0x200ffffe, 0x1f0ffffe, 0x1f0efffe, 0x1e0dffff,
0500 0x1f0cfeff, 0x1e0cfeff, 0x1e0bfeff, 0x1e0afeff,
0501 0x1d0afeff, 0x1d09feff, 0x1c08feff, 0x1b08feff,
0502 0x1b07feff, 0x1a07feff, 0x1a06feff, 0x1a05feff,
0503 0x1805fe00, 0x1904fe00, 0x1704fe00, 0x1703fe00,
0504 0x1603fe00, 0x1602fe00, 0x1402fe00, 0x1402fe00,
0505 0x1401fe00, 0x1301fe00, 0x1201fe00, 0x1200fe00,
0506
0507 0x1c1202fe, 0x1c1102fe, 0x1b1102fe, 0x1c1001fe,
0508 0x1b1001fe, 0x1c0f01fe, 0x1b0f00fe, 0x1b0e00fe,
0509 0x1b0e00fe, 0x1b0d00fe, 0x1b0c00fe, 0x1a0cfffe,
0510 0x1a0bfffe, 0x1a0bfffe, 0x190afffe, 0x190afffe,
0511 0x1909fffe, 0x1709ffff, 0x1808ffff, 0x1708feff,
0512 0x1707feff, 0x1707feff, 0x1606feff, 0x1506feff,
0513 0x1505feff, 0x1505feff, 0x1404feff, 0x1404feff,
0514 0x1404feff, 0x1303feff, 0x1203feff, 0x1202feff,
0515
0516 0x191104fe, 0x191104fe, 0x191003fe, 0x191003fe,
0517 0x171003fe, 0x180f03fe, 0x180f02fe, 0x180e02fe,
0518 0x180e02fe, 0x180d01fe, 0x180d01fe, 0x180d01fe,
0519 0x170c01fe, 0x160c01fe, 0x170b00fe, 0x170b00fe,
0520 0x160a00fe, 0x160a00fe, 0x160a00fe, 0x150900fe,
0521 0x1509fffe, 0x1508fffe, 0x1508fffe, 0x1408fffe,
0522 0x1407fffe, 0x1307ffff, 0x1306ffff, 0x1206ffff,
0523 0x1206ffff, 0x1205ffff, 0x1205ffff, 0x1104feff,
0524
0525 0x161006ff, 0x161005ff, 0x161005ff, 0x160f05ff,
0526 0x160f04ff, 0x150f04ff, 0x150e04ff, 0x150e04ff,
0527 0x150e03ff, 0x150d03ff, 0x150d03ff, 0x150d02ff,
0528 0x140c02ff, 0x150c02fe, 0x150c02fe, 0x150b02fe,
0529 0x140b01fe, 0x140b01fe, 0x140a01fe, 0x140a01fe,
0530 0x140a01fe, 0x130900fe, 0x130900fe, 0x130900fe,
0531 0x130800fe, 0x120800fe, 0x120800fe, 0x120700fe,
0532 0x120700fe, 0x1107fffe, 0x1106fffe, 0x1106fffe,
0533
0534 0x140f0700, 0x140f0600, 0x140f0600, 0x140f0600,
0535 0x140e0600, 0x130e0500, 0x140e05ff, 0x130e05ff,
0536 0x140d05ff, 0x130d04ff, 0x130d04ff, 0x120d04ff,
0537 0x130c04ff, 0x130c03ff, 0x130c03ff, 0x120c03ff,
0538 0x120b03ff, 0x120b02ff, 0x120b02ff, 0x120a02ff,
0539 0x120a02ff, 0x110a02ff, 0x110a01ff, 0x120901ff,
0540 0x100901ff, 0x100901ff, 0x110801ff, 0x110801ff,
0541 0x100800ff, 0x100800ff, 0x100700ff, 0x100700fe,
0542
0543 0x120f0701, 0x120e0701, 0x120e0701, 0x120e0701,
0544 0x120e0600, 0x110e0600, 0x120d0600, 0x120d0600,
0545 0x120d0500, 0x120d0500, 0x110d0500, 0x110c0500,
0546 0x110c0500, 0x110c0400, 0x110c0400, 0x110b04ff,
0547 0x110b04ff, 0x110b04ff, 0x110b03ff, 0x110b03ff,
0548 0x110a03ff, 0x110a03ff, 0x100a03ff, 0x110a02ff,
0549 0x100902ff, 0x100902ff, 0x100902ff, 0x0f0902ff,
0550 0x0e0902ff, 0x100801ff, 0x0f0801ff, 0x0f0801ff,
0551
0552 0x100e0802, 0x100e0802, 0x110e0702, 0x110d0701,
0553 0x110d0701, 0x100d0701, 0x100d0701, 0x110d0601,
0554 0x110d0601, 0x110c0601, 0x110c0601, 0x100c0600,
0555 0x100c0500, 0x100c0500, 0x100c0500, 0x100b0500,
0556 0x100b0500, 0x100b0400, 0x100b0400, 0x0f0b0400,
0557 0x100a0400, 0x0f0a0400, 0x0f0a0400, 0x0f0a0300,
0558 0x0f0a03ff, 0x0f0903ff, 0x0f0903ff, 0x0f0903ff,
0559 0x0f0903ff, 0x0f0902ff, 0x0f0902ff, 0x0f0802ff
0560 };
0561
0562 static const u32 bicubic8coefftab32_right[480] = {
0563 0x00000000, 0x00000001, 0x00000003, 0x00000004,
0564 0x00000006, 0x0000ff09, 0x0000ff0a, 0x0000ff0c,
0565 0x0000ff0f, 0x0000fe12, 0x0000fe14, 0x0000fe16,
0566 0x0000fd19, 0x0000fd1c, 0x0000fd1e, 0x0000fc21,
0567 0x0000fc24, 0x0000fc27, 0x0000fc29, 0x0000fb2c,
0568 0x0000fb2f, 0x0000fb31, 0x0000fb33, 0x0000fb36,
0569 0x0000fc38, 0x0000fc39, 0x0000fc3b, 0x0000fc3d,
0570 0x0000fd3e, 0x0000fe3f, 0x0000fe40, 0x0000ff40,
0571
0572 0x0000ff05, 0x0000ff06, 0x0000fe08, 0x0000fe09,
0573 0x0000fe0b, 0x0000fe0d, 0x0000fd0f, 0x0000fd11,
0574 0x0000fd13, 0x0000fd15, 0x0000fc17, 0x0000fc1a,
0575 0x0000fc1c, 0x0000fc1e, 0x0000fc20, 0x0000fc22,
0576 0x0000fc24, 0x0000fc26, 0x0000fc28, 0x0000fc2a,
0577 0x0000fc2c, 0x0000fc2f, 0x0000fd30, 0x0000fd31,
0578 0x0000fe33, 0x0000fe34, 0x0000ff35, 0x0000ff36,
0579 0x00000037, 0x00000138, 0x00ff0239, 0x00ff0339,
0580
0581 0x0000fe09, 0x0000fd0a, 0x0000fd0c, 0x0000fd0d,
0582 0x0000fd0f, 0x0000fd11, 0x0000fc12, 0x0000fc14,
0583 0x0000fc16, 0x0000fc18, 0x0000fc19, 0x0000fc1b,
0584 0x0000fc1d, 0x0000fc1e, 0x0000fc21, 0x0000fd22,
0585 0x0000fd23, 0x0000fd25, 0x0000fd27, 0x0000fe28,
0586 0x0000fe29, 0x0000fe2b, 0x0000ff2c, 0x00ffff2f,
0587 0x00ff002f, 0x00ff0130, 0x00ff0231, 0x00ff0232,
0588 0x00fe0432, 0x00fe0533, 0x00fe0633, 0x00fe0734,
0589
0590 0x0000fd0c, 0x0000fd0d, 0x0000fd0f, 0x0000fd10,
0591 0x0000fd11, 0x0000fd13, 0x0000fd14, 0x0000fd16,
0592 0x0000fd17, 0x0000fd19, 0x0000fd1b, 0x0000fd1c,
0593 0x0000fd1d, 0x0000fd1f, 0x0000fe20, 0x0000fe21,
0594 0x00fffe24, 0x00ffff24, 0x00ffff25, 0x00ffff27,
0595 0x00ff0027, 0x00ff0128, 0x00fe012a, 0x00fe022a,
0596 0x00fe032b, 0x00fe042c, 0x00fe052d, 0x00fe062d,
0597 0x00fd072e, 0x00fd082e, 0x00fd092e, 0x00fd0b2f,
0598
0599 0x0000fd0e, 0x0000fd0f, 0x0000fd10, 0x0000fd12,
0600 0x0000fd13, 0x0000fd14, 0x0000fd15, 0x0000fd17,
0601 0x0000fe18, 0x00fffe1a, 0x00fffe1b, 0x00fffe1c,
0602 0x00fffe1e, 0x00ffff1e, 0x00ffff1f, 0x00ff0021,
0603 0x00fe0022, 0x00fe0023, 0x00fe0124, 0x00fe0224,
0604 0x00fe0226, 0x00fe0326, 0x00fe0427, 0x00fd0528,
0605 0x00fd0628, 0x00fd0729, 0x00fd0829, 0x00fd0929,
0606 0x00fd0a2a, 0x00fd0b2a, 0x00fd0c2a, 0x00fd0d2a,
0607
0608 0x0000fd10, 0x0000fd11, 0x00fffe12, 0x00fffe13,
0609 0x00fffe14, 0x00fffe15, 0x00fffe16, 0x00fffe17,
0610 0x00ffff18, 0x00ffff19, 0x00feff1c, 0x00fe001b,
0611 0x00fe001d, 0x00fe001e, 0x00fe011e, 0x00fe011f,
0612 0x00fe0220, 0x00fe0321, 0x00fe0322, 0x00fd0423,
0613 0x00fd0524, 0x00fd0624, 0x00fd0626, 0x00fd0725,
0614 0x00fd0825, 0x00fd0926, 0x00fd0a26, 0x00fd0b26,
0615 0x00fd0c26, 0x00fd0d26, 0x00fd0e27, 0x00fd0f27,
0616
0617 0x00fffe11, 0x00fffe12, 0x00fffe13, 0x00ffff14,
0618 0x00ffff14, 0x00feff16, 0x00feff17, 0x00fe0017,
0619 0x00fe0018, 0x00fe0019, 0x00fe011a, 0x00fe011b,
0620 0x00fe021c, 0x00fe021c, 0x00fe031d, 0x00fd031f,
0621 0x00fd041f, 0x00fd0520, 0x00fd0520, 0x00fd0621,
0622 0x00fd0721, 0x00fd0822, 0x00fd0822, 0x00fd0923,
0623 0x00fd0a23, 0x00fd0b23, 0x00fd0b25, 0x00fe0c24,
0624 0x00fe0d24, 0x00fe0e24, 0x00fe0f24, 0x00fe1024,
0625
0626 0x00feff12, 0x00feff13, 0x00feff13, 0x00fe0014,
0627 0x00fe0015, 0x00fe0016, 0x00fe0116, 0x00fe0117,
0628 0x00fe0118, 0x00fe0218, 0x00fe0219, 0x00fe031a,
0629 0x00fe031b, 0x00fe041b, 0x00fd041d, 0x00fd051d,
0630 0x00fd061d, 0x00fd061f, 0x00fe071e, 0x00fe081e,
0631 0x00fe081f, 0x00fe091f, 0x00fe0a20, 0x00fe0a20,
0632 0x00fe0b21, 0x00fe0c21, 0x00fe0d21, 0x00fe0d22,
0633 0x00fe0e22, 0x00fe0f21, 0x00ff1021, 0x00ff1022,
0634
0635 0x00fe0012, 0x00fe0013, 0x00fe0113, 0x00fe0114,
0636 0x00fe0115, 0x00fe0215, 0x00fe0216, 0x00fe0217,
0637 0x00fe0317, 0x00fe0318, 0x00fe0418, 0x00fe0419,
0638 0x00fe0519, 0x00fe051a, 0x00fe061b, 0x00fe071b,
0639 0x00fe071c, 0x00fe081c, 0x00fe081d, 0x00fe091d,
0640 0x00fe0a1d, 0x00fe0a1d, 0x00fe0b1e, 0x00fe0c1e,
0641 0x00ff0c1e, 0x00ff0d1e, 0x00ff0e1f, 0x00ff0e1f,
0642 0x00ff0f1f, 0x00ff0f20, 0x0000101f, 0x0000111f,
0643
0644 0x00fe0212, 0x00fe0312, 0x00fe0313, 0x00fe0314,
0645 0x00fe0414, 0x00fe0414, 0x00fe0515, 0x00fe0516,
0646 0x00fe0516, 0x00fe0616, 0x00fe0617, 0x00fe0718,
0647 0x00fe0719, 0x00fe0818, 0x00ff0819, 0x00ff0918,
0648 0x00ff0919, 0x00ff0a19, 0x00ff0a19, 0x00ff0b1a,
0649 0x00ff0b1b, 0x00ff0c1a, 0x00000c1b, 0x00000d1b,
0650 0x00000d1c, 0x00000e1b, 0x00000e1d, 0x00010f1b,
0651 0x00010f1b, 0x0001101c, 0x0001101d, 0x0002111c,
0652
0653 0x00fe0412, 0x00fe0412, 0x00ff0512, 0x00ff0512,
0654 0x00ff0613, 0x00ff0613, 0x00ff0614, 0x00ff0714,
0655 0x00ff0714, 0x00ff0815, 0x00ff0815, 0x00ff0815,
0656 0x00ff0916, 0x00000916, 0x00000a16, 0x00000a16,
0657 0x00000a18, 0x00000b17, 0x00000b17, 0x00010c17,
0658 0x00010c18, 0x00010d18, 0x00010d18, 0x00010d19,
0659 0x00020e18, 0x00020e18, 0x00020f18, 0x00030f18,
0660 0x00030f18, 0x00031018, 0x00031018, 0x00041119,
0661
0662 0x00ff0610, 0x00ff0611, 0x00ff0611, 0x00ff0711,
0663 0x00000711, 0x00000712, 0x00000812, 0x00000812,
0664 0x00000813, 0x00000913, 0x00000913, 0x00000914,
0665 0x00010a14, 0x00010a14, 0x00010a14, 0x00010b14,
0666 0x00010b16, 0x00020b15, 0x00020c15, 0x00020c15,
0667 0x00020c15, 0x00020d17, 0x00030d16, 0x00030d16,
0668 0x00030e16, 0x00040e16, 0x00040e16, 0x00040f16,
0669 0x00040f16, 0x00050f17, 0x00051017, 0x00051017,
0670
0671 0x0000070f, 0x00000710, 0x00000710, 0x00000710,
0672 0x00000810, 0x00010811, 0x00010811, 0x00010911,
0673 0x00010911, 0x00010913, 0x00010913, 0x00020a12,
0674 0x00020a12, 0x00020a13, 0x00020b12, 0x00020b13,
0675 0x00030b13, 0x00030c13, 0x00030c13, 0x00030c14,
0676 0x00040c13, 0x00040d13, 0x00040d14, 0x00040d14,
0677 0x00050e14, 0x00050e14, 0x00050e14, 0x00050e14,
0678 0x00060f14, 0x00060f14, 0x00060f15, 0x00061015,
0679
0680 0x0001070f, 0x0001080f, 0x0001080f, 0x0001080f,
0681 0x00010811, 0x00020910, 0x00020910, 0x00020910,
0682 0x00020911, 0x00020a10, 0x00030a10, 0x00030a11,
0683 0x00030a11, 0x00030b11, 0x00030b11, 0x00040b12,
0684 0x00040b12, 0x00040c11, 0x00040c12, 0x00040c12,
0685 0x00050c12, 0x00050c12, 0x00050d12, 0x00050d12,
0686 0x00060d13, 0x00060d13, 0x00060e12, 0x00060e13,
0687 0x00070e13, 0x00070e13, 0x00070f13, 0x00070f13,
0688
0689 0x0002080e, 0x0002080e, 0x0002080e, 0x00020810,
0690 0x0002090f, 0x0003090f, 0x0003090f, 0x0003090f,
0691 0x0003090f, 0x00030a0f, 0x00030a0f, 0x00040a10,
0692 0x00040a11, 0x00040b10, 0x00040b10, 0x00040b11,
0693 0x00050b10, 0x00050b11, 0x00050c10, 0x00050c11,
0694 0x00050c11, 0x00060c11, 0x00060c11, 0x00060d11,
0695 0x00060d12, 0x00070d12, 0x00070d12, 0x00070e11,
0696 0x00070e11, 0x00070e12, 0x00080e11, 0x00080e12
0697 };
0698
0699 static const u32 bicubic4coefftab32[480] = {
0700 0x00004000, 0x000140ff, 0x00033ffe, 0x00043ffd,
0701 0x00063dfd, 0xff083dfc, 0xff0a3bfc, 0xff0c39fc,
0702 0xff0e37fc, 0xfe1136fb, 0xfe1433fb, 0xfe1631fb,
0703 0xfd192ffb, 0xfd1c2cfb, 0xfd1e29fc, 0xfc2127fc,
0704 0xfc2424fc, 0xfc2721fc, 0xfc291efd, 0xfb2c1cfd,
0705 0xfb2f19fd, 0xfb3116fe, 0xfb3314fe, 0xfb3611fe,
0706 0xfc370eff, 0xfc390cff, 0xfc3b0aff, 0xfc3d08ff,
0707 0xfd3d0600, 0xfd3f0400, 0xfe3f0300, 0xff400100,
0708
0709 0xfe053904, 0xfe063903, 0xfe083901, 0xfe0a3800,
0710 0xfd0b3800, 0xfe0d36ff, 0xfd0f35ff, 0xfd1134fe,
0711 0xfd1332fe, 0xfd1531fd, 0xfc1730fd, 0xfc1a2efc,
0712 0xfc1c2cfc, 0xfc1e2afc, 0xfc2028fc, 0xfc2226fc,
0713 0xfc2424fc, 0xfc2622fc, 0xfc2820fc, 0xfc2a1efc,
0714 0xfc2c1cfc, 0xfc2e1afc, 0xfd3017fc, 0xfd3115fd,
0715 0xfe3213fd, 0xfe3411fd, 0xff350ffd, 0xff360dfe,
0716 0x00370bfe, 0x013809fe, 0x023808fe, 0x033806ff,
0717
0718 0xfd093208, 0xfd0a3207, 0xfd0c3205, 0xfd0d3204,
0719 0xfc0f3203, 0xfc113102, 0xfc123002, 0xfc143000,
0720 0xfc152f00, 0xfc172d00, 0xfc192cff, 0xfc1b2bfe,
0721 0xfc1d29fe, 0xfc1e28fe, 0xfc2027fd, 0xfd2125fd,
0722 0xfd2323fd, 0xfd2521fd, 0xfd2720fc, 0xfe281efc,
0723 0xfe291dfc, 0xfe2b1bfc, 0xff2c19fc, 0x002d17fc,
0724 0x002e16fc, 0x012f14fc, 0x022f12fd, 0x023110fd,
0725 0x03310ffd, 0x05310dfd, 0x06320bfd, 0x07320afd,
0726
0727 0xfc0c2d0b, 0xfc0d2d0a, 0xfc0e2d09, 0xfc102d07,
0728 0xfc112c07, 0xfc132c05, 0xfc142c04, 0xfc162b03,
0729 0xfc172a03, 0xfc192a01, 0xfc1a2901, 0xfd1b2800,
0730 0xfd1c2700, 0xfd1e2500, 0xfe1f24ff, 0xfe2023ff,
0731 0xfe2222fe, 0xff2320fe, 0xff241ffe, 0x00251efd,
0732 0x00271cfd, 0x01271bfd, 0x01281afd, 0x022918fd,
0733 0x032a16fd, 0x032b15fd, 0x042b14fd, 0x052c12fd,
0734 0x072c10fd, 0x082c0ffd, 0x092c0efd, 0x0a2c0dfd,
0735
0736 0xfd0d290d, 0xfd0e290c, 0xfd0f290b, 0xfd11280a,
0737 0xfd122809, 0xfd132808, 0xfd142807, 0xfd162706,
0738 0xfd172705, 0xfd192604, 0xfe1a2503, 0xfe1b2502,
0739 0xfe1c2402, 0xfe1d2302, 0xff1e2201, 0xff1f2101,
0740 0x00202000, 0x00211f00, 0x01221eff, 0x02221dff,
0741 0x02241cfe, 0x03241bfe, 0x042519fe, 0x042618fe,
0742 0x052617fe, 0x062716fd, 0x072714fe, 0x082713fe,
0743 0x092812fd, 0x0a2811fd, 0x0b2810fd, 0x0c280ffd,
0744
0745 0xfd0f250f, 0xfd10250e, 0xfd11250d, 0xfd12250c,
0746 0xfd13250b, 0xfe13250a, 0xfe152409, 0xfe162408,
0747 0xfe172308, 0xff182306, 0xff192305, 0xff1a2205,
0748 0x001b2104, 0x001c2103, 0x001d2003, 0x011e1f02,
0749 0x011f1f01, 0x021f1e01, 0x03201d00, 0x03211c00,
0750 0x04211b00, 0x05221aff, 0x062219ff, 0x062318ff,
0751 0x082316ff, 0x082316ff, 0x092415fe, 0x0a2414fe,
0752 0x0b2413fe, 0x0c2412fe, 0x0d2411fe, 0x0e2410fe,
0753
0754 0xfe10230f, 0xfe11230e, 0xfe12220e, 0xfe13220d,
0755 0xfe14220c, 0xff14220b, 0xff15220a, 0xff16210a,
0756 0x00162109, 0x00172108, 0x00182008, 0x01192006,
0757 0x011a1f06, 0x021a1f05, 0x021b1e05, 0x031c1d04,
0758 0x031d1d03, 0x041d1c03, 0x041e1b03, 0x051e1b02,
0759 0x061f1a01, 0x06201901, 0x07201801, 0x08201800,
0760 0x09201700, 0x0a211500, 0x0b2115ff, 0x0c2114ff,
0761 0x0c2213ff, 0x0d2212ff, 0x0e2211ff, 0x0f2211fe,
0762
0763 0xff112010, 0xff12200f, 0xff12200f, 0xff13200e,
0764 0x0013200d, 0x0014200c, 0x00151f0c, 0x00161f0b,
0765 0x01161f0a, 0x01171e0a, 0x02171e09, 0x02181e08,
0766 0x03191d07, 0x03191d07, 0x041a1c06, 0x041b1c05,
0767 0x051b1b05, 0x051c1b04, 0x061c1a04, 0x071c1a03,
0768 0x071d1903, 0x081e1802, 0x091d1802, 0x091e1702,
0769 0x0a1f1601, 0x0b1f1600, 0x0b1f1501, 0x0c201400,
0770 0x0d1f1400, 0x0e2013ff, 0x0f1f1200, 0x102011ff,
0771
0772 0x00111f10, 0x00121e10, 0x00131e0f, 0x00131e0f,
0773 0x01131e0e, 0x01141e0d, 0x01151d0d, 0x02151d0c,
0774 0x02161d0b, 0x03161d0a, 0x03171c0a, 0x04171c09,
0775 0x04181c08, 0x05181b08, 0x05191b07, 0x06191a07,
0776 0x061a1a06, 0x071a1906, 0x071b1905, 0x081b1805,
0777 0x081c1804, 0x091c1704, 0x0a1c1703, 0x0a1d1603,
0778 0x0b1d1602, 0x0c1d1502, 0x0c1d1502, 0x0d1e1401,
0779 0x0e1d1401, 0x0e1e1301, 0x0f1e1300, 0x101e1200,
0780
0781 0x02111c11, 0x02121c10, 0x02131b10, 0x03131b0f,
0782 0x03131b0f, 0x03141b0e, 0x04141b0d, 0x04151a0d,
0783 0x05151a0c, 0x05151a0c, 0x05161a0b, 0x0616190b,
0784 0x0616190b, 0x0716190a, 0x0717180a, 0x08171809,
0785 0x08181808, 0x09181708, 0x09181708, 0x0a181707,
0786 0x0a191607, 0x0b191606, 0x0b1a1605, 0x0c1a1505,
0787 0x0c1a1505, 0x0d1a1504, 0x0d1b1404, 0x0e1b1403,
0788 0x0f1b1303, 0x0f1b1303, 0x101b1302, 0x101c1202,
0789
0790 0x04111a11, 0x04121911, 0x04131910, 0x0513190f,
0791 0x0513190f, 0x0513190f, 0x0613190e, 0x0614180e,
0792 0x0714180d, 0x0714180d, 0x0715180c, 0x0814180c,
0793 0x0815170c, 0x0816170b, 0x0916170a, 0x0916170a,
0794 0x0a16160a, 0x0a171609, 0x0a171609, 0x0b171608,
0795 0x0b171509, 0x0c171508, 0x0c181507, 0x0d171507,
0796 0x0d181407, 0x0e181406, 0x0e181406, 0x0e191306,
0797 0x0f191305, 0x0f191305, 0x10191304, 0x10191205,
0798
0799 0x05121811, 0x06121810, 0x06121810, 0x06131710,
0800 0x0713170f, 0x0713170f, 0x0713170f, 0x0813170e,
0801 0x0813170e, 0x0814170d, 0x0914160d, 0x0914160d,
0802 0x0914160d, 0x0a14160c, 0x0a15160b, 0x0a15150c,
0803 0x0b15150b, 0x0b15150b, 0x0b16150a, 0x0c15150a,
0804 0x0c16140a, 0x0d161409, 0x0d161409, 0x0d171408,
0805 0x0e161408, 0x0e171308, 0x0e171308, 0x0f171307,
0806 0x0f171307, 0x10171306, 0x10181206, 0x10181206,
0807
0808 0x07111711, 0x07121710, 0x07121611, 0x08121610,
0809 0x08121610, 0x0813160f, 0x0912160f, 0x0913160e,
0810 0x0913160e, 0x0913160e, 0x0a14150d, 0x0a14150d,
0811 0x0a14150d, 0x0b14150c, 0x0b14150c, 0x0b14150c,
0812 0x0c14140c, 0x0c15140b, 0x0c15140b, 0x0c15140b,
0813 0x0d15140a, 0x0d15140a, 0x0d15140a, 0x0e161309,
0814 0x0e161309, 0x0e161309, 0x0f151309, 0x0f161308,
0815 0x0f161209, 0x10161208, 0x10161208, 0x10171207,
0816
0817 0x0a111411, 0x0b111410, 0x0b111410, 0x0b111410,
0818 0x0b111410, 0x0b12140f, 0x0b12140f, 0x0c12130f,
0819 0x0c12130f, 0x0c12130f, 0x0c12130f, 0x0c12130f,
0820 0x0d12130e, 0x0d12130e, 0x0d12130e, 0x0d13130d,
0821 0x0d13130d, 0x0d13130d, 0x0e12130d, 0x0e13120d,
0822 0x0e13120d, 0x0e13120d, 0x0e13120d, 0x0f13120c,
0823 0x0f13120c, 0x0f13120c, 0x0f14120b, 0x0f14120b,
0824 0x1013120b, 0x1013120b, 0x1013120b, 0x1014110b,
0825
0826 0x0c111310, 0x0c111310, 0x0c111310, 0x0d101310,
0827 0x0d101310, 0x0d111210, 0x0d111210, 0x0d111210,
0828 0x0d12120f, 0x0d12120f, 0x0d12120f, 0x0d12120f,
0829 0x0e11120f, 0x0e12120e, 0x0e12120e, 0x0e12120e,
0830 0x0e12120e, 0x0e12120e, 0x0e12120e, 0x0e12120e,
0831 0x0f11120e, 0x0f12120d, 0x0f12120d, 0x0f12120d,
0832 0x0f12120d, 0x0f12110e, 0x0f12110e, 0x0f12110e,
0833 0x1012110d, 0x1012110d, 0x1013110c, 0x1013110c,
0834 };
0835
0836 static u32 sun8i_vi_scaler_base(struct sun8i_mixer *mixer, int channel)
0837 {
0838 if (mixer->cfg->is_de3)
0839 return DE3_VI_SCALER_UNIT_BASE +
0840 DE3_VI_SCALER_UNIT_SIZE * channel;
0841 else
0842 return DE2_VI_SCALER_UNIT_BASE +
0843 DE2_VI_SCALER_UNIT_SIZE * channel;
0844 }
0845
0846 static int sun8i_vi_scaler_coef_index(unsigned int step)
0847 {
0848 unsigned int scale, int_part, float_part;
0849
0850 scale = step >> (SUN8I_VI_SCALER_SCALE_FRAC - 3);
0851 int_part = scale >> 3;
0852 float_part = scale & 0x7;
0853
0854 switch (int_part) {
0855 case 0:
0856 return 0;
0857 case 1:
0858 return float_part;
0859 case 2:
0860 return 8 + (float_part >> 1);
0861 case 3:
0862 return 12;
0863 case 4:
0864 return 13;
0865 default:
0866 return 14;
0867 }
0868 }
0869
0870 static void sun8i_vi_scaler_set_coeff(struct regmap *map, u32 base,
0871 u32 hstep, u32 vstep,
0872 const struct drm_format_info *format)
0873 {
0874 const u32 *ch_left, *ch_right, *cy;
0875 int offset, i;
0876
0877 if (format->hsub == 1 && format->vsub == 1) {
0878 ch_left = lan3coefftab32_left;
0879 ch_right = lan3coefftab32_right;
0880 cy = lan2coefftab32;
0881 } else {
0882 ch_left = bicubic8coefftab32_left;
0883 ch_right = bicubic8coefftab32_right;
0884 cy = bicubic4coefftab32;
0885 }
0886
0887 offset = sun8i_vi_scaler_coef_index(hstep) *
0888 SUN8I_VI_SCALER_COEFF_COUNT;
0889 for (i = 0; i < SUN8I_VI_SCALER_COEFF_COUNT; i++) {
0890 regmap_write(map, SUN8I_SCALER_VSU_YHCOEFF0(base, i),
0891 lan3coefftab32_left[offset + i]);
0892 regmap_write(map, SUN8I_SCALER_VSU_YHCOEFF1(base, i),
0893 lan3coefftab32_right[offset + i]);
0894 regmap_write(map, SUN8I_SCALER_VSU_CHCOEFF0(base, i),
0895 ch_left[offset + i]);
0896 regmap_write(map, SUN8I_SCALER_VSU_CHCOEFF1(base, i),
0897 ch_right[offset + i]);
0898 }
0899
0900 offset = sun8i_vi_scaler_coef_index(hstep) *
0901 SUN8I_VI_SCALER_COEFF_COUNT;
0902 for (i = 0; i < SUN8I_VI_SCALER_COEFF_COUNT; i++) {
0903 regmap_write(map, SUN8I_SCALER_VSU_YVCOEFF(base, i),
0904 lan2coefftab32[offset + i]);
0905 regmap_write(map, SUN8I_SCALER_VSU_CVCOEFF(base, i),
0906 cy[offset + i]);
0907 }
0908 }
0909
0910 void sun8i_vi_scaler_enable(struct sun8i_mixer *mixer, int layer, bool enable)
0911 {
0912 u32 val, base;
0913
0914 base = sun8i_vi_scaler_base(mixer, layer);
0915
0916 if (enable)
0917 val = SUN8I_SCALER_VSU_CTRL_EN |
0918 SUN8I_SCALER_VSU_CTRL_COEFF_RDY;
0919 else
0920 val = 0;
0921
0922 regmap_write(mixer->engine.regs,
0923 SUN8I_SCALER_VSU_CTRL(base), val);
0924 }
0925
0926 void sun8i_vi_scaler_setup(struct sun8i_mixer *mixer, int layer,
0927 u32 src_w, u32 src_h, u32 dst_w, u32 dst_h,
0928 u32 hscale, u32 vscale, u32 hphase, u32 vphase,
0929 const struct drm_format_info *format)
0930 {
0931 u32 chphase, cvphase;
0932 u32 insize, outsize;
0933 u32 base;
0934
0935 base = sun8i_vi_scaler_base(mixer, layer);
0936
0937 hphase <<= SUN8I_VI_SCALER_PHASE_FRAC - 16;
0938 vphase <<= SUN8I_VI_SCALER_PHASE_FRAC - 16;
0939 hscale <<= SUN8I_VI_SCALER_SCALE_FRAC - 16;
0940 vscale <<= SUN8I_VI_SCALER_SCALE_FRAC - 16;
0941
0942 insize = SUN8I_VI_SCALER_SIZE(src_w, src_h);
0943 outsize = SUN8I_VI_SCALER_SIZE(dst_w, dst_h);
0944
0945
0946
0947
0948
0949
0950 if (format->hsub == 2 && format->vsub == 2) {
0951 chphase = hphase >> 1;
0952 cvphase = (vphase >> 1) -
0953 (1UL << (SUN8I_VI_SCALER_SCALE_FRAC - 2));
0954 } else {
0955 chphase = hphase;
0956 cvphase = vphase;
0957 }
0958
0959 if (mixer->cfg->is_de3) {
0960 u32 val;
0961
0962 if (format->hsub == 1 && format->vsub == 1)
0963 val = SUN50I_SCALER_VSU_SCALE_MODE_UI;
0964 else
0965 val = SUN50I_SCALER_VSU_SCALE_MODE_NORMAL;
0966
0967 regmap_write(mixer->engine.regs,
0968 SUN50I_SCALER_VSU_SCALE_MODE(base), val);
0969 }
0970
0971 regmap_write(mixer->engine.regs,
0972 SUN8I_SCALER_VSU_OUTSIZE(base), outsize);
0973 regmap_write(mixer->engine.regs,
0974 SUN8I_SCALER_VSU_YINSIZE(base), insize);
0975 regmap_write(mixer->engine.regs,
0976 SUN8I_SCALER_VSU_YHSTEP(base), hscale);
0977 regmap_write(mixer->engine.regs,
0978 SUN8I_SCALER_VSU_YVSTEP(base), vscale);
0979 regmap_write(mixer->engine.regs,
0980 SUN8I_SCALER_VSU_YHPHASE(base), hphase);
0981 regmap_write(mixer->engine.regs,
0982 SUN8I_SCALER_VSU_YVPHASE(base), vphase);
0983 regmap_write(mixer->engine.regs,
0984 SUN8I_SCALER_VSU_CINSIZE(base),
0985 SUN8I_VI_SCALER_SIZE(src_w / format->hsub,
0986 src_h / format->vsub));
0987 regmap_write(mixer->engine.regs,
0988 SUN8I_SCALER_VSU_CHSTEP(base),
0989 hscale / format->hsub);
0990 regmap_write(mixer->engine.regs,
0991 SUN8I_SCALER_VSU_CVSTEP(base),
0992 vscale / format->vsub);
0993 regmap_write(mixer->engine.regs,
0994 SUN8I_SCALER_VSU_CHPHASE(base), chphase);
0995 regmap_write(mixer->engine.regs,
0996 SUN8I_SCALER_VSU_CVPHASE(base), cvphase);
0997 sun8i_vi_scaler_set_coeff(mixer->engine.regs, base,
0998 hscale, vscale, format);
0999 }