Commit 4460a860 authored by J.R. Mauro's avatar J.R. Mauro Committed by Greg Kroah-Hartman

Staging: Lindent the echo driver

Lindent drivers/staging/echo*

Signed-off by: J.R. Mauro <jrm8005@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 786ed801
...@@ -36,14 +36,15 @@ ...@@ -36,14 +36,15 @@
\return The bit number of the highest set bit, or -1 if the word is zero. */ \return The bit number of the highest set bit, or -1 if the word is zero. */
static __inline__ int top_bit(unsigned int bits) static __inline__ int top_bit(unsigned int bits)
{ {
int res; int res;
__asm__ (" xorl %[res],%[res];\n" __asm__(" xorl %[res],%[res];\n"
" decl %[res];\n" " decl %[res];\n"
" bsrl %[bits],%[res]\n" " bsrl %[bits],%[res]\n"
: [res] "=&r" (res) :[res] "=&r" (res)
: [bits] "rm" (bits)); :[bits] "rm"(bits)
return res; );
return res;
} }
/*! \brief Find the bit position of the lowest set bit in a word /*! \brief Find the bit position of the lowest set bit in a word
...@@ -51,84 +52,75 @@ static __inline__ int top_bit(unsigned int bits) ...@@ -51,84 +52,75 @@ static __inline__ int top_bit(unsigned int bits)
\return The bit number of the lowest set bit, or -1 if the word is zero. */ \return The bit number of the lowest set bit, or -1 if the word is zero. */
static __inline__ int bottom_bit(unsigned int bits) static __inline__ int bottom_bit(unsigned int bits)
{ {
int res; int res;
__asm__ (" xorl %[res],%[res];\n" __asm__(" xorl %[res],%[res];\n"
" decl %[res];\n" " decl %[res];\n"
" bsfl %[bits],%[res]\n" " bsfl %[bits],%[res]\n"
: [res] "=&r" (res) :[res] "=&r" (res)
: [bits] "rm" (bits)); :[bits] "rm"(bits)
return res; );
return res;
} }
#else #else
static __inline__ int top_bit(unsigned int bits) static __inline__ int top_bit(unsigned int bits)
{ {
int i; int i;
if (bits == 0) if (bits == 0)
return -1; return -1;
i = 0; i = 0;
if (bits & 0xFFFF0000) if (bits & 0xFFFF0000) {
{ bits &= 0xFFFF0000;
bits &= 0xFFFF0000; i += 16;
i += 16; }
} if (bits & 0xFF00FF00) {
if (bits & 0xFF00FF00) bits &= 0xFF00FF00;
{ i += 8;
bits &= 0xFF00FF00; }
i += 8; if (bits & 0xF0F0F0F0) {
} bits &= 0xF0F0F0F0;
if (bits & 0xF0F0F0F0) i += 4;
{ }
bits &= 0xF0F0F0F0; if (bits & 0xCCCCCCCC) {
i += 4; bits &= 0xCCCCCCCC;
} i += 2;
if (bits & 0xCCCCCCCC) }
{ if (bits & 0xAAAAAAAA) {
bits &= 0xCCCCCCCC; bits &= 0xAAAAAAAA;
i += 2; i += 1;
} }
if (bits & 0xAAAAAAAA) return i;
{
bits &= 0xAAAAAAAA;
i += 1;
}
return i;
} }
static __inline__ int bottom_bit(unsigned int bits) static __inline__ int bottom_bit(unsigned int bits)
{ {
int i; int i;
if (bits == 0) if (bits == 0)
return -1; return -1;
i = 32; i = 32;
if (bits & 0x0000FFFF) if (bits & 0x0000FFFF) {
{ bits &= 0x0000FFFF;
bits &= 0x0000FFFF; i -= 16;
i -= 16; }
} if (bits & 0x00FF00FF) {
if (bits & 0x00FF00FF) bits &= 0x00FF00FF;
{ i -= 8;
bits &= 0x00FF00FF; }
i -= 8; if (bits & 0x0F0F0F0F) {
} bits &= 0x0F0F0F0F;
if (bits & 0x0F0F0F0F) i -= 4;
{ }
bits &= 0x0F0F0F0F; if (bits & 0x33333333) {
i -= 4; bits &= 0x33333333;
} i -= 2;
if (bits & 0x33333333) }
{ if (bits & 0x55555555) {
bits &= 0x33333333; bits &= 0x55555555;
i -= 2; i -= 1;
} }
if (bits & 0x55555555) return i;
{
bits &= 0x55555555;
i -= 1;
}
return i;
} }
#endif #endif
...@@ -138,13 +130,14 @@ static __inline__ int bottom_bit(unsigned int bits) ...@@ -138,13 +130,14 @@ static __inline__ int bottom_bit(unsigned int bits)
static __inline__ uint8_t bit_reverse8(uint8_t x) static __inline__ uint8_t bit_reverse8(uint8_t x)
{ {
#if defined(__i386__) || defined(__x86_64__) #if defined(__i386__) || defined(__x86_64__)
/* If multiply is fast */ /* If multiply is fast */
return ((x*0x0802U & 0x22110U) | (x*0x8020U & 0x88440U))*0x10101U >> 16; return ((x * 0x0802U & 0x22110U) | (x * 0x8020U & 0x88440U)) *
0x10101U >> 16;
#else #else
/* If multiply is slow, but we have a barrel shifter */ /* If multiply is slow, but we have a barrel shifter */
x = (x >> 4) | (x << 4); x = (x >> 4) | (x << 4);
x = ((x & 0xCC) >> 2) | ((x & 0x33) << 2); x = ((x & 0xCC) >> 2) | ((x & 0x33) << 2);
return ((x & 0xAA) >> 1) | ((x & 0x55) << 1); return ((x & 0xAA) >> 1) | ((x & 0x55) << 1);
#endif #endif
} }
...@@ -184,7 +177,7 @@ uint16_t make_mask16(uint16_t x); ...@@ -184,7 +177,7 @@ uint16_t make_mask16(uint16_t x);
\return The word with the single set bit. */ \return The word with the single set bit. */
static __inline__ uint32_t least_significant_one32(uint32_t x) static __inline__ uint32_t least_significant_one32(uint32_t x)
{ {
return (x & (-(int32_t) x)); return (x & (-(int32_t) x));
} }
/*! \brief Find the most significant one in a word, and return a word /*! \brief Find the most significant one in a word, and return a word
...@@ -194,10 +187,10 @@ static __inline__ uint32_t least_significant_one32(uint32_t x) ...@@ -194,10 +187,10 @@ static __inline__ uint32_t least_significant_one32(uint32_t x)
static __inline__ uint32_t most_significant_one32(uint32_t x) static __inline__ uint32_t most_significant_one32(uint32_t x)
{ {
#if defined(__i386__) || defined(__x86_64__) #if defined(__i386__) || defined(__x86_64__)
return 1 << top_bit(x); return 1 << top_bit(x);
#else #else
x = make_mask32(x); x = make_mask32(x);
return (x ^ (x >> 1)); return (x ^ (x >> 1));
#endif #endif
} }
...@@ -206,8 +199,8 @@ static __inline__ uint32_t most_significant_one32(uint32_t x) ...@@ -206,8 +199,8 @@ static __inline__ uint32_t most_significant_one32(uint32_t x)
\return 1 for odd, or 0 for even. */ \return 1 for odd, or 0 for even. */
static __inline__ int parity8(uint8_t x) static __inline__ int parity8(uint8_t x)
{ {
x = (x ^ (x >> 4)) & 0x0F; x = (x ^ (x >> 4)) & 0x0F;
return (0x6996 >> x) & 1; return (0x6996 >> x) & 1;
} }
/*! \brief Find the parity of a 16 bit word. /*! \brief Find the parity of a 16 bit word.
...@@ -215,9 +208,9 @@ static __inline__ int parity8(uint8_t x) ...@@ -215,9 +208,9 @@ static __inline__ int parity8(uint8_t x)
\return 1 for odd, or 0 for even. */ \return 1 for odd, or 0 for even. */
static __inline__ int parity16(uint16_t x) static __inline__ int parity16(uint16_t x)
{ {
x ^= (x >> 8); x ^= (x >> 8);
x = (x ^ (x >> 4)) & 0x0F; x = (x ^ (x >> 4)) & 0x0F;
return (0x6996 >> x) & 1; return (0x6996 >> x) & 1;
} }
/*! \brief Find the parity of a 32 bit word. /*! \brief Find the parity of a 32 bit word.
...@@ -225,10 +218,10 @@ static __inline__ int parity16(uint16_t x) ...@@ -225,10 +218,10 @@ static __inline__ int parity16(uint16_t x)
\return 1 for odd, or 0 for even. */ \return 1 for odd, or 0 for even. */
static __inline__ int parity32(uint32_t x) static __inline__ int parity32(uint32_t x)
{ {
x ^= (x >> 16); x ^= (x >> 16);
x ^= (x >> 8); x ^= (x >> 8);
x = (x ^ (x >> 4)) & 0x0F; x = (x ^ (x >> 4)) & 0x0F;
return (0x6996 >> x) & 1; return (0x6996 >> x) & 1;
} }
#endif #endif
......
This diff is collapsed.
...@@ -124,9 +124,8 @@ a minor burden. ...@@ -124,9 +124,8 @@ a minor burden.
G.168 echo canceller descriptor. This defines the working state for a line G.168 echo canceller descriptor. This defines the working state for a line
echo canceller. echo canceller.
*/ */
struct oslec_state struct oslec_state {
{ int16_t tx, rx;
int16_t tx,rx;
int16_t clean; int16_t clean;
int16_t clean_nlp; int16_t clean_nlp;
...@@ -170,4 +169,4 @@ struct oslec_state ...@@ -170,4 +169,4 @@ struct oslec_state
int16_t *snapshot; int16_t *snapshot;
}; };
#endif /* __ECHO_H */ #endif /* __ECHO_H */
This diff is collapsed.
...@@ -27,24 +27,23 @@ ...@@ -27,24 +27,23 @@
* values by ULL, lest they be truncated by the compiler) * values by ULL, lest they be truncated by the compiler)
*/ */
typedef union { typedef union {
long long q; /* Quadword (64-bit) value */ long long q; /* Quadword (64-bit) value */
unsigned long long uq; /* Unsigned Quadword */ unsigned long long uq; /* Unsigned Quadword */
int d[2]; /* 2 Doubleword (32-bit) values */ int d[2]; /* 2 Doubleword (32-bit) values */
unsigned int ud[2]; /* 2 Unsigned Doubleword */ unsigned int ud[2]; /* 2 Unsigned Doubleword */
short w[4]; /* 4 Word (16-bit) values */ short w[4]; /* 4 Word (16-bit) values */
unsigned short uw[4]; /* 4 Unsigned Word */ unsigned short uw[4]; /* 4 Unsigned Word */
char b[8]; /* 8 Byte (8-bit) values */ char b[8]; /* 8 Byte (8-bit) values */
unsigned char ub[8]; /* 8 Unsigned Byte */ unsigned char ub[8]; /* 8 Unsigned Byte */
float s[2]; /* Single-precision (32-bit) value */ float s[2]; /* Single-precision (32-bit) value */
} mmx_t; /* On an 8-byte (64-bit) boundary */ } mmx_t; /* On an 8-byte (64-bit) boundary */
/* SSE registers */ /* SSE registers */
typedef union { typedef union {
char b[16]; char b[16];
} xmm_t; } xmm_t;
#define mmx_i2r(op,imm,reg) \ #define mmx_i2r(op,imm,reg) \
__asm__ __volatile__ (#op " %0, %%" #reg \ __asm__ __volatile__ (#op " %0, %%" #reg \
: /* nothing */ \ : /* nothing */ \
...@@ -63,7 +62,6 @@ typedef union { ...@@ -63,7 +62,6 @@ typedef union {
#define mmx_r2r(op,regs,regd) \ #define mmx_r2r(op,regs,regd) \
__asm__ __volatile__ (#op " %" #regs ", %" #regd) __asm__ __volatile__ (#op " %" #regs ", %" #regd)
#define emms() __asm__ __volatile__ ("emms") #define emms() __asm__ __volatile__ ("emms")
#define movd_m2r(var,reg) mmx_m2r (movd, var, reg) #define movd_m2r(var,reg) mmx_m2r (movd, var, reg)
...@@ -192,16 +190,13 @@ typedef union { ...@@ -192,16 +190,13 @@ typedef union {
#define pxor_m2r(var,reg) mmx_m2r (pxor, var, reg) #define pxor_m2r(var,reg) mmx_m2r (pxor, var, reg)
#define pxor_r2r(regs,regd) mmx_r2r (pxor, regs, regd) #define pxor_r2r(regs,regd) mmx_r2r (pxor, regs, regd)
/* 3DNOW extensions */ /* 3DNOW extensions */
#define pavgusb_m2r(var,reg) mmx_m2r (pavgusb, var, reg) #define pavgusb_m2r(var,reg) mmx_m2r (pavgusb, var, reg)
#define pavgusb_r2r(regs,regd) mmx_r2r (pavgusb, regs, regd) #define pavgusb_r2r(regs,regd) mmx_r2r (pavgusb, regs, regd)
/* AMD MMX extensions - also available in intel SSE */ /* AMD MMX extensions - also available in intel SSE */
#define mmx_m2ri(op,mem,reg,imm) \ #define mmx_m2ri(op,mem,reg,imm) \
__asm__ __volatile__ (#op " %1, %0, %%" #reg \ __asm__ __volatile__ (#op " %1, %0, %%" #reg \
: /* nothing */ \ : /* nothing */ \
...@@ -216,7 +211,6 @@ typedef union { ...@@ -216,7 +211,6 @@ typedef union {
: /* nothing */ \ : /* nothing */ \
: "m" (mem)) : "m" (mem))
#define maskmovq(regs,maskreg) mmx_r2ri (maskmovq, regs, maskreg) #define maskmovq(regs,maskreg) mmx_r2ri (maskmovq, regs, maskreg)
#define movntq_r2m(mmreg,var) mmx_r2m (movntq, mmreg, var) #define movntq_r2m(mmreg,var) mmx_r2m (movntq, mmreg, var)
...@@ -284,5 +278,4 @@ typedef union { ...@@ -284,5 +278,4 @@ typedef union {
#define punpcklqdq_r2r(regs,regd) mmx_r2r (punpcklqdq, regs, regd) #define punpcklqdq_r2r(regs,regd) mmx_r2r (punpcklqdq, regs, regd)
#define punpckhqdq_r2r(regs,regd) mmx_r2r (punpckhqdq, regs, regd) #define punpckhqdq_r2r(regs,regd) mmx_r2r (punpckhqdq, regs, regd)
#endif /* AVCODEC_I386MMX_H */ #endif /* AVCODEC_I386MMX_H */
...@@ -83,4 +83,4 @@ int16_t oslec_update(struct oslec_state *ec, int16_t tx, int16_t rx); ...@@ -83,4 +83,4 @@ int16_t oslec_update(struct oslec_state *ec, int16_t tx, int16_t rx);
*/ */
int16_t oslec_hpf_tx(struct oslec_state *ec, int16_t tx); int16_t oslec_hpf_tx(struct oslec_state *ec, int16_t tx);
#endif /* __OSLEC_H */ #endif /* __OSLEC_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment