/* SPDX-License-Identifier: GPL-2.0 */
/* volume tables, taken from TAS3001c data manual */
/* volume gain values */
/* 0 = -70 dB, 175 = 18.0 dB in 0.5 dB step */
static const unsigned int master_volume_table[] = {
0 x00000015, 0 x00000016, 0 x00000017,
0 x00000019, 0 x0000001a, 0 x0000001c,
0 x0000001d, 0 x0000001f, 0 x00000021,
0 x00000023, 0 x00000025, 0 x00000027,
0 x00000029, 0 x0000002c, 0 x0000002e,
0 x00000031, 0 x00000034, 0 x00000037,
0 x0000003a, 0 x0000003e, 0 x00000042,
0 x00000045, 0 x0000004a, 0 x0000004e,
0 x00000053, 0 x00000057, 0 x0000005d,
0 x00000062, 0 x00000068, 0 x0000006e,
0 x00000075, 0 x0000007b, 0 x00000083,
0 x0000008b, 0 x00000093, 0 x0000009b,
0 x000000a5, 0 x000000ae, 0 x000000b9,
0 x000000c4, 0 x000000cf, 0 x000000dc,
0 x000000e9, 0 x000000f6, 0 x00000105,
0 x00000114, 0 x00000125, 0 x00000136,
0 x00000148, 0 x0000015c, 0 x00000171,
0 x00000186, 0 x0000019e, 0 x000001b6,
0 x000001d0, 0 x000001eb, 0 x00000209,
0 x00000227, 0 x00000248, 0 x0000026b,
0 x0000028f, 0 x000002b6, 0 x000002df,
0 x0000030b, 0 x00000339, 0 x0000036a,
0 x0000039e, 0 x000003d5, 0 x0000040f,
0 x0000044c, 0 x0000048d, 0 x000004d2,
0 x0000051c, 0 x00000569, 0 x000005bb,
0 x00000612, 0 x0000066e, 0 x000006d0,
0 x00000737, 0 x000007a5, 0 x00000818,
0 x00000893, 0 x00000915, 0 x0000099f,
0 x00000a31, 0 x00000acc, 0 x00000b6f,
0 x00000c1d, 0 x00000cd5, 0 x00000d97,
0 x00000e65, 0 x00000f40, 0 x00001027,
0 x0000111c, 0 x00001220, 0 x00001333,
0 x00001456, 0 x0000158a, 0 x000016d1,
0 x0000182b, 0 x0000199a, 0 x00001b1e,
0 x00001cb9, 0 x00001e6d, 0 x0000203a,
0 x00002223, 0 x00002429, 0 x0000264e,
0 x00002893, 0 x00002afa, 0 x00002d86,
0 x00003039, 0 x00003314, 0 x0000361b,
0 x00003950, 0 x00003cb5, 0 x0000404e,
0 x0000441d, 0 x00004827, 0 x00004c6d,
0 x000050f4, 0 x000055c0, 0 x00005ad5,
0 x00006037, 0 x000065ea, 0 x00006bf4,
0 x0000725a, 0 x00007920, 0 x0000804e,
0 x000087e8, 0 x00008ff6, 0 x0000987d,
0 x0000a186, 0 x0000ab19, 0 x0000b53c,
0 x0000bff9, 0 x0000cb59, 0 x0000d766,
0 x0000e429, 0 x0000f1ae, 0 x00010000,
0 x00010f2b, 0 x00011f3d, 0 x00013042,
0 x00014249, 0 x00015562, 0 x0001699c,
0 x00017f09, 0 x000195bc, 0 x0001adc6,
0 x0001c73d, 0 x0001e237, 0 x0001feca,
0 x00021d0e, 0 x00023d1d, 0 x00025f12,
0 x0002830b, 0 x0002a925, 0 x0002d182,
0 x0002fc42, 0 x0003298b, 0 x00035983,
0 x00038c53, 0 x0003c225, 0 x0003fb28,
0 x0004378b, 0 x00047783, 0 x0004bb44,
0 x0005030a, 0 x00054f10, 0 x00059f98,
0 x0005f4e5, 0 x00064f40, 0 x0006aef6,
0 x00071457, 0 x00077fbb, 0 x0007f17b,
};
/* treble table for TAS3001c */
/* 0 = -18 dB, 72 = 18 dB in 0.5 dB step */
static const unsigned int treble_volume_table[] = {
0 x96, 0 x95, 0 x94,
0 x93, 0 x92, 0 x91,
0 x90, 0 x8f, 0 x8e,
0 x8d, 0 x8c, 0 x8b,
0 x8a, 0 x89, 0 x88,
0 x87, 0 x86, 0 x85,
0 x84, 0 x83, 0 x82,
0 x81, 0 x80, 0 x7f,
0 x7e, 0 x7d, 0 x7c,
0 x7b, 0 x7a, 0 x79,
0 x78, 0 x77, 0 x76,
0 x75, 0 x74, 0 x73,
0 x72, 0 x71, 0 x70,
0 x6e, 0 x6d, 0 x6c,
0 x6b, 0 x69, 0 x68,
0 x66, 0 x65, 0 x63,
0 x62, 0 x60, 0 x5e,
0 x5c, 0 x5a, 0 x57,
0 x55, 0 x52, 0 x4f,
0 x4c, 0 x49, 0 x45,
0 x42, 0 x3e, 0 x3a,
0 x36, 0 x32, 0 x2d,
0 x28, 0 x22, 0 x1c,
0 x16, 0 x10, 0 x09,
0 x01,
};
/* bass table for TAS3001c */
/* 0 = -18 dB, 72 = 18 dB in 0.5 dB step */
static const unsigned int bass_volume_table[] = {
0 x86, 0 x82, 0 x7f,
0 x7d, 0 x7a, 0 x78,
0 x76, 0 x74, 0 x72,
0 x70, 0 x6e, 0 x6d,
0 x6b, 0 x69, 0 x66,
0 x64, 0 x61, 0 x5f,
0 x5d, 0 x5c, 0 x5a,
0 x59, 0 x58, 0 x56,
0 x55, 0 x54, 0 x53,
0 x51, 0 x4f, 0 x4d,
0 x4b, 0 x49, 0 x46,
0 x44, 0 x42, 0 x40,
0 x3e, 0 x3c, 0 x3b,
0 x39, 0 x38, 0 x36,
0 x35, 0 x33, 0 x31,
0 x30, 0 x2e, 0 x2c,
0 x2b, 0 x29, 0 x28,
0 x26, 0 x25, 0 x23,
0 x21, 0 x1f, 0 x1c,
0 x19, 0 x18, 0 x17,
0 x16, 0 x14, 0 x13,
0 x12, 0 x10, 0 x0f,
0 x0d, 0 x0b, 0 x0a,
0 x08, 0 x06, 0 x03,
0 x01,
};
/* mixer (pcm) volume table */
/* 0 = -70 dB, 175 = 18.0 dB in 0.5 dB step */
static const unsigned int mixer_volume_table[] = {
0 x00014b, 0 x00015f, 0 x000174,
0 x00018a, 0 x0001a1, 0 x0001ba,
0 x0001d4, 0 x0001f0, 0 x00020d,
0 x00022c, 0 x00024d, 0 x000270,
0 x000295, 0 x0002bc, 0 x0002e6,
0 x000312, 0 x000340, 0 x000372,
0 x0003a6, 0 x0003dd, 0 x000418,
0 x000456, 0 x000498, 0 x0004de,
0 x000528, 0 x000576, 0 x0005c9,
0 x000620, 0 x00067d, 0 x0006e0,
0 x000748, 0 x0007b7, 0 x00082c,
0 x0008a8, 0 x00092b, 0 x0009b6,
0 x000a49, 0 x000ae5, 0 x000b8b,
0 x000c3a, 0 x000cf3, 0 x000db8,
0 x000e88, 0 x000f64, 0 x00104e,
0 x001145, 0 x00124b, 0 x001361,
0 x001487, 0 x0015be, 0 x001708,
0 x001865, 0 x0019d8, 0 x001b60,
0 x001cff, 0 x001eb7, 0 x002089,
0 x002276, 0 x002481, 0 x0026ab,
0 x0028f5, 0 x002b63, 0 x002df5,
0 x0030ae, 0 x003390, 0 x00369e,
0 x0039db, 0 x003d49, 0 x0040ea,
0 x0044c3, 0 x0048d6, 0 x004d27,
0 x0051b9, 0 x005691, 0 x005bb2,
0 x006121, 0 x0066e3, 0 x006cfb,
0 x007370, 0 x007a48, 0 x008186,
0 x008933, 0 x009154, 0 x0099f1,
0 x00a310, 0 x00acba, 0 x00b6f6,
0 x00c1cd, 0 x00cd49, 0 x00d973,
0 x00e655, 0 x00f3fb, 0 x010270,
0 x0111c0, 0 x0121f9, 0 x013328,
0 x01455b, 0 x0158a2, 0 x016d0e,
0 x0182af, 0 x019999, 0 x01b1de,
0 x01cb94, 0 x01e6cf, 0 x0203a7,
0 x022235, 0 x024293, 0 x0264db,
0 x02892c, 0 x02afa3, 0 x02d862,
0 x03038a, 0 x033142, 0 x0361af,
0 x0394fa, 0 x03cb50, 0 x0404de,
0 x0441d5, 0 x048268, 0 x04c6d0,
0 x050f44, 0 x055c04, 0 x05ad50,
0 x06036e, 0 x065ea5, 0 x06bf44,
0 x07259d, 0 x079207, 0 x0804dc,
0 x087e80, 0 x08ff59, 0 x0987d5,
0 x0a1866, 0 x0ab189, 0 x0b53be,
0 x0bff91, 0 x0cb591, 0 x0d765a,
0 x0e4290, 0 x0f1adf, 0 x100000,
0 x10f2b4, 0 x11f3c9, 0 x13041a,
0 x14248e, 0 x15561a, 0 x1699c0,
0 x17f094, 0 x195bb8, 0 x1adc61,
0 x1c73d5, 0 x1e236d, 0 x1fec98,
0 x21d0d9, 0 x23d1cd, 0 x25f125,
0 x2830af, 0 x2a9254, 0 x2d1818,
0 x2fc420, 0 x3298b0, 0 x35982f,
0 x38c528, 0 x3c224c, 0 x3fb278,
0 x437880, 0 x477828, 0 x4bb446,
0 x5030a1, 0 x54f106, 0 x59f980,
0 x5f4e52, 0 x64f403, 0 x6aef5d,
0 x714575, 0 x77fbaa, 0 x7f17af,
};
/* treble table for TAS3004 */
/* 0 = -18 dB, 72 = 18 dB in 0.5 dB step */
static const unsigned int snapper_treble_volume_table[] = {
0 x96, 0 x95, 0 x94,
0 x93, 0 x92, 0 x91,
0 x90, 0 x8f, 0 x8e,
0 x8d, 0 x8c, 0 x8b,
0 x8a, 0 x89, 0 x88,
0 x87, 0 x86, 0 x85,
0 x84, 0 x83, 0 x82,
0 x81, 0 x80, 0 x7f,
0 x7e, 0 x7d, 0 x7c,
0 x7b, 0 x7a, 0 x79,
0 x78, 0 x77, 0 x76,
0 x75, 0 x74, 0 x73,
0 x72, 0 x71, 0 x70,
0 x6f, 0 x6d, 0 x6c,
0 x6b, 0 x69, 0 x68,
0 x67, 0 x65, 0 x63,
0 x62, 0 x60, 0 x5d,
0 x5b, 0 x59, 0 x56,
0 x53, 0 x51, 0 x4d,
0 x4a, 0 x47, 0 x43,
0 x3f, 0 x3b, 0 x36,
0 x31, 0 x2c, 0 x26,
0 x20, 0 x1a, 0 x13,
0 x08, 0 x04, 0 x01,
0 x01,
};
/* bass table for TAS3004 */
/* 0 = -18 dB, 72 = 18 dB in 0.5 dB step */
static const unsigned int snapper_bass_volume_table[] = {
0 x96, 0 x95, 0 x94,
0 x93, 0 x92, 0 x91,
0 x90, 0 x8f, 0 x8e,
0 x8d, 0 x8c, 0 x8b,
0 x8a, 0 x89, 0 x88,
0 x87, 0 x86, 0 x85,
0 x84, 0 x83, 0 x82,
0 x81, 0 x80, 0 x7f,
0 x7e, 0 x7d, 0 x7c,
0 x7b, 0 x7a, 0 x79,
0 x78, 0 x77, 0 x76,
0 x75, 0 x74, 0 x73,
0 x72, 0 x71, 0 x6f,
0 x6e, 0 x6d, 0 x6b,
0 x6a, 0 x69, 0 x67,
0 x66, 0 x65, 0 x63,
0 x62, 0 x61, 0 x5f,
0 x5d, 0 x5b, 0 x58,
0 x55, 0 x52, 0 x4f,
0 x4c, 0 x49, 0 x46,
0 x43, 0 x3f, 0 x3b,
0 x37, 0 x33, 0 x2e,
0 x29, 0 x24, 0 x1e,
0 x18, 0 x11, 0 x0a,
0 x01,
};
Messung V0.5 in Prozent C=95 H=95 G=94