123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- /*
- * This file is only included exactly once!
- *
- * The tables here are derived from the tas3004 datasheet,
- * modulo typo corrections and some smoothing...
- */
- #define TAS3004_TREBLE_MIN 0
- #define TAS3004_TREBLE_MAX 72
- #define TAS3004_BASS_MIN 0
- #define TAS3004_BASS_MAX 72
- #define TAS3004_TREBLE_ZERO 36
- #define TAS3004_BASS_ZERO 36
- static u8 tas3004_treble_table[] = {
- 150, /* -18 dB */
- 149,
- 148,
- 147,
- 146,
- 145,
- 144,
- 143,
- 142,
- 141,
- 140,
- 139,
- 138,
- 137,
- 136,
- 135,
- 134,
- 133,
- 132,
- 131,
- 130,
- 129,
- 128,
- 127,
- 126,
- 125,
- 124,
- 123,
- 122,
- 121,
- 120,
- 119,
- 118,
- 117,
- 116,
- 115,
- 114, /* 0 dB */
- 113,
- 112,
- 111,
- 109,
- 108,
- 107,
- 105,
- 104,
- 103,
- 101,
- 99,
- 98,
- 96,
- 93,
- 91,
- 89,
- 86,
- 83,
- 81,
- 77,
- 74,
- 71,
- 67,
- 63,
- 59,
- 54,
- 49,
- 44,
- 38,
- 32,
- 26,
- 19,
- 10,
- 4,
- 2,
- 1, /* +18 dB */
- };
- static inline u8 tas3004_treble(int idx)
- {
- return tas3004_treble_table[idx];
- }
- /* I only save the difference here to the treble table
- * so that the binary is smaller...
- * I have also ignored completely differences of
- * +/- 1
- */
- static s8 tas3004_bass_diff_to_treble[] = {
- 2, /* 7 dB, offset 50 */
- 2,
- 2,
- 2,
- 2,
- 1,
- 2,
- 2,
- 2,
- 3,
- 4,
- 4,
- 5,
- 6,
- 7,
- 8,
- 9,
- 10,
- 11,
- 14,
- 13,
- 8,
- 1, /* 18 dB */
- };
- static inline u8 tas3004_bass(int idx)
- {
- u8 result = tas3004_treble_table[idx];
- if (idx >= 50)
- result += tas3004_bass_diff_to_treble[idx-50];
- return result;
- }
|