summaryrefslogtreecommitdiff
path: root/drivers/staging/echo/fir.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/echo/fir.h')
-rw-r--r--drivers/staging/echo/fir.h41
1 files changed, 3 insertions, 38 deletions
diff --git a/drivers/staging/echo/fir.h b/drivers/staging/echo/fir.h
index ac6c553e89f..2c182fe8ddc 100644
--- a/drivers/staging/echo/fir.h
+++ b/drivers/staging/echo/fir.h
@@ -62,10 +62,6 @@
can.
*/
-#if defined(USE_MMX) || defined(USE_SSE2)
-#include "mmx.h"
-#endif
-
/*!
16 bit integer FIR descriptor. This defines the working state for a single
instance of an FIR filter using 16 bit integer coefficients.
@@ -106,7 +102,7 @@ static inline const int16_t *fir16_create(struct fir16_state_t *fir,
fir->taps = taps;
fir->curr_pos = taps - 1;
fir->coeffs = coeffs;
-#if defined(USE_MMX) || defined(USE_SSE2) || defined(__bfin__)
+#if defined(USE_SSE2) || defined(__bfin__)
fir->history = kcalloc(2 * taps, sizeof(int16_t), GFP_KERNEL);
#else
fir->history = kcalloc(taps, sizeof(int16_t), GFP_KERNEL);
@@ -116,7 +112,7 @@ static inline const int16_t *fir16_create(struct fir16_state_t *fir,
static inline void fir16_flush(struct fir16_state_t *fir)
{
-#if defined(USE_MMX) || defined(USE_SSE2) || defined(__bfin__)
+#if defined(USE_SSE2) || defined(__bfin__)
memset(fir->history, 0, 2 * fir->taps * sizeof(int16_t));
#else
memset(fir->history, 0, fir->taps * sizeof(int16_t));
@@ -158,38 +154,7 @@ static inline int32_t dot_asm(short *x, short *y, int len)
static inline int16_t fir16(struct fir16_state_t *fir, int16_t sample)
{
int32_t y;
-#if defined(USE_MMX)
- int i;
- union mmx_t *mmx_coeffs;
- union mmx_t *mmx_hist;
-
- fir->history[fir->curr_pos] = sample;
- fir->history[fir->curr_pos + fir->taps] = sample;
-
- mmx_coeffs = (union mmx_t *)fir->coeffs;
- mmx_hist = (union mmx_t *)&fir->history[fir->curr_pos];
- i = fir->taps;
- pxor_r2r(mm4, mm4);
- /* 8 samples per iteration, so the filter must be a multiple of 8 long. */
- while (i > 0) {
- movq_m2r(mmx_coeffs[0], mm0);
- movq_m2r(mmx_coeffs[1], mm2);
- movq_m2r(mmx_hist[0], mm1);
- movq_m2r(mmx_hist[1], mm3);
- mmx_coeffs += 2;
- mmx_hist += 2;
- pmaddwd_r2r(mm1, mm0);
- pmaddwd_r2r(mm3, mm2);
- paddd_r2r(mm0, mm4);
- paddd_r2r(mm2, mm4);
- i -= 8;
- }
- movq_r2r(mm4, mm0);
- psrlq_i2r(32, mm0);
- paddd_r2r(mm0, mm4);
- movd_r2m(mm4, y);
- emms();
-#elif defined(USE_SSE2)
+#if defined(USE_SSE2)
int i;
union xmm_t *xmm_coeffs;
union xmm_t *xmm_hist;