Lines Matching refs:fir

91 static inline const int16_t *fir16_create(struct fir16_state_t *fir,  in fir16_create()  argument
94 fir->taps = taps; in fir16_create()
95 fir->curr_pos = taps - 1; in fir16_create()
96 fir->coeffs = coeffs; in fir16_create()
98 fir->history = kcalloc(2 * taps, sizeof(int16_t), GFP_KERNEL); in fir16_create()
100 fir->history = kcalloc(taps, sizeof(int16_t), GFP_KERNEL); in fir16_create()
102 return fir->history; in fir16_create()
105 static inline void fir16_flush(struct fir16_state_t *fir) in fir16_flush() argument
108 memset(fir->history, 0, 2 * fir->taps * sizeof(int16_t)); in fir16_flush()
110 memset(fir->history, 0, fir->taps * sizeof(int16_t)); in fir16_flush()
114 static inline void fir16_free(struct fir16_state_t *fir) in fir16_free() argument
116 kfree(fir->history); in fir16_free()
146 static inline int16_t fir16(struct fir16_state_t *fir, int16_t sample) in fir16() argument
150 fir->history[fir->curr_pos] = sample; in fir16()
151 fir->history[fir->curr_pos + fir->taps] = sample; in fir16()
152 y = dot_asm((int16_t *) fir->coeffs, &fir->history[fir->curr_pos], in fir16()
153 fir->taps); in fir16()
159 fir->history[fir->curr_pos] = sample; in fir16()
161 offset2 = fir->curr_pos; in fir16()
162 offset1 = fir->taps - offset2; in fir16()
164 for (i = fir->taps - 1; i >= offset1; i--) in fir16()
165 y += fir->coeffs[i] * fir->history[i - offset1]; in fir16()
167 y += fir->coeffs[i] * fir->history[i + offset2]; in fir16()
169 if (fir->curr_pos <= 0) in fir16()
170 fir->curr_pos = fir->taps; in fir16()
171 fir->curr_pos--; in fir16()
175 static inline const int16_t *fir32_create(struct fir32_state_t *fir, in fir32_create() argument
178 fir->taps = taps; in fir32_create()
179 fir->curr_pos = taps - 1; in fir32_create()
180 fir->coeffs = coeffs; in fir32_create()
181 fir->history = kcalloc(taps, sizeof(int16_t), GFP_KERNEL); in fir32_create()
182 return fir->history; in fir32_create()
185 static inline void fir32_flush(struct fir32_state_t *fir) in fir32_flush() argument
187 memset(fir->history, 0, fir->taps * sizeof(int16_t)); in fir32_flush()
190 static inline void fir32_free(struct fir32_state_t *fir) in fir32_free() argument
192 kfree(fir->history); in fir32_free()
195 static inline int16_t fir32(struct fir32_state_t *fir, int16_t sample) in fir32() argument
202 fir->history[fir->curr_pos] = sample; in fir32()
203 offset2 = fir->curr_pos; in fir32()
204 offset1 = fir->taps - offset2; in fir32()
206 for (i = fir->taps - 1; i >= offset1; i--) in fir32()
207 y += fir->coeffs[i] * fir->history[i - offset1]; in fir32()
209 y += fir->coeffs[i] * fir->history[i + offset2]; in fir32()
210 if (fir->curr_pos <= 0) in fir32()
211 fir->curr_pos = fir->taps; in fir32()
212 fir->curr_pos--; in fir32()