root/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. sun8i_vi_scaler_base
  2. sun8i_vi_scaler_coef_index
  3. sun8i_vi_scaler_set_coeff
  4. sun8i_vi_scaler_enable
  5. sun8i_vi_scaler_setup

   1 /*
   2  * Copyright (C) 2017 Jernej Skrabec <jernej.skrabec@siol.net>
   3  *
   4  * Coefficients are taken from BSP driver, which is:
   5  * Copyright (C) 2014-2015 Allwinner
   6  *
   7  * This file is licensed under the terms of the GNU General Public
   8  * License version 2.  This program is licensed "as is" without any
   9  * warranty of any kind, whether express or implied.
  10  */
  11 
  12 #include "sun8i_vi_scaler.h"
  13 
  14 static const u32 lan3coefftab32_left[480] = {
  15         0x40000000, 0x40fe0000, 0x3ffd0100, 0x3efc0100,
  16         0x3efb0100, 0x3dfa0200, 0x3cf90200, 0x3bf80200,
  17         0x39f70200, 0x37f70200, 0x35f70200, 0x33f70200,
  18         0x31f70200, 0x2ef70200, 0x2cf70200, 0x2af70200,
  19         0x27f70200, 0x24f80100, 0x22f80100, 0x1ef90100,
  20         0x1cf90100, 0x19fa0100, 0x17fa0100, 0x14fb0100,
  21         0x11fc0000, 0x0ffc0000, 0x0cfd0000, 0x0afd0000,
  22         0x08fe0000, 0x05ff0000, 0x03ff0000, 0x02000000,
  23 
  24         0x3806fc02, 0x3805fc02, 0x3803fd01, 0x3801fe01,
  25         0x3700fe01, 0x35ffff01, 0x35fdff01, 0x34fc0001,
  26         0x34fb0000, 0x33fa0000, 0x31fa0100, 0x2ff90100,
  27         0x2df80200, 0x2bf80200, 0x2af70200, 0x28f70200,
  28         0x27f70200, 0x24f70300, 0x22f70300, 0x1ff70300,
  29         0x1ef70300, 0x1cf70300, 0x1af70300, 0x18f70300,
  30         0x16f80300, 0x13f80300, 0x11f90300, 0x0ef90300,
  31         0x0efa0200, 0x0cfa0200, 0x0afb0200, 0x08fb0200,
  32 
  33         0x320bfa02, 0x3309fa02, 0x3208fb02, 0x3206fb02,
  34         0x3205fb02, 0x3104fc02, 0x3102fc01, 0x3001fd01,
  35         0x3000fd01, 0x2ffffd01, 0x2efefe01, 0x2dfdfe01,
  36         0x2bfcff01, 0x29fcff01, 0x28fbff01, 0x27fa0001,
  37         0x26fa0000, 0x24f90000, 0x22f90100, 0x20f90100,
  38         0x1ff80100, 0x1ef80100, 0x1cf80100, 0x1af80200,
  39         0x18f80200, 0x17f80200, 0x15f80200, 0x12f80200,
  40         0x11f90200, 0x0ff90200, 0x0df90200, 0x0cfa0200,
  41 
  42         0x2e0efa01, 0x2f0dfa01, 0x2f0bfa01, 0x2e0afa01,
  43         0x2e09fa01, 0x2e07fb01, 0x2d06fb01, 0x2d05fb01,
  44         0x2c04fb01, 0x2b03fc01, 0x2a02fc01, 0x2a01fc01,
  45         0x2800fd01, 0x28fffd01, 0x26fefd01, 0x25fefe01,
  46         0x24fdfe01, 0x23fcfe01, 0x21fcff01, 0x20fbff01,
  47         0x1efbff01, 0x1efbff00, 0x1cfa0000, 0x1bfa0000,
  48         0x19fa0000, 0x18fa0000, 0x17f90000, 0x15f90100,
  49         0x14f90100, 0x12f90100, 0x11f90100, 0x0ff90100,
  50 
  51         0x2b10fa00, 0x2b0ffa00, 0x2b0efa00, 0x2b0cfa00,
  52         0x2b0bfa00, 0x2a0afb01, 0x2a09fb01, 0x2908fb01,
  53         0x2807fb01, 0x2806fb01, 0x2805fb01, 0x2604fc01,
  54         0x2503fc01, 0x2502fc01, 0x2401fc01, 0x2301fc01,
  55         0x2100fd01, 0x21fffd01, 0x21fffd01, 0x20fefd01,
  56         0x1dfefe01, 0x1cfdfe01, 0x1cfdfe00, 0x1bfcfe00,
  57         0x19fcff00, 0x19fbff00, 0x17fbff00, 0x16fbff00,
  58         0x15fbff00, 0x14fb0000, 0x13fa0000, 0x11fa0000,
  59 
  60         0x2811fcff, 0x2810fcff, 0x280ffbff, 0x280efbff,
  61         0x270dfb00, 0x270cfb00, 0x270bfb00, 0x260afb00,
  62         0x2609fb00, 0x2508fb00, 0x2507fb00, 0x2407fb00,
  63         0x2406fc00, 0x2305fc00, 0x2204fc00, 0x2203fc00,
  64         0x2103fc00, 0x2002fc00, 0x1f01fd00, 0x1e01fd00,
  65         0x1d00fd00, 0x1dfffd00, 0x1cfffd00, 0x1bfefd00,
  66         0x1afefe00, 0x19fefe00, 0x18fdfe00, 0x17fdfe00,
  67         0x16fdfe00, 0x15fcff00, 0x13fcff00, 0x12fcff00,
  68 
  69         0x2512fdfe, 0x2511fdff, 0x2410fdff, 0x240ffdff,
  70         0x240efcff, 0x240dfcff, 0x240dfcff, 0x240cfcff,
  71         0x230bfcff, 0x230afc00, 0x2209fc00, 0x2108fc00,
  72         0x2108fc00, 0x2007fc00, 0x2006fc00, 0x2005fc00,
  73         0x1f05fc00, 0x1e04fc00, 0x1e03fc00, 0x1c03fd00,
  74         0x1c02fd00, 0x1b02fd00, 0x1b01fd00, 0x1a00fd00,
  75         0x1900fd00, 0x1800fd00, 0x17fffe00, 0x16fffe00,
  76         0x16fefe00, 0x14fefe00, 0x13fefe00, 0x13fdfe00,
  77 
  78         0x2212fffe, 0x2211fefe, 0x2211fefe, 0x2110fefe,
  79         0x210ffeff, 0x220efdff, 0x210dfdff, 0x210dfdff,
  80         0x210cfdff, 0x210bfdff, 0x200afdff, 0x200afdff,
  81         0x1f09fdff, 0x1f08fdff, 0x1d08fd00, 0x1c07fd00,
  82         0x1d06fd00, 0x1b06fd00, 0x1b05fd00, 0x1c04fd00,
  83         0x1b04fd00, 0x1a03fd00, 0x1a03fd00, 0x1902fd00,
  84         0x1802fd00, 0x1801fd00, 0x1701fd00, 0x1600fd00,
  85         0x1400fe00, 0x1400fe00, 0x14fffe00, 0x13fffe00,
  86 
  87         0x201200fe, 0x201100fe, 0x1f11fffe, 0x2010fffe,
  88         0x1f0ffffe, 0x1e0ffffe, 0x1f0efeff, 0x1f0dfeff,
  89         0x1f0dfeff, 0x1e0cfeff, 0x1e0bfeff, 0x1d0bfeff,
  90         0x1d0afeff, 0x1d09fdff, 0x1d09fdff, 0x1c08fdff,
  91         0x1c07fdff, 0x1b07fd00, 0x1b06fd00, 0x1a06fd00,
  92         0x1a05fd00, 0x1805fd00, 0x1904fd00, 0x1804fd00,
  93         0x1703fd00, 0x1703fd00, 0x1602fe00, 0x1502fe00,
  94         0x1501fe00, 0x1401fe00, 0x1301fe00, 0x1300fe00,
  95 
  96         0x1c1202fe, 0x1c1102fe, 0x1b1102fe, 0x1c1001fe,
  97         0x1b1001fe, 0x1b0f01ff, 0x1b0e00ff, 0x1b0e00ff,
  98         0x1b0d00ff, 0x1a0d00ff, 0x1a0c00ff, 0x1a0cffff,
  99         0x1a0bffff, 0x1a0bffff, 0x1a0affff, 0x180affff,
 100         0x1909ffff, 0x1809ffff, 0x1808ffff, 0x1808feff,
 101         0x1807feff, 0x1707fe00, 0x1606fe00, 0x1506fe00,
 102         0x1605fe00, 0x1505fe00, 0x1504fe00, 0x1304fe00,
 103         0x1304fe00, 0x1303fe00, 0x1203fe00, 0x1203fe00,
 104 
 105         0x181104ff, 0x191103ff, 0x191003ff, 0x181003ff,
 106         0x180f03ff, 0x190f02ff, 0x190e02ff, 0x180e02ff,
 107         0x180d02ff, 0x180d01ff, 0x180d01ff, 0x180c01ff,
 108         0x180c01ff, 0x180b00ff, 0x170b00ff, 0x170a00ff,
 109         0x170a00ff, 0x170900ff, 0x160900ff, 0x160900ff,
 110         0x1608ffff, 0x1508ffff, 0x1507ff00, 0x1507ff00,
 111         0x1407ff00, 0x1306ff00, 0x1306ff00, 0x1305ff00,
 112         0x1205ff00, 0x1105ff00, 0x1204ff00, 0x1104ff00,
 113 
 114         0x171005ff, 0x171005ff, 0x171004ff, 0x170f04ff,
 115         0x160f04ff, 0x170f03ff, 0x170e03ff, 0x160e03ff,
 116         0x160d03ff, 0x160d02ff, 0x160d02ff, 0x160c02ff,
 117         0x160c02ff, 0x160c02ff, 0x160b01ff, 0x150b01ff,
 118         0x150a01ff, 0x150a01ff, 0x150a01ff, 0x140901ff,
 119         0x14090000, 0x14090000, 0x14080000, 0x13080000,
 120         0x13070000, 0x12070000, 0x12070000, 0x12060000,
 121         0x11060000, 0x11060000, 0x11050000, 0x1105ff00,
 122 
 123         0x14100600, 0x15100500, 0x150f0500, 0x150f0500,
 124         0x140f0500, 0x150e0400, 0x140e0400, 0x130e0400,
 125         0x140d0400, 0x150d0300, 0x130d0300, 0x140c0300,
 126         0x140c0300, 0x140c0200, 0x140b0200, 0x130b0200,
 127         0x120b0200, 0x130a0200, 0x130a0200, 0x130a0100,
 128         0x13090100, 0x12090100, 0x11090100, 0x12080100,
 129         0x11080100, 0x10080100, 0x11070100, 0x11070000,
 130         0x10070000, 0x11060000, 0x10060000, 0x10060000,
 131 
 132         0x140f0600, 0x140f0600, 0x130f0600, 0x140f0500,
 133         0x140e0500, 0x130e0500, 0x130e0500, 0x140d0400,
 134         0x140d0400, 0x130d0400, 0x120d0400, 0x130c0400,
 135         0x130c0300, 0x130c0300, 0x130b0300, 0x130b0300,
 136         0x110b0300, 0x130a0200, 0x120a0200, 0x120a0200,
 137         0x120a0200, 0x12090200, 0x10090200, 0x11090100,
 138         0x11080100, 0x11080100, 0x10080100, 0x10080100,
 139         0x10070100, 0x10070100, 0x0f070100, 0x10060100,
 140 
 141         0x120f0701, 0x130f0601, 0x130e0601, 0x130e0601,
 142         0x120e0601, 0x130e0501, 0x130e0500, 0x130d0500,
 143         0x120d0500, 0x120d0500, 0x130c0400, 0x130c0400,
 144         0x120c0400, 0x110c0400, 0x120b0400, 0x120b0300,
 145         0x120b0300, 0x120b0300, 0x120a0300, 0x110a0300,
 146         0x110a0200, 0x11090200, 0x11090200, 0x10090200,
 147         0x10090200, 0x10080200, 0x10080200, 0x10080100,
 148         0x0f080100, 0x10070100, 0x0f070100, 0x0f070100
 149 };
 150 
 151 static const u32 lan3coefftab32_right[480] = {
 152         0x00000000, 0x00000002, 0x0000ff04, 0x0000ff06,
 153         0x0000fe08, 0x0000fd0a, 0x0000fd0c, 0x0000fc0f,
 154         0x0000fc12, 0x0001fb14, 0x0001fa17, 0x0001fa19,
 155         0x0001f91c, 0x0001f91f, 0x0001f822, 0x0001f824,
 156         0x0002f727, 0x0002f72a, 0x0002f72c, 0x0002f72f,
 157         0x0002f731, 0x0002f733, 0x0002f735, 0x0002f737,
 158         0x0002f73a, 0x0002f83b, 0x0002f93c, 0x0002fa3d,
 159         0x0001fb3e, 0x0001fc3f, 0x0001fd40, 0x0000fe40,
 160 
 161         0x0002fc06, 0x0002fb08, 0x0002fb0a, 0x0002fa0c,
 162         0x0002fa0e, 0x0003f910, 0x0003f912, 0x0003f814,
 163         0x0003f816, 0x0003f719, 0x0003f71a, 0x0003f71d,
 164         0x0003f71f, 0x0003f721, 0x0003f723, 0x0003f725,
 165         0x0002f727, 0x0002f729, 0x0002f72b, 0x0002f82d,
 166         0x0002f82e, 0x0001f930, 0x0001fa31, 0x0000fa34,
 167         0x0000fb34, 0x0100fc35, 0x01fffd36, 0x01ffff37,
 168         0x01fe0037, 0x01fe0138, 0x01fd0338, 0x02fc0538,
 169 
 170         0x0002fa0b, 0x0002fa0c, 0x0002f90e, 0x0002f910,
 171         0x0002f911, 0x0002f813, 0x0002f816, 0x0002f817,
 172         0x0002f818, 0x0002f81a, 0x0001f81c, 0x0001f81e,
 173         0x0001f820, 0x0001f921, 0x0001f923, 0x0000f925,
 174         0x0000fa26, 0x0100fa28, 0x01fffb29, 0x01fffc2a,
 175         0x01fffc2c, 0x01fefd2d, 0x01fefe2e, 0x01fdff2f,
 176         0x01fd0030, 0x01fd0130, 0x01fc0232, 0x02fc0432,
 177         0x02fb0532, 0x02fb0633, 0x02fb0833, 0x02fa0933,
 178 
 179         0x0001fa0e, 0x0001f90f, 0x0001f911, 0x0001f913,
 180         0x0001f914, 0x0001f915, 0x0000f918, 0x0000fa18,
 181         0x0000fa1a, 0x0000fa1b, 0x0000fa1d, 0x00fffb1e,
 182         0x01fffb1f, 0x01fffb20, 0x01fffc22, 0x01fefc23,
 183         0x01fefd24, 0x01fefe25, 0x01fdfe27, 0x01fdff28,
 184         0x01fd0029, 0x01fc012a, 0x01fc022b, 0x01fc032b,
 185         0x01fb042d, 0x01fb052d, 0x01fb062e, 0x01fb072e,
 186         0x01fa092e, 0x01fa0a2f, 0x01fa0b2f, 0x01fa0d2f,
 187 
 188         0x0000fa11, 0x0000fa12, 0x0000fa13, 0x0000fb14,
 189         0x00fffb16, 0x00fffb16, 0x00fffb17, 0x00fffb19,
 190         0x00fffc1a, 0x00fefc1c, 0x00fefd1c, 0x01fefd1d,
 191         0x01fefe1e, 0x01fdfe20, 0x01fdff21, 0x01fdff22,
 192         0x01fd0023, 0x01fc0124, 0x01fc0124, 0x01fc0225,
 193         0x01fc0326, 0x01fc0427, 0x01fb0528, 0x01fb0629,
 194         0x01fb0729, 0x01fb0829, 0x01fb092a, 0x01fb0a2a,
 195         0x00fa0b2c, 0x00fa0c2b, 0x00fa0e2b, 0x00fa0f2c,
 196 
 197         0x00fffc11, 0x00fffc12, 0x00fffc14, 0x00fffc15,
 198         0x00fefd16, 0x00fefd17, 0x00fefd18, 0x00fefe19,
 199         0x00fefe1a, 0x00fdfe1d, 0x00fdff1d, 0x00fdff1e,
 200         0x00fd001d, 0x00fd011e, 0x00fd0120, 0x00fc0221,
 201         0x00fc0321, 0x00fc0323, 0x00fc0423, 0x00fc0523,
 202         0x00fc0624, 0x00fb0725, 0x00fb0726, 0x00fb0827,
 203         0x00fb0926, 0x00fb0a26, 0x00fb0b27, 0x00fb0c27,
 204         0x00fb0d27, 0xfffb0e28, 0xfffb0f29, 0xfffc1028,
 205 
 206         0x00fefd13, 0x00fefd13, 0x00fefe14, 0x00fefe15,
 207         0x00fefe17, 0x00feff17, 0x00feff17, 0x00fd0018,
 208         0x00fd001a, 0x00fd001a, 0x00fd011b, 0x00fd021c,
 209         0x00fd021c, 0x00fd031d, 0x00fc031f, 0x00fc041f,
 210         0x00fc051f, 0x00fc0521, 0x00fc0621, 0x00fc0721,
 211         0x00fc0821, 0x00fc0822, 0x00fc0922, 0x00fc0a23,
 212         0xfffc0b24, 0xfffc0c24, 0xfffc0d24, 0xfffc0d25,
 213         0xfffc0e25, 0xfffd0f25, 0xfffd1025, 0xfffd1125,
 214 
 215         0x00feff12, 0x00feff14, 0x00feff14, 0x00fe0015,
 216         0x00fe0015, 0x00fd0017, 0x00fd0118, 0x00fd0118,
 217         0x00fd0218, 0x00fd0219, 0x00fd031a, 0x00fd031a,
 218         0x00fd041b, 0x00fd041c, 0x00fd051c, 0x00fd061d,
 219         0x00fd061d, 0x00fd071e, 0x00fd081e, 0xfffd081f,
 220         0xfffd091f, 0xfffd0a20, 0xfffd0a20, 0xfffd0b21,
 221         0xfffd0c21, 0xfffd0d21, 0xfffd0d22, 0xfffd0e23,
 222         0xfffe0f22, 0xfefe1022, 0xfefe1122, 0xfefe1123,
 223 
 224         0x00fe0012, 0x00fe0013, 0x00fe0114, 0x00fe0114,
 225         0x00fe0116, 0x00fe0216, 0x00fe0216, 0x00fd0317,
 226         0x00fd0317, 0x00fd0418, 0x00fd0419, 0x00fd0519,
 227         0x00fd051a, 0x00fd061b, 0x00fd061b, 0x00fd071c,
 228         0xfffd071e, 0xfffd081d, 0xfffd091d, 0xfffd091e,
 229         0xfffe0a1d, 0xfffe0b1e, 0xfffe0b1e, 0xfffe0c1e,
 230         0xfffe0d1f, 0xfffe0d1f, 0xfffe0e1f, 0xfeff0f1f,
 231         0xfeff0f20, 0xfeff1020, 0xfeff1120, 0xfe001120,
 232 
 233         0x00fe0212, 0x00fe0312, 0x00fe0313, 0x00fe0314,
 234         0x00fe0414, 0x00fe0414, 0x00fe0416, 0x00fe0515,
 235         0x00fe0516, 0x00fe0616, 0x00fe0617, 0x00fe0717,
 236         0xfffe0719, 0xfffe0818, 0xffff0818, 0xffff0919,
 237         0xffff0919, 0xffff0a19, 0xffff0a1a, 0xffff0b1a,
 238         0xffff0b1b, 0xffff0c1a, 0xff000c1b, 0xff000d1b,
 239         0xff000d1b, 0xff000e1b, 0xff000e1c, 0xff010f1c,
 240         0xfe01101c, 0xfe01101d, 0xfe02111c, 0xfe02111c,
 241 
 242         0x00ff0411, 0x00ff0411, 0x00ff0412, 0x00ff0512,
 243         0x00ff0513, 0x00ff0513, 0x00ff0613, 0x00ff0614,
 244         0x00ff0714, 0x00ff0715, 0x00ff0715, 0xffff0816,
 245         0xffff0816, 0xff000916, 0xff000917, 0xff000918,
 246         0xff000a17, 0xff000a18, 0xff000b18, 0xff000b18,
 247         0xff010c18, 0xff010c19, 0xff010d18, 0xff010d18,
 248         0xff020d18, 0xff020e19, 0xff020e19, 0xff020f19,
 249         0xff030f19, 0xff031019, 0xff031019, 0xff031119,
 250 
 251         0x00ff0511, 0x00ff0511, 0x00000511, 0x00000611,
 252         0x00000612, 0x00000612, 0x00000712, 0x00000713,
 253         0x00000714, 0x00000814, 0x00000814, 0x00000914,
 254         0x00000914, 0xff010914, 0xff010a15, 0xff010a16,
 255         0xff010a17, 0xff010b16, 0xff010b16, 0xff020c16,
 256         0xff020c16, 0xff020c16, 0xff020d16, 0xff020d17,
 257         0xff030d17, 0xff030e17, 0xff030e17, 0xff030f17,
 258         0xff040f17, 0xff040f17, 0xff041017, 0xff051017,
 259 
 260         0x00000610, 0x00000610, 0x00000611, 0x00000611,
 261         0x00000711, 0x00000712, 0x00010712, 0x00010812,
 262         0x00010812, 0x00010812, 0x00010913, 0x00010913,
 263         0x00010913, 0x00010a13, 0x00020a13, 0x00020a14,
 264         0x00020b14, 0x00020b14, 0x00020b14, 0x00020c14,
 265         0x00030c14, 0x00030c15, 0x00030d15, 0x00030d15,
 266         0x00040d15, 0x00040e15, 0x00040e15, 0x00040e16,
 267         0x00050f15, 0x00050f15, 0x00050f16, 0x00051015,
 268 
 269         0x00000611, 0x00010610, 0x00010710, 0x00010710,
 270         0x00010711, 0x00010811, 0x00010811, 0x00010812,
 271         0x00010812, 0x00010912, 0x00020912, 0x00020912,
 272         0x00020a12, 0x00020a12, 0x00020a13, 0x00020a13,
 273         0x00030b13, 0x00030b13, 0x00030b14, 0x00030c13,
 274         0x00030c13, 0x00040c13, 0x00040d14, 0x00040d14,
 275         0x00040d15, 0x00040d15, 0x00050e14, 0x00050e14,
 276         0x00050e15, 0x00050f14, 0x00060f14, 0x00060f14,
 277 
 278         0x0001070f, 0x0001070f, 0x00010710, 0x00010710,
 279         0x00010810, 0x00010810, 0x00020810, 0x00020811,
 280         0x00020911, 0x00020911, 0x00020912, 0x00020912,
 281         0x00020a12, 0x00030a12, 0x00030a12, 0x00030b12,
 282         0x00030b12, 0x00030b12, 0x00040b12, 0x00040c12,
 283         0x00040c13, 0x00040c14, 0x00040c14, 0x00050d13,
 284         0x00050d13, 0x00050d14, 0x00050e13, 0x01050e13,
 285         0x01060e13, 0x01060e13, 0x01060e14, 0x01060f13
 286 };
 287 
 288 static const u32 lan2coefftab32[480] = {
 289         0x00004000, 0x000140ff, 0x00033ffe, 0x00043ffd,
 290         0x00063efc, 0xff083dfc, 0x000a3bfb, 0xff0d39fb,
 291         0xff0f37fb, 0xff1136fa, 0xfe1433fb, 0xfe1631fb,
 292         0xfd192ffb, 0xfd1c2cfb, 0xfd1f29fb, 0xfc2127fc,
 293         0xfc2424fc, 0xfc2721fc, 0xfb291ffd, 0xfb2c1cfd,
 294         0xfb2f19fd, 0xfb3116fe, 0xfb3314fe, 0xfa3611ff,
 295         0xfb370fff, 0xfb390dff, 0xfb3b0a00, 0xfc3d08ff,
 296         0xfc3e0600, 0xfd3f0400, 0xfe3f0300, 0xff400100,
 297 
 298         0xff053804, 0xff063803, 0xff083801, 0xff093701,
 299         0xff0a3700, 0xff0c3500, 0xff0e34ff, 0xff1033fe,
 300         0xff1232fd, 0xfe1431fd, 0xfe162ffd, 0xfe182dfd,
 301         0xfd1b2cfc, 0xfd1d2afc, 0xfd1f28fc, 0xfd2126fc,
 302         0xfd2323fd, 0xfc2621fd, 0xfc281ffd, 0xfc2a1dfd,
 303         0xfc2c1bfd, 0xfd2d18fe, 0xfd2f16fe, 0xfd3114fe,
 304         0xfd3212ff, 0xfe3310ff, 0xff340eff, 0x00350cff,
 305         0x00360a00, 0x01360900, 0x02370700, 0x03370600,
 306 
 307         0xff083207, 0xff093206, 0xff0a3205, 0xff0c3203,
 308         0xff0d3103, 0xff0e3102, 0xfe113001, 0xfe132f00,
 309         0xfe142e00, 0xfe162dff, 0xfe182bff, 0xfe192aff,
 310         0xfe1b29fe, 0xfe1d27fe, 0xfe1f25fe, 0xfd2124fe,
 311         0xfe2222fe, 0xfe2421fd, 0xfe251ffe, 0xfe271dfe,
 312         0xfe291bfe, 0xff2a19fe, 0xff2b18fe, 0xff2d16fe,
 313         0x002e14fe, 0x002f12ff, 0x013010ff, 0x02300fff,
 314         0x03310dff, 0x04310cff, 0x05310a00, 0x06310900,
 315 
 316         0xff0a2e09, 0xff0b2e08, 0xff0c2e07, 0xff0e2d06,
 317         0xff0f2d05, 0xff102d04, 0xff122c03, 0xfe142c02,
 318         0xfe152b02, 0xfe172a01, 0xfe182901, 0xfe1a2800,
 319         0xfe1b2700, 0xfe1d2500, 0xff1e24ff, 0xfe2023ff,
 320         0xff2121ff, 0xff2320fe, 0xff241eff, 0x00251dfe,
 321         0x00261bff, 0x00281afe, 0x012818ff, 0x012a16ff,
 322         0x022a15ff, 0x032b13ff, 0x032c12ff, 0x052c10ff,
 323         0x052d0fff, 0x062d0d00, 0x072d0c00, 0x082d0b00,
 324 
 325         0xff0c2a0b, 0xff0d2a0a, 0xff0e2a09, 0xff0f2a08,
 326         0xff102a07, 0xff112a06, 0xff132905, 0xff142904,
 327         0xff162803, 0xff172703, 0xff182702, 0xff1a2601,
 328         0xff1b2501, 0xff1c2401, 0xff1e2300, 0xff1f2200,
 329         0x00202000, 0x00211f00, 0x01221d00, 0x01231c00,
 330         0x01251bff, 0x02251aff, 0x032618ff, 0x032717ff,
 331         0x042815ff, 0x052814ff, 0x052913ff, 0x06291100,
 332         0x072a10ff, 0x082a0e00, 0x092a0d00, 0x0a2a0c00,
 333 
 334         0xff0d280c, 0xff0e280b, 0xff0f280a, 0xff102809,
 335         0xff112808, 0xff122708, 0xff142706, 0xff152705,
 336         0xff162605, 0xff172604, 0xff192503, 0xff1a2403,
 337         0x001b2302, 0x001c2202, 0x001d2201, 0x001e2101,
 338         0x011f1f01, 0x01211e00, 0x01221d00, 0x02221c00,
 339         0x02231b00, 0x03241900, 0x04241800, 0x04251700,
 340         0x052616ff, 0x06261400, 0x072713ff, 0x08271100,
 341         0x08271100, 0x09271000, 0x0a280e00, 0x0b280d00,
 342 
 343         0xff0e260d, 0xff0f260c, 0xff10260b, 0xff11260a,
 344         0xff122609, 0xff132608, 0xff142508, 0xff152507,
 345         0x00152506, 0x00172405, 0x00182305, 0x00192304,
 346         0x001b2203, 0x001c2103, 0x011d2002, 0x011d2002,
 347         0x011f1f01, 0x021f1e01, 0x02201d01, 0x03211c00,
 348         0x03221b00, 0x04221a00, 0x04231801, 0x05241700,
 349         0x06241600, 0x07241500, 0x08251300, 0x09251200,
 350         0x09261100, 0x0a261000, 0x0b260f00, 0x0c260e00,
 351 
 352         0xff0e250e, 0xff0f250d, 0xff10250c, 0xff11250b,
 353         0x0011250a, 0x00132409, 0x00142408, 0x00152407,
 354         0x00162307, 0x00172306, 0x00182206, 0x00192205,
 355         0x011a2104, 0x011b2004, 0x011c2003, 0x021c1f03,
 356         0x021e1e02, 0x031e1d02, 0x03201c01, 0x04201b01,
 357         0x04211a01, 0x05221900, 0x05221801, 0x06231700,
 358         0x07231600, 0x07241500, 0x08241400, 0x09241300,
 359         0x0a241200, 0x0b241100, 0x0c241000, 0x0d240f00,
 360 
 361         0x000e240e, 0x000f240d, 0x0010240c, 0x0011240b,
 362         0x0013230a, 0x0013230a, 0x00142309, 0x00152308,
 363         0x00162208, 0x00172207, 0x01182106, 0x01192105,
 364         0x011a2005, 0x021b1f04, 0x021b1f04, 0x021d1e03,
 365         0x031d1d03, 0x031e1d02, 0x041e1c02, 0x041f1b02,
 366         0x05201a01, 0x05211901, 0x06211801, 0x07221700,
 367         0x07221601, 0x08231500, 0x09231400, 0x0a231300,
 368         0x0a231300, 0x0b231200, 0x0c231100, 0x0d231000,
 369 
 370         0x000f220f, 0x0010220e, 0x0011220d, 0x0012220c,
 371         0x0013220b, 0x0013220b, 0x0015210a, 0x0015210a,
 372         0x01162108, 0x01172008, 0x01182007, 0x02191f06,
 373         0x02191f06, 0x021a1e06, 0x031a1e05, 0x031c1d04,
 374         0x041c1c04, 0x041d1c03, 0x051d1b03, 0x051e1a03,
 375         0x061f1902, 0x061f1902, 0x07201801, 0x08201701,
 376         0x08211601, 0x09211501, 0x0a211500, 0x0b211400,
 377         0x0b221300, 0x0c221200, 0x0d221100, 0x0e221000,
 378 
 379         0x0010210f, 0x0011210e, 0x0011210e, 0x0012210d,
 380         0x0013210c, 0x0014200c, 0x0114200b, 0x0115200a,
 381         0x01161f0a, 0x01171f09, 0x02171f08, 0x02181e08,
 382         0x03181e07, 0x031a1d06, 0x031a1d06, 0x041b1c05,
 383         0x041c1c04, 0x051c1b04, 0x051d1a04, 0x061d1a03,
 384         0x071d1903, 0x071e1803, 0x081e1802, 0x081f1702,
 385         0x091f1602, 0x0a201501, 0x0b1f1501, 0x0b201401,
 386         0x0c211300, 0x0d211200, 0x0e201200, 0x0e211100,
 387 
 388         0x00102010, 0x0011200f, 0x0012200e, 0x0013200d,
 389         0x0013200d, 0x01141f0c, 0x01151f0b, 0x01151f0b,
 390         0x01161f0a, 0x02171e09, 0x02171e09, 0x03181d08,
 391         0x03191d07, 0x03191d07, 0x041a1c06, 0x041b1c05,
 392         0x051b1b05, 0x051c1b04, 0x061c1a04, 0x071d1903,
 393         0x071d1903, 0x081d1803, 0x081e1703, 0x091e1702,
 394         0x0a1f1601, 0x0a1f1502, 0x0b1f1501, 0x0c1f1401,
 395         0x0d201300, 0x0d201300, 0x0e201200, 0x0f201100,
 396 
 397         0x00102010, 0x0011200f, 0x00121f0f, 0x00131f0e,
 398         0x00141f0d, 0x01141f0c, 0x01141f0c, 0x01151e0c,
 399         0x02161e0a, 0x02171e09, 0x03171d09, 0x03181d08,
 400         0x03181d08, 0x04191c07, 0x041a1c06, 0x051a1b06,
 401         0x051b1b05, 0x061b1a05, 0x061c1a04, 0x071c1904,
 402         0x081c1903, 0x081d1803, 0x091d1703, 0x091e1702,
 403         0x0a1e1602, 0x0b1e1502, 0x0c1e1501, 0x0c1f1401,
 404         0x0d1f1400, 0x0e1f1300, 0x0e1f1201, 0x0f1f1200,
 405 
 406         0x00111e11, 0x00121e10, 0x00131e0f, 0x00131e0f,
 407         0x01131e0e, 0x01141d0e, 0x02151d0c, 0x02151d0c,
 408         0x02161d0b, 0x03161c0b, 0x03171c0a, 0x04171c09,
 409         0x04181b09, 0x05181b08, 0x05191b07, 0x06191a07,
 410         0x061a1a06, 0x071a1906, 0x071b1905, 0x081b1805,
 411         0x091b1804, 0x091c1704, 0x0a1c1703, 0x0a1c1604,
 412         0x0b1d1602, 0x0c1d1502, 0x0c1d1502, 0x0d1d1402,
 413         0x0e1d1401, 0x0e1e1301, 0x0f1e1300, 0x101e1200,
 414 
 415         0x00111e11, 0x00121e10, 0x00131d10, 0x01131d0f,
 416         0x01141d0e, 0x01141d0e, 0x02151c0d, 0x02151c0d,
 417         0x03161c0b, 0x03161c0b, 0x04171b0a, 0x04171b0a,
 418         0x05171b09, 0x05181a09, 0x06181a08, 0x06191a07,
 419         0x07191907, 0x071a1906, 0x081a1806, 0x081a1806,
 420         0x091a1805, 0x0a1b1704, 0x0a1b1704, 0x0b1c1603,
 421         0x0b1c1603, 0x0c1c1503, 0x0d1c1502, 0x0d1d1402,
 422         0x0e1d1401, 0x0f1d1301, 0x0f1d1301, 0x101e1200,
 423 };
 424 
 425 static const u32 bicubic8coefftab32_left[480] = {
 426         0x40000000, 0x40ff0000, 0x3ffe0000, 0x3efe0000,
 427         0x3dfd0000, 0x3cfc0000, 0x3bfc0000, 0x39fc0000,
 428         0x36fc0000, 0x35fb0000, 0x33fb0000, 0x31fb0000,
 429         0x2ffb0000, 0x2cfb0000, 0x29fc0000, 0x27fc0000,
 430         0x24fc0000, 0x21fc0000, 0x1efd0000, 0x1cfd0000,
 431         0x19fd0000, 0x16fe0000, 0x14fe0000, 0x11fe0000,
 432         0x0dff0000, 0x0cff0000, 0x0aff0000, 0x08ff0000,
 433         0x05000000, 0x03000000, 0x02000000, 0x01000000,
 434 
 435         0x3904ff00, 0x3903ff00, 0x3902ff00, 0x38010000,
 436         0x37000000, 0x36ff0000, 0x35ff0000, 0x34fe0000,
 437         0x32fe0000, 0x31fd0000, 0x30fd0000, 0x2efc0000,
 438         0x2cfc0000, 0x2afc0000, 0x28fc0000, 0x26fc0000,
 439         0x24fc0000, 0x22fc0000, 0x20fc0000, 0x1efc0000,
 440         0x1cfc0000, 0x19fc0000, 0x17fc0000, 0x15fd0000,
 441         0x12fd0000, 0x11fd0000, 0x0ffd0000, 0x0dfe0000,
 442         0x0bfe0000, 0x09fe0000, 0x08fe0000, 0x06ff0000,
 443 
 444         0x3209fe00, 0x3407fe00, 0x3306fe00, 0x3305fe00,
 445         0x3204fe00, 0x3102ff00, 0x3102ff00, 0x3001ff00,
 446         0x2f00ff00, 0x2effff00, 0x2cff0000, 0x2bfe0000,
 447         0x29fe0000, 0x28fe0000, 0x26fd0000, 0x24fd0000,
 448         0x23fd0000, 0x21fd0000, 0x20fc0000, 0x1efc0000,
 449         0x1dfc0000, 0x1bfc0000, 0x19fc0000, 0x17fc0000,
 450         0x16fc0000, 0x14fc0000, 0x12fc0000, 0x10fd0000,
 451         0x0ffd0000, 0x0dfd0000, 0x0cfd0000, 0x0afd0000,
 452 
 453         0x2e0cfd00, 0x2e0bfd00, 0x2e09fd00, 0x2e08fd00,
 454         0x2e07fd00, 0x2c06fe00, 0x2c05fe00, 0x2b04fe00,
 455         0x2b03fe00, 0x2a02fe00, 0x2901fe00, 0x2701ff00,
 456         0x2700ff00, 0x26ffff00, 0x24ffff00, 0x23ffff00,
 457         0x22feff00, 0x20fe0000, 0x1ffe0000, 0x1efd0000,
 458         0x1dfd0000, 0x1bfd0000, 0x1afd0000, 0x19fd0000,
 459         0x17fd0000, 0x15fd0000, 0x13fd0000, 0x12fd0000,
 460         0x11fd0000, 0x10fd0000, 0x0ffd0000, 0x0cfd0000,
 461 
 462         0x2a0efd00, 0x2a0dfd00, 0x2a0cfd00, 0x290bfd00,
 463         0x290afd00, 0x2909fd00, 0x2908fd00, 0x2807fd00,
 464         0x2706fd00, 0x2705fd00, 0x2604fe00, 0x2603fe00,
 465         0x2502fe00, 0x2402fe00, 0x2401fe00, 0x2200fe00,
 466         0x2200fe00, 0x2000ff00, 0x1fffff00, 0x1effff00,
 467         0x1dfeff00, 0x1cfeff00, 0x1afeff00, 0x19feff00,
 468         0x17fe0000, 0x16fd0000, 0x15fd0000, 0x14fd0000,
 469         0x12fd0000, 0x11fd0000, 0x10fd0000, 0x0ffd0000,
 470 
 471         0x2610fd00, 0x260ffd00, 0x260efd00, 0x260dfd00,
 472         0x260cfd00, 0x260bfd00, 0x260afd00, 0x2609fd00,
 473         0x2508fd00, 0x2507fd00, 0x2406fd00, 0x2406fd00,
 474         0x2305fd00, 0x2304fd00, 0x2203fe00, 0x2103fe00,
 475         0x2002fe00, 0x1f01fe00, 0x1e01fe00, 0x1e00fe00,
 476         0x1c00fe00, 0x1b00fe00, 0x1afffe00, 0x19ffff00,
 477         0x18ffff00, 0x17feff00, 0x16feff00, 0x15feff00,
 478         0x14feff00, 0x13feff00, 0x11feff00, 0x10fd0000,
 479 
 480         0x2411feff, 0x2410feff, 0x240ffeff, 0x230efeff,
 481         0x240dfeff, 0x240cfeff, 0x230cfd00, 0x230bfd00,
 482         0x230afd00, 0x2309fd00, 0x2208fd00, 0x2108fd00,
 483         0x2007fd00, 0x2106fd00, 0x2005fd00, 0x1f05fd00,
 484         0x1f04fd00, 0x1e03fd00, 0x1d03fe00, 0x1c02fe00,
 485         0x1b02fe00, 0x1a01fe00, 0x1a01fe00, 0x1900fe00,
 486         0x1800fe00, 0x1700fe00, 0x16fffe00, 0x15fffe00,
 487         0x13ffff00, 0x12ffff00, 0x12feff00, 0x11feff00,
 488 
 489         0x2212fffe, 0x2211fffe, 0x2210ffff, 0x220ffeff,
 490         0x220efeff, 0x210efeff, 0x210dfeff, 0x210cfeff,
 491         0x210bfeff, 0x200bfeff, 0x200afeff, 0x1f09feff,
 492         0x1f08feff, 0x1d08fe00, 0x1e07fd00, 0x1e06fd00,
 493         0x1d06fd00, 0x1c05fd00, 0x1b04fe00, 0x1a04fe00,
 494         0x1a03fe00, 0x1903fe00, 0x1802fe00, 0x1802fe00,
 495         0x1701fe00, 0x1601fe00, 0x1501fe00, 0x1500fe00,
 496         0x1400fe00, 0x1400fe00, 0x13fffe00, 0x12fffe00,
 497 
 498         0x201200fe, 0x201100fe, 0x1f1100fe, 0x2010fffe,
 499         0x200ffffe, 0x1f0ffffe, 0x1f0efffe, 0x1e0dffff,
 500         0x1f0cfeff, 0x1e0cfeff, 0x1e0bfeff, 0x1e0afeff,
 501         0x1d0afeff, 0x1d09feff, 0x1c08feff, 0x1b08feff,
 502         0x1b07feff, 0x1a07feff, 0x1a06feff, 0x1a05feff,
 503         0x1805fe00, 0x1904fe00, 0x1704fe00, 0x1703fe00,
 504         0x1603fe00, 0x1602fe00, 0x1402fe00, 0x1402fe00,
 505         0x1401fe00, 0x1301fe00, 0x1201fe00, 0x1200fe00,
 506 
 507         0x1c1202fe, 0x1c1102fe, 0x1b1102fe, 0x1c1001fe,
 508         0x1b1001fe, 0x1c0f01fe, 0x1b0f00fe, 0x1b0e00fe,
 509         0x1b0e00fe, 0x1b0d00fe, 0x1b0c00fe, 0x1a0cfffe,
 510         0x1a0bfffe, 0x1a0bfffe, 0x190afffe, 0x190afffe,
 511         0x1909fffe, 0x1709ffff, 0x1808ffff, 0x1708feff,
 512         0x1707feff, 0x1707feff, 0x1606feff, 0x1506feff,
 513         0x1505feff, 0x1505feff, 0x1404feff, 0x1404feff,
 514         0x1404feff, 0x1303feff, 0x1203feff, 0x1202feff,
 515 
 516         0x191104fe, 0x191104fe, 0x191003fe, 0x191003fe,
 517         0x171003fe, 0x180f03fe, 0x180f02fe, 0x180e02fe,
 518         0x180e02fe, 0x180d01fe, 0x180d01fe, 0x180d01fe,
 519         0x170c01fe, 0x160c01fe, 0x170b00fe, 0x170b00fe,
 520         0x160a00fe, 0x160a00fe, 0x160a00fe, 0x150900fe,
 521         0x1509fffe, 0x1508fffe, 0x1508fffe, 0x1408fffe,
 522         0x1407fffe, 0x1307ffff, 0x1306ffff, 0x1206ffff,
 523         0x1206ffff, 0x1205ffff, 0x1205ffff, 0x1104feff,
 524 
 525         0x161006ff, 0x161005ff, 0x161005ff, 0x160f05ff,
 526         0x160f04ff, 0x150f04ff, 0x150e04ff, 0x150e04ff,
 527         0x150e03ff, 0x150d03ff, 0x150d03ff, 0x150d02ff,
 528         0x140c02ff, 0x150c02fe, 0x150c02fe, 0x150b02fe,
 529         0x140b01fe, 0x140b01fe, 0x140a01fe, 0x140a01fe,
 530         0x140a01fe, 0x130900fe, 0x130900fe, 0x130900fe,
 531         0x130800fe, 0x120800fe, 0x120800fe, 0x120700fe,
 532         0x120700fe, 0x1107fffe, 0x1106fffe, 0x1106fffe,
 533 
 534         0x140f0700, 0x140f0600, 0x140f0600, 0x140f0600,
 535         0x140e0600, 0x130e0500, 0x140e05ff, 0x130e05ff,
 536         0x140d05ff, 0x130d04ff, 0x130d04ff, 0x120d04ff,
 537         0x130c04ff, 0x130c03ff, 0x130c03ff, 0x120c03ff,
 538         0x120b03ff, 0x120b02ff, 0x120b02ff, 0x120a02ff,
 539         0x120a02ff, 0x110a02ff, 0x110a01ff, 0x120901ff,
 540         0x100901ff, 0x100901ff, 0x110801ff, 0x110801ff,
 541         0x100800ff, 0x100800ff, 0x100700ff, 0x100700fe,
 542 
 543         0x120f0701, 0x120e0701, 0x120e0701, 0x120e0701,
 544         0x120e0600, 0x110e0600, 0x120d0600, 0x120d0600,
 545         0x120d0500, 0x120d0500, 0x110d0500, 0x110c0500,
 546         0x110c0500, 0x110c0400, 0x110c0400, 0x110b04ff,
 547         0x110b04ff, 0x110b04ff, 0x110b03ff, 0x110b03ff,
 548         0x110a03ff, 0x110a03ff, 0x100a03ff, 0x110a02ff,
 549         0x100902ff, 0x100902ff, 0x100902ff, 0x0f0902ff,
 550         0x0e0902ff, 0x100801ff, 0x0f0801ff, 0x0f0801ff,
 551 
 552         0x100e0802, 0x100e0802, 0x110e0702, 0x110d0701,
 553         0x110d0701, 0x100d0701, 0x100d0701, 0x110d0601,
 554         0x110d0601, 0x110c0601, 0x110c0601, 0x100c0600,
 555         0x100c0500, 0x100c0500, 0x100c0500, 0x100b0500,
 556         0x100b0500, 0x100b0400, 0x100b0400, 0x0f0b0400,
 557         0x100a0400, 0x0f0a0400, 0x0f0a0400, 0x0f0a0300,
 558         0x0f0a03ff, 0x0f0903ff, 0x0f0903ff, 0x0f0903ff,
 559         0x0f0903ff, 0x0f0902ff, 0x0f0902ff, 0x0f0802ff
 560 };
 561 
 562 static const u32 bicubic8coefftab32_right[480] = {
 563         0x00000000, 0x00000001, 0x00000003, 0x00000004,
 564         0x00000006, 0x0000ff09, 0x0000ff0a, 0x0000ff0c,
 565         0x0000ff0f, 0x0000fe12, 0x0000fe14, 0x0000fe16,
 566         0x0000fd19, 0x0000fd1c, 0x0000fd1e, 0x0000fc21,
 567         0x0000fc24, 0x0000fc27, 0x0000fc29, 0x0000fb2c,
 568         0x0000fb2f, 0x0000fb31, 0x0000fb33, 0x0000fb36,
 569         0x0000fc38, 0x0000fc39, 0x0000fc3b, 0x0000fc3d,
 570         0x0000fd3e, 0x0000fe3f, 0x0000fe40, 0x0000ff40,
 571 
 572         0x0000ff05, 0x0000ff06, 0x0000fe08, 0x0000fe09,
 573         0x0000fe0b, 0x0000fe0d, 0x0000fd0f, 0x0000fd11,
 574         0x0000fd13, 0x0000fd15, 0x0000fc17, 0x0000fc1a,
 575         0x0000fc1c, 0x0000fc1e, 0x0000fc20, 0x0000fc22,
 576         0x0000fc24, 0x0000fc26, 0x0000fc28, 0x0000fc2a,
 577         0x0000fc2c, 0x0000fc2f, 0x0000fd30, 0x0000fd31,
 578         0x0000fe33, 0x0000fe34, 0x0000ff35, 0x0000ff36,
 579         0x00000037, 0x00000138, 0x00ff0239, 0x00ff0339,
 580 
 581         0x0000fe09, 0x0000fd0a, 0x0000fd0c, 0x0000fd0d,
 582         0x0000fd0f, 0x0000fd11, 0x0000fc12, 0x0000fc14,
 583         0x0000fc16, 0x0000fc18, 0x0000fc19, 0x0000fc1b,
 584         0x0000fc1d, 0x0000fc1e, 0x0000fc21, 0x0000fd22,
 585         0x0000fd23, 0x0000fd25, 0x0000fd27, 0x0000fe28,
 586         0x0000fe29, 0x0000fe2b, 0x0000ff2c, 0x00ffff2f,
 587         0x00ff002f, 0x00ff0130, 0x00ff0231, 0x00ff0232,
 588         0x00fe0432, 0x00fe0533, 0x00fe0633, 0x00fe0734,
 589 
 590         0x0000fd0c, 0x0000fd0d, 0x0000fd0f, 0x0000fd10,
 591         0x0000fd11, 0x0000fd13, 0x0000fd14, 0x0000fd16,
 592         0x0000fd17, 0x0000fd19, 0x0000fd1b, 0x0000fd1c,
 593         0x0000fd1d, 0x0000fd1f, 0x0000fe20, 0x0000fe21,
 594         0x00fffe24, 0x00ffff24, 0x00ffff25, 0x00ffff27,
 595         0x00ff0027, 0x00ff0128, 0x00fe012a, 0x00fe022a,
 596         0x00fe032b, 0x00fe042c, 0x00fe052d, 0x00fe062d,
 597         0x00fd072e, 0x00fd082e, 0x00fd092e, 0x00fd0b2f,
 598 
 599         0x0000fd0e, 0x0000fd0f, 0x0000fd10, 0x0000fd12,
 600         0x0000fd13, 0x0000fd14, 0x0000fd15, 0x0000fd17,
 601         0x0000fe18, 0x00fffe1a, 0x00fffe1b, 0x00fffe1c,
 602         0x00fffe1e, 0x00ffff1e, 0x00ffff1f, 0x00ff0021,
 603         0x00fe0022, 0x00fe0023, 0x00fe0124, 0x00fe0224,
 604         0x00fe0226, 0x00fe0326, 0x00fe0427, 0x00fd0528,
 605         0x00fd0628, 0x00fd0729, 0x00fd0829, 0x00fd0929,
 606         0x00fd0a2a, 0x00fd0b2a, 0x00fd0c2a, 0x00fd0d2a,
 607 
 608         0x0000fd10, 0x0000fd11, 0x00fffe12, 0x00fffe13,
 609         0x00fffe14, 0x00fffe15, 0x00fffe16, 0x00fffe17,
 610         0x00ffff18, 0x00ffff19, 0x00feff1c, 0x00fe001b,
 611         0x00fe001d, 0x00fe001e, 0x00fe011e, 0x00fe011f,
 612         0x00fe0220, 0x00fe0321, 0x00fe0322, 0x00fd0423,
 613         0x00fd0524, 0x00fd0624, 0x00fd0626, 0x00fd0725,
 614         0x00fd0825, 0x00fd0926, 0x00fd0a26, 0x00fd0b26,
 615         0x00fd0c26, 0x00fd0d26, 0x00fd0e27, 0x00fd0f27,
 616 
 617         0x00fffe11, 0x00fffe12, 0x00fffe13, 0x00ffff14,
 618         0x00ffff14, 0x00feff16, 0x00feff17, 0x00fe0017,
 619         0x00fe0018, 0x00fe0019, 0x00fe011a, 0x00fe011b,
 620         0x00fe021c, 0x00fe021c, 0x00fe031d, 0x00fd031f,
 621         0x00fd041f, 0x00fd0520, 0x00fd0520, 0x00fd0621,
 622         0x00fd0721, 0x00fd0822, 0x00fd0822, 0x00fd0923,
 623         0x00fd0a23, 0x00fd0b23, 0x00fd0b25, 0x00fe0c24,
 624         0x00fe0d24, 0x00fe0e24, 0x00fe0f24, 0x00fe1024,
 625 
 626         0x00feff12, 0x00feff13, 0x00feff13, 0x00fe0014,
 627         0x00fe0015, 0x00fe0016, 0x00fe0116, 0x00fe0117,
 628         0x00fe0118, 0x00fe0218, 0x00fe0219, 0x00fe031a,
 629         0x00fe031b, 0x00fe041b, 0x00fd041d, 0x00fd051d,
 630         0x00fd061d, 0x00fd061f, 0x00fe071e, 0x00fe081e,
 631         0x00fe081f, 0x00fe091f, 0x00fe0a20, 0x00fe0a20,
 632         0x00fe0b21, 0x00fe0c21, 0x00fe0d21, 0x00fe0d22,
 633         0x00fe0e22, 0x00fe0f21, 0x00ff1021, 0x00ff1022,
 634 
 635         0x00fe0012, 0x00fe0013, 0x00fe0113, 0x00fe0114,
 636         0x00fe0115, 0x00fe0215, 0x00fe0216, 0x00fe0217,
 637         0x00fe0317, 0x00fe0318, 0x00fe0418, 0x00fe0419,
 638         0x00fe0519, 0x00fe051a, 0x00fe061b, 0x00fe071b,
 639         0x00fe071c, 0x00fe081c, 0x00fe081d, 0x00fe091d,
 640         0x00fe0a1d, 0x00fe0a1d, 0x00fe0b1e, 0x00fe0c1e,
 641         0x00ff0c1e, 0x00ff0d1e, 0x00ff0e1f, 0x00ff0e1f,
 642         0x00ff0f1f, 0x00ff0f20, 0x0000101f, 0x0000111f,
 643 
 644         0x00fe0212, 0x00fe0312, 0x00fe0313, 0x00fe0314,
 645         0x00fe0414, 0x00fe0414, 0x00fe0515, 0x00fe0516,
 646         0x00fe0516, 0x00fe0616, 0x00fe0617, 0x00fe0718,
 647         0x00fe0719, 0x00fe0818, 0x00ff0819, 0x00ff0918,
 648         0x00ff0919, 0x00ff0a19, 0x00ff0a19, 0x00ff0b1a,
 649         0x00ff0b1b, 0x00ff0c1a, 0x00000c1b, 0x00000d1b,
 650         0x00000d1c, 0x00000e1b, 0x00000e1d, 0x00010f1b,
 651         0x00010f1b, 0x0001101c, 0x0001101d, 0x0002111c,
 652 
 653         0x00fe0412, 0x00fe0412, 0x00ff0512, 0x00ff0512,
 654         0x00ff0613, 0x00ff0613, 0x00ff0614, 0x00ff0714,
 655         0x00ff0714, 0x00ff0815, 0x00ff0815, 0x00ff0815,
 656         0x00ff0916, 0x00000916, 0x00000a16, 0x00000a16,
 657         0x00000a18, 0x00000b17, 0x00000b17, 0x00010c17,
 658         0x00010c18, 0x00010d18, 0x00010d18, 0x00010d19,
 659         0x00020e18, 0x00020e18, 0x00020f18, 0x00030f18,
 660         0x00030f18, 0x00031018, 0x00031018, 0x00041119,
 661 
 662         0x00ff0610, 0x00ff0611, 0x00ff0611, 0x00ff0711,
 663         0x00000711, 0x00000712, 0x00000812, 0x00000812,
 664         0x00000813, 0x00000913, 0x00000913, 0x00000914,
 665         0x00010a14, 0x00010a14, 0x00010a14, 0x00010b14,
 666         0x00010b16, 0x00020b15, 0x00020c15, 0x00020c15,
 667         0x00020c15, 0x00020d17, 0x00030d16, 0x00030d16,
 668         0x00030e16, 0x00040e16, 0x00040e16, 0x00040f16,
 669         0x00040f16, 0x00050f17, 0x00051017, 0x00051017,
 670 
 671         0x0000070f, 0x00000710, 0x00000710, 0x00000710,
 672         0x00000810, 0x00010811, 0x00010811, 0x00010911,
 673         0x00010911, 0x00010913, 0x00010913, 0x00020a12,
 674         0x00020a12, 0x00020a13, 0x00020b12, 0x00020b13,
 675         0x00030b13, 0x00030c13, 0x00030c13, 0x00030c14,
 676         0x00040c13, 0x00040d13, 0x00040d14, 0x00040d14,
 677         0x00050e14, 0x00050e14, 0x00050e14, 0x00050e14,
 678         0x00060f14, 0x00060f14, 0x00060f15, 0x00061015,
 679 
 680         0x0001070f, 0x0001080f, 0x0001080f, 0x0001080f,
 681         0x00010811, 0x00020910, 0x00020910, 0x00020910,
 682         0x00020911, 0x00020a10, 0x00030a10, 0x00030a11,
 683         0x00030a11, 0x00030b11, 0x00030b11, 0x00040b12,
 684         0x00040b12, 0x00040c11, 0x00040c12, 0x00040c12,
 685         0x00050c12, 0x00050c12, 0x00050d12, 0x00050d12,
 686         0x00060d13, 0x00060d13, 0x00060e12, 0x00060e13,
 687         0x00070e13, 0x00070e13, 0x00070f13, 0x00070f13,
 688 
 689         0x0002080e, 0x0002080e, 0x0002080e, 0x00020810,
 690         0x0002090f, 0x0003090f, 0x0003090f, 0x0003090f,
 691         0x0003090f, 0x00030a0f, 0x00030a0f, 0x00040a10,
 692         0x00040a11, 0x00040b10, 0x00040b10, 0x00040b11,
 693         0x00050b10, 0x00050b11, 0x00050c10, 0x00050c11,
 694         0x00050c11, 0x00060c11, 0x00060c11, 0x00060d11,
 695         0x00060d12, 0x00070d12, 0x00070d12, 0x00070e11,
 696         0x00070e11, 0x00070e12, 0x00080e11, 0x00080e12
 697 };
 698 
 699 static const u32 bicubic4coefftab32[480] = {
 700         0x00004000, 0x000140ff, 0x00033ffe, 0x00043ffd,
 701         0x00063dfd, 0xff083dfc, 0xff0a3bfc, 0xff0c39fc,
 702         0xff0e37fc, 0xfe1136fb, 0xfe1433fb, 0xfe1631fb,
 703         0xfd192ffb, 0xfd1c2cfb, 0xfd1e29fc, 0xfc2127fc,
 704         0xfc2424fc, 0xfc2721fc, 0xfc291efd, 0xfb2c1cfd,
 705         0xfb2f19fd, 0xfb3116fe, 0xfb3314fe, 0xfb3611fe,
 706         0xfc370eff, 0xfc390cff, 0xfc3b0aff, 0xfc3d08ff,
 707         0xfd3d0600, 0xfd3f0400, 0xfe3f0300, 0xff400100,
 708 
 709         0xfe053904, 0xfe063903, 0xfe083901, 0xfe0a3800,
 710         0xfd0b3800, 0xfe0d36ff, 0xfd0f35ff, 0xfd1134fe,
 711         0xfd1332fe, 0xfd1531fd, 0xfc1730fd, 0xfc1a2efc,
 712         0xfc1c2cfc, 0xfc1e2afc, 0xfc2028fc, 0xfc2226fc,
 713         0xfc2424fc, 0xfc2622fc, 0xfc2820fc, 0xfc2a1efc,
 714         0xfc2c1cfc, 0xfc2e1afc, 0xfd3017fc, 0xfd3115fd,
 715         0xfe3213fd, 0xfe3411fd, 0xff350ffd, 0xff360dfe,
 716         0x00370bfe, 0x013809fe, 0x023808fe, 0x033806ff,
 717 
 718         0xfd093208, 0xfd0a3207, 0xfd0c3205, 0xfd0d3204,
 719         0xfc0f3203, 0xfc113102, 0xfc123002, 0xfc143000,
 720         0xfc152f00, 0xfc172d00, 0xfc192cff, 0xfc1b2bfe,
 721         0xfc1d29fe, 0xfc1e28fe, 0xfc2027fd, 0xfd2125fd,
 722         0xfd2323fd, 0xfd2521fd, 0xfd2720fc, 0xfe281efc,
 723         0xfe291dfc, 0xfe2b1bfc, 0xff2c19fc, 0x002d17fc,
 724         0x002e16fc, 0x012f14fc, 0x022f12fd, 0x023110fd,
 725         0x03310ffd, 0x05310dfd, 0x06320bfd, 0x07320afd,
 726 
 727         0xfc0c2d0b, 0xfc0d2d0a, 0xfc0e2d09, 0xfc102d07,
 728         0xfc112c07, 0xfc132c05, 0xfc142c04, 0xfc162b03,
 729         0xfc172a03, 0xfc192a01, 0xfc1a2901, 0xfd1b2800,
 730         0xfd1c2700, 0xfd1e2500, 0xfe1f24ff, 0xfe2023ff,
 731         0xfe2222fe, 0xff2320fe, 0xff241ffe, 0x00251efd,
 732         0x00271cfd, 0x01271bfd, 0x01281afd, 0x022918fd,
 733         0x032a16fd, 0x032b15fd, 0x042b14fd, 0x052c12fd,
 734         0x072c10fd, 0x082c0ffd, 0x092c0efd, 0x0a2c0dfd,
 735 
 736         0xfd0d290d, 0xfd0e290c, 0xfd0f290b, 0xfd11280a,
 737         0xfd122809, 0xfd132808, 0xfd142807, 0xfd162706,
 738         0xfd172705, 0xfd192604, 0xfe1a2503, 0xfe1b2502,
 739         0xfe1c2402, 0xfe1d2302, 0xff1e2201, 0xff1f2101,
 740         0x00202000, 0x00211f00, 0x01221eff, 0x02221dff,
 741         0x02241cfe, 0x03241bfe, 0x042519fe, 0x042618fe,
 742         0x052617fe, 0x062716fd, 0x072714fe, 0x082713fe,
 743         0x092812fd, 0x0a2811fd, 0x0b2810fd, 0x0c280ffd,
 744 
 745         0xfd0f250f, 0xfd10250e, 0xfd11250d, 0xfd12250c,
 746         0xfd13250b, 0xfe13250a, 0xfe152409, 0xfe162408,
 747         0xfe172308, 0xff182306, 0xff192305, 0xff1a2205,
 748         0x001b2104, 0x001c2103, 0x001d2003, 0x011e1f02,
 749         0x011f1f01, 0x021f1e01, 0x03201d00, 0x03211c00,
 750         0x04211b00, 0x05221aff, 0x062219ff, 0x062318ff,
 751         0x082316ff, 0x082316ff, 0x092415fe, 0x0a2414fe,
 752         0x0b2413fe, 0x0c2412fe, 0x0d2411fe, 0x0e2410fe,
 753 
 754         0xfe10230f, 0xfe11230e, 0xfe12220e, 0xfe13220d,
 755         0xfe14220c, 0xff14220b, 0xff15220a, 0xff16210a,
 756         0x00162109, 0x00172108, 0x00182008, 0x01192006,
 757         0x011a1f06, 0x021a1f05, 0x021b1e05, 0x031c1d04,
 758         0x031d1d03, 0x041d1c03, 0x041e1b03, 0x051e1b02,
 759         0x061f1a01, 0x06201901, 0x07201801, 0x08201800,
 760         0x09201700, 0x0a211500, 0x0b2115ff, 0x0c2114ff,
 761         0x0c2213ff, 0x0d2212ff, 0x0e2211ff, 0x0f2211fe,
 762 
 763         0xff112010, 0xff12200f, 0xff12200f, 0xff13200e,
 764         0x0013200d, 0x0014200c, 0x00151f0c, 0x00161f0b,
 765         0x01161f0a, 0x01171e0a, 0x02171e09, 0x02181e08,
 766         0x03191d07, 0x03191d07, 0x041a1c06, 0x041b1c05,
 767         0x051b1b05, 0x051c1b04, 0x061c1a04, 0x071c1a03,
 768         0x071d1903, 0x081e1802, 0x091d1802, 0x091e1702,
 769         0x0a1f1601, 0x0b1f1600, 0x0b1f1501, 0x0c201400,
 770         0x0d1f1400, 0x0e2013ff, 0x0f1f1200, 0x102011ff,
 771 
 772         0x00111f10, 0x00121e10, 0x00131e0f, 0x00131e0f,
 773         0x01131e0e, 0x01141e0d, 0x01151d0d, 0x02151d0c,
 774         0x02161d0b, 0x03161d0a, 0x03171c0a, 0x04171c09,
 775         0x04181c08, 0x05181b08, 0x05191b07, 0x06191a07,
 776         0x061a1a06, 0x071a1906, 0x071b1905, 0x081b1805,
 777         0x081c1804, 0x091c1704, 0x0a1c1703, 0x0a1d1603,
 778         0x0b1d1602, 0x0c1d1502, 0x0c1d1502, 0x0d1e1401,
 779         0x0e1d1401, 0x0e1e1301, 0x0f1e1300, 0x101e1200,
 780 
 781         0x02111c11, 0x02121c10, 0x02131b10, 0x03131b0f,
 782         0x03131b0f, 0x03141b0e, 0x04141b0d, 0x04151a0d,
 783         0x05151a0c, 0x05151a0c, 0x05161a0b, 0x0616190b,
 784         0x0616190b, 0x0716190a, 0x0717180a, 0x08171809,
 785         0x08181808, 0x09181708, 0x09181708, 0x0a181707,
 786         0x0a191607, 0x0b191606, 0x0b1a1605, 0x0c1a1505,
 787         0x0c1a1505, 0x0d1a1504, 0x0d1b1404, 0x0e1b1403,
 788         0x0f1b1303, 0x0f1b1303, 0x101b1302, 0x101c1202,
 789 
 790         0x04111a11, 0x04121911, 0x04131910, 0x0513190f,
 791         0x0513190f, 0x0513190f, 0x0613190e, 0x0614180e,
 792         0x0714180d, 0x0714180d, 0x0715180c, 0x0814180c,
 793         0x0815170c, 0x0816170b, 0x0916170a, 0x0916170a,
 794         0x0a16160a, 0x0a171609, 0x0a171609, 0x0b171608,
 795         0x0b171509, 0x0c171508, 0x0c181507, 0x0d171507,
 796         0x0d181407, 0x0e181406, 0x0e181406, 0x0e191306,
 797         0x0f191305, 0x0f191305, 0x10191304, 0x10191205,
 798 
 799         0x05121811, 0x06121810, 0x06121810, 0x06131710,
 800         0x0713170f, 0x0713170f, 0x0713170f, 0x0813170e,
 801         0x0813170e, 0x0814170d, 0x0914160d, 0x0914160d,
 802         0x0914160d, 0x0a14160c, 0x0a15160b, 0x0a15150c,
 803         0x0b15150b, 0x0b15150b, 0x0b16150a, 0x0c15150a,
 804         0x0c16140a, 0x0d161409, 0x0d161409, 0x0d171408,
 805         0x0e161408, 0x0e171308, 0x0e171308, 0x0f171307,
 806         0x0f171307, 0x10171306, 0x10181206, 0x10181206,
 807 
 808         0x07111711, 0x07121710, 0x07121611, 0x08121610,
 809         0x08121610, 0x0813160f, 0x0912160f, 0x0913160e,
 810         0x0913160e, 0x0913160e, 0x0a14150d, 0x0a14150d,
 811         0x0a14150d, 0x0b14150c, 0x0b14150c, 0x0b14150c,
 812         0x0c14140c, 0x0c15140b, 0x0c15140b, 0x0c15140b,
 813         0x0d15140a, 0x0d15140a, 0x0d15140a, 0x0e161309,
 814         0x0e161309, 0x0e161309, 0x0f151309, 0x0f161308,
 815         0x0f161209, 0x10161208, 0x10161208, 0x10171207,
 816 
 817         0x0a111411, 0x0b111410, 0x0b111410, 0x0b111410,
 818         0x0b111410, 0x0b12140f, 0x0b12140f, 0x0c12130f,
 819         0x0c12130f, 0x0c12130f, 0x0c12130f, 0x0c12130f,
 820         0x0d12130e, 0x0d12130e, 0x0d12130e, 0x0d13130d,
 821         0x0d13130d, 0x0d13130d, 0x0e12130d, 0x0e13120d,
 822         0x0e13120d, 0x0e13120d, 0x0e13120d, 0x0f13120c,
 823         0x0f13120c, 0x0f13120c, 0x0f14120b, 0x0f14120b,
 824         0x1013120b, 0x1013120b, 0x1013120b, 0x1014110b,
 825 
 826         0x0c111310, 0x0c111310, 0x0c111310, 0x0d101310,
 827         0x0d101310, 0x0d111210, 0x0d111210, 0x0d111210,
 828         0x0d12120f, 0x0d12120f, 0x0d12120f, 0x0d12120f,
 829         0x0e11120f, 0x0e12120e, 0x0e12120e, 0x0e12120e,
 830         0x0e12120e, 0x0e12120e, 0x0e12120e, 0x0e12120e,
 831         0x0f11120e, 0x0f12120d, 0x0f12120d, 0x0f12120d,
 832         0x0f12120d, 0x0f12110e, 0x0f12110e, 0x0f12110e,
 833         0x1012110d, 0x1012110d, 0x1013110c, 0x1013110c,
 834 };
 835 
 836 static u32 sun8i_vi_scaler_base(struct sun8i_mixer *mixer, int channel)
 837 {
 838         if (mixer->cfg->is_de3)
 839                 return DE3_VI_SCALER_UNIT_BASE +
 840                        DE3_VI_SCALER_UNIT_SIZE * channel;
 841         else
 842                 return DE2_VI_SCALER_UNIT_BASE +
 843                        DE2_VI_SCALER_UNIT_SIZE * channel;
 844 }
 845 
 846 static int sun8i_vi_scaler_coef_index(unsigned int step)
 847 {
 848         unsigned int scale, int_part, float_part;
 849 
 850         scale = step >> (SUN8I_VI_SCALER_SCALE_FRAC - 3);
 851         int_part = scale >> 3;
 852         float_part = scale & 0x7;
 853 
 854         switch (int_part) {
 855         case 0:
 856                 return 0;
 857         case 1:
 858                 return float_part;
 859         case 2:
 860                 return 8 + (float_part >> 1);
 861         case 3:
 862                 return 12;
 863         case 4:
 864                 return 13;
 865         default:
 866                 return 14;
 867         }
 868 }
 869 
 870 static void sun8i_vi_scaler_set_coeff(struct regmap *map, u32 base,
 871                                       u32 hstep, u32 vstep,
 872                                       const struct drm_format_info *format)
 873 {
 874         const u32 *ch_left, *ch_right, *cy;
 875         int offset, i;
 876 
 877         if (format->hsub == 1 && format->vsub == 1) {
 878                 ch_left = lan3coefftab32_left;
 879                 ch_right = lan3coefftab32_right;
 880                 cy = lan2coefftab32;
 881         } else {
 882                 ch_left = bicubic8coefftab32_left;
 883                 ch_right = bicubic8coefftab32_right;
 884                 cy = bicubic4coefftab32;
 885         }
 886 
 887         offset = sun8i_vi_scaler_coef_index(hstep) *
 888                         SUN8I_VI_SCALER_COEFF_COUNT;
 889         for (i = 0; i < SUN8I_VI_SCALER_COEFF_COUNT; i++) {
 890                 regmap_write(map, SUN8I_SCALER_VSU_YHCOEFF0(base, i),
 891                              lan3coefftab32_left[offset + i]);
 892                 regmap_write(map, SUN8I_SCALER_VSU_YHCOEFF1(base, i),
 893                              lan3coefftab32_right[offset + i]);
 894                 regmap_write(map, SUN8I_SCALER_VSU_CHCOEFF0(base, i),
 895                              ch_left[offset + i]);
 896                 regmap_write(map, SUN8I_SCALER_VSU_CHCOEFF1(base, i),
 897                              ch_right[offset + i]);
 898         }
 899 
 900         offset = sun8i_vi_scaler_coef_index(hstep) *
 901                         SUN8I_VI_SCALER_COEFF_COUNT;
 902         for (i = 0; i < SUN8I_VI_SCALER_COEFF_COUNT; i++) {
 903                 regmap_write(map, SUN8I_SCALER_VSU_YVCOEFF(base, i),
 904                              lan2coefftab32[offset + i]);
 905                 regmap_write(map, SUN8I_SCALER_VSU_CVCOEFF(base, i),
 906                              cy[offset + i]);
 907         }
 908 }
 909 
 910 void sun8i_vi_scaler_enable(struct sun8i_mixer *mixer, int layer, bool enable)
 911 {
 912         u32 val, base;
 913 
 914         base = sun8i_vi_scaler_base(mixer, layer);
 915 
 916         if (enable)
 917                 val = SUN8I_SCALER_VSU_CTRL_EN |
 918                       SUN8I_SCALER_VSU_CTRL_COEFF_RDY;
 919         else
 920                 val = 0;
 921 
 922         regmap_write(mixer->engine.regs,
 923                      SUN8I_SCALER_VSU_CTRL(base), val);
 924 }
 925 
 926 void sun8i_vi_scaler_setup(struct sun8i_mixer *mixer, int layer,
 927                            u32 src_w, u32 src_h, u32 dst_w, u32 dst_h,
 928                            u32 hscale, u32 vscale, u32 hphase, u32 vphase,
 929                            const struct drm_format_info *format)
 930 {
 931         u32 chphase, cvphase;
 932         u32 insize, outsize;
 933         u32 base;
 934 
 935         base = sun8i_vi_scaler_base(mixer, layer);
 936 
 937         hphase <<= SUN8I_VI_SCALER_PHASE_FRAC - 16;
 938         vphase <<= SUN8I_VI_SCALER_PHASE_FRAC - 16;
 939         hscale <<= SUN8I_VI_SCALER_SCALE_FRAC - 16;
 940         vscale <<= SUN8I_VI_SCALER_SCALE_FRAC - 16;
 941 
 942         insize = SUN8I_VI_SCALER_SIZE(src_w, src_h);
 943         outsize = SUN8I_VI_SCALER_SIZE(dst_w, dst_h);
 944 
 945         /*
 946          * This is chroma V/H phase calculation as it appears in
 947          * BSP driver. There is no detailed explanation. YUV 420
 948          * chroma is threated specialy for some reason.
 949          */
 950         if (format->hsub == 2 && format->vsub == 2) {
 951                 chphase = hphase >> 1;
 952                 cvphase = (vphase >> 1) -
 953                         (1UL << (SUN8I_VI_SCALER_SCALE_FRAC - 2));
 954         } else {
 955                 chphase = hphase;
 956                 cvphase = vphase;
 957         }
 958 
 959         if (mixer->cfg->is_de3) {
 960                 u32 val;
 961 
 962                 if (format->hsub == 1 && format->vsub == 1)
 963                         val = SUN50I_SCALER_VSU_SCALE_MODE_UI;
 964                 else
 965                         val = SUN50I_SCALER_VSU_SCALE_MODE_NORMAL;
 966 
 967                 regmap_write(mixer->engine.regs,
 968                              SUN50I_SCALER_VSU_SCALE_MODE(base), val);
 969         }
 970 
 971         regmap_write(mixer->engine.regs,
 972                      SUN8I_SCALER_VSU_OUTSIZE(base), outsize);
 973         regmap_write(mixer->engine.regs,
 974                      SUN8I_SCALER_VSU_YINSIZE(base), insize);
 975         regmap_write(mixer->engine.regs,
 976                      SUN8I_SCALER_VSU_YHSTEP(base), hscale);
 977         regmap_write(mixer->engine.regs,
 978                      SUN8I_SCALER_VSU_YVSTEP(base), vscale);
 979         regmap_write(mixer->engine.regs,
 980                      SUN8I_SCALER_VSU_YHPHASE(base), hphase);
 981         regmap_write(mixer->engine.regs,
 982                      SUN8I_SCALER_VSU_YVPHASE(base), vphase);
 983         regmap_write(mixer->engine.regs,
 984                      SUN8I_SCALER_VSU_CINSIZE(base),
 985                      SUN8I_VI_SCALER_SIZE(src_w / format->hsub,
 986                                           src_h / format->vsub));
 987         regmap_write(mixer->engine.regs,
 988                      SUN8I_SCALER_VSU_CHSTEP(base),
 989                      hscale / format->hsub);
 990         regmap_write(mixer->engine.regs,
 991                      SUN8I_SCALER_VSU_CVSTEP(base),
 992                      vscale / format->vsub);
 993         regmap_write(mixer->engine.regs,
 994                      SUN8I_SCALER_VSU_CHPHASE(base), chphase);
 995         regmap_write(mixer->engine.regs,
 996                      SUN8I_SCALER_VSU_CVPHASE(base), cvphase);
 997         sun8i_vi_scaler_set_coeff(mixer->engine.regs, base,
 998                                   hscale, vscale, format);
 999 }

/* [<][>][^][v][top][bottom][index][help] */