diff options
author | Raymond Yau <superquad.vortex2@gmail.com> | 2012-01-04 03:16:26 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2012-01-08 08:35:40 -0500 |
commit | 76474da05ff7b1729b36cd2b6d7aa6b1865d68f1 (patch) | |
tree | b034a4ec483fc0a292490acf818612302fd10276 /sound/pci/au88x0 | |
parent | 9489f2c63f4b59e0cc1db6a5fd136df5cbb6fe0a (diff) |
ALSA: Au88x0 - Fix Xtalk's constants
- Fix XtalkGainsDefault, XtalkGains1Chn
- Fix XtalkWideCoefsLeftEQ, XtalkWideCoefsRightEQ
- Fix XtlakWideCoefsLeftXT, XtalkWideCoefsRightXT
Signed-off-by: Raymond Yau <superquad.vortex2@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/au88x0')
-rw-r--r-- | sound/pci/au88x0/au88x0_xtalk.c | 87 |
1 files changed, 56 insertions, 31 deletions
diff --git a/sound/pci/au88x0/au88x0_xtalk.c b/sound/pci/au88x0/au88x0_xtalk.c index e55312e54373..b278e285fd40 100644 --- a/sound/pci/au88x0/au88x0_xtalk.c +++ b/sound/pci/au88x0/au88x0_xtalk.c | |||
@@ -48,43 +48,61 @@ static unsigned short const wXtalkNarrowLeftDelay = 0x7; | |||
48 | static unsigned short const wXtalkNarrowRightDelay = 0x7; | 48 | static unsigned short const wXtalkNarrowRightDelay = 0x7; |
49 | 49 | ||
50 | static xtalk_gains_t const asXtalkGainsDefault = { | 50 | static xtalk_gains_t const asXtalkGainsDefault = { |
51 | 0x4000, 0x4000, 4000, 0x4000, 4000, 0x4000, 4000, 0x4000, 4000, | 51 | 0x4000, 0x4000, 0x4000, 0x4000, 0x4000, |
52 | 0x4000 | 52 | 0x4000, 0x4000, 0x4000, 0x4000, 0x4000 |
53 | }; | 53 | }; |
54 | 54 | ||
55 | static xtalk_gains_t const asXtalkGainsTest = { | 55 | static xtalk_gains_t const asXtalkGainsTest = { |
56 | 0x8000, 0x7FFF, 0, 0xFFFF, 0x0001, 0xC000, 0x4000, 0xFFFE, 0x0002, | 56 | 0x7fff, 0x8000, 0x0000, 0x0000, 0x0001, |
57 | 0 | 57 | 0xffff, 0x4000, 0xc000, 0x0002, 0xfffe |
58 | }; | 58 | }; |
59 | |||
59 | static xtalk_gains_t const asXtalkGains1Chan = { | 60 | static xtalk_gains_t const asXtalkGains1Chan = { |
60 | 0x7FFF, 0, 0, 0, 0x7FFF, 0, 0, 0, 0, 0 | 61 | 0x7FFF, 0, 0, 0, 0, |
62 | 0x7FFF, 0, 0, 0, 0, | ||
61 | }; | 63 | }; |
62 | 64 | ||
63 | // Input gain for 4 A3D slices. One possible input pair is left zero. | 65 | // Input gain for 4 A3D slices. One possible input pair is left zero. |
64 | static xtalk_gains_t const asXtalkGainsAllChan = { | 66 | static xtalk_gains_t const asXtalkGainsAllChan = { |
65 | 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, | 67 | 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0, |
66 | 0 | 68 | 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0 |
67 | //0x7FFF,0x7FFF,0x7FFF,0x7FFF,0x7fff,0x7FFF,0x7FFF,0x7FFF,0x7FFF,0x7fff | 69 | }; |
70 | |||
71 | static xtalk_gains_t const asXtalkGainsZeros = { | ||
72 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | ||
68 | }; | 73 | }; |
69 | static xtalk_gains_t const asXtalkGainsZeros; | ||
70 | 74 | ||
71 | static xtalk_dline_t const alXtalkDlineZeros; | 75 | static xtalk_dline_t const alXtalkDlineZeros = { |
76 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
77 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | ||
78 | }; | ||
72 | static xtalk_dline_t const alXtalkDlineTest = { | 79 | static xtalk_dline_t const alXtalkDlineTest = { |
73 | 0xFC18, 0x03E8FFFF, 0x186A0, 0x7960FFFE, 1, 0xFFFFFFFF, | 80 | 0x0000fc18, 0xfff03e8, 0x000186a0, 0xfffe7960, 1, 0xffffffff, 0, 0, |
74 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 81 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
82 | 0, 0, 0, 0, 0, 0, 0, 0 | ||
83 | }; | ||
84 | |||
85 | static xtalk_instate_t const asXtalkInStateZeros = { | ||
75 | 0, 0, 0, 0 | 86 | 0, 0, 0, 0 |
76 | }; | 87 | }; |
77 | 88 | ||
78 | static xtalk_instate_t const asXtalkInStateZeros; | 89 | static xtalk_instate_t const asXtalkInStateTest = { |
79 | static xtalk_instate_t const asXtalkInStateTest = | 90 | 0x0080, 0xff80, 0x0001, 0xffff |
80 | { 0xFF80, 0x0080, 0xFFFF, 0x0001 }; | 91 | }; |
81 | static xtalk_state_t const asXtalkOutStateZeros; | 92 | |
93 | static xtalk_state_t const asXtalkOutStateZeros = { | ||
94 | {0, 0, 0, 0}, | ||
95 | {0, 0, 0, 0}, | ||
96 | {0, 0, 0, 0}, | ||
97 | {0, 0, 0, 0}, | ||
98 | {0, 0, 0, 0} | ||
99 | }; | ||
82 | 100 | ||
83 | static short const sDiamondKLeftEq = 0x401d; | 101 | static short const sDiamondKLeftEq = 0x401d; |
84 | static short const sDiamondKRightEq = 0x401d; | 102 | static short const sDiamondKRightEq = 0x401d; |
85 | static short const sDiamondKLeftXt = 0xF90E; | 103 | static short const sDiamondKLeftXt = 0xF90E; |
86 | static short const sDiamondKRightXt = 0xF90E; | 104 | static short const sDiamondKRightXt = 0xF90E; |
87 | static short const sDiamondShiftLeftEq = 1; /* 0xF90E Is this a bug ??? */ | 105 | static short const sDiamondShiftLeftEq = 1; |
88 | static short const sDiamondShiftRightEq = 1; | 106 | static short const sDiamondShiftRightEq = 1; |
89 | static short const sDiamondShiftLeftXt = 0; | 107 | static short const sDiamondShiftLeftXt = 0; |
90 | static short const sDiamondShiftRightXt = 0; | 108 | static short const sDiamondShiftRightXt = 0; |
@@ -94,29 +112,29 @@ static unsigned short const wDiamondRightDelay = 0xb; | |||
94 | static xtalk_coefs_t const asXtalkWideCoefsLeftEq = { | 112 | static xtalk_coefs_t const asXtalkWideCoefsLeftEq = { |
95 | {0xEC4C, 0xDCE9, 0xFDC2, 0xFEEC, 0}, | 113 | {0xEC4C, 0xDCE9, 0xFDC2, 0xFEEC, 0}, |
96 | {0x5F60, 0xCBCB, 0xFC26, 0x0305, 0}, | 114 | {0x5F60, 0xCBCB, 0xFC26, 0x0305, 0}, |
97 | {0x340B, 0xf504, 0x6CE8, 0x0D23, 0x00E4}, | 115 | {0x340B, 0xe8f5, 0x236c, 0xe40d, 0}, |
98 | {0xD500, 0x8D76, 0xACC7, 0x5B05, 0x00FA}, | 116 | {0x76d5, 0xc78d, 0x05ac, 0xfa5b, 0}, |
99 | {0x7F04, 0xC0FA, 0x0263, 0xFDA2, 0} | 117 | {0x7F04, 0xC0FA, 0x0263, 0xFDA2, 0} |
100 | }; | 118 | }; |
101 | static xtalk_coefs_t const asXtalkWideCoefsRightEq = { | 119 | static xtalk_coefs_t const asXtalkWideCoefsRightEq = { |
102 | {0xEC4C, 0xDCE9, 0xFDC2, 0xFEEC, 0}, | 120 | {0xEC4C, 0xDCE9, 0xFDC2, 0xFEEC, 0}, |
103 | {0x5F60, 0xCBCB, 0xFC26, 0x0305, 0}, | 121 | {0x5F60, 0xCBCB, 0xFC26, 0x0305, 0}, |
104 | {0x340B, 0xF504, 0x6CE8, 0x0D23, 0x00E4}, | 122 | {0x340B, 0xe8f5, 0x236c, 0xe40d, 0}, |
105 | {0xD500, 0x8D76, 0xACC7, 0x5B05, 0x00FA}, | 123 | {0x76d5, 0xc78d, 0x05ac, 0xfa5b, 0}, |
106 | {0x7F04, 0xC0FA, 0x0263, 0xFDA2, 0} | 124 | {0x7F04, 0xC0FA, 0x0263, 0xFDA2, 0} |
107 | }; | 125 | }; |
108 | static xtalk_coefs_t const asXtalkWideCoefsLeftXt = { | 126 | static xtalk_coefs_t const asXtalkWideCoefsLeftXt = { |
109 | {0x86C3, 0x7B55, 0x89C3, 0x005B, 0x0047}, | 127 | {0x55c6, 0xc97b, 0x005b, 0x0047, 0}, |
110 | {0x6000, 0x206A, 0xC6CA, 0x40FF, 0}, | 128 | {0x6a60, 0xca20, 0xffc6, 0x0040, 0}, |
111 | {0x1100, 0x1164, 0xA1D7, 0x90FC, 0x0001}, | 129 | {0x6411, 0xd711, 0xfca1, 0x0190, 0}, |
112 | {0xDC00, 0x9E77, 0xB8C7, 0x0AFF, 0}, | 130 | {0x77dc, 0xc79e, 0xffb8, 0x000a, 0}, |
113 | {0, 0, 0, 0, 0} | 131 | {0, 0, 0, 0, 0} |
114 | }; | 132 | }; |
115 | static xtalk_coefs_t const asXtalkWideCoefsRightXt = { | 133 | static xtalk_coefs_t const asXtalkWideCoefsRightXt = { |
116 | {0x86C3, 0x7B55, 0x89C3, 0x005B, 0x0047}, | 134 | {0x55c6, 0xc97b, 0x005b, 0x0047, 0}, |
117 | {0x6000, 0x206A, 0xC6CA, 0x40FF, 0}, | 135 | {0x6a60, 0xca20, 0xffc6, 0x0040, 0}, |
118 | {0x1100, 0x1164, 0xA1D7, 0x90FC, 0x0001}, | 136 | {0x6411, 0xd711, 0xfca1, 0x0190, 0}, |
119 | {0xDC00, 0x9E77, 0xB8C7, 0x0AFF, 0}, | 137 | {0x77dc, 0xc79e, 0xffb8, 0x000a, 0}, |
120 | {0, 0, 0, 0, 0} | 138 | {0, 0, 0, 0, 0} |
121 | }; | 139 | }; |
122 | static xtalk_coefs_t const asXtalkNarrowCoefsLeftEq = { | 140 | static xtalk_coefs_t const asXtalkNarrowCoefsLeftEq = { |
@@ -151,7 +169,14 @@ static xtalk_coefs_t const asXtalkNarrowCoefsRightXt = { | |||
151 | {0, 0, 0, 0, 0} | 169 | {0, 0, 0, 0, 0} |
152 | }; | 170 | }; |
153 | 171 | ||
154 | static xtalk_coefs_t const asXtalkCoefsZeros; | 172 | static xtalk_coefs_t const asXtalkCoefsZeros = { |
173 | {0, 0, 0, 0, 0}, | ||
174 | {0, 0, 0, 0, 0}, | ||
175 | {0, 0, 0, 0, 0}, | ||
176 | {0, 0, 0, 0, 0}, | ||
177 | {0, 0, 0, 0, 0} | ||
178 | }; | ||
179 | |||
155 | static xtalk_coefs_t const asXtalkCoefsPipe = { | 180 | static xtalk_coefs_t const asXtalkCoefsPipe = { |
156 | {0, 0, 0x0FA0, 0, 0}, | 181 | {0, 0, 0x0FA0, 0, 0}, |
157 | {0, 0, 0x0FA0, 0, 0}, | 182 | {0, 0, 0x0FA0, 0, 0}, |
@@ -186,7 +211,7 @@ static xtalk_coefs_t const asXtalkCoefsDenTest = { | |||
186 | static xtalk_state_t const asXtalkOutStateTest = { | 211 | static xtalk_state_t const asXtalkOutStateTest = { |
187 | {0x7FFF, 0x0004, 0xFFFC, 0}, | 212 | {0x7FFF, 0x0004, 0xFFFC, 0}, |
188 | {0xFE00, 0x0008, 0xFFF8, 0x4000}, | 213 | {0xFE00, 0x0008, 0xFFF8, 0x4000}, |
189 | {0x200, 0x0010, 0xFFF0, 0xC000}, | 214 | {0x0200, 0x0010, 0xFFF0, 0xC000}, |
190 | {0x8000, 0x0020, 0xFFE0, 0}, | 215 | {0x8000, 0x0020, 0xFFE0, 0}, |
191 | {0, 0, 0, 0} | 216 | {0, 0, 0, 0} |
192 | }; | 217 | }; |