/*
* Copyright (C) 2017 Jernej Skrabec <jernej.skrabec@siol.net>
*
* Coefficients are taken from BSP driver, which is:
* Copyright (C) 2014-2015 Allwinner
*
* This file is licensed under the terms of the GNU General Public
* License version 2. This program is licensed "as is" without any
* warranty of any kind, whether express or implied.
*/
#include "sun8i_vi_scaler.h"
static const u32 lan3coefftab32_left[480 ] = {
0 x40000000, 0 x40fe0000, 0 x3ffd0100, 0 x3efc0100,
0 x3efb0100, 0 x3dfa0200, 0 x3cf90200, 0 x3bf80200,
0 x39f70200, 0 x37f70200, 0 x35f70200, 0 x33f70200,
0 x31f70200, 0 x2ef70200, 0 x2cf70200, 0 x2af70200,
0 x27f70200, 0 x24f80100, 0 x22f80100, 0 x1ef90100,
0 x1cf90100, 0 x19fa0100, 0 x17fa0100, 0 x14fb0100,
0 x11fc0000, 0 x0ffc0000, 0 x0cfd0000, 0 x0afd0000,
0 x08fe0000, 0 x05ff0000, 0 x03ff0000, 0 x02000000,
0 x3806fc02, 0 x3805fc02, 0 x3803fd01, 0 x3801fe01,
0 x3700fe01, 0 x35ffff01, 0 x35fdff01, 0 x34fc0001,
0 x34fb0000, 0 x33fa0000, 0 x31fa0100, 0 x2ff90100,
0 x2df80200, 0 x2bf80200, 0 x2af70200, 0 x28f70200,
0 x27f70200, 0 x24f70300, 0 x22f70300, 0 x1ff70300,
0 x1ef70300, 0 x1cf70300, 0 x1af70300, 0 x18f70300,
0 x16f80300, 0 x13f80300, 0 x11f90300, 0 x0ef90300,
0 x0efa0200, 0 x0cfa0200, 0 x0afb0200, 0 x08fb0200,
0 x320bfa02, 0 x3309fa02, 0 x3208fb02, 0 x3206fb02,
0 x3205fb02, 0 x3104fc02, 0 x3102fc01, 0 x3001fd01,
0 x3000fd01, 0 x2ffffd01, 0 x2efefe01, 0 x2dfdfe01,
0 x2bfcff01, 0 x29fcff01, 0 x28fbff01, 0 x27fa0001,
0 x26fa0000, 0 x24f90000, 0 x22f90100, 0 x20f90100,
0 x1ff80100, 0 x1ef80100, 0 x1cf80100, 0 x1af80200,
0 x18f80200, 0 x17f80200, 0 x15f80200, 0 x12f80200,
0 x11f90200, 0 x0ff90200, 0 x0df90200, 0 x0cfa0200,
0 x2e0efa01, 0 x2f0dfa01, 0 x2f0bfa01, 0 x2e0afa01,
0 x2e09fa01, 0 x2e07fb01, 0 x2d06fb01, 0 x2d05fb01,
0 x2c04fb01, 0 x2b03fc01, 0 x2a02fc01, 0 x2a01fc01,
0 x2800fd01, 0 x28fffd01, 0 x26fefd01, 0 x25fefe01,
0 x24fdfe01, 0 x23fcfe01, 0 x21fcff01, 0 x20fbff01,
0 x1efbff01, 0 x1efbff00, 0 x1cfa0000, 0 x1bfa0000,
0 x19fa0000, 0 x18fa0000, 0 x17f90000, 0 x15f90100,
0 x14f90100, 0 x12f90100, 0 x11f90100, 0 x0ff90100,
0 x2b10fa00, 0 x2b0ffa00, 0 x2b0efa00, 0 x2b0cfa00,
0 x2b0bfa00, 0 x2a0afb01, 0 x2a09fb01, 0 x2908fb01,
0 x2807fb01, 0 x2806fb01, 0 x2805fb01, 0 x2604fc01,
0 x2503fc01, 0 x2502fc01, 0 x2401fc01, 0 x2301fc01,
0 x2100fd01, 0 x21fffd01, 0 x21fffd01, 0 x20fefd01,
0 x1dfefe01, 0 x1cfdfe01, 0 x1cfdfe00, 0 x1bfcfe00,
0 x19fcff00, 0 x19fbff00, 0 x17fbff00, 0 x16fbff00,
0 x15fbff00, 0 x14fb0000, 0 x13fa0000, 0 x11fa0000,
0 x2811fcff, 0 x2810fcff, 0 x280ffbff, 0 x280efbff,
0 x270dfb00, 0 x270cfb00, 0 x270bfb00, 0 x260afb00,
0 x2609fb00, 0 x2508fb00, 0 x2507fb00, 0 x2407fb00,
0 x2406fc00, 0 x2305fc00, 0 x2204fc00, 0 x2203fc00,
0 x2103fc00, 0 x2002fc00, 0 x1f01fd00, 0 x1e01fd00,
0 x1d00fd00, 0 x1dfffd00, 0 x1cfffd00, 0 x1bfefd00,
0 x1afefe00, 0 x19fefe00, 0 x18fdfe00, 0 x17fdfe00,
0 x16fdfe00, 0 x15fcff00, 0 x13fcff00, 0 x12fcff00,
0 x2512fdfe, 0 x2511fdff, 0 x2410fdff, 0 x240ffdff,
0 x240efcff, 0 x240dfcff, 0 x240dfcff, 0 x240cfcff,
0 x230bfcff, 0 x230afc00, 0 x2209fc00, 0 x2108fc00,
0 x2108fc00, 0 x2007fc00, 0 x2006fc00, 0 x2005fc00,
0 x1f05fc00, 0 x1e04fc00, 0 x1e03fc00, 0 x1c03fd00,
0 x1c02fd00, 0 x1b02fd00, 0 x1b01fd00, 0 x1a00fd00,
0 x1900fd00, 0 x1800fd00, 0 x17fffe00, 0 x16fffe00,
0 x16fefe00, 0 x14fefe00, 0 x13fefe00, 0 x13fdfe00,
0 x2212fffe, 0 x2211fefe, 0 x2211fefe, 0 x2110fefe,
0 x210ffeff, 0 x220efdff, 0 x210dfdff, 0 x210dfdff,
0 x210cfdff, 0 x210bfdff, 0 x200afdff, 0 x200afdff,
0 x1f09fdff, 0 x1f08fdff, 0 x1d08fd00, 0 x1c07fd00,
0 x1d06fd00, 0 x1b06fd00, 0 x1b05fd00, 0 x1c04fd00,
0 x1b04fd00, 0 x1a03fd00, 0 x1a03fd00, 0 x1902fd00,
0 x1802fd00, 0 x1801fd00, 0 x1701fd00, 0 x1600fd00,
0 x1400fe00, 0 x1400fe00, 0 x14fffe00, 0 x13fffe00,
0 x201200fe, 0 x201100fe, 0 x1f11fffe, 0 x2010fffe,
0 x1f0ffffe, 0 x1e0ffffe, 0 x1f0efeff, 0 x1f0dfeff,
0 x1f0dfeff, 0 x1e0cfeff, 0 x1e0bfeff, 0 x1d0bfeff,
0 x1d0afeff, 0 x1d09fdff, 0 x1d09fdff, 0 x1c08fdff,
0 x1c07fdff, 0 x1b07fd00, 0 x1b06fd00, 0 x1a06fd00,
0 x1a05fd00, 0 x1805fd00, 0 x1904fd00, 0 x1804fd00,
0 x1703fd00, 0 x1703fd00, 0 x1602fe00, 0 x1502fe00,
0 x1501fe00, 0 x1401fe00, 0 x1301fe00, 0 x1300fe00,
0 x1c1202fe, 0 x1c1102fe, 0 x1b1102fe, 0 x1c1001fe,
0 x1b1001fe, 0 x1b0f01ff, 0 x1b0e00ff, 0 x1b0e00ff,
0 x1b0d00ff, 0 x1a0d00ff, 0 x1a0c00ff, 0 x1a0cffff,
0 x1a0bffff, 0 x1a0bffff, 0 x1a0affff, 0 x180affff,
0 x1909ffff, 0 x1809ffff, 0 x1808ffff, 0 x1808feff,
0 x1807feff, 0 x1707fe00, 0 x1606fe00, 0 x1506fe00,
0 x1605fe00, 0 x1505fe00, 0 x1504fe00, 0 x1304fe00,
0 x1304fe00, 0 x1303fe00, 0 x1203fe00, 0 x1203fe00,
0 x181104ff, 0 x191103ff, 0 x191003ff, 0 x181003ff,
0 x180f03ff, 0 x190f02ff, 0 x190e02ff, 0 x180e02ff,
0 x180d02ff, 0 x180d01ff, 0 x180d01ff, 0 x180c01ff,
0 x180c01ff, 0 x180b00ff, 0 x170b00ff, 0 x170a00ff,
0 x170a00ff, 0 x170900ff, 0 x160900ff, 0 x160900ff,
0 x1608ffff, 0 x1508ffff, 0 x1507ff00, 0 x1507ff00,
0 x1407ff00, 0 x1306ff00, 0 x1306ff00, 0 x1305ff00,
0 x1205ff00, 0 x1105ff00, 0 x1204ff00, 0 x1104ff00,
0 x171005ff, 0 x171005ff, 0 x171004ff, 0 x170f04ff,
0 x160f04ff, 0 x170f03ff, 0 x170e03ff, 0 x160e03ff,
0 x160d03ff, 0 x160d02ff, 0 x160d02ff, 0 x160c02ff,
0 x160c02ff, 0 x160c02ff, 0 x160b01ff, 0 x150b01ff,
0 x150a01ff, 0 x150a01ff, 0 x150a01ff, 0 x140901ff,
0 x14090000, 0 x14090000, 0 x14080000, 0 x13080000,
0 x13070000, 0 x12070000, 0 x12070000, 0 x12060000,
0 x11060000, 0 x11060000, 0 x11050000, 0 x1105ff00,
0 x14100600, 0 x15100500, 0 x150f0500, 0 x150f0500,
0 x140f0500, 0 x150e0400, 0 x140e0400, 0 x130e0400,
0 x140d0400, 0 x150d0300, 0 x130d0300, 0 x140c0300,
0 x140c0300, 0 x140c0200, 0 x140b0200, 0 x130b0200,
0 x120b0200, 0 x130a0200, 0 x130a0200, 0 x130a0100,
0 x13090100, 0 x12090100, 0 x11090100, 0 x12080100,
0 x11080100, 0 x10080100, 0 x11070100, 0 x11070000,
0 x10070000, 0 x11060000, 0 x10060000, 0 x10060000,
0 x140f0600, 0 x140f0600, 0 x130f0600, 0 x140f0500,
0 x140e0500, 0 x130e0500, 0 x130e0500, 0 x140d0400,
0 x140d0400, 0 x130d0400, 0 x120d0400, 0 x130c0400,
0 x130c0300, 0 x130c0300, 0 x130b0300, 0 x130b0300,
0 x110b0300, 0 x130a0200, 0 x120a0200, 0 x120a0200,
0 x120a0200, 0 x12090200, 0 x10090200, 0 x11090100,
0 x11080100, 0 x11080100, 0 x10080100, 0 x10080100,
0 x10070100, 0 x10070100, 0 x0f070100, 0 x10060100,
0 x120f0701, 0 x130f0601, 0 x130e0601, 0 x130e0601,
0 x120e0601, 0 x130e0501, 0 x130e0500, 0 x130d0500,
0 x120d0500, 0 x120d0500, 0 x130c0400, 0 x130c0400,
0 x120c0400, 0 x110c0400, 0 x120b0400, 0 x120b0300,
0 x120b0300, 0 x120b0300, 0 x120a0300, 0 x110a0300,
0 x110a0200, 0 x11090200, 0 x11090200, 0 x10090200,
0 x10090200, 0 x10080200, 0 x10080200, 0 x10080100,
0 x0f080100, 0 x10070100, 0 x0f070100, 0 x0f070100
};
static const u32 lan3coefftab32_right[480 ] = {
0 x00000000, 0 x00000002, 0 x0000ff04, 0 x0000ff06,
0 x0000fe08, 0 x0000fd0a, 0 x0000fd0c, 0 x0000fc0f,
0 x0000fc12, 0 x0001fb14, 0 x0001fa17, 0 x0001fa19,
0 x0001f91c, 0 x0001f91f, 0 x0001f822, 0 x0001f824,
0 x0002f727, 0 x0002f72a, 0 x0002f72c, 0 x0002f72f,
0 x0002f731, 0 x0002f733, 0 x0002f735, 0 x0002f737,
0 x0002f73a, 0 x0002f83b, 0 x0002f93c, 0 x0002fa3d,
0 x0001fb3e, 0 x0001fc3f, 0 x0001fd40, 0 x0000fe40,
0 x0002fc06, 0 x0002fb08, 0 x0002fb0a, 0 x0002fa0c,
0 x0002fa0e, 0 x0003f910, 0 x0003f912, 0 x0003f814,
0 x0003f816, 0 x0003f719, 0 x0003f71a, 0 x0003f71d,
0 x0003f71f, 0 x0003f721, 0 x0003f723, 0 x0003f725,
0 x0002f727, 0 x0002f729, 0 x0002f72b, 0 x0002f82d,
0 x0002f82e, 0 x0001f930, 0 x0001fa31, 0 x0000fa34,
0 x0000fb34, 0 x0100fc35, 0 x01fffd36, 0 x01ffff37,
0 x01fe0037, 0 x01fe0138, 0 x01fd0338, 0 x02fc0538,
0 x0002fa0b, 0 x0002fa0c, 0 x0002f90e, 0 x0002f910,
0 x0002f911, 0 x0002f813, 0 x0002f816, 0 x0002f817,
0 x0002f818, 0 x0002f81a, 0 x0001f81c, 0 x0001f81e,
0 x0001f820, 0 x0001f921, 0 x0001f923, 0 x0000f925,
0 x0000fa26, 0 x0100fa28, 0 x01fffb29, 0 x01fffc2a,
0 x01fffc2c, 0 x01fefd2d, 0 x01fefe2e, 0 x01fdff2f,
0 x01fd0030, 0 x01fd0130, 0 x01fc0232, 0 x02fc0432,
0 x02fb0532, 0 x02fb0633, 0 x02fb0833, 0 x02fa0933,
0 x0001fa0e, 0 x0001f90f, 0 x0001f911, 0 x0001f913,
0 x0001f914, 0 x0001f915, 0 x0000f918, 0 x0000fa18,
0 x0000fa1a, 0 x0000fa1b, 0 x0000fa1d, 0 x00fffb1e,
0 x01fffb1f, 0 x01fffb20, 0 x01fffc22, 0 x01fefc23,
0 x01fefd24, 0 x01fefe25, 0 x01fdfe27, 0 x01fdff28,
0 x01fd0029, 0 x01fc012a, 0 x01fc022b, 0 x01fc032b,
0 x01fb042d, 0 x01fb052d, 0 x01fb062e, 0 x01fb072e,
0 x01fa092e, 0 x01fa0a2f, 0 x01fa0b2f, 0 x01fa0d2f,
0 x0000fa11, 0 x0000fa12, 0 x0000fa13, 0 x0000fb14,
0 x00fffb16, 0 x00fffb16, 0 x00fffb17, 0 x00fffb19,
0 x00fffc1a, 0 x00fefc1c, 0 x00fefd1c, 0 x01fefd1d,
0 x01fefe1e, 0 x01fdfe20, 0 x01fdff21, 0 x01fdff22,
0 x01fd0023, 0 x01fc0124, 0 x01fc0124, 0 x01fc0225,
0 x01fc0326, 0 x01fc0427, 0 x01fb0528, 0 x01fb0629,
0 x01fb0729, 0 x01fb0829, 0 x01fb092a, 0 x01fb0a2a,
0 x00fa0b2c, 0 x00fa0c2b, 0 x00fa0e2b, 0 x00fa0f2c,
0 x00fffc11, 0 x00fffc12, 0 x00fffc14, 0 x00fffc15,
0 x00fefd16, 0 x00fefd17, 0 x00fefd18, 0 x00fefe19,
0 x00fefe1a, 0 x00fdfe1d, 0 x00fdff1d, 0 x00fdff1e,
0 x00fd001d, 0 x00fd011e, 0 x00fd0120, 0 x00fc0221,
0 x00fc0321, 0 x00fc0323, 0 x00fc0423, 0 x00fc0523,
0 x00fc0624, 0 x00fb0725, 0 x00fb0726, 0 x00fb0827,
0 x00fb0926, 0 x00fb0a26, 0 x00fb0b27, 0 x00fb0c27,
0 x00fb0d27, 0 xfffb0e28, 0 xfffb0f29, 0 xfffc1028,
0 x00fefd13, 0 x00fefd13, 0 x00fefe14, 0 x00fefe15,
0 x00fefe17, 0 x00feff17, 0 x00feff17, 0 x00fd0018,
0 x00fd001a, 0 x00fd001a, 0 x00fd011b, 0 x00fd021c,
0 x00fd021c, 0 x00fd031d, 0 x00fc031f, 0 x00fc041f,
0 x00fc051f, 0 x00fc0521, 0 x00fc0621, 0 x00fc0721,
0 x00fc0821, 0 x00fc0822, 0 x00fc0922, 0 x00fc0a23,
0 xfffc0b24, 0 xfffc0c24, 0 xfffc0d24, 0 xfffc0d25,
0 xfffc0e25, 0 xfffd0f25, 0 xfffd1025, 0 xfffd1125,
0 x00feff12, 0 x00feff14, 0 x00feff14, 0 x00fe0015,
0 x00fe0015, 0 x00fd0017, 0 x00fd0118, 0 x00fd0118,
0 x00fd0218, 0 x00fd0219, 0 x00fd031a, 0 x00fd031a,
0 x00fd041b, 0 x00fd041c, 0 x00fd051c, 0 x00fd061d,
0 x00fd061d, 0 x00fd071e, 0 x00fd081e, 0 xfffd081f,
0 xfffd091f, 0 xfffd0a20, 0 xfffd0a20, 0 xfffd0b21,
0 xfffd0c21, 0 xfffd0d21, 0 xfffd0d22, 0 xfffd0e23,
0 xfffe0f22, 0 xfefe1022, 0 xfefe1122, 0 xfefe1123,
0 x00fe0012, 0 x00fe0013, 0 x00fe0114, 0 x00fe0114,
0 x00fe0116, 0 x00fe0216, 0 x00fe0216, 0 x00fd0317,
0 x00fd0317, 0 x00fd0418, 0 x00fd0419, 0 x00fd0519,
0 x00fd051a, 0 x00fd061b, 0 x00fd061b, 0 x00fd071c,
0 xfffd071e, 0 xfffd081d, 0 xfffd091d, 0 xfffd091e,
0 xfffe0a1d, 0 xfffe0b1e, 0 xfffe0b1e, 0 xfffe0c1e,
0 xfffe0d1f, 0 xfffe0d1f, 0 xfffe0e1f, 0 xfeff0f1f,
0 xfeff0f20, 0 xfeff1020, 0 xfeff1120, 0 xfe001120,
0 x00fe0212, 0 x00fe0312, 0 x00fe0313, 0 x00fe0314,
0 x00fe0414, 0 x00fe0414, 0 x00fe0416, 0 x00fe0515,
0 x00fe0516, 0 x00fe0616, 0 x00fe0617, 0 x00fe0717,
0 xfffe0719, 0 xfffe0818, 0 xffff0818, 0 xffff0919,
0 xffff0919, 0 xffff0a19, 0 xffff0a1a, 0 xffff0b1a,
0 xffff0b1b, 0 xffff0c1a, 0 xff000c1b, 0 xff000d1b,
0 xff000d1b, 0 xff000e1b, 0 xff000e1c, 0 xff010f1c,
0 xfe01101c, 0 xfe01101d, 0 xfe02111c, 0 xfe02111c,
0 x00ff0411, 0 x00ff0411, 0 x00ff0412, 0 x00ff0512,
0 x00ff0513, 0 x00ff0513, 0 x00ff0613, 0 x00ff0614,
0 x00ff0714, 0 x00ff0715, 0 x00ff0715, 0 xffff0816,
0 xffff0816, 0 xff000916, 0 xff000917, 0 xff000918,
0 xff000a17, 0 xff000a18, 0 xff000b18, 0 xff000b18,
0 xff010c18, 0 xff010c19, 0 xff010d18, 0 xff010d18,
0 xff020d18, 0 xff020e19, 0 xff020e19, 0 xff020f19,
0 xff030f19, 0 xff031019, 0 xff031019, 0 xff031119,
0 x00ff0511, 0 x00ff0511, 0 x00000511, 0 x00000611,
0 x00000612, 0 x00000612, 0 x00000712, 0 x00000713,
0 x00000714, 0 x00000814, 0 x00000814, 0 x00000914,
0 x00000914, 0 xff010914, 0 xff010a15, 0 xff010a16,
0 xff010a17, 0 xff010b16, 0 xff010b16, 0 xff020c16,
0 xff020c16, 0 xff020c16, 0 xff020d16, 0 xff020d17,
0 xff030d17, 0 xff030e17, 0 xff030e17, 0 xff030f17,
0 xff040f17, 0 xff040f17, 0 xff041017, 0 xff051017,
0 x00000610, 0 x00000610, 0 x00000611, 0 x00000611,
0 x00000711, 0 x00000712, 0 x00010712, 0 x00010812,
0 x00010812, 0 x00010812, 0 x00010913, 0 x00010913,
0 x00010913, 0 x00010a13, 0 x00020a13, 0 x00020a14,
0 x00020b14, 0 x00020b14, 0 x00020b14, 0 x00020c14,
0 x00030c14, 0 x00030c15, 0 x00030d15, 0 x00030d15,
0 x00040d15, 0 x00040e15, 0 x00040e15, 0 x00040e16,
0 x00050f15, 0 x00050f15, 0 x00050f16, 0 x00051015,
0 x00000611, 0 x00010610, 0 x00010710, 0 x00010710,
0 x00010711, 0 x00010811, 0 x00010811, 0 x00010812,
0 x00010812, 0 x00010912, 0 x00020912, 0 x00020912,
0 x00020a12, 0 x00020a12, 0 x00020a13, 0 x00020a13,
0 x00030b13, 0 x00030b13, 0 x00030b14, 0 x00030c13,
0 x00030c13, 0 x00040c13, 0 x00040d14, 0 x00040d14,
0 x00040d15, 0 x00040d15, 0 x00050e14, 0 x00050e14,
0 x00050e15, 0 x00050f14, 0 x00060f14, 0 x00060f14,
0 x0001070f, 0 x0001070f, 0 x00010710, 0 x00010710,
0 x00010810, 0 x00010810, 0 x00020810, 0 x00020811,
0 x00020911, 0 x00020911, 0 x00020912, 0 x00020912,
0 x00020a12, 0 x00030a12, 0 x00030a12, 0 x00030b12,
0 x00030b12, 0 x00030b12, 0 x00040b12, 0 x00040c12,
0 x00040c13, 0 x00040c14, 0 x00040c14, 0 x00050d13,
0 x00050d13, 0 x00050d14, 0 x00050e13, 0 x01050e13,
0 x01060e13, 0 x01060e13, 0 x01060e14, 0 x01060f13
};
static const u32 lan2coefftab32[480 ] = {
0 x00004000, 0 x000140ff, 0 x00033ffe, 0 x00043ffd,
0 x00063efc, 0 xff083dfc, 0 x000a3bfb, 0 xff0d39fb,
0 xff0f37fb, 0 xff1136fa, 0 xfe1433fb, 0 xfe1631fb,
0 xfd192ffb, 0 xfd1c2cfb, 0 xfd1f29fb, 0 xfc2127fc,
0 xfc2424fc, 0 xfc2721fc, 0 xfb291ffd, 0 xfb2c1cfd,
0 xfb2f19fd, 0 xfb3116fe, 0 xfb3314fe, 0 xfa3611ff,
0 xfb370fff, 0 xfb390dff, 0 xfb3b0a00, 0 xfc3d08ff,
0 xfc3e0600, 0 xfd3f0400, 0 xfe3f0300, 0 xff400100,
0 xff053804, 0 xff063803, 0 xff083801, 0 xff093701,
0 xff0a3700, 0 xff0c3500, 0 xff0e34ff, 0 xff1033fe,
0 xff1232fd, 0 xfe1431fd, 0 xfe162ffd, 0 xfe182dfd,
0 xfd1b2cfc, 0 xfd1d2afc, 0 xfd1f28fc, 0 xfd2126fc,
0 xfd2323fd, 0 xfc2621fd, 0 xfc281ffd, 0 xfc2a1dfd,
0 xfc2c1bfd, 0 xfd2d18fe, 0 xfd2f16fe, 0 xfd3114fe,
0 xfd3212ff, 0 xfe3310ff, 0 xff340eff, 0 x00350cff,
0 x00360a00, 0 x01360900, 0 x02370700, 0 x03370600,
0 xff083207, 0 xff093206, 0 xff0a3205, 0 xff0c3203,
0 xff0d3103, 0 xff0e3102, 0 xfe113001, 0 xfe132f00,
0 xfe142e00, 0 xfe162dff, 0 xfe182bff, 0 xfe192aff,
0 xfe1b29fe, 0 xfe1d27fe, 0 xfe1f25fe, 0 xfd2124fe,
0 xfe2222fe, 0 xfe2421fd, 0 xfe251ffe, 0 xfe271dfe,
0 xfe291bfe, 0 xff2a19fe, 0 xff2b18fe, 0 xff2d16fe,
0 x002e14fe, 0 x002f12ff, 0 x013010ff, 0 x02300fff,
0 x03310dff, 0 x04310cff, 0 x05310a00, 0 x06310900,
0 xff0a2e09, 0 xff0b2e08, 0 xff0c2e07, 0 xff0e2d06,
0 xff0f2d05, 0 xff102d04, 0 xff122c03, 0 xfe142c02,
0 xfe152b02, 0 xfe172a01, 0 xfe182901, 0 xfe1a2800,
0 xfe1b2700, 0 xfe1d2500, 0 xff1e24ff, 0 xfe2023ff,
0 xff2121ff, 0 xff2320fe, 0 xff241eff, 0 x00251dfe,
0 x00261bff, 0 x00281afe, 0 x012818ff, 0 x012a16ff,
0 x022a15ff, 0 x032b13ff, 0 x032c12ff, 0 x052c10ff,
0 x052d0fff, 0 x062d0d00, 0 x072d0c00, 0 x082d0b00,
0 xff0c2a0b, 0 xff0d2a0a, 0 xff0e2a09, 0 xff0f2a08,
0 xff102a07, 0 xff112a06, 0 xff132905, 0 xff142904,
0 xff162803, 0 xff172703, 0 xff182702, 0 xff1a2601,
0 xff1b2501, 0 xff1c2401, 0 xff1e2300, 0 xff1f2200,
0 x00202000, 0 x00211f00, 0 x01221d00, 0 x01231c00,
0 x01251bff, 0 x02251aff, 0 x032618ff, 0 x032717ff,
0 x042815ff, 0 x052814ff, 0 x052913ff, 0 x06291100,
0 x072a10ff, 0 x082a0e00, 0 x092a0d00, 0 x0a2a0c00,
0 xff0d280c, 0 xff0e280b, 0 xff0f280a, 0 xff102809,
0 xff112808, 0 xff122708, 0 xff142706, 0 xff152705,
0 xff162605, 0 xff172604, 0 xff192503, 0 xff1a2403,
0 x001b2302, 0 x001c2202, 0 x001d2201, 0 x001e2101,
0 x011f1f01, 0 x01211e00, 0 x01221d00, 0 x02221c00,
0 x02231b00, 0 x03241900, 0 x04241800, 0 x04251700,
0 x052616ff, 0 x06261400, 0 x072713ff, 0 x08271100,
0 x08271100, 0 x09271000, 0 x0a280e00, 0 x0b280d00,
0 xff0e260d, 0 xff0f260c, 0 xff10260b, 0 xff11260a,
0 xff122609, 0 xff132608, 0 xff142508, 0 xff152507,
0 x00152506, 0 x00172405, 0 x00182305, 0 x00192304,
0 x001b2203, 0 x001c2103, 0 x011d2002, 0 x011d2002,
0 x011f1f01, 0 x021f1e01, 0 x02201d01, 0 x03211c00,
0 x03221b00, 0 x04221a00, 0 x04231801, 0 x05241700,
0 x06241600, 0 x07241500, 0 x08251300, 0 x09251200,
0 x09261100, 0 x0a261000, 0 x0b260f00, 0 x0c260e00,
0 xff0e250e, 0 xff0f250d, 0 xff10250c, 0 xff11250b,
0 x0011250a, 0 x00132409, 0 x00142408, 0 x00152407,
0 x00162307, 0 x00172306, 0 x00182206, 0 x00192205,
0 x011a2104, 0 x011b2004, 0 x011c2003, 0 x021c1f03,
0 x021e1e02, 0 x031e1d02, 0 x03201c01, 0 x04201b01,
0 x04211a01, 0 x05221900, 0 x05221801, 0 x06231700,
0 x07231600, 0 x07241500, 0 x08241400, 0 x09241300,
0 x0a241200, 0 x0b241100, 0 x0c241000, 0 x0d240f00,
0 x000e240e, 0 x000f240d, 0 x0010240c, 0 x0011240b,
0 x0013230a, 0 x0013230a, 0 x00142309, 0 x00152308,
0 x00162208, 0 x00172207, 0 x01182106, 0 x01192105,
0 x011a2005, 0 x021b1f04, 0 x021b1f04, 0 x021d1e03,
0 x031d1d03, 0 x031e1d02, 0 x041e1c02, 0 x041f1b02,
0 x05201a01, 0 x05211901, 0 x06211801, 0 x07221700,
0 x07221601, 0 x08231500, 0 x09231400, 0 x0a231300,
0 x0a231300, 0 x0b231200, 0 x0c231100, 0 x0d231000,
0 x000f220f, 0 x0010220e, 0 x0011220d, 0 x0012220c,
0 x0013220b, 0 x0013220b, 0 x0015210a, 0 x0015210a,
0 x01162108, 0 x01172008, 0 x01182007, 0 x02191f06,
0 x02191f06, 0 x021a1e06, 0 x031a1e05, 0 x031c1d04,
0 x041c1c04, 0 x041d1c03, 0 x051d1b03, 0 x051e1a03,
0 x061f1902, 0 x061f1902, 0 x07201801, 0 x08201701,
0 x08211601, 0 x09211501, 0 x0a211500, 0 x0b211400,
0 x0b221300, 0 x0c221200, 0 x0d221100, 0 x0e221000,
0 x0010210f, 0 x0011210e, 0 x0011210e, 0 x0012210d,
0 x0013210c, 0 x0014200c, 0 x0114200b, 0 x0115200a,
0 x01161f0a, 0 x01171f09, 0 x02171f08, 0 x02181e08,
0 x03181e07, 0 x031a1d06, 0 x031a1d06, 0 x041b1c05,
0 x041c1c04, 0 x051c1b04, 0 x051d1a04, 0 x061d1a03,
0 x071d1903, 0 x071e1803, 0 x081e1802, 0 x081f1702,
0 x091f1602, 0 x0a201501, 0 x0b1f1501, 0 x0b201401,
0 x0c211300, 0 x0d211200, 0 x0e201200, 0 x0e211100,
0 x00102010, 0 x0011200f, 0 x0012200e, 0 x0013200d,
0 x0013200d, 0 x01141f0c, 0 x01151f0b, 0 x01151f0b,
0 x01161f0a, 0 x02171e09, 0 x02171e09, 0 x03181d08,
0 x03191d07, 0 x03191d07, 0 x041a1c06, 0 x041b1c05,
0 x051b1b05, 0 x051c1b04, 0 x061c1a04, 0 x071d1903,
0 x071d1903, 0 x081d1803, 0 x081e1703, 0 x091e1702,
0 x0a1f1601, 0 x0a1f1502, 0 x0b1f1501, 0 x0c1f1401,
0 x0d201300, 0 x0d201300, 0 x0e201200, 0 x0f201100,
0 x00102010, 0 x0011200f, 0 x00121f0f, 0 x00131f0e,
0 x00141f0d, 0 x01141f0c, 0 x01141f0c, 0 x01151e0c,
0 x02161e0a, 0 x02171e09, 0 x03171d09, 0 x03181d08,
0 x03181d08, 0 x04191c07, 0 x041a1c06, 0 x051a1b06,
0 x051b1b05, 0 x061b1a05, 0 x061c1a04, 0 x071c1904,
0 x081c1903, 0 x081d1803, 0 x091d1703, 0 x091e1702,
0 x0a1e1602, 0 x0b1e1502, 0 x0c1e1501, 0 x0c1f1401,
0 x0d1f1400, 0 x0e1f1300, 0 x0e1f1201, 0 x0f1f1200,
0 x00111e11, 0 x00121e10, 0 x00131e0f, 0 x00131e0f,
0 x01131e0e, 0 x01141d0e, 0 x02151d0c, 0 x02151d0c,
0 x02161d0b, 0 x03161c0b, 0 x03171c0a, 0 x04171c09,
0 x04181b09, 0 x05181b08, 0 x05191b07, 0 x06191a07,
0 x061a1a06, 0 x071a1906, 0 x071b1905, 0 x081b1805,
0 x091b1804, 0 x091c1704, 0 x0a1c1703, 0 x0a1c1604,
0 x0b1d1602, 0 x0c1d1502, 0 x0c1d1502, 0 x0d1d1402,
0 x0e1d1401, 0 x0e1e1301, 0 x0f1e1300, 0 x101e1200,
0 x00111e11, 0 x00121e10, 0 x00131d10, 0 x01131d0f,
0 x01141d0e, 0 x01141d0e, 0 x02151c0d, 0 x02151c0d,
0 x03161c0b, 0 x03161c0b, 0 x04171b0a, 0 x04171b0a,
0 x05171b09, 0 x05181a09, 0 x06181a08, 0 x06191a07,
0 x07191907, 0 x071a1906, 0 x081a1806, 0 x081a1806,
0 x091a1805, 0 x0a1b1704, 0 x0a1b1704, 0 x0b1c1603,
0 x0b1c1603, 0 x0c1c1503, 0 x0d1c1502, 0 x0d1d1402,
0 x0e1d1401, 0 x0f1d1301, 0 x0f1d1301, 0 x101e1200,
};
static const u32 bicubic8coefftab32_left[480 ] = {
0 x40000000, 0 x40ff0000, 0 x3ffe0000, 0 x3efe0000,
0 x3dfd0000, 0 x3cfc0000, 0 x3bfc0000, 0 x39fc0000,
0 x36fc0000, 0 x35fb0000, 0 x33fb0000, 0 x31fb0000,
0 x2ffb0000, 0 x2cfb0000, 0 x29fc0000, 0 x27fc0000,
0 x24fc0000, 0 x21fc0000, 0 x1efd0000, 0 x1cfd0000,
0 x19fd0000, 0 x16fe0000, 0 x14fe0000, 0 x11fe0000,
0 x0dff0000, 0 x0cff0000, 0 x0aff0000, 0 x08ff0000,
0 x05000000, 0 x03000000, 0 x02000000, 0 x01000000,
0 x3904ff00, 0 x3903ff00, 0 x3902ff00, 0 x38010000,
0 x37000000, 0 x36ff0000, 0 x35ff0000, 0 x34fe0000,
0 x32fe0000, 0 x31fd0000, 0 x30fd0000, 0 x2efc0000,
0 x2cfc0000, 0 x2afc0000, 0 x28fc0000, 0 x26fc0000,
0 x24fc0000, 0 x22fc0000, 0 x20fc0000, 0 x1efc0000,
0 x1cfc0000, 0 x19fc0000, 0 x17fc0000, 0 x15fd0000,
0 x12fd0000, 0 x11fd0000, 0 x0ffd0000, 0 x0dfe0000,
0 x0bfe0000, 0 x09fe0000, 0 x08fe0000, 0 x06ff0000,
0 x3209fe00, 0 x3407fe00, 0 x3306fe00, 0 x3305fe00,
0 x3204fe00, 0 x3102ff00, 0 x3102ff00, 0 x3001ff00,
0 x2f00ff00, 0 x2effff00, 0 x2cff0000, 0 x2bfe0000,
0 x29fe0000, 0 x28fe0000, 0 x26fd0000, 0 x24fd0000,
0 x23fd0000, 0 x21fd0000, 0 x20fc0000, 0 x1efc0000,
0 x1dfc0000, 0 x1bfc0000, 0 x19fc0000, 0 x17fc0000,
0 x16fc0000, 0 x14fc0000, 0 x12fc0000, 0 x10fd0000,
0 x0ffd0000, 0 x0dfd0000, 0 x0cfd0000, 0 x0afd0000,
0 x2e0cfd00, 0 x2e0bfd00, 0 x2e09fd00, 0 x2e08fd00,
0 x2e07fd00, 0 x2c06fe00, 0 x2c05fe00, 0 x2b04fe00,
0 x2b03fe00, 0 x2a02fe00, 0 x2901fe00, 0 x2701ff00,
0 x2700ff00, 0 x26ffff00, 0 x24ffff00, 0 x23ffff00,
0 x22feff00, 0 x20fe0000, 0 x1ffe0000, 0 x1efd0000,
0 x1dfd0000, 0 x1bfd0000, 0 x1afd0000, 0 x19fd0000,
0 x17fd0000, 0 x15fd0000, 0 x13fd0000, 0 x12fd0000,
0 x11fd0000, 0 x10fd0000, 0 x0ffd0000, 0 x0cfd0000,
0 x2a0efd00, 0 x2a0dfd00, 0 x2a0cfd00, 0 x290bfd00,
0 x290afd00, 0 x2909fd00, 0 x2908fd00, 0 x2807fd00,
0 x2706fd00, 0 x2705fd00, 0 x2604fe00, 0 x2603fe00,
0 x2502fe00, 0 x2402fe00, 0 x2401fe00, 0 x2200fe00,
0 x2200fe00, 0 x2000ff00, 0 x1fffff00, 0 x1effff00,
0 x1dfeff00, 0 x1cfeff00, 0 x1afeff00, 0 x19feff00,
0 x17fe0000, 0 x16fd0000, 0 x15fd0000, 0 x14fd0000,
0 x12fd0000, 0 x11fd0000, 0 x10fd0000, 0 x0ffd0000,
0 x2610fd00, 0 x260ffd00, 0 x260efd00, 0 x260dfd00,
0 x260cfd00, 0 x260bfd00, 0 x260afd00, 0 x2609fd00,
0 x2508fd00, 0 x2507fd00, 0 x2406fd00, 0 x2406fd00,
0 x2305fd00, 0 x2304fd00, 0 x2203fe00, 0 x2103fe00,
0 x2002fe00, 0 x1f01fe00, 0 x1e01fe00, 0 x1e00fe00,
0 x1c00fe00, 0 x1b00fe00, 0 x1afffe00, 0 x19ffff00,
0 x18ffff00, 0 x17feff00, 0 x16feff00, 0 x15feff00,
0 x14feff00, 0 x13feff00, 0 x11feff00, 0 x10fd0000,
0 x2411feff, 0 x2410feff, 0 x240ffeff, 0 x230efeff,
0 x240dfeff, 0 x240cfeff, 0 x230cfd00, 0 x230bfd00,
0 x230afd00, 0 x2309fd00, 0 x2208fd00, 0 x2108fd00,
0 x2007fd00, 0 x2106fd00, 0 x2005fd00, 0 x1f05fd00,
0 x1f04fd00, 0 x1e03fd00, 0 x1d03fe00, 0 x1c02fe00,
0 x1b02fe00, 0 x1a01fe00, 0 x1a01fe00, 0 x1900fe00,
0 x1800fe00, 0 x1700fe00, 0 x16fffe00, 0 x15fffe00,
0 x13ffff00, 0 x12ffff00, 0 x12feff00, 0 x11feff00,
0 x2212fffe, 0 x2211fffe, 0 x2210ffff, 0 x220ffeff,
0 x220efeff, 0 x210efeff, 0 x210dfeff, 0 x210cfeff,
0 x210bfeff, 0 x200bfeff, 0 x200afeff, 0 x1f09feff,
0 x1f08feff, 0 x1d08fe00, 0 x1e07fd00, 0 x1e06fd00,
0 x1d06fd00, 0 x1c05fd00, 0 x1b04fe00, 0 x1a04fe00,
0 x1a03fe00, 0 x1903fe00, 0 x1802fe00, 0 x1802fe00,
0 x1701fe00, 0 x1601fe00, 0 x1501fe00, 0 x1500fe00,
0 x1400fe00, 0 x1400fe00, 0 x13fffe00, 0 x12fffe00,
0 x201200fe, 0 x201100fe, 0 x1f1100fe, 0 x2010fffe,
0 x200ffffe, 0 x1f0ffffe, 0 x1f0efffe, 0 x1e0dffff,
0 x1f0cfeff, 0 x1e0cfeff, 0 x1e0bfeff, 0 x1e0afeff,
0 x1d0afeff, 0 x1d09feff, 0 x1c08feff, 0 x1b08feff,
0 x1b07feff, 0 x1a07feff, 0 x1a06feff, 0 x1a05feff,
0 x1805fe00, 0 x1904fe00, 0 x1704fe00, 0 x1703fe00,
0 x1603fe00, 0 x1602fe00, 0 x1402fe00, 0 x1402fe00,
0 x1401fe00, 0 x1301fe00, 0 x1201fe00, 0 x1200fe00,
0 x1c1202fe, 0 x1c1102fe, 0 x1b1102fe, 0 x1c1001fe,
0 x1b1001fe, 0 x1c0f01fe, 0 x1b0f00fe, 0 x1b0e00fe,
0 x1b0e00fe, 0 x1b0d00fe, 0 x1b0c00fe, 0 x1a0cfffe,
0 x1a0bfffe, 0 x1a0bfffe, 0 x190afffe, 0 x190afffe,
0 x1909fffe, 0 x1709ffff, 0 x1808ffff, 0 x1708feff,
0 x1707feff, 0 x1707feff, 0 x1606feff, 0 x1506feff,
0 x1505feff, 0 x1505feff, 0 x1404feff, 0 x1404feff,
0 x1404feff, 0 x1303feff, 0 x1203feff, 0 x1202feff,
0 x191104fe, 0 x191104fe, 0 x191003fe, 0 x191003fe,
0 x171003fe, 0 x180f03fe, 0 x180f02fe, 0 x180e02fe,
0 x180e02fe, 0 x180d01fe, 0 x180d01fe, 0 x180d01fe,
0 x170c01fe, 0 x160c01fe, 0 x170b00fe, 0 x170b00fe,
0 x160a00fe, 0 x160a00fe, 0 x160a00fe, 0 x150900fe,
0 x1509fffe, 0 x1508fffe, 0 x1508fffe, 0 x1408fffe,
0 x1407fffe, 0 x1307ffff, 0 x1306ffff, 0 x1206ffff,
0 x1206ffff, 0 x1205ffff, 0 x1205ffff, 0 x1104feff,
0 x161006ff, 0 x161005ff, 0 x161005ff, 0 x160f05ff,
0 x160f04ff, 0 x150f04ff, 0 x150e04ff, 0 x150e04ff,
0 x150e03ff, 0 x150d03ff, 0 x150d03ff, 0 x150d02ff,
0 x140c02ff, 0 x150c02fe, 0 x150c02fe, 0 x150b02fe,
0 x140b01fe, 0 x140b01fe, 0 x140a01fe, 0 x140a01fe,
0 x140a01fe, 0 x130900fe, 0 x130900fe, 0 x130900fe,
0 x130800fe, 0 x120800fe, 0 x120800fe, 0 x120700fe,
0 x120700fe, 0 x1107fffe, 0 x1106fffe, 0 x1106fffe,
0 x140f0700, 0 x140f0600, 0 x140f0600, 0 x140f0600,
0 x140e0600, 0 x130e0500, 0 x140e05ff, 0 x130e05ff,
0 x140d05ff, 0 x130d04ff, 0 x130d04ff, 0 x120d04ff,
0 x130c04ff, 0 x130c03ff, 0 x130c03ff, 0 x120c03ff,
0 x120b03ff, 0 x120b02ff, 0 x120b02ff, 0 x120a02ff,
0 x120a02ff, 0 x110a02ff, 0 x110a01ff, 0 x120901ff,
0 x100901ff, 0 x100901ff, 0 x110801ff, 0 x110801ff,
0 x100800ff, 0 x100800ff, 0 x100700ff, 0 x100700fe,
0 x120f0701, 0 x120e0701, 0 x120e0701, 0 x120e0701,
0 x120e0600, 0 x110e0600, 0 x120d0600, 0 x120d0600,
0 x120d0500, 0 x120d0500, 0 x110d0500, 0 x110c0500,
0 x110c0500, 0 x110c0400, 0 x110c0400, 0 x110b04ff,
0 x110b04ff, 0 x110b04ff, 0 x110b03ff, 0 x110b03ff,
0 x110a03ff, 0 x110a03ff, 0 x100a03ff, 0 x110a02ff,
0 x100902ff, 0 x100902ff, 0 x100902ff, 0 x0f0902ff,
0 x0e0902ff, 0 x100801ff, 0 x0f0801ff, 0 x0f0801ff,
0 x100e0802, 0 x100e0802, 0 x110e0702, 0 x110d0701,
0 x110d0701, 0 x100d0701, 0 x100d0701, 0 x110d0601,
0 x110d0601, 0 x110c0601, 0 x110c0601, 0 x100c0600,
0 x100c0500, 0 x100c0500, 0 x100c0500, 0 x100b0500,
0 x100b0500, 0 x100b0400, 0 x100b0400, 0 x0f0b0400,
0 x100a0400, 0 x0f0a0400, 0 x0f0a0400, 0 x0f0a0300,
0 x0f0a03ff, 0 x0f0903ff, 0 x0f0903ff, 0 x0f0903ff,
0 x0f0903ff, 0 x0f0902ff, 0 x0f0902ff, 0 x0f0802ff
};
static const u32 bicubic8coefftab32_right[480 ] = {
0 x00000000, 0 x00000001, 0 x00000003, 0 x00000004,
0 x00000006, 0 x0000ff09, 0 x0000ff0a, 0 x0000ff0c,
0 x0000ff0f, 0 x0000fe12, 0 x0000fe14, 0 x0000fe16,
0 x0000fd19, 0 x0000fd1c, 0 x0000fd1e, 0 x0000fc21,
0 x0000fc24, 0 x0000fc27, 0 x0000fc29, 0 x0000fb2c,
0 x0000fb2f, 0 x0000fb31, 0 x0000fb33, 0 x0000fb36,
0 x0000fc38, 0 x0000fc39, 0 x0000fc3b, 0 x0000fc3d,
0 x0000fd3e, 0 x0000fe3f, 0 x0000fe40, 0 x0000ff40,
0 x0000ff05, 0 x0000ff06, 0 x0000fe08, 0 x0000fe09,
0 x0000fe0b, 0 x0000fe0d, 0 x0000fd0f, 0 x0000fd11,
0 x0000fd13, 0 x0000fd15, 0 x0000fc17, 0 x0000fc1a,
0 x0000fc1c, 0 x0000fc1e, 0 x0000fc20, 0 x0000fc22,
0 x0000fc24, 0 x0000fc26, 0 x0000fc28, 0 x0000fc2a,
0 x0000fc2c, 0 x0000fc2f, 0 x0000fd30, 0 x0000fd31,
0 x0000fe33, 0 x0000fe34, 0 x0000ff35, 0 x0000ff36,
0 x00000037, 0 x00000138, 0 x00ff0239, 0 x00ff0339,
0 x0000fe09, 0 x0000fd0a, 0 x0000fd0c, 0 x0000fd0d,
0 x0000fd0f, 0 x0000fd11, 0 x0000fc12, 0 x0000fc14,
0 x0000fc16, 0 x0000fc18, 0 x0000fc19, 0 x0000fc1b,
0 x0000fc1d, 0 x0000fc1e, 0 x0000fc21, 0 x0000fd22,
0 x0000fd23, 0 x0000fd25, 0 x0000fd27, 0 x0000fe28,
0 x0000fe29, 0 x0000fe2b, 0 x0000ff2c, 0 x00ffff2f,
0 x00ff002f, 0 x00ff0130, 0 x00ff0231, 0 x00ff0232,
0 x00fe0432, 0 x00fe0533, 0 x00fe0633, 0 x00fe0734,
0 x0000fd0c, 0 x0000fd0d, 0 x0000fd0f, 0 x0000fd10,
0 x0000fd11, 0 x0000fd13, 0 x0000fd14, 0 x0000fd16,
0 x0000fd17, 0 x0000fd19, 0 x0000fd1b, 0 x0000fd1c,
0 x0000fd1d, 0 x0000fd1f, 0 x0000fe20, 0 x0000fe21,
0 x00fffe24, 0 x00ffff24, 0 x00ffff25, 0 x00ffff27,
0 x00ff0027, 0 x00ff0128, 0 x00fe012a, 0 x00fe022a,
0 x00fe032b, 0 x00fe042c, 0 x00fe052d, 0 x00fe062d,
0 x00fd072e, 0 x00fd082e, 0 x00fd092e, 0 x00fd0b2f,
0 x0000fd0e, 0 x0000fd0f, 0 x0000fd10, 0 x0000fd12,
0 x0000fd13, 0 x0000fd14, 0 x0000fd15, 0 x0000fd17,
0 x0000fe18, 0 x00fffe1a, 0 x00fffe1b, 0 x00fffe1c,
0 x00fffe1e, 0 x00ffff1e, 0 x00ffff1f, 0 x00ff0021,
0 x00fe0022, 0 x00fe0023, 0 x00fe0124, 0 x00fe0224,
0 x00fe0226, 0 x00fe0326, 0 x00fe0427, 0 x00fd0528,
0 x00fd0628, 0 x00fd0729, 0 x00fd0829, 0 x00fd0929,
0 x00fd0a2a, 0 x00fd0b2a, 0 x00fd0c2a, 0 x00fd0d2a,
0 x0000fd10, 0 x0000fd11, 0 x00fffe12, 0 x00fffe13,
0 x00fffe14, 0 x00fffe15, 0 x00fffe16, 0 x00fffe17,
0 x00ffff18, 0 x00ffff19, 0 x00feff1c, 0 x00fe001b,
0 x00fe001d, 0 x00fe001e, 0 x00fe011e, 0 x00fe011f,
0 x00fe0220, 0 x00fe0321, 0 x00fe0322, 0 x00fd0423,
0 x00fd0524, 0 x00fd0624, 0 x00fd0626, 0 x00fd0725,
0 x00fd0825, 0 x00fd0926, 0 x00fd0a26, 0 x00fd0b26,
0 x00fd0c26, 0 x00fd0d26, 0 x00fd0e27, 0 x00fd0f27,
0 x00fffe11, 0 x00fffe12, 0 x00fffe13, 0 x00ffff14,
0 x00ffff14, 0 x00feff16, 0 x00feff17, 0 x00fe0017,
0 x00fe0018, 0 x00fe0019, 0 x00fe011a, 0 x00fe011b,
0 x00fe021c, 0 x00fe021c, 0 x00fe031d, 0 x00fd031f,
0 x00fd041f, 0 x00fd0520, 0 x00fd0520, 0 x00fd0621,
0 x00fd0721, 0 x00fd0822, 0 x00fd0822, 0 x00fd0923,
0 x00fd0a23, 0 x00fd0b23, 0 x00fd0b25, 0 x00fe0c24,
0 x00fe0d24, 0 x00fe0e24, 0 x00fe0f24, 0 x00fe1024,
0 x00feff12, 0 x00feff13, 0 x00feff13, 0 x00fe0014,
0 x00fe0015, 0 x00fe0016, 0 x00fe0116, 0 x00fe0117,
0 x00fe0118, 0 x00fe0218, 0 x00fe0219, 0 x00fe031a,
0 x00fe031b, 0 x00fe041b, 0 x00fd041d, 0 x00fd051d,
0 x00fd061d, 0 x00fd061f, 0 x00fe071e, 0 x00fe081e,
0 x00fe081f, 0 x00fe091f, 0 x00fe0a20, 0 x00fe0a20,
0 x00fe0b21, 0 x00fe0c21, 0 x00fe0d21, 0 x00fe0d22,
0 x00fe0e22, 0 x00fe0f21, 0 x00ff1021, 0 x00ff1022,
0 x00fe0012, 0 x00fe0013, 0 x00fe0113, 0 x00fe0114,
0 x00fe0115, 0 x00fe0215, 0 x00fe0216, 0 x00fe0217,
0 x00fe0317, 0 x00fe0318, 0 x00fe0418, 0 x00fe0419,
0 x00fe0519, 0 x00fe051a, 0 x00fe061b, 0 x00fe071b,
0 x00fe071c, 0 x00fe081c, 0 x00fe081d, 0 x00fe091d,
0 x00fe0a1d, 0 x00fe0a1d, 0 x00fe0b1e, 0 x00fe0c1e,
0 x00ff0c1e, 0 x00ff0d1e, 0 x00ff0e1f, 0 x00ff0e1f,
0 x00ff0f1f, 0 x00ff0f20, 0 x0000101f, 0 x0000111f,
0 x00fe0212, 0 x00fe0312, 0 x00fe0313, 0 x00fe0314,
0 x00fe0414, 0 x00fe0414, 0 x00fe0515, 0 x00fe0516,
0 x00fe0516, 0 x00fe0616, 0 x00fe0617, 0 x00fe0718,
0 x00fe0719, 0 x00fe0818, 0 x00ff0819, 0 x00ff0918,
0 x00ff0919, 0 x00ff0a19, 0 x00ff0a19, 0 x00ff0b1a,
0 x00ff0b1b, 0 x00ff0c1a, 0 x00000c1b, 0 x00000d1b,
0 x00000d1c, 0 x00000e1b, 0 x00000e1d, 0 x00010f1b,
0 x00010f1b, 0 x0001101c, 0 x0001101d, 0 x0002111c,
0 x00fe0412, 0 x00fe0412, 0 x00ff0512, 0 x00ff0512,
0 x00ff0613, 0 x00ff0613, 0 x00ff0614, 0 x00ff0714,
0 x00ff0714, 0 x00ff0815, 0 x00ff0815, 0 x00ff0815,
0 x00ff0916, 0 x00000916, 0 x00000a16, 0 x00000a16,
0 x00000a18, 0 x00000b17, 0 x00000b17, 0 x00010c17,
0 x00010c18, 0 x00010d18, 0 x00010d18, 0 x00010d19,
0 x00020e18, 0 x00020e18, 0 x00020f18, 0 x00030f18,
0 x00030f18, 0 x00031018, 0 x00031018, 0 x00041119,
0 x00ff0610, 0 x00ff0611, 0 x00ff0611, 0 x00ff0711,
0 x00000711, 0 x00000712, 0 x00000812, 0 x00000812,
0 x00000813, 0 x00000913, 0 x00000913, 0 x00000914,
0 x00010a14, 0 x00010a14, 0 x00010a14, 0 x00010b14,
0 x00010b16, 0 x00020b15, 0 x00020c15, 0 x00020c15,
0 x00020c15, 0 x00020d17, 0 x00030d16, 0 x00030d16,
0 x00030e16, 0 x00040e16, 0 x00040e16, 0 x00040f16,
0 x00040f16, 0 x00050f17, 0 x00051017, 0 x00051017,
0 x0000070f, 0 x00000710, 0 x00000710, 0 x00000710,
0 x00000810, 0 x00010811, 0 x00010811, 0 x00010911,
0 x00010911, 0 x00010913, 0 x00010913, 0 x00020a12,
0 x00020a12, 0 x00020a13, 0 x00020b12, 0 x00020b13,
0 x00030b13, 0 x00030c13, 0 x00030c13, 0 x00030c14,
0 x00040c13, 0 x00040d13, 0 x00040d14, 0 x00040d14,
0 x00050e14, 0 x00050e14, 0 x00050e14, 0 x00050e14,
0 x00060f14, 0 x00060f14, 0 x00060f15, 0 x00061015,
0 x0001070f, 0 x0001080f, 0 x0001080f, 0 x0001080f,
0 x00010811, 0 x00020910, 0 x00020910, 0 x00020910,
0 x00020911, 0 x00020a10, 0 x00030a10, 0 x00030a11,
0 x00030a11, 0 x00030b11, 0 x00030b11, 0 x00040b12,
0 x00040b12, 0 x00040c11, 0 x00040c12, 0 x00040c12,
0 x00050c12, 0 x00050c12, 0 x00050d12, 0 x00050d12,
0 x00060d13, 0 x00060d13, 0 x00060e12, 0 x00060e13,
0 x00070e13, 0 x00070e13, 0 x00070f13, 0 x00070f13,
0 x0002080e, 0 x0002080e, 0 x0002080e, 0 x00020810,
0 x0002090f, 0 x0003090f, 0 x0003090f, 0 x0003090f,
0 x0003090f, 0 x00030a0f, 0 x00030a0f, 0 x00040a10,
0 x00040a11, 0 x00040b10, 0 x00040b10, 0 x00040b11,
0 x00050b10, 0 x00050b11, 0 x00050c10, 0 x00050c11,
0 x00050c11, 0 x00060c11, 0 x00060c11, 0 x00060d11,
0 x00060d12, 0 x00070d12, 0 x00070d12, 0 x00070e11,
0 x00070e11, 0 x00070e12, 0 x00080e11, 0 x00080e12
};
static const u32 bicubic4coefftab32[480 ] = {
0 x00004000, 0 x000140ff, 0 x00033ffe, 0 x00043ffd,
0 x00063dfd, 0 xff083dfc, 0 xff0a3bfc, 0 xff0c39fc,
0 xff0e37fc, 0 xfe1136fb, 0 xfe1433fb, 0 xfe1631fb,
0 xfd192ffb, 0 xfd1c2cfb, 0 xfd1e29fc, 0 xfc2127fc,
0 xfc2424fc, 0 xfc2721fc, 0 xfc291efd, 0 xfb2c1cfd,
0 xfb2f19fd, 0 xfb3116fe, 0 xfb3314fe, 0 xfb3611fe,
0 xfc370eff, 0 xfc390cff, 0 xfc3b0aff, 0 xfc3d08ff,
0 xfd3d0600, 0 xfd3f0400, 0 xfe3f0300, 0 xff400100,
0 xfe053904, 0 xfe063903, 0 xfe083901, 0 xfe0a3800,
0 xfd0b3800, 0 xfe0d36ff, 0 xfd0f35ff, 0 xfd1134fe,
0 xfd1332fe, 0 xfd1531fd, 0 xfc1730fd, 0 xfc1a2efc,
0 xfc1c2cfc, 0 xfc1e2afc, 0 xfc2028fc, 0 xfc2226fc,
0 xfc2424fc, 0 xfc2622fc, 0 xfc2820fc, 0 xfc2a1efc,
0 xfc2c1cfc, 0 xfc2e1afc, 0 xfd3017fc, 0 xfd3115fd,
0 xfe3213fd, 0 xfe3411fd, 0 xff350ffd, 0 xff360dfe,
0 x00370bfe, 0 x013809fe, 0 x023808fe, 0 x033806ff,
0 xfd093208, 0 xfd0a3207, 0 xfd0c3205, 0 xfd0d3204,
0 xfc0f3203, 0 xfc113102, 0 xfc123002, 0 xfc143000,
0 xfc152f00, 0 xfc172d00, 0 xfc192cff, 0 xfc1b2bfe,
0 xfc1d29fe, 0 xfc1e28fe, 0 xfc2027fd, 0 xfd2125fd,
0 xfd2323fd, 0 xfd2521fd, 0 xfd2720fc, 0 xfe281efc,
0 xfe291dfc, 0 xfe2b1bfc, 0 xff2c19fc, 0 x002d17fc,
0 x002e16fc, 0 x012f14fc, 0 x022f12fd, 0 x023110fd,
0 x03310ffd, 0 x05310dfd, 0 x06320bfd, 0 x07320afd,
0 xfc0c2d0b, 0 xfc0d2d0a, 0 xfc0e2d09, 0 xfc102d07,
0 xfc112c07, 0 xfc132c05, 0 xfc142c04, 0 xfc162b03,
0 xfc172a03, 0 xfc192a01, 0 xfc1a2901, 0 xfd1b2800,
0 xfd1c2700, 0 xfd1e2500, 0 xfe1f24ff, 0 xfe2023ff,
0 xfe2222fe, 0 xff2320fe, 0 xff241ffe, 0 x00251efd,
0 x00271cfd, 0 x01271bfd, 0 x01281afd, 0 x022918fd,
0 x032a16fd, 0 x032b15fd, 0 x042b14fd, 0 x052c12fd,
0 x072c10fd, 0 x082c0ffd, 0 x092c0efd, 0 x0a2c0dfd,
0 xfd0d290d, 0 xfd0e290c, 0 xfd0f290b, 0 xfd11280a,
0 xfd122809, 0 xfd132808, 0 xfd142807, 0 xfd162706,
0 xfd172705, 0 xfd192604, 0 xfe1a2503, 0 xfe1b2502,
0 xfe1c2402, 0 xfe1d2302, 0 xff1e2201, 0 xff1f2101,
0 x00202000, 0 x00211f00, 0 x01221eff, 0 x02221dff,
0 x02241cfe, 0 x03241bfe, 0 x042519fe, 0 x042618fe,
0 x052617fe, 0 x062716fd, 0 x072714fe, 0 x082713fe,
0 x092812fd, 0 x0a2811fd, 0 x0b2810fd, 0 x0c280ffd,
0 xfd0f250f, 0 xfd10250e, 0 xfd11250d, 0 xfd12250c,
0 xfd13250b, 0 xfe13250a, 0 xfe152409, 0 xfe162408,
0 xfe172308, 0 xff182306, 0 xff192305, 0 xff1a2205,
0 x001b2104, 0 x001c2103, 0 x001d2003, 0 x011e1f02,
0 x011f1f01, 0 x021f1e01, 0 x03201d00, 0 x03211c00,
0 x04211b00, 0 x05221aff, 0 x062219ff, 0 x062318ff,
0 x082316ff, 0 x082316ff, 0 x092415fe, 0 x0a2414fe,
0 x0b2413fe, 0 x0c2412fe, 0 x0d2411fe, 0 x0e2410fe,
0 xfe10230f, 0 xfe11230e, 0 xfe12220e, 0 xfe13220d,
0 xfe14220c, 0 xff14220b, 0 xff15220a, 0 xff16210a,
0 x00162109, 0 x00172108, 0 x00182008, 0 x01192006,
0 x011a1f06, 0 x021a1f05, 0 x021b1e05, 0 x031c1d04,
0 x031d1d03, 0 x041d1c03, 0 x041e1b03, 0 x051e1b02,
0 x061f1a01, 0 x06201901, 0 x07201801, 0 x08201800,
0 x09201700, 0 x0a211500, 0 x0b2115ff, 0 x0c2114ff,
0 x0c2213ff, 0 x0d2212ff, 0 x0e2211ff, 0 x0f2211fe,
0 xff112010, 0 xff12200f, 0 xff12200f, 0 xff13200e,
0 x0013200d, 0 x0014200c, 0 x00151f0c, 0 x00161f0b,
0 x01161f0a, 0 x01171e0a, 0 x02171e09, 0 x02181e08,
0 x03191d07, 0 x03191d07, 0 x041a1c06, 0 x041b1c05,
0 x051b1b05, 0 x051c1b04, 0 x061c1a04, 0 x071c1a03,
0 x071d1903, 0 x081e1802, 0 x091d1802, 0 x091e1702,
0 x0a1f1601, 0 x0b1f1600, 0 x0b1f1501, 0 x0c201400,
0 x0d1f1400, 0 x0e2013ff, 0 x0f1f1200, 0 x102011ff,
0 x00111f10, 0 x00121e10, 0 x00131e0f, 0 x00131e0f,
0 x01131e0e, 0 x01141e0d, 0 x01151d0d, 0 x02151d0c,
0 x02161d0b, 0 x03161d0a, 0 x03171c0a, 0 x04171c09,
0 x04181c08, 0 x05181b08, 0 x05191b07, 0 x06191a07,
0 x061a1a06, 0 x071a1906, 0 x071b1905, 0 x081b1805,
0 x081c1804, 0 x091c1704, 0 x0a1c1703, 0 x0a1d1603,
0 x0b1d1602, 0 x0c1d1502, 0 x0c1d1502, 0 x0d1e1401,
0 x0e1d1401, 0 x0e1e1301, 0 x0f1e1300, 0 x101e1200,
0 x02111c11, 0 x02121c10, 0 x02131b10, 0 x03131b0f,
0 x03131b0f, 0 x03141b0e, 0 x04141b0d, 0 x04151a0d,
0 x05151a0c, 0 x05151a0c, 0 x05161a0b, 0 x0616190b,
0 x0616190b, 0 x0716190a, 0 x0717180a, 0 x08171809,
0 x08181808, 0 x09181708, 0 x09181708, 0 x0a181707,
0 x0a191607, 0 x0b191606, 0 x0b1a1605, 0 x0c1a1505,
0 x0c1a1505, 0 x0d1a1504, 0 x0d1b1404, 0 x0e1b1403,
0 x0f1b1303, 0 x0f1b1303, 0 x101b1302, 0 x101c1202,
0 x04111a11, 0 x04121911, 0 x04131910, 0 x0513190f,
0 x0513190f, 0 x0513190f, 0 x0613190e, 0 x0614180e,
0 x0714180d, 0 x0714180d, 0 x0715180c, 0 x0814180c,
0 x0815170c, 0 x0816170b, 0 x0916170a, 0 x0916170a,
0 x0a16160a, 0 x0a171609, 0 x0a171609, 0 x0b171608,
0 x0b171509, 0 x0c171508, 0 x0c181507, 0 x0d171507,
0 x0d181407, 0 x0e181406, 0 x0e181406, 0 x0e191306,
0 x0f191305, 0 x0f191305, 0 x10191304, 0 x10191205,
0 x05121811, 0 x06121810, 0 x06121810, 0 x06131710,
0 x0713170f, 0 x0713170f, 0 x0713170f, 0 x0813170e,
0 x0813170e, 0 x0814170d, 0 x0914160d, 0 x0914160d,
0 x0914160d, 0 x0a14160c, 0 x0a15160b, 0 x0a15150c,
0 x0b15150b, 0 x0b15150b, 0 x0b16150a, 0 x0c15150a,
0 x0c16140a, 0 x0d161409, 0 x0d161409, 0 x0d171408,
0 x0e161408, 0 x0e171308, 0 x0e171308, 0 x0f171307,
0 x0f171307, 0 x10171306, 0 x10181206, 0 x10181206,
0 x07111711, 0 x07121710, 0 x07121611, 0 x08121610,
0 x08121610, 0 x0813160f, 0 x0912160f, 0 x0913160e,
0 x0913160e, 0 x0913160e, 0 x0a14150d, 0 x0a14150d,
0 x0a14150d, 0 x0b14150c, 0 x0b14150c, 0 x0b14150c,
0 x0c14140c, 0 x0c15140b, 0 x0c15140b, 0 x0c15140b,
0 x0d15140a, 0 x0d15140a, 0 x0d15140a, 0 x0e161309,
0 x0e161309, 0 x0e161309, 0 x0f151309, 0 x0f161308,
0 x0f161209, 0 x10161208, 0 x10161208, 0 x10171207,
0 x0a111411, 0 x0b111410, 0 x0b111410, 0 x0b111410,
0 x0b111410, 0 x0b12140f, 0 x0b12140f, 0 x0c12130f,
0 x0c12130f, 0 x0c12130f, 0 x0c12130f, 0 x0c12130f,
0 x0d12130e, 0 x0d12130e, 0 x0d12130e, 0 x0d13130d,
0 x0d13130d, 0 x0d13130d, 0 x0e12130d, 0 x0e13120d,
0 x0e13120d, 0 x0e13120d, 0 x0e13120d, 0 x0f13120c,
0 x0f13120c, 0 x0f13120c, 0 x0f14120b, 0 x0f14120b,
0 x1013120b, 0 x1013120b, 0 x1013120b, 0 x1014110b,
0 x0c111310, 0 x0c111310, 0 x0c111310, 0 x0d101310,
0 x0d101310, 0 x0d111210, 0 x0d111210, 0 x0d111210,
0 x0d12120f, 0 x0d12120f, 0 x0d12120f, 0 x0d12120f,
0 x0e11120f, 0 x0e12120e, 0 x0e12120e, 0 x0e12120e,
0 x0e12120e, 0 x0e12120e, 0 x0e12120e, 0 x0e12120e,
0 x0f11120e, 0 x0f12120d, 0 x0f12120d, 0 x0f12120d,
0 x0f12120d, 0 x0f12110e, 0 x0f12110e, 0 x0f12110e,
0 x1012110d, 0 x1012110d, 0 x1013110c, 0 x1013110c,
};
static u32 sun8i_vi_scaler_base(struct sun8i_mixer *mixer, int channel)
{
if (mixer->cfg->de_type == SUN8I_MIXER_DE33)
return sun8i_channel_base(mixer, channel) + 0 x3000;
else if (mixer->cfg->de_type == SUN8I_MIXER_DE3)
return DE3_VI_SCALER_UNIT_BASE +
DE3_VI_SCALER_UNIT_SIZE * channel;
else
return DE2_VI_SCALER_UNIT_BASE +
DE2_VI_SCALER_UNIT_SIZE * channel;
}
static int sun8i_vi_scaler_coef_index(unsigned int step)
{
unsigned int scale, int_part, float_part;
scale = step >> (SUN8I_VI_SCALER_SCALE_FRAC - 3 );
int_part = scale >> 3 ;
float_part = scale & 0 x7;
switch (int_part) {
case 0 :
return 0 ;
case 1 :
return float_part;
case 2 :
return 8 + (float_part >> 1 );
case 3 :
return 12 ;
case 4 :
return 13 ;
default :
return 14 ;
}
}
static void sun8i_vi_scaler_set_coeff(struct regmap *map, u32 base,
u32 hstep, u32 vstep,
const struct drm_format_info *format)
{
const u32 *ch_left, *ch_right, *cy;
int offset, i;
if (format->hsub == 1 && format->vsub == 1 ) {
ch_left = lan3coefftab32_left;
ch_right = lan3coefftab32_right;
cy = lan2coefftab32;
} else {
ch_left = bicubic8coefftab32_left;
ch_right = bicubic8coefftab32_right;
cy = bicubic4coefftab32;
}
offset = sun8i_vi_scaler_coef_index(hstep) *
SUN8I_VI_SCALER_COEFF_COUNT;
for (i = 0 ; i < SUN8I_VI_SCALER_COEFF_COUNT; i++) {
regmap_write(map, SUN8I_SCALER_VSU_YHCOEFF0(base, i),
lan3coefftab32_left[offset + i]);
regmap_write(map, SUN8I_SCALER_VSU_YHCOEFF1(base, i),
lan3coefftab32_right[offset + i]);
regmap_write(map, SUN8I_SCALER_VSU_CHCOEFF0(base, i),
ch_left[offset + i]);
regmap_write(map, SUN8I_SCALER_VSU_CHCOEFF1(base, i),
ch_right[offset + i]);
}
offset = sun8i_vi_scaler_coef_index(hstep) *
SUN8I_VI_SCALER_COEFF_COUNT;
for (i = 0 ; i < SUN8I_VI_SCALER_COEFF_COUNT; i++) {
regmap_write(map, SUN8I_SCALER_VSU_YVCOEFF(base, i),
lan2coefftab32[offset + i]);
regmap_write(map, SUN8I_SCALER_VSU_CVCOEFF(base, i),
cy[offset + i]);
}
}
void sun8i_vi_scaler_enable(struct sun8i_mixer *mixer, int layer, bool enable)
{
u32 val, base;
base = sun8i_vi_scaler_base(mixer, layer);
if (enable)
val = SUN8I_SCALER_VSU_CTRL_EN |
SUN8I_SCALER_VSU_CTRL_COEFF_RDY;
else
val = 0 ;
regmap_write(mixer->engine.regs,
SUN8I_SCALER_VSU_CTRL(base), val);
}
void sun8i_vi_scaler_setup(struct sun8i_mixer *mixer, int layer,
u32 src_w, u32 src_h, u32 dst_w, u32 dst_h,
u32 hscale, u32 vscale, u32 hphase, u32 vphase,
const struct drm_format_info *format)
{
u32 chphase, cvphase;
u32 insize, outsize;
u32 base;
base = sun8i_vi_scaler_base(mixer, layer);
hphase <<= SUN8I_VI_SCALER_PHASE_FRAC - 16 ;
vphase <<= SUN8I_VI_SCALER_PHASE_FRAC - 16 ;
hscale <<= SUN8I_VI_SCALER_SCALE_FRAC - 16 ;
vscale <<= SUN8I_VI_SCALER_SCALE_FRAC - 16 ;
insize = SUN8I_VI_SCALER_SIZE(src_w, src_h);
outsize = SUN8I_VI_SCALER_SIZE(dst_w, dst_h);
/*
* This is chroma V/H phase calculation as it appears in
* BSP driver. There is no detailed explanation. YUV 420
* chroma is threated specialy for some reason.
*/
if (format->hsub == 2 && format->vsub == 2 ) {
chphase = hphase >> 1 ;
cvphase = (vphase >> 1 ) -
(1 UL << (SUN8I_VI_SCALER_SCALE_FRAC - 2 ));
} else {
chphase = hphase;
cvphase = vphase;
}
if (mixer->cfg->de_type >= SUN8I_MIXER_DE3) {
u32 val;
if (format->hsub == 1 && format->vsub == 1 )
val = SUN50I_SCALER_VSU_SCALE_MODE_UI;
else
val = SUN50I_SCALER_VSU_SCALE_MODE_NORMAL;
regmap_write(mixer->engine.regs,
SUN50I_SCALER_VSU_SCALE_MODE(base), val);
}
regmap_write(mixer->engine.regs,
SUN8I_SCALER_VSU_OUTSIZE(base), outsize);
regmap_write(mixer->engine.regs,
SUN8I_SCALER_VSU_YINSIZE(base), insize);
regmap_write(mixer->engine.regs,
SUN8I_SCALER_VSU_YHSTEP(base), hscale);
regmap_write(mixer->engine.regs,
SUN8I_SCALER_VSU_YVSTEP(base), vscale);
regmap_write(mixer->engine.regs,
SUN8I_SCALER_VSU_YHPHASE(base), hphase);
regmap_write(mixer->engine.regs,
SUN8I_SCALER_VSU_YVPHASE(base), vphase);
regmap_write(mixer->engine.regs,
SUN8I_SCALER_VSU_CINSIZE(base),
SUN8I_VI_SCALER_SIZE(src_w / format->hsub,
src_h / format->vsub));
regmap_write(mixer->engine.regs,
SUN8I_SCALER_VSU_CHSTEP(base),
hscale / format->hsub);
regmap_write(mixer->engine.regs,
SUN8I_SCALER_VSU_CVSTEP(base),
vscale / format->vsub);
regmap_write(mixer->engine.regs,
SUN8I_SCALER_VSU_CHPHASE(base), chphase);
regmap_write(mixer->engine.regs,
SUN8I_SCALER_VSU_CVPHASE(base), cvphase);
sun8i_vi_scaler_set_coeff(mixer->engine.regs, base,
hscale, vscale, format);
}
Messung V0.5 in Prozent C=95 H=92 G=93