Lines Matching defs:fir

5  * fir.h - General telephony FIR routines
71 static inline const int16_t *fir16_create(struct fir16_state_t *fir,
74 fir->taps = taps;
75 fir->curr_pos = taps - 1;
76 fir->coeffs = coeffs;
77 fir->history = kcalloc(taps, sizeof(int16_t), GFP_KERNEL);
78 return fir->history;
81 static inline void fir16_flush(struct fir16_state_t *fir)
83 memset(fir->history, 0, fir->taps * sizeof(int16_t));
86 static inline void fir16_free(struct fir16_state_t *fir)
88 kfree(fir->history);
91 static inline int16_t fir16(struct fir16_state_t *fir, int16_t sample)
98 fir->history[fir->curr_pos] = sample;
100 offset2 = fir->curr_pos;
101 offset1 = fir->taps - offset2;
103 for (i = fir->taps - 1; i >= offset1; i--)
104 y += fir->coeffs[i] * fir->history[i - offset1];
106 y += fir->coeffs[i] * fir->history[i + offset2];
107 if (fir->curr_pos <= 0)
108 fir->curr_pos = fir->taps;
109 fir->curr_pos--;
113 static inline const int16_t *fir32_create(struct fir32_state_t *fir,
116 fir->taps = taps;
117 fir->curr_pos = taps - 1;
118 fir->coeffs = coeffs;
119 fir->history = kcalloc(taps, sizeof(int16_t), GFP_KERNEL);
120 return fir->history;
123 static inline void fir32_flush(struct fir32_state_t *fir)
125 memset(fir->history, 0, fir->taps * sizeof(int16_t));
128 static inline void fir32_free(struct fir32_state_t *fir)
130 kfree(fir->history);
133 static inline int16_t fir32(struct fir32_state_t *fir, int16_t sample)
140 fir->history[fir->curr_pos] = sample;
141 offset2 = fir->curr_pos;
142 offset1 = fir->taps - offset2;
144 for (i = fir->taps - 1; i >= offset1; i--)
145 y += fir->coeffs[i] * fir->history[i - offset1];
147 y += fir->coeffs[i] * fir->history[i + offset2];
148 if (fir->curr_pos <= 0)
149 fir->curr_pos = fir->taps;
150 fir->curr_pos--;