diff options
Diffstat (limited to 'drivers/isdn/mISDN/dsp_audio.c')
-rw-r--r-- | drivers/isdn/mISDN/dsp_audio.c | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/drivers/isdn/mISDN/dsp_audio.c b/drivers/isdn/mISDN/dsp_audio.c index 06022952a437..bbef98e7a16e 100644 --- a/drivers/isdn/mISDN/dsp_audio.c +++ b/drivers/isdn/mISDN/dsp_audio.c | |||
@@ -13,6 +13,7 @@ | |||
13 | #include <linux/mISDNif.h> | 13 | #include <linux/mISDNif.h> |
14 | #include <linux/mISDNdsp.h> | 14 | #include <linux/mISDNdsp.h> |
15 | #include <linux/export.h> | 15 | #include <linux/export.h> |
16 | #include <linux/bitrev.h> | ||
16 | #include "core.h" | 17 | #include "core.h" |
17 | #include "dsp.h" | 18 | #include "dsp.h" |
18 | 19 | ||
@@ -137,27 +138,14 @@ static unsigned char linear2ulaw(short sample) | |||
137 | return ulawbyte; | 138 | return ulawbyte; |
138 | } | 139 | } |
139 | 140 | ||
140 | static int reverse_bits(int i) | ||
141 | { | ||
142 | int z, j; | ||
143 | z = 0; | ||
144 | |||
145 | for (j = 0; j < 8; j++) { | ||
146 | if ((i & (1 << j)) != 0) | ||
147 | z |= 1 << (7 - j); | ||
148 | } | ||
149 | return z; | ||
150 | } | ||
151 | |||
152 | |||
153 | void dsp_audio_generate_law_tables(void) | 141 | void dsp_audio_generate_law_tables(void) |
154 | { | 142 | { |
155 | int i; | 143 | int i; |
156 | for (i = 0; i < 256; i++) | 144 | for (i = 0; i < 256; i++) |
157 | dsp_audio_alaw_to_s32[i] = alaw2linear(reverse_bits(i)); | 145 | dsp_audio_alaw_to_s32[i] = alaw2linear(bitrev8((u8)i)); |
158 | 146 | ||
159 | for (i = 0; i < 256; i++) | 147 | for (i = 0; i < 256; i++) |
160 | dsp_audio_ulaw_to_s32[i] = ulaw2linear(reverse_bits(i)); | 148 | dsp_audio_ulaw_to_s32[i] = ulaw2linear(bitrev8((u8)i)); |
161 | 149 | ||
162 | for (i = 0; i < 256; i++) { | 150 | for (i = 0; i < 256; i++) { |
163 | dsp_audio_alaw_to_ulaw[i] = | 151 | dsp_audio_alaw_to_ulaw[i] = |
@@ -176,13 +164,13 @@ dsp_audio_generate_s2law_table(void) | |||
176 | /* generating ulaw-table */ | 164 | /* generating ulaw-table */ |
177 | for (i = -32768; i < 32768; i++) { | 165 | for (i = -32768; i < 32768; i++) { |
178 | dsp_audio_s16_to_law[i & 0xffff] = | 166 | dsp_audio_s16_to_law[i & 0xffff] = |
179 | reverse_bits(linear2ulaw(i)); | 167 | bitrev8(linear2ulaw(i)); |
180 | } | 168 | } |
181 | } else { | 169 | } else { |
182 | /* generating alaw-table */ | 170 | /* generating alaw-table */ |
183 | for (i = -32768; i < 32768; i++) { | 171 | for (i = -32768; i < 32768; i++) { |
184 | dsp_audio_s16_to_law[i & 0xffff] = | 172 | dsp_audio_s16_to_law[i & 0xffff] = |
185 | reverse_bits(linear2alaw(i)); | 173 | bitrev8(linear2alaw(i)); |
186 | } | 174 | } |
187 | } | 175 | } |
188 | } | 176 | } |