Commit 45432371 authored by Linus Torvalds's avatar Linus Torvalds

Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (42 commits)
  Staging: usbip: fix build warning on 64bit kernels
  Staging: me4000: remove some compiler warnings
  Staging: wbusb: fix a bunch of compiler warnings
  Staging: w35und: module init cleanup
  Staging: w35und: use gotos for error handling
  Staging: w35und: remove spinlock wrappers
  Staging: sxg: fix compiler warnings.
  Staging: sxg: fix up unused function warnings
  Staging: sxg: clean up C99 comments
  Staging: Lindent the echo driver
  Staging: SLICOSS: Free multicast list at driver exit
  Staging: PCC-ACPI: Fix all checkpatch errors
  Staging: pcc-acpi: update to latest version
  Staging: Clean up sxg driver
  Staging: remove remaining uses of __FUNCTION__
  Staging: add poch driver
  Staging: wlan-ng: fix build error if wireless networking is not enabled
  Staging: echo: remove annoying "end of function" markers
  Staging: echo: remove __cplusplus macro magic
  Staging: echo: remove dead code
  ...
parents 92fb83af 51b90540
...@@ -43,4 +43,8 @@ source "drivers/staging/echo/Kconfig" ...@@ -43,4 +43,8 @@ source "drivers/staging/echo/Kconfig"
source "drivers/staging/at76_usb/Kconfig" source "drivers/staging/at76_usb/Kconfig"
source "drivers/staging/pcc-acpi/Kconfig"
source "drivers/staging/poch/Kconfig"
endif # STAGING endif # STAGING
...@@ -13,3 +13,5 @@ obj-$(CONFIG_W35UND) += winbond/ ...@@ -13,3 +13,5 @@ obj-$(CONFIG_W35UND) += winbond/
obj-$(CONFIG_PRISM2_USB) += wlan-ng/ obj-$(CONFIG_PRISM2_USB) += wlan-ng/
obj-$(CONFIG_ECHO) += echo/ obj-$(CONFIG_ECHO) += echo/
obj-$(CONFIG_USB_ATMEL) += at76_usb/ obj-$(CONFIG_USB_ATMEL) += at76_usb/
obj-$(CONFIG_PCC_ACPI) += pcc-acpi/
obj-$(CONFIG_POCH) += poch/
...@@ -2319,9 +2319,11 @@ static int at76_iw_handler_get_scan(struct net_device *netdev, ...@@ -2319,9 +2319,11 @@ static int at76_iw_handler_get_scan(struct net_device *netdev,
if (!iwe) if (!iwe)
return -ENOMEM; return -ENOMEM;
if (priv->scan_state != SCAN_COMPLETED) if (priv->scan_state != SCAN_COMPLETED) {
/* scan not yet finished */ /* scan not yet finished */
kfree(iwe);
return -EAGAIN; return -EAGAIN;
}
spin_lock_irqsave(&priv->bss_list_spinlock, flags); spin_lock_irqsave(&priv->bss_list_spinlock, flags);
......
...@@ -30,10 +30,6 @@ ...@@ -30,10 +30,6 @@
#if !defined(_BIT_OPERATIONS_H_) #if !defined(_BIT_OPERATIONS_H_)
#define _BIT_OPERATIONS_H_ #define _BIT_OPERATIONS_H_
#ifdef __cplusplus
extern "C" {
#endif
#if defined(__i386__) || defined(__x86_64__) #if defined(__i386__) || defined(__x86_64__)
/*! \brief Find the bit position of the highest set bit in a word /*! \brief Find the bit position of the highest set bit in a word
\param bits The word to be searched \param bits The word to be searched
...@@ -42,14 +38,14 @@ static __inline__ int top_bit(unsigned int bits) ...@@ -42,14 +38,14 @@ 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;
} }
/*- End of function --------------------------------------------------------*/
/*! \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
\param bits The word to be searched \param bits The word to be searched
...@@ -58,14 +54,14 @@ static __inline__ int bottom_bit(unsigned int bits) ...@@ -58,14 +54,14 @@ 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;
} }
/*- End of function --------------------------------------------------------*/
#else #else
static __inline__ int top_bit(unsigned int bits) static __inline__ int top_bit(unsigned int bits)
{ {
...@@ -74,34 +70,28 @@ static __inline__ int top_bit(unsigned int bits) ...@@ -74,34 +70,28 @@ static __inline__ int top_bit(unsigned int bits)
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; bits &= 0xFF00FF00;
i += 8; i += 8;
} }
if (bits & 0xF0F0F0F0) if (bits & 0xF0F0F0F0) {
{
bits &= 0xF0F0F0F0; bits &= 0xF0F0F0F0;
i += 4; i += 4;
} }
if (bits & 0xCCCCCCCC) if (bits & 0xCCCCCCCC) {
{
bits &= 0xCCCCCCCC; bits &= 0xCCCCCCCC;
i += 2; i += 2;
} }
if (bits & 0xAAAAAAAA) if (bits & 0xAAAAAAAA) {
{
bits &= 0xAAAAAAAA; bits &= 0xAAAAAAAA;
i += 1; i += 1;
} }
return i; return i;
} }
/*- End of function --------------------------------------------------------*/
static __inline__ int bottom_bit(unsigned int bits) static __inline__ int bottom_bit(unsigned int bits)
{ {
...@@ -110,34 +100,28 @@ static __inline__ int bottom_bit(unsigned int bits) ...@@ -110,34 +100,28 @@ static __inline__ int bottom_bit(unsigned int bits)
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; bits &= 0x00FF00FF;
i -= 8; i -= 8;
} }
if (bits & 0x0F0F0F0F) if (bits & 0x0F0F0F0F) {
{
bits &= 0x0F0F0F0F; bits &= 0x0F0F0F0F;
i -= 4; i -= 4;
} }
if (bits & 0x33333333) if (bits & 0x33333333) {
{
bits &= 0x33333333; bits &= 0x33333333;
i -= 2; i -= 2;
} }
if (bits & 0x55555555) if (bits & 0x55555555) {
{
bits &= 0x55555555; bits &= 0x55555555;
i -= 1; i -= 1;
} }
return i; return i;
} }
/*- End of function --------------------------------------------------------*/
#endif #endif
/*! \brief Bit reverse a byte. /*! \brief Bit reverse a byte.
...@@ -147,7 +131,8 @@ static __inline__ uint8_t bit_reverse8(uint8_t x) ...@@ -147,7 +131,8 @@ 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);
...@@ -155,7 +140,6 @@ static __inline__ uint8_t bit_reverse8(uint8_t x) ...@@ -155,7 +140,6 @@ static __inline__ uint8_t bit_reverse8(uint8_t x)
return ((x & 0xAA) >> 1) | ((x & 0x55) << 1); return ((x & 0xAA) >> 1) | ((x & 0x55) << 1);
#endif #endif
} }
/*- End of function --------------------------------------------------------*/
/*! \brief Bit reverse a 16 bit word. /*! \brief Bit reverse a 16 bit word.
\param data The word to be reversed. \param data The word to be reversed.
...@@ -195,7 +179,6 @@ static __inline__ uint32_t least_significant_one32(uint32_t x) ...@@ -195,7 +179,6 @@ static __inline__ uint32_t least_significant_one32(uint32_t x)
{ {
return (x & (-(int32_t) x)); return (x & (-(int32_t) x));
} }
/*- End of function --------------------------------------------------------*/
/*! \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
with just that bit set. with just that bit set.
...@@ -210,7 +193,6 @@ static __inline__ uint32_t most_significant_one32(uint32_t x) ...@@ -210,7 +193,6 @@ static __inline__ uint32_t most_significant_one32(uint32_t x)
return (x ^ (x >> 1)); return (x ^ (x >> 1));
#endif #endif
} }
/*- End of function --------------------------------------------------------*/
/*! \brief Find the parity of a byte. /*! \brief Find the parity of a byte.
\param x The byte to be checked. \param x The byte to be checked.
...@@ -220,7 +202,6 @@ static __inline__ int parity8(uint8_t x) ...@@ -220,7 +202,6 @@ 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;
} }
/*- End of function --------------------------------------------------------*/
/*! \brief Find the parity of a 16 bit word. /*! \brief Find the parity of a 16 bit word.
\param x The word to be checked. \param x The word to be checked.
...@@ -231,7 +212,6 @@ static __inline__ int parity16(uint16_t x) ...@@ -231,7 +212,6 @@ static __inline__ int parity16(uint16_t x)
x = (x ^ (x >> 4)) & 0x0F; x = (x ^ (x >> 4)) & 0x0F;
return (0x6996 >> x) & 1; return (0x6996 >> x) & 1;
} }
/*- End of function --------------------------------------------------------*/
/*! \brief Find the parity of a 32 bit word. /*! \brief Find the parity of a 32 bit word.
\param x The word to be checked. \param x The word to be checked.
...@@ -243,11 +223,6 @@ static __inline__ int parity32(uint32_t x) ...@@ -243,11 +223,6 @@ static __inline__ int parity32(uint32_t x)
x = (x ^ (x >> 4)) & 0x0F; x = (x ^ (x >> 4)) & 0x0F;
return (0x6996 >> x) & 1; return (0x6996 >> x) & 1;
} }
/*- End of function --------------------------------------------------------*/
#ifdef __cplusplus
}
#endif
#endif #endif
/*- End of file ------------------------------------------------------------*/ /*- End of file ------------------------------------------------------------*/
This diff is collapsed.
...@@ -118,23 +118,14 @@ a minor burden. ...@@ -118,23 +118,14 @@ a minor burden.
*/ */
#include "fir.h" #include "fir.h"
#include "oslec.h"
/* Mask bits for the adaption mode */
#define ECHO_CAN_USE_ADAPTION 0x01
#define ECHO_CAN_USE_NLP 0x02
#define ECHO_CAN_USE_CNG 0x04
#define ECHO_CAN_USE_CLIP 0x08
#define ECHO_CAN_USE_TX_HPF 0x10
#define ECHO_CAN_USE_RX_HPF 0x20
#define ECHO_CAN_DISABLE 0x40
/*! /*!
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.
*/ */
typedef struct 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;
...@@ -176,45 +167,6 @@ typedef struct ...@@ -176,45 +167,6 @@ typedef struct
/* snapshot sample of coeffs used for development */ /* snapshot sample of coeffs used for development */
int16_t *snapshot; int16_t *snapshot;
} echo_can_state_t; };
/*! Create a voice echo canceller context.
\param len The length of the canceller, in samples.
\return The new canceller context, or NULL if the canceller could not be created.
*/
echo_can_state_t *echo_can_create(int len, int adaption_mode);
/*! Free a voice echo canceller context.
\param ec The echo canceller context.
*/
void echo_can_free(echo_can_state_t *ec);
/*! Flush (reinitialise) a voice echo canceller context.
\param ec The echo canceller context.
*/
void echo_can_flush(echo_can_state_t *ec);
/*! Set the adaption mode of a voice echo canceller context.
\param ec The echo canceller context.
\param adapt The mode.
*/
void echo_can_adaption_mode(echo_can_state_t *ec, int adaption_mode);
void echo_can_snapshot(echo_can_state_t *ec);
/*! Process a sample through a voice echo canceller.
\param ec The echo canceller context.
\param tx The transmitted audio sample.
\param rx The received audio sample.
\return The clean (echo cancelled) received sample.
*/
int16_t echo_can_update(echo_can_state_t *ec, int16_t tx, int16_t rx);
/*! Process to high pass filter the tx signal.
\param ec The echo canceller context.
\param tx The transmitted auio sample.
\return The HP filtered transmit sample, send this to your D/A.
*/
int16_t echo_can_hpf_tx(echo_can_state_t *ec, int16_t tx);
#endif /* __ECHO_H */ #endif /* __ECHO_H */
...@@ -72,8 +72,7 @@ ...@@ -72,8 +72,7 @@
16 bit integer FIR descriptor. This defines the working state for a single 16 bit integer FIR descriptor. This defines the working state for a single
instance of an FIR filter using 16 bit integer coefficients. instance of an FIR filter using 16 bit integer coefficients.
*/ */
typedef struct typedef struct {
{
int taps; int taps;
int curr_pos; int curr_pos;
const int16_t *coeffs; const int16_t *coeffs;
...@@ -85,8 +84,7 @@ typedef struct ...@@ -85,8 +84,7 @@ typedef struct
instance of an FIR filter using 32 bit integer coefficients, and filtering instance of an FIR filter using 32 bit integer coefficients, and filtering
16 bit integer data. 16 bit integer data.
*/ */
typedef struct typedef struct {
{
int taps; int taps;
int curr_pos; int curr_pos;
const int32_t *coeffs; const int32_t *coeffs;
...@@ -97,62 +95,49 @@ typedef struct ...@@ -97,62 +95,49 @@ typedef struct
Floating point FIR descriptor. This defines the working state for a single Floating point FIR descriptor. This defines the working state for a single
instance of an FIR filter using floating point coefficients and data. instance of an FIR filter using floating point coefficients and data.
*/ */
typedef struct typedef struct {
{
int taps; int taps;
int curr_pos; int curr_pos;
const float *coeffs; const float *coeffs;
float *history; float *history;
} fir_float_state_t; } fir_float_state_t;
#ifdef __cplusplus static __inline__ const int16_t *fir16_create(fir16_state_t * fir,
extern "C" { const int16_t * coeffs, int taps)
#endif
static __inline__ const int16_t *fir16_create(fir16_state_t *fir,
const int16_t *coeffs,
int taps)
{ {
fir->taps = taps; fir->taps = taps;
fir->curr_pos = taps - 1; fir->curr_pos = taps - 1;
fir->coeffs = coeffs; fir->coeffs = coeffs;
#if defined(USE_MMX) || defined(USE_SSE2) || defined(__BLACKFIN_ASM__) #if defined(USE_MMX) || defined(USE_SSE2) || defined(__bfin__)
if ((fir->history = malloc(2*taps*sizeof(int16_t)))) fir->history = kcalloc(2 * taps, sizeof(int16_t), GFP_KERNEL);
memset(fir->history, 0, 2*taps*sizeof(int16_t));
#else #else
if ((fir->history = (int16_t *) malloc(taps*sizeof(int16_t)))) fir->history = kcalloc(taps, sizeof(int16_t), GFP_KERNEL);
memset(fir->history, 0, taps*sizeof(int16_t));
#endif #endif
return fir->history; return fir->history;
} }
/*- End of function --------------------------------------------------------*/
static __inline__ void fir16_flush(fir16_state_t *fir) static __inline__ void fir16_flush(fir16_state_t * fir)
{ {
#if defined(USE_MMX) || defined(USE_SSE2) || defined(__BLACKFIN_ASM__) #if defined(USE_MMX) || defined(USE_SSE2) || defined(__bfin__)
memset(fir->history, 0, 2*fir->taps*sizeof(int16_t)); memset(fir->history, 0, 2 * fir->taps * sizeof(int16_t));
#else #else
memset(fir->history, 0, fir->taps*sizeof(int16_t)); memset(fir->history, 0, fir->taps * sizeof(int16_t));
#endif #endif
} }
/*- End of function --------------------------------------------------------*/
static __inline__ void fir16_free(fir16_state_t *fir) static __inline__ void fir16_free(fir16_state_t * fir)
{ {
free(fir->history); kfree(fir->history);
} }
/*- End of function --------------------------------------------------------*/
#ifdef __BLACKFIN_ASM__ #ifdef __bfin__
static inline int32_t dot_asm(short *x, short *y, int len) static inline int32_t dot_asm(short *x, short *y, int len)
{ {
int dot; int dot;
len--; len--;
__asm__ __asm__("I0 = %1;\n\t"
(
"I0 = %1;\n\t"
"I1 = %2;\n\t" "I1 = %2;\n\t"
"A0 = 0;\n\t" "A0 = 0;\n\t"
"R0.L = W[I0++] || R1.L = W[I1++];\n\t" "R0.L = W[I0++] || R1.L = W[I1++];\n\t"
...@@ -163,17 +148,16 @@ static inline int32_t dot_asm(short *x, short *y, int len) ...@@ -163,17 +148,16 @@ static inline int32_t dot_asm(short *x, short *y, int len)
"A0 += R0.L*R1.L (IS);\n\t" "A0 += R0.L*R1.L (IS);\n\t"
"R0 = A0;\n\t" "R0 = A0;\n\t"
"%0 = R0;\n\t" "%0 = R0;\n\t"
: "=&d" (dot) :"=&d"(dot)
: "a" (x), "a" (y), "a" (len) :"a"(x), "a"(y), "a"(len)
: "I0", "I1", "A1", "A0", "R0", "R1" :"I0", "I1", "A1", "A0", "R0", "R1"
); );
return dot; return dot;
} }
#endif #endif
/*- End of function --------------------------------------------------------*/
static __inline__ int16_t fir16(fir16_state_t *fir, int16_t sample) static __inline__ int16_t fir16(fir16_state_t * fir, int16_t sample)
{ {
int32_t y; int32_t y;
#if defined(USE_MMX) #if defined(USE_MMX)
...@@ -185,12 +169,11 @@ static __inline__ int16_t fir16(fir16_state_t *fir, int16_t sample) ...@@ -185,12 +169,11 @@ static __inline__ int16_t fir16(fir16_state_t *fir, int16_t sample)
fir->history[fir->curr_pos + fir->taps] = sample; fir->history[fir->curr_pos + fir->taps] = sample;
mmx_coeffs = (mmx_t *) fir->coeffs; mmx_coeffs = (mmx_t *) fir->coeffs;
mmx_hist = (mmx_t *) &fir->history[fir->curr_pos]; mmx_hist = (mmx_t *) & fir->history[fir->curr_pos];
i = fir->taps; i = fir->taps;
pxor_r2r(mm4, mm4); pxor_r2r(mm4, mm4);
/* 8 samples per iteration, so the filter must be a multiple of 8 long. */ /* 8 samples per iteration, so the filter must be a multiple of 8 long. */
while (i > 0) while (i > 0) {
{
movq_m2r(mmx_coeffs[0], mm0); movq_m2r(mmx_coeffs[0], mm0);
movq_m2r(mmx_coeffs[1], mm2); movq_m2r(mmx_coeffs[1], mm2);
movq_m2r(mmx_hist[0], mm1); movq_m2r(mmx_hist[0], mm1);
...@@ -217,12 +200,11 @@ static __inline__ int16_t fir16(fir16_state_t *fir, int16_t sample) ...@@ -217,12 +200,11 @@ static __inline__ int16_t fir16(fir16_state_t *fir, int16_t sample)
fir->history[fir->curr_pos + fir->taps] = sample; fir->history[fir->curr_pos + fir->taps] = sample;
xmm_coeffs = (xmm_t *) fir->coeffs; xmm_coeffs = (xmm_t *) fir->coeffs;
xmm_hist = (xmm_t *) &fir->history[fir->curr_pos]; xmm_hist = (xmm_t *) & fir->history[fir->curr_pos];
i = fir->taps; i = fir->taps;
pxor_r2r(xmm4, xmm4); pxor_r2r(xmm4, xmm4);
/* 16 samples per iteration, so the filter must be a multiple of 16 long. */ /* 16 samples per iteration, so the filter must be a multiple of 16 long. */
while (i > 0) while (i > 0) {
{
movdqu_m2r(xmm_coeffs[0], xmm0); movdqu_m2r(xmm_coeffs[0], xmm0);
movdqu_m2r(xmm_coeffs[1], xmm2); movdqu_m2r(xmm_coeffs[1], xmm2);
movdqu_m2r(xmm_hist[0], xmm1); movdqu_m2r(xmm_hist[0], xmm1);
...@@ -242,10 +224,11 @@ static __inline__ int16_t fir16(fir16_state_t *fir, int16_t sample) ...@@ -242,10 +224,11 @@ static __inline__ int16_t fir16(fir16_state_t *fir, int16_t sample)
psrldq_i2r(4, xmm0); psrldq_i2r(4, xmm0);
paddd_r2r(xmm0, xmm4); paddd_r2r(xmm0, xmm4);
movd_r2m(xmm4, y); movd_r2m(xmm4, y);
#elif defined(__BLACKFIN_ASM__) #elif defined(__bfin__)
fir->history[fir->curr_pos] = sample; fir->history[fir->curr_pos] = sample;
fir->history[fir->curr_pos + fir->taps] = sample; fir->history[fir->curr_pos + fir->taps] = sample;
y = dot_asm((int16_t*)fir->coeffs, &fir->history[fir->curr_pos], fir->taps); y = dot_asm((int16_t *) fir->coeffs, &fir->history[fir->curr_pos],
fir->taps);
#else #else
int i; int i;
int offset1; int offset1;
...@@ -257,44 +240,37 @@ static __inline__ int16_t fir16(fir16_state_t *fir, int16_t sample) ...@@ -257,44 +240,37 @@ static __inline__ int16_t fir16(fir16_state_t *fir, int16_t sample)
offset1 = fir->taps - offset2; offset1 = fir->taps - offset2;
y = 0; y = 0;
for (i = fir->taps - 1; i >= offset1; i--) for (i = fir->taps - 1; i >= offset1; i--)
y += fir->coeffs[i]*fir->history[i - offset1]; y += fir->coeffs[i] * fir->history[i - offset1];
for ( ; i >= 0; i--) for (; i >= 0; i--)
y += fir->coeffs[i]*fir->history[i + offset2]; y += fir->coeffs[i] * fir->history[i + offset2];
#endif #endif
if (fir->curr_pos <= 0) if (fir->curr_pos <= 0)
fir->curr_pos = fir->taps; fir->curr_pos = fir->taps;
fir->curr_pos--; fir->curr_pos--;
return (int16_t) (y >> 15); return (int16_t) (y >> 15);
} }
/*- End of function --------------------------------------------------------*/
static __inline__ const int16_t *fir32_create(fir32_state_t *fir, static __inline__ const int16_t *fir32_create(fir32_state_t * fir,
const int32_t *coeffs, const int32_t * coeffs, int taps)
int taps)
{ {
fir->taps = taps; fir->taps = taps;
fir->curr_pos = taps - 1; fir->curr_pos = taps - 1;
fir->coeffs = coeffs; fir->coeffs = coeffs;
fir->history = (int16_t *) malloc(taps*sizeof(int16_t)); fir->history = kcalloc(taps, sizeof(int16_t), GFP_KERNEL);
if (fir->history)
memset(fir->history, '\0', taps*sizeof(int16_t));
return fir->history; return fir->history;
} }
/*- End of function --------------------------------------------------------*/
static __inline__ void fir32_flush(fir32_state_t *fir) static __inline__ void fir32_flush(fir32_state_t * fir)
{ {
memset(fir->history, 0, fir->taps*sizeof(int16_t)); memset(fir->history, 0, fir->taps * sizeof(int16_t));
} }
/*- End of function --------------------------------------------------------*/
static __inline__ void fir32_free(fir32_state_t *fir) static __inline__ void fir32_free(fir32_state_t * fir)
{ {
free(fir->history); kfree(fir->history);
} }
/*- End of function --------------------------------------------------------*/
static __inline__ int16_t fir32(fir32_state_t *fir, int16_t sample) static __inline__ int16_t fir32(fir32_state_t * fir, int16_t sample)
{ {
int i; int i;
int32_t y; int32_t y;
...@@ -306,64 +282,14 @@ static __inline__ int16_t fir32(fir32_state_t *fir, int16_t sample) ...@@ -306,64 +282,14 @@ static __inline__ int16_t fir32(fir32_state_t *fir, int16_t sample)
offset1 = fir->taps - offset2; offset1 = fir->taps - offset2;
y = 0; y = 0;
for (i = fir->taps - 1; i >= offset1; i--) for (i = fir->taps - 1; i >= offset1; i--)
y += fir->coeffs[i]*fir->history[i - offset1]; y += fir->coeffs[i] * fir->history[i - offset1];
for ( ; i >= 0; i--) for (; i >= 0; i--)
y += fir->coeffs[i]*fir->history[i + offset2]; y += fir->coeffs[i] * fir->history[i + offset2];
if (fir->curr_pos <= 0) if (fir->curr_pos <= 0)
fir->curr_pos = fir->taps; fir->curr_pos = fir->taps;
fir->curr_pos--; fir->curr_pos--;
return (int16_t) (y >> 15); return (int16_t) (y >> 15);
} }
/*- End of function --------------------------------------------------------*/
#ifndef __KERNEL__
static __inline__ const float *fir_float_create(fir_float_state_t *fir,
const float *coeffs,
int taps)
{
fir->taps = taps;
fir->curr_pos = taps - 1;
fir->coeffs = coeffs;
fir->history = (float *) malloc(taps*sizeof(float));
if (fir->history)
memset(fir->history, '\0', taps*sizeof(float));
return fir->history;
}
/*- End of function --------------------------------------------------------*/
static __inline__ void fir_float_free(fir_float_state_t *fir)
{
free(fir->history);
}
/*- End of function --------------------------------------------------------*/
static __inline__ int16_t fir_float(fir_float_state_t *fir, int16_t sample)
{
int i;
float y;
int offset1;
int offset2;
fir->history[fir->curr_pos] = sample;
offset2 = fir->curr_pos;
offset1 = fir->taps - offset2;
y = 0;
for (i = fir->taps - 1; i >= offset1; i--)
y += fir->coeffs[i]*fir->history[i - offset1];
for ( ; i >= 0; i--)
y += fir->coeffs[i]*fir->history[i + offset2];
if (fir->curr_pos <= 0)
fir->curr_pos = fir->taps;
fir->curr_pos--;
return (int16_t) y;
}
/*- End of function --------------------------------------------------------*/
#endif
#ifdef __cplusplus
}
#endif
#endif #endif
/*- End of file ------------------------------------------------------------*/ /*- End of file ------------------------------------------------------------*/
...@@ -44,7 +44,6 @@ typedef union { ...@@ -44,7 +44,6 @@ 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 */
/*
* OSLEC - A line echo canceller. This code is being developed
* against and partially complies with G168. Using code from SpanDSP
*
* Written by Steve Underwood <steveu@coppice.org>
* and David Rowe <david_at_rowetel_dot_com>
*
* Copyright (C) 2001 Steve Underwood and 2007-2008 David Rowe
*
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2, as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#ifndef __OSLEC_H
#define __OSLEC_H
/* TODO: document interface */
/* Mask bits for the adaption mode */
#define ECHO_CAN_USE_ADAPTION 0x01
#define ECHO_CAN_USE_NLP 0x02
#define ECHO_CAN_USE_CNG 0x04
#define ECHO_CAN_USE_CLIP 0x08
#define ECHO_CAN_USE_TX_HPF 0x10
#define ECHO_CAN_USE_RX_HPF 0x20
#define ECHO_CAN_DISABLE 0x40
/*!
G.168 echo canceller descriptor. This defines the working state for a line
echo canceller.
*/
struct oslec_state;
/*! Create a voice echo canceller context.
\param len The length of the canceller, in samples.
\return The new canceller context, or NULL if the canceller could not be created.
*/
struct oslec_state *oslec_create(int len, int adaption_mode);
/*! Free a voice echo canceller context.
\param ec The echo canceller context.
*/
void oslec_free(struct oslec_state *ec);
/*! Flush (reinitialise) a voice echo canceller context.
\param ec The echo canceller context.
*/
void oslec_flush(struct oslec_state *ec);
/*! Set the adaption mode of a voice echo canceller context.
\param ec The echo canceller context.
\param adapt The mode.
*/
void oslec_adaption_mode(struct oslec_state *ec, int adaption_mode);
void oslec_snapshot(struct oslec_state *ec);
/*! Process a sample through a voice echo canceller.
\param ec The echo canceller context.
\param tx The transmitted audio sample.
\param rx The received audio sample.
\return The clean (echo cancelled) received sample.
*/
int16_t oslec_update(struct oslec_state *ec, int16_t tx, int16_t rx);
/*! Process to high pass filter the tx signal.
\param ec The echo canceller context.
\param tx The transmitted auio sample.
\return The HP filtered transmit sample, send this to your D/A.
*/
int16_t oslec_hpf_tx(struct oslec_state *ec, int16_t tx);
#endif /* __OSLEC_H */
...@@ -84,7 +84,6 @@ ...@@ -84,7 +84,6 @@
#include <linux/if_arp.h> #include <linux/if_arp.h>
#include <linux/ioport.h> #include <linux/ioport.h>
#include <linux/random.h> #include <linux/random.h>
#include <linux/delay.h>
#include "et1310_phy.h" #include "et1310_phy.h"
#include "et1310_pm.h" #include "et1310_pm.h"
...@@ -95,7 +94,6 @@ ...@@ -95,7 +94,6 @@
#include "et131x_initpci.h" #include "et131x_initpci.h"
#include "et1310_address_map.h" #include "et1310_address_map.h"
#include "et1310_jagcore.h"
#include "et1310_tx.h" #include "et1310_tx.h"
#include "et1310_rx.h" #include "et1310_rx.h"
#include "et1310_mac.h" #include "et1310_mac.h"
......
...@@ -97,7 +97,6 @@ ...@@ -97,7 +97,6 @@
#include "et131x_isr.h" #include "et131x_isr.h"
#include "et1310_address_map.h" #include "et1310_address_map.h"
#include "et1310_jagcore.h"
#include "et1310_tx.h" #include "et1310_tx.h"
#include "et1310_rx.h" #include "et1310_rx.h"
#include "et1310_mac.h" #include "et1310_mac.h"
......
...@@ -97,7 +97,6 @@ ...@@ -97,7 +97,6 @@
#include "et131x_isr.h" #include "et131x_isr.h"
#include "et1310_address_map.h" #include "et1310_address_map.h"
#include "et1310_jagcore.h"
#include "et1310_tx.h" #include "et1310_tx.h"
#include "et1310_rx.h" #include "et1310_rx.h"
#include "et1310_mac.h" #include "et1310_mac.h"
......
...@@ -16,7 +16,6 @@ ...@@ -16,7 +16,6 @@
*/ */
#include <linux/module.h> #include <linux/module.h>
#include <linux/version.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/sched.h> #include <linux/sched.h>
......
...@@ -26,7 +26,6 @@ ...@@ -26,7 +26,6 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/version.h>
#include <linux/time.h> #include <linux/time.h>
#include <linux/mm.h> #include <linux/mm.h>
#include <linux/device.h> #include <linux/device.h>
......
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
* Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. * Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
*/ */
#include <linux/version.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/delay.h> #include <linux/delay.h>
......
...@@ -16,7 +16,6 @@ ...@@ -16,7 +16,6 @@
*/ */
#include <linux/module.h> #include <linux/module.h>
#include <linux/version.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/wait.h> #include <linux/wait.h>
......
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/version.h>
#include <linux/moduleparam.h> #include <linux/moduleparam.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/spinlock.h> #include <linux/spinlock.h>
......
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/version.h>
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/videodev2.h> #include <linux/videodev2.h>
......
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/version.h>
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/videodev2.h> #include <linux/videodev2.h>
#include <linux/ioctl.h> #include <linux/ioctl.h>
......
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/version.h>
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/videodev2.h> #include <linux/videodev2.h>
#include <linux/ioctl.h> #include <linux/ioctl.h>
......
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/version.h>
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/videodev2.h> #include <linux/videodev2.h>
#include <media/tuner.h> #include <media/tuner.h>
......
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/version.h>
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/videodev2.h> #include <linux/videodev2.h>
#include <linux/ioctl.h> #include <linux/ioctl.h>
......
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/version.h>
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/videodev2.h> #include <linux/videodev2.h>
#include <linux/ioctl.h> #include <linux/ioctl.h>
......
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/version.h>
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/videodev2.h> #include <linux/videodev2.h>
#include <media/tvaudio.h> #include <media/tvaudio.h>
......
This diff is collapsed.
This diff is collapsed.
config PCC_ACPI
tristate "Panasonic ACPI Hotkey support"
depends on ACPI
default n
---help---
This driver provides support for Panasonic hotkeys through the
ACPI interface. This works for the Panasonic R1 (N variant),
R2, R3, T2, W2, and Y2 laptops.
To compile this driver as a module, choose M here. The module
will be called pcc-acpi.
obj-$(CONFIG_PCC_ACPI) += pcc-acpi.o
TODO:
- Lindent fixes
- checkpatch.pl fixes
- verify that the acpi interface is correct
- remove /proc dependancy if needed (not sure yet.)
Please send any patches for this driver to Greg Kroah-Hartman <greg@kroah.com>
This diff is collapsed.
config POCH
tristate "Redrapids Pocket Change CardBus support"
depends on PCI && UIO
default N
---help---
Enable support for Redrapids Pocket Change CardBus devices.
obj-$(CONFIG_POCH) += poch.o
TODO:
- fix transmit overflows
- audit userspace interfaces
- get reserved major/minor if needed
Please send patches to Greg Kroah-Hartman <greg@kroah.com> and
Vijay Kumar <vijaykumar@bravegnu.org> and Jaya Kumar <jayakumar.lkml@gmail.com>
This diff is collapsed.
/*
* User-space DMA and UIO based Redrapids Pocket Change CardBus driver
*
* Copyright 2008 Vijay Kumar <vijaykumar@bravegnu.org>
*
* Part of userspace API. Should be moved to a header file in
* include/linux for final version.
*
*/
struct poch_cbuf_header {
__s32 group_size_bytes;
__s32 group_count;
__s32 group_offsets[0];
};
struct poch_counters {
__u32 fifo_empty;
__u32 fifo_overflow;
__u32 pll_unlock;
};
#define POCH_IOC_NUM '9'
#define POCH_IOC_TRANSFER_START _IO(POCH_IOC_NUM, 0)
#define POCH_IOC_TRANSFER_STOP _IO(POCH_IOC_NUM, 1)
#define POCH_IOC_GET_COUNTERS _IOR(POCH_IOC_NUM, 2, \
struct poch_counters)
#define POCH_IOC_SYNC_GROUP_FOR_USER _IO(POCH_IOC_NUM, 3)
#define POCH_IOC_SYNC_GROUP_FOR_DEVICE _IO(POCH_IOC_NUM, 4)
...@@ -54,7 +54,6 @@ ...@@ -54,7 +54,6 @@
* IS-NIC driver. * IS-NIC driver.
*/ */
#include <linux/version.h>
#define SLIC_DUMP_ENABLED 0 #define SLIC_DUMP_ENABLED 0
#define KLUDGE_FOR_4GB_BOUNDARY 1 #define KLUDGE_FOR_4GB_BOUNDARY 1
...@@ -96,17 +95,9 @@ ...@@ -96,17 +95,9 @@
#include <linux/moduleparam.h> #include <linux/moduleparam.h>
#include <linux/types.h> #include <linux/types.h>
#include <linux/slab.h>
#include <linux/delay.h>
#include <linux/init.h>
#include <linux/pci.h>
#include <linux/dma-mapping.h> #include <linux/dma-mapping.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/mii.h> #include <linux/mii.h>
#include <linux/if_vlan.h> #include <linux/if_vlan.h>
#include <linux/skbuff.h>
#include <linux/string.h>
#include <asm/unaligned.h> #include <asm/unaligned.h>
#include <linux/ethtool.h> #include <linux/ethtool.h>
...@@ -275,7 +266,6 @@ static void slic_dbg_register_trace(struct adapter *adapter, ...@@ -275,7 +266,6 @@ static void slic_dbg_register_trace(struct adapter *adapter,
card->reg_value[i], card->reg_valueh[i]); card->reg_value[i], card->reg_valueh[i]);
} }
} }
}
#endif #endif
static void slic_init_adapter(struct net_device *netdev, static void slic_init_adapter(struct net_device *netdev,
...@@ -606,6 +596,7 @@ static void __devexit slic_entry_remove(struct pci_dev *pcidev) ...@@ -606,6 +596,7 @@ static void __devexit slic_entry_remove(struct pci_dev *pcidev)
uint mmio_len = 0; uint mmio_len = 0;
struct adapter *adapter = (struct adapter *) netdev_priv(dev); struct adapter *adapter = (struct adapter *) netdev_priv(dev);
struct sliccard *card; struct sliccard *card;
struct mcast_address *mcaddr, *mlist;
ASSERT(adapter); ASSERT(adapter);
DBG_MSG("slicoss: %s ENTER dev[%p] adapter[%p]\n", __func__, dev, DBG_MSG("slicoss: %s ENTER dev[%p] adapter[%p]\n", __func__, dev,
...@@ -625,6 +616,13 @@ static void __devexit slic_entry_remove(struct pci_dev *pcidev) ...@@ -625,6 +616,13 @@ static void __devexit slic_entry_remove(struct pci_dev *pcidev)
DBG_MSG("slicoss: %s iounmap dev->base_addr[%x]\n", __func__, DBG_MSG("slicoss: %s iounmap dev->base_addr[%x]\n", __func__,
(uint) dev->base_addr); (uint) dev->base_addr);
iounmap((void __iomem *)dev->base_addr); iounmap((void __iomem *)dev->base_addr);
/* free multicast addresses */
mlist = adapter->mcastaddrs;
while (mlist) {
mcaddr = mlist;
mlist = mlist->next;
kfree(mcaddr);
}
ASSERT(adapter->card); ASSERT(adapter->card);
card = adapter->card; card = adapter->card;
ASSERT(card->adapters_allocated); ASSERT(card->adapters_allocated);
......
...@@ -7,6 +7,7 @@ TODO: ...@@ -7,6 +7,7 @@ TODO:
- remove wrappers - remove wrappers
- checkpatch.pl cleanups - checkpatch.pl cleanups
- new functionality that the card needs - new functionality that the card needs
- remove reliance on x86
Please send patches to: Please send patches to:
Greg Kroah-Hartman <gregkh@suse.de> Greg Kroah-Hartman <gregkh@suse.de>
......
This diff is collapsed.
...@@ -44,7 +44,6 @@ ...@@ -44,7 +44,6 @@
#define FALSE (0) #define FALSE (0)
#define TRUE (1) #define TRUE (1)
typedef struct _LIST_ENTRY { typedef struct _LIST_ENTRY {
struct _LIST_ENTRY *nle_flink; struct _LIST_ENTRY *nle_flink;
struct _LIST_ENTRY *nle_blink; struct _LIST_ENTRY *nle_blink;
...@@ -69,8 +68,7 @@ typedef struct _LIST_ENTRY { ...@@ -69,8 +68,7 @@ typedef struct _LIST_ENTRY {
/* These two have to be inlined since they return things. */ /* These two have to be inlined since they return things. */
static __inline PLIST_ENTRY static __inline PLIST_ENTRY RemoveHeadList(list_entry * l)
RemoveHeadList(list_entry *l)
{ {
list_entry *f; list_entry *f;
list_entry *e; list_entry *e;
...@@ -83,8 +81,7 @@ RemoveHeadList(list_entry *l) ...@@ -83,8 +81,7 @@ RemoveHeadList(list_entry *l)
return (e); return (e);
} }
static __inline PLIST_ENTRY static __inline PLIST_ENTRY RemoveTailList(list_entry * l)
RemoveTailList(list_entry *l)
{ {
list_entry *b; list_entry *b;
list_entry *e; list_entry *e;
...@@ -97,7 +94,6 @@ RemoveTailList(list_entry *l) ...@@ -97,7 +94,6 @@ RemoveTailList(list_entry *l)
return (e); return (e);
} }
#define InsertTailList(l, e) \ #define InsertTailList(l, e) \
do { \ do { \
list_entry *b; \ list_entry *b; \
...@@ -120,7 +116,6 @@ RemoveTailList(list_entry *l) ...@@ -120,7 +116,6 @@ RemoveTailList(list_entry *l)
(l)->nle_flink = (e); \ (l)->nle_flink = (e); \
} while (0) } while (0)
#define ATK_DEBUG 1 #define ATK_DEBUG 1
#if ATK_DEBUG #if ATK_DEBUG
...@@ -133,7 +128,6 @@ RemoveTailList(list_entry *l) ...@@ -133,7 +128,6 @@ RemoveTailList(list_entry *l)
#define SLIC_TIMESTAMP(value) #define SLIC_TIMESTAMP(value)
#endif #endif
/****************** SXG DEFINES *****************************************/ /****************** SXG DEFINES *****************************************/
#ifdef ATKDBG #ifdef ATKDBG
...@@ -151,4 +145,3 @@ RemoveTailList(list_entry *l) ...@@ -151,4 +145,3 @@ RemoveTailList(list_entry *l)
#define READ_REG(reg,value) (value) = readl((void __iomem *)(&reg)) #define READ_REG(reg,value) (value) = readl((void __iomem *)(&reg))
#endif /* _SLIC_OS_SPECIFIC_H_ */ #endif /* _SLIC_OS_SPECIFIC_H_ */
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
{ \ { \
if (!(a)) { \ if (!(a)) { \
DBG_ERROR("ASSERT() Failure: file %s, function %s line %d\n",\ DBG_ERROR("ASSERT() Failure: file %s, function %s line %d\n",\
__FILE__, __FUNCTION__, __LINE__); \ __FILE__, __func__, __LINE__); \
} \ } \
} }
#endif #endif
......
...@@ -277,7 +277,7 @@ typedef struct _SXG_EVENT { ...@@ -277,7 +277,7 @@ typedef struct _SXG_EVENT {
u32 SndUna; // SndUna value u32 SndUna; // SndUna value
u32 Resid; // receive MDL resid u32 Resid; // receive MDL resid
union { union {
void * HostHandle; // Receive host handle void *HostHandle; // Receive host handle
u32 Rsvd1; // TOE NA u32 Rsvd1; // TOE NA
struct { struct {
u32 NotUsed; u32 NotUsed;
...@@ -323,7 +323,7 @@ typedef struct _SXG_EVENT { ...@@ -323,7 +323,7 @@ typedef struct _SXG_EVENT {
typedef struct _SXG_EVENT_RING { typedef struct _SXG_EVENT_RING {
SXG_EVENT Ring[EVENT_RING_SIZE]; SXG_EVENT Ring[EVENT_RING_SIZE];
}SXG_EVENT_RING, *PSXG_EVENT_RING; } SXG_EVENT_RING, *PSXG_EVENT_RING;
/*************************************************************************** /***************************************************************************
* *
...@@ -368,7 +368,6 @@ typedef struct _SXG_EVENT_RING { ...@@ -368,7 +368,6 @@ typedef struct _SXG_EVENT_RING {
&(_TcpObject)->CompBuffer->Frame.HasVlan.TcpIp6.Ip : \ &(_TcpObject)->CompBuffer->Frame.HasVlan.TcpIp6.Ip : \
&(_TcpObject)->CompBuffer->Frame.NoVlan.TcpIp6.Ip &(_TcpObject)->CompBuffer->Frame.NoVlan.TcpIp6.Ip
#if DBG #if DBG
// Horrible kludge to distinguish dumb-nic, slowpath, and // Horrible kludge to distinguish dumb-nic, slowpath, and
// fastpath traffic. Decrement the HopLimit by one // fastpath traffic. Decrement the HopLimit by one
...@@ -405,7 +404,7 @@ typedef struct _SXG_RING_INFO { ...@@ -405,7 +404,7 @@ typedef struct _SXG_RING_INFO {
unsigned char Head; // Where we add entries - Note unsigned char:RING_SIZE unsigned char Head; // Where we add entries - Note unsigned char:RING_SIZE
unsigned char Tail; // Where we pull off completed entries unsigned char Tail; // Where we pull off completed entries
ushort Size; // Ring size - Must be multiple of 2 ushort Size; // Ring size - Must be multiple of 2
void * Context[SXG_MAX_RING_SIZE]; // Shadow ring void *Context[SXG_MAX_RING_SIZE]; // Shadow ring
} SXG_RING_INFO, *PSXG_RING_INFO; } SXG_RING_INFO, *PSXG_RING_INFO;
#define SXG_INITIALIZE_RING(_ring, _size) { \ #define SXG_INITIALIZE_RING(_ring, _size) { \
...@@ -486,7 +485,7 @@ typedef struct _SXG_CMD { ...@@ -486,7 +485,7 @@ typedef struct _SXG_CMD {
dma_addr_t Sgl; // Physical address of SGL dma_addr_t Sgl; // Physical address of SGL
union { union {
struct { struct {
dma64_addr_t FirstSgeAddress;// Address of first SGE dma64_addr_t FirstSgeAddress; // Address of first SGE
u32 FirstSgeLength; // Length of first SGE u32 FirstSgeLength; // Length of first SGE
union { union {
u32 Rsvd1; // TOE NA u32 Rsvd1; // TOE NA
...@@ -682,7 +681,7 @@ typedef struct _SXG_RCV_DATA_BUFFER_HDR { ...@@ -682,7 +681,7 @@ typedef struct _SXG_RCV_DATA_BUFFER_HDR {
u32 ByteOffset; // See SXG_RESTORE_MDL_OFFSET u32 ByteOffset; // See SXG_RESTORE_MDL_OFFSET
unsigned char State; // See SXG_BUFFER state above unsigned char State; // See SXG_BUFFER state above
unsigned char Status; // Event status (to log PUSH) unsigned char Status; // Event status (to log PUSH)
struct sk_buff * skb; // Double mapped (nbl and pkt) struct sk_buff *skb; // Double mapped (nbl and pkt)
} SXG_RCV_DATA_BUFFER_HDR, *PSXG_RCV_DATA_BUFFER_HDR; } SXG_RCV_DATA_BUFFER_HDR, *PSXG_RCV_DATA_BUFFER_HDR;
// SxgSlowReceive uses the PACKET (skb) contained // SxgSlowReceive uses the PACKET (skb) contained
...@@ -696,7 +695,7 @@ typedef struct _SXG_RCV_DATA_BUFFER_HDR { ...@@ -696,7 +695,7 @@ typedef struct _SXG_RCV_DATA_BUFFER_HDR {
// Receive data descriptor // Receive data descriptor
typedef struct _SXG_RCV_DATA_DESCRIPTOR { typedef struct _SXG_RCV_DATA_DESCRIPTOR {
union { union {
struct sk_buff * VirtualAddress; // Host handle struct sk_buff *VirtualAddress; // Host handle
u64 ForceTo8Bytes; // Force x86 to 8-byte boundary u64 ForceTo8Bytes; // Force x86 to 8-byte boundary
}; };
dma_addr_t PhysicalAddress; dma_addr_t PhysicalAddress;
...@@ -711,7 +710,7 @@ typedef struct _SXG_RCV_DESCRIPTOR_BLOCK { ...@@ -711,7 +710,7 @@ typedef struct _SXG_RCV_DESCRIPTOR_BLOCK {
// Receive descriptor block header // Receive descriptor block header
typedef struct _SXG_RCV_DESCRIPTOR_BLOCK_HDR { typedef struct _SXG_RCV_DESCRIPTOR_BLOCK_HDR {
void * VirtualAddress; // Start of 2k buffer void *VirtualAddress; // Start of 2k buffer
dma_addr_t PhysicalAddress; // ..and it's physical address dma_addr_t PhysicalAddress; // ..and it's physical address
LIST_ENTRY FreeList; // Free queue of descriptor blocks LIST_ENTRY FreeList; // Free queue of descriptor blocks
unsigned char State; // See SXG_BUFFER state above unsigned char State; // See SXG_BUFFER state above
...@@ -719,7 +718,7 @@ typedef struct _SXG_RCV_DESCRIPTOR_BLOCK_HDR { ...@@ -719,7 +718,7 @@ typedef struct _SXG_RCV_DESCRIPTOR_BLOCK_HDR {
// Receive block header // Receive block header
typedef struct _SXG_RCV_BLOCK_HDR { typedef struct _SXG_RCV_BLOCK_HDR {
void * VirtualAddress; // Start of virtual memory void *VirtualAddress; // Start of virtual memory
dma_addr_t PhysicalAddress; // ..and it's physical address dma_addr_t PhysicalAddress; // ..and it's physical address
LIST_ENTRY AllList; // Queue of all SXG_RCV_BLOCKS LIST_ENTRY AllList; // Queue of all SXG_RCV_BLOCKS
} SXG_RCV_BLOCK_HDR, *PSXG_RCV_BLOCK_HDR; } SXG_RCV_BLOCK_HDR, *PSXG_RCV_BLOCK_HDR;
...@@ -748,7 +747,7 @@ typedef struct _SXG_RCV_BLOCK_HDR { ...@@ -748,7 +747,7 @@ typedef struct _SXG_RCV_BLOCK_HDR {
// our SXG_RCV_DATA_BUFFER_HDR structure. // our SXG_RCV_DATA_BUFFER_HDR structure.
typedef struct _SXG_RCV_NBL_RESERVED { typedef struct _SXG_RCV_NBL_RESERVED {
PSXG_RCV_DATA_BUFFER_HDR RcvDataBufferHdr; PSXG_RCV_DATA_BUFFER_HDR RcvDataBufferHdr;
void * Available; void *Available;
} SXG_RCV_NBL_RESERVED, *PSXG_RCV_NBL_RESERVED; } SXG_RCV_NBL_RESERVED, *PSXG_RCV_NBL_RESERVED;
#define SXG_RCV_NBL_BUFFER_HDR(_NBL) (((PSXG_RCV_NBL_RESERVED)NET_BUFFER_LIST_MINIPORT_RESERVED(_NBL))->RcvDataBufferHdr) #define SXG_RCV_NBL_BUFFER_HDR(_NBL) (((PSXG_RCV_NBL_RESERVED)NET_BUFFER_LIST_MINIPORT_RESERVED(_NBL))->RcvDataBufferHdr)
...@@ -760,7 +759,6 @@ typedef struct _SXG_RCV_NBL_RESERVED { ...@@ -760,7 +759,6 @@ typedef struct _SXG_RCV_NBL_RESERVED {
#define SXG_MIN_SGL_BUFFERS 2048 // Minimum amount and when to get more #define SXG_MIN_SGL_BUFFERS 2048 // Minimum amount and when to get more
#define SXG_MAX_SGL_BUFFERS 16384 // Maximum to allocate (note ADAPT:ushort) #define SXG_MAX_SGL_BUFFERS 16384 // Maximum to allocate (note ADAPT:ushort)
// Self identifying structure type // Self identifying structure type
typedef enum _SXG_SGL_TYPE { typedef enum _SXG_SGL_TYPE {
SXG_SGL_DUMB, // Dumb NIC SGL SXG_SGL_DUMB, // Dumb NIC SGL
...@@ -803,21 +801,20 @@ typedef enum _SXG_SGL_TYPE { ...@@ -803,21 +801,20 @@ typedef enum _SXG_SGL_TYPE {
typedef struct _SXG_X64_SGE { typedef struct _SXG_X64_SGE {
dma64_addr_t Address; // same as wdm.h dma64_addr_t Address; // same as wdm.h
u32 Length; // same as wdm.h u32 Length; // same as wdm.h
u32 CompilerPad;// The compiler pads to 8-bytes u32 CompilerPad; // The compiler pads to 8-bytes
u64 Reserved; // u32 * in wdm.h. Force to 8 bytes u64 Reserved; // u32 * in wdm.h. Force to 8 bytes
} SXG_X64_SGE, *PSXG_X64_SGE; } SXG_X64_SGE, *PSXG_X64_SGE;
typedef struct _SCATTER_GATHER_ELEMENT { typedef struct _SCATTER_GATHER_ELEMENT {
dma64_addr_t Address; // same as wdm.h dma64_addr_t Address; // same as wdm.h
u32 Length; // same as wdm.h u32 Length; // same as wdm.h
u32 CompilerPad;// The compiler pads to 8-bytes u32 CompilerPad; // The compiler pads to 8-bytes
u64 Reserved; // u32 * in wdm.h. Force to 8 bytes u64 Reserved; // u32 * in wdm.h. Force to 8 bytes
} SCATTER_GATHER_ELEMENT, *PSCATTER_GATHER_ELEMENT; } SCATTER_GATHER_ELEMENT, *PSCATTER_GATHER_ELEMENT;
typedef struct _SCATTER_GATHER_LIST { typedef struct _SCATTER_GATHER_LIST {
u32 NumberOfElements; u32 NumberOfElements;
u32 * Reserved; u32 *Reserved;
SCATTER_GATHER_ELEMENT Elements[]; SCATTER_GATHER_ELEMENT Elements[];
} SCATTER_GATHER_LIST, *PSCATTER_GATHER_LIST; } SCATTER_GATHER_LIST, *PSCATTER_GATHER_LIST;
...@@ -827,19 +824,19 @@ typedef struct _SCATTER_GATHER_LIST { ...@@ -827,19 +824,19 @@ typedef struct _SCATTER_GATHER_LIST {
// we can specify SXG_X64_SGE and define a fixed number of elements // we can specify SXG_X64_SGE and define a fixed number of elements
typedef struct _SXG_X64_SGL { typedef struct _SXG_X64_SGL {
u32 NumberOfElements; u32 NumberOfElements;
u32 * Reserved; u32 *Reserved;
SXG_X64_SGE Elements[SXG_SGL_ENTRIES]; SXG_X64_SGE Elements[SXG_SGL_ENTRIES];
} SXG_X64_SGL, *PSXG_X64_SGL; } SXG_X64_SGL, *PSXG_X64_SGL;
typedef struct _SXG_SCATTER_GATHER { typedef struct _SXG_SCATTER_GATHER {
SXG_SGL_TYPE Type; // FIRST! Dumb-nic or offload SXG_SGL_TYPE Type; // FIRST! Dumb-nic or offload
void * adapter; // Back pointer to adapter void *adapter; // Back pointer to adapter
LIST_ENTRY FreeList; // Free SXG_SCATTER_GATHER blocks LIST_ENTRY FreeList; // Free SXG_SCATTER_GATHER blocks
LIST_ENTRY AllList; // All SXG_SCATTER_GATHER blocks LIST_ENTRY AllList; // All SXG_SCATTER_GATHER blocks
dma_addr_t PhysicalAddress;// physical address dma_addr_t PhysicalAddress; // physical address
unsigned char State; // See SXG_BUFFER state above unsigned char State; // See SXG_BUFFER state above
unsigned char CmdIndex; // Command ring index unsigned char CmdIndex; // Command ring index
struct sk_buff * DumbPacket; // Associated Packet struct sk_buff *DumbPacket; // Associated Packet
u32 Direction; // For asynchronous completions u32 Direction; // For asynchronous completions
u32 CurOffset; // Current SGL offset u32 CurOffset; // Current SGL offset
u32 SglRef; // SGL reference count u32 SglRef; // SGL reference count
...@@ -856,6 +853,5 @@ typedef struct _SXG_SCATTER_GATHER { ...@@ -856,6 +853,5 @@ typedef struct _SXG_SCATTER_GATHER {
#define SXG_SGL_BUFFER(_SxgSgl) NULL #define SXG_SGL_BUFFER(_SxgSgl) NULL
#define SXG_SGL_BUF_SIZE 0 #define SXG_SGL_BUF_SIZE 0
#else #else
Stop Compilation; Stop Compilation;
#endif #endif
...@@ -13,11 +13,11 @@ ...@@ -13,11 +13,11 @@
/******************************************************************************* /*******************************************************************************
* Configuration space * Configuration space
*******************************************************************************/ *******************************************************************************/
// PCI Vendor ID /* PCI Vendor ID */
#define SXG_VENDOR_ID 0x139A // Alacritech's Vendor ID #define SXG_VENDOR_ID 0x139A /* Alacritech's Vendor ID */
// PCI Device ID // PCI Device ID
#define SXG_DEVICE_ID 0x0009 // Sahara Device ID #define SXG_DEVICE_ID 0x0009 /* Sahara Device ID */
// //
// Subsystem IDs. // Subsystem IDs.
...@@ -623,48 +623,48 @@ typedef struct _RCV_BUF_HDR { ...@@ -623,48 +623,48 @@ typedef struct _RCV_BUF_HDR {
* Queue definitions * Queue definitions
*****************************************************************************/ *****************************************************************************/
// Ingress (read only) queue numbers /* Ingress (read only) queue numbers */
#define PXY_BUF_Q 0 // Proxy Buffer Queue #define PXY_BUF_Q 0 /* Proxy Buffer Queue */
#define HST_EVT_Q 1 // Host Event Queue #define HST_EVT_Q 1 /* Host Event Queue */
#define XMT_BUF_Q 2 // Transmit Buffer Queue #define XMT_BUF_Q 2 /* Transmit Buffer Queue */
#define SKT_EVL_Q 3 // RcvSqr Socket Event Low Priority Queue #define SKT_EVL_Q 3 /* RcvSqr Socket Event Low Priority Queue */
#define RCV_EVL_Q 4 // RcvSqr Rcv Event Low Priority Queue #define RCV_EVL_Q 4 /* RcvSqr Rcv Event Low Priority Queue */
#define SKT_EVH_Q 5 // RcvSqr Socket Event High Priority Queue #define SKT_EVH_Q 5 /* RcvSqr Socket Event High Priority Queue */
#define RCV_EVH_Q 6 // RcvSqr Rcv Event High Priority Queue #define RCV_EVH_Q 6 /* RcvSqr Rcv Event High Priority Queue */
#define DMA_RSP_Q 7 // Dma Response Queue - one per CPU context #define DMA_RSP_Q 7 /* Dma Response Queue - one per CPU context */
// Local (read/write) queue numbers /* Local (read/write) queue numbers */
#define LOCAL_A_Q 8 // Spare local Queue #define LOCAL_A_Q 8 /* Spare local Queue */
#define LOCAL_B_Q 9 // Spare local Queue #define LOCAL_B_Q 9 /* Spare local Queue */
#define LOCAL_C_Q 10 // Spare local Queue #define LOCAL_C_Q 10 /* Spare local Queue */
#define FSM_EVT_Q 11 // Finite-State-Machine Event Queue #define FSM_EVT_Q 11 /* Finite-State-Machine Event Queue */
#define SBF_PAL_Q 12 // System Buffer Physical Address (low) Queue #define SBF_PAL_Q 12 /* System Buffer Physical Address (low) Queue */
#define SBF_PAH_Q 13 // System Buffer Physical Address (high) Queue #define SBF_PAH_Q 13 /* System Buffer Physical Address (high) Queue */
#define SBF_VAL_Q 14 // System Buffer Virtual Address (low) Queue #define SBF_VAL_Q 14 /* System Buffer Virtual Address (low) Queue */
#define SBF_VAH_Q 15 // System Buffer Virtual Address (high) Queue #define SBF_VAH_Q 15 /* System Buffer Virtual Address (high) Queue */
// Egress (write only) queue numbers /* Egress (write only) queue numbers */
#define H2G_CMD_Q 16 // Host to GlbRam DMA Command Queue #define H2G_CMD_Q 16 /* Host to GlbRam DMA Command Queue */
#define H2D_CMD_Q 17 // Host to DRAM DMA Command Queue #define H2D_CMD_Q 17 /* Host to DRAM DMA Command Queue */
#define G2H_CMD_Q 18 // GlbRam to Host DMA Command Queue #define G2H_CMD_Q 18 /* GlbRam to Host DMA Command Queue */
#define G2D_CMD_Q 19 // GlbRam to DRAM DMA Command Queue #define G2D_CMD_Q 19 /* GlbRam to DRAM DMA Command Queue */
#define D2H_CMD_Q 20 // DRAM to Host DMA Command Queue #define D2H_CMD_Q 20 /* DRAM to Host DMA Command Queue */
#define D2G_CMD_Q 21 // DRAM to GlbRam DMA Command Queue #define D2G_CMD_Q 21 /* DRAM to GlbRam DMA Command Queue */
#define D2D_CMD_Q 22 // DRAM to DRAM DMA Command Queue #define D2D_CMD_Q 22 /* DRAM to DRAM DMA Command Queue */
#define PXL_CMD_Q 23 // Low Priority Proxy Command Queue #define PXL_CMD_Q 23 /* Low Priority Proxy Command Queue */
#define PXH_CMD_Q 24 // High Priority Proxy Command Queue #define PXH_CMD_Q 24 /* High Priority Proxy Command Queue */
#define RSQ_CMD_Q 25 // Receive Sequencer Command Queue #define RSQ_CMD_Q 25 /* Receive Sequencer Command Queue */
#define RCV_BUF_Q 26 // Receive Buffer Queue #define RCV_BUF_Q 26 /* Receive Buffer Queue */
// Bit definitions for the Proxy Command queues (PXL_CMD_Q and PXH_CMD_Q) /* Bit definitions for the Proxy Command queues (PXL_CMD_Q and PXH_CMD_Q) */
#define PXY_COPY_EN 0x00200000 // enable copy of xmt descriptor to xmt command queue #define PXY_COPY_EN 0x00200000 /* enable copy of xmt descriptor to xmt command queue */
#define PXY_SIZE_16 0x00000000 // copy 16 bytes #define PXY_SIZE_16 0x00000000 /* copy 16 bytes */
#define PXY_SIZE_32 0x00100000 // copy 32 bytes #define PXY_SIZE_32 0x00100000 /* copy 32 bytes */
/***************************************************************************** /*****************************************************************************
* SXG EEPROM/Flash Configuration Definitions * SXG EEPROM/Flash Configuration Definitions
*****************************************************************************/ *****************************************************************************/
#pragma pack(push, 1) #pragma pack(push, 1)
// /* */
typedef struct _HW_CFG_DATA { typedef struct _HW_CFG_DATA {
ushort Addr; ushort Addr;
union { union {
...@@ -673,22 +673,22 @@ typedef struct _HW_CFG_DATA { ...@@ -673,22 +673,22 @@ typedef struct _HW_CFG_DATA {
}; };
} HW_CFG_DATA, *PHW_CFG_DATA; } HW_CFG_DATA, *PHW_CFG_DATA;
// /* */
#define NUM_HW_CFG_ENTRIES ((128/sizeof(HW_CFG_DATA)) - 4) #define NUM_HW_CFG_ENTRIES ((128/sizeof(HW_CFG_DATA)) - 4)
// MAC address /* MAC address */
typedef struct _SXG_CONFIG_MAC { typedef struct _SXG_CONFIG_MAC {
unsigned char MacAddr[6]; // MAC Address unsigned char MacAddr[6]; /* MAC Address */
} SXG_CONFIG_MAC, *PSXG_CONFIG_MAC; } SXG_CONFIG_MAC, *PSXG_CONFIG_MAC;
// /* */
typedef struct _ATK_FRU { typedef struct _ATK_FRU {
unsigned char PartNum[6]; unsigned char PartNum[6];
unsigned char Revision[2]; unsigned char Revision[2];
unsigned char Serial[14]; unsigned char Serial[14];
} ATK_FRU, *PATK_FRU; } ATK_FRU, *PATK_FRU;
// OEM FRU Format types /* OEM FRU Format types */
#define ATK_FRU_FORMAT 0x0000 #define ATK_FRU_FORMAT 0x0000
#define CPQ_FRU_FORMAT 0x0001 #define CPQ_FRU_FORMAT 0x0001
#define DELL_FRU_FORMAT 0x0002 #define DELL_FRU_FORMAT 0x0002
...@@ -697,24 +697,24 @@ typedef struct _ATK_FRU { ...@@ -697,24 +697,24 @@ typedef struct _ATK_FRU {
#define EMC_FRU_FORMAT 0x0005 #define EMC_FRU_FORMAT 0x0005
#define NO_FRU_FORMAT 0xFFFF #define NO_FRU_FORMAT 0xFFFF
// EEPROM/Flash Format /* EEPROM/Flash Format */
typedef struct _SXG_CONFIG { typedef struct _SXG_CONFIG {
// /* */
// Section 1 (128 bytes) /* Section 1 (128 bytes) */
// /* */
ushort MagicWord; // EEPROM/FLASH Magic code 'A5A5' ushort MagicWord; /* EEPROM/FLASH Magic code 'A5A5' */
ushort SpiClks; // SPI bus clock dividers ushort SpiClks; /* SPI bus clock dividers */
HW_CFG_DATA HwCfg[NUM_HW_CFG_ENTRIES]; HW_CFG_DATA HwCfg[NUM_HW_CFG_ENTRIES];
// /* */
// /* */
// /* */
ushort Version; // EEPROM format version ushort Version; /* EEPROM format version */
SXG_CONFIG_MAC MacAddr[4]; // space for 4 MAC addresses SXG_CONFIG_MAC MacAddr[4]; /* space for 4 MAC addresses */
ATK_FRU AtkFru; // FRU information ATK_FRU AtkFru; /* FRU information */
ushort OemFruFormat; // OEM FRU format type ushort OemFruFormat; /* OEM FRU format type */
unsigned char OemFru[76]; // OEM FRU information (optional) unsigned char OemFru[76]; /* OEM FRU information (optional) */
ushort Checksum; // Checksum of section 2 ushort Checksum; /* Checksum of section 2 */
// CS info XXXTODO /* CS info XXXTODO */
} SXG_CONFIG, *PSXG_CONFIG; } SXG_CONFIG, *PSXG_CONFIG;
#pragma pack(pop) #pragma pack(pop)
......
...@@ -53,7 +53,7 @@ static PHY_UCODE PhyUcode[] = { ...@@ -53,7 +53,7 @@ static PHY_UCODE PhyUcode[] = {
/* Transceiver-specific MDIO Patches: */ /* Transceiver-specific MDIO Patches: */
{0xc010, 0x448a}, /* (bit 14) mask out high BER input from the */ {0xc010, 0x448a}, /* (bit 14) mask out high BER input from the */
/* LOS signal in 1.000A */ /* LOS signal in 1.000A */
/* (mandatory patch for SR code)*/ /* (mandatory patch for SR code) */
{0xc003, 0x0181}, /* (bit 7) enable the CDR inc setting in */ {0xc003, 0x0181}, /* (bit 7) enable the CDR inc setting in */
/* 1.C005 (mandatory patch for SR code) */ /* 1.C005 (mandatory patch for SR code) */
......
...@@ -221,7 +221,7 @@ static void usbip_dump_request_type(__u8 rt) ...@@ -221,7 +221,7 @@ static void usbip_dump_request_type(__u8 rt)
static void usbip_dump_usb_ctrlrequest(struct usb_ctrlrequest *cmd) static void usbip_dump_usb_ctrlrequest(struct usb_ctrlrequest *cmd)
{ {
if (!cmd) { if (!cmd) {
printk(" %s : null pointer\n", __FUNCTION__); printk(" %s : null pointer\n", __func__);
return; return;
} }
......
...@@ -202,7 +202,7 @@ static void vhci_rx_pdu(struct usbip_device *ud) ...@@ -202,7 +202,7 @@ static void vhci_rx_pdu(struct usbip_device *ud)
ret = usbip_xmit(0, ud->tcp_socket, (char *) &pdu, sizeof(pdu), 0); ret = usbip_xmit(0, ud->tcp_socket, (char *) &pdu, sizeof(pdu), 0);
if (ret != sizeof(pdu)) { if (ret != sizeof(pdu)) {
uerr("receiving pdu failed! size is %d, should be %d\n", uerr("receiving pdu failed! size is %d, should be %d\n",
ret, sizeof(pdu)); ret, (unsigned int)sizeof(pdu));
usbip_event_add(ud, VDEV_EVENT_ERROR_TCP); usbip_event_add(ud, VDEV_EVENT_ERROR_TCP);
return; return;
} }
......
config W35UND config W35UND
tristate "Winbond driver" tristate "Winbond driver"
depends on MAC80211 && WLAN_80211 && EXPERIMENTAL && !4KSTACKS depends on MAC80211 && WLAN_80211 && USB && EXPERIMENTAL && !4KSTACKS
default n default n
---help--- ---help---
This is highly experimental driver for winbond wifi card on some Kohjinsha notebooks This is highly experimental driver for winbond wifi card on some Kohjinsha notebooks
......
...@@ -5,6 +5,7 @@ TODO: ...@@ -5,6 +5,7 @@ TODO:
- remove typedefs - remove typedefs
- remove unused ioctls - remove unused ioctls
- use cfg80211 for regulatory stuff - use cfg80211 for regulatory stuff
- fix 4k stack problems
Please send patches to Greg Kroah-Hartman <greg@kroah.com> and Please send patches to Greg Kroah-Hartman <greg@kroah.com> and
Pavel Machek <pavel@suse.cz> Pavel Machek <pavel@suse.cz>
...@@ -24,7 +24,7 @@ void DesiredRate2InfoElement(PWB32_ADAPTER Adapter, u8 *addr, u16 *iFildOffset, ...@@ -24,7 +24,7 @@ void DesiredRate2InfoElement(PWB32_ADAPTER Adapter, u8 *addr, u16 *iFildOffset,
u8 *pBasicRateSet, u8 BasicRateCount, u8 *pBasicRateSet, u8 BasicRateCount,
u8 *pOperationRateSet, u8 OperationRateCount); u8 *pOperationRateSet, u8 OperationRateCount);
void BSSAddIBSSdata(PWB32_ADAPTER Adapter, PWB_BSSDESCRIPTION psDesData); void BSSAddIBSSdata(PWB32_ADAPTER Adapter, PWB_BSSDESCRIPTION psDesData);
unsigned char boCmpMacAddr( PUCHAR, PUCHAR ); unsigned char boCmpMacAddr( u8 *, u8 *);
unsigned char boCmpSSID(struct SSID_Element *psSSID1, struct SSID_Element *psSSID2); unsigned char boCmpSSID(struct SSID_Element *psSSID1, struct SSID_Element *psSSID2);
u16 wBSSfindSSID(PWB32_ADAPTER Adapter, struct SSID_Element *psSsid); u16 wBSSfindSSID(PWB32_ADAPTER Adapter, struct SSID_Element *psSsid);
u16 wRoamingQuery(PWB32_ADAPTER Adapter); u16 wRoamingQuery(PWB32_ADAPTER Adapter);
...@@ -42,11 +42,11 @@ void RateReSortForSRate(PWB32_ADAPTER Adapter, u8 *RateArray, u8 num); ...@@ -42,11 +42,11 @@ void RateReSortForSRate(PWB32_ADAPTER Adapter, u8 *RateArray, u8 num);
void Assemble_IE(PWB32_ADAPTER Adapter, u16 wBssIdx); void Assemble_IE(PWB32_ADAPTER Adapter, u16 wBssIdx);
void SetMaxTxRate(PWB32_ADAPTER Adapter); void SetMaxTxRate(PWB32_ADAPTER Adapter);
void CreateWpaIE(PWB32_ADAPTER Adapter, u16* iFildOffset, PUCHAR msg, struct Management_Frame* msgHeader, void CreateWpaIE(PWB32_ADAPTER Adapter, u16* iFildOffset, u8 *msg, struct Management_Frame* msgHeader,
struct Association_Request_Frame_Body* msgBody, u16 iMSindex); //added by WS 05/14/05 struct Association_Request_Frame_Body* msgBody, u16 iMSindex); //added by WS 05/14/05
#ifdef _WPA2_ #ifdef _WPA2_
void CreateRsnIE(PWB32_ADAPTER Adapter, u16* iFildOffset, PUCHAR msg, struct Management_Frame* msgHeader, void CreateRsnIE(PWB32_ADAPTER Adapter, u16* iFildOffset, u8 *msg, struct Management_Frame* msgHeader,
struct Association_Request_Frame_Body* msgBody, u16 iMSindex);//added by WS 05/14/05 struct Association_Request_Frame_Body* msgBody, u16 iMSindex);//added by WS 05/14/05
u16 SearchPmkid(PWB32_ADAPTER Adapter, struct Management_Frame* msgHeader, u16 SearchPmkid(PWB32_ADAPTER Adapter, struct Management_Frame* msgHeader,
......
...@@ -25,9 +25,9 @@ typedef struct tkip ...@@ -25,9 +25,9 @@ typedef struct tkip
s32 bytes_in_M; // # bytes in M s32 bytes_in_M; // # bytes in M
} tkip_t; } tkip_t;
//void _append_data( PUCHAR pData, u16 size, tkip_t *p ); //void _append_data( u8 *pData, u16 size, tkip_t *p );
void Mds_MicGet( void* Adapter, void* pRxLayer1, PUCHAR pKey, PUCHAR pMic ); void Mds_MicGet( void* Adapter, void* pRxLayer1, u8 *pKey, u8 *pMic );
void Mds_MicFill( void* Adapter, void* pDes, PUCHAR XmitBufAddress ); void Mds_MicFill( void* Adapter, void* pDes, u8 *XmitBufAddress );
...@@ -39,14 +39,6 @@ ...@@ -39,14 +39,6 @@
// Common type definition // Common type definition
//=============================================================== //===============================================================
typedef u8* PUCHAR;
typedef s8* PCHAR;
typedef u8* PBOOLEAN;
typedef u16* PUSHORT;
typedef u32* PULONG;
typedef s16* PSHORT;
//=========================================== //===========================================
#define IGNORE 2 #define IGNORE 2
#define SUCCESS 1 #define SUCCESS 1
...@@ -110,16 +102,9 @@ typedef struct urb * PURB; ...@@ -110,16 +102,9 @@ typedef struct urb * PURB;
#define OS_ATOMIC_READ( _A, _V ) _V #define OS_ATOMIC_READ( _A, _V ) _V
#define OS_ATOMIC_INC( _A, _V ) EncapAtomicInc( _A, (void*)_V ) #define OS_ATOMIC_INC( _A, _V ) EncapAtomicInc( _A, (void*)_V )
#define OS_ATOMIC_DEC( _A, _V ) EncapAtomicDec( _A, (void*)_V ) #define OS_ATOMIC_DEC( _A, _V ) EncapAtomicDec( _A, (void*)_V )
#define OS_MEMORY_CLEAR( _A, _S ) memset( (PUCHAR)_A,0,_S) #define OS_MEMORY_CLEAR( _A, _S ) memset( (u8 *)_A,0,_S)
#define OS_MEMORY_COMPARE( _A, _B, _S ) (memcmp(_A,_B,_S)? 0 : 1) // Definition is reverse with Ndis 1: the same 0: different #define OS_MEMORY_COMPARE( _A, _B, _S ) (memcmp(_A,_B,_S)? 0 : 1) // Definition is reverse with Ndis 1: the same 0: different
#define OS_SPIN_LOCK spinlock_t
#define OS_SPIN_LOCK_ALLOCATE( _S ) spin_lock_init( _S );
#define OS_SPIN_LOCK_FREE( _S )
#define OS_SPIN_LOCK_ACQUIRED( _S ) spin_lock_irq( _S )
#define OS_SPIN_LOCK_RELEASED( _S ) spin_unlock_irq( _S );
#define OS_TIMER struct timer_list #define OS_TIMER struct timer_list
#define OS_TIMER_INITIAL( _T, _F, _P ) \ #define OS_TIMER_INITIAL( _T, _F, _P ) \
{ \ { \
......
This diff is collapsed.
...@@ -29,16 +29,16 @@ void EEPROMTxVgaAdjust( phw_data_t pHwData ); // 20060619.5 Add ...@@ -29,16 +29,16 @@ void EEPROMTxVgaAdjust( phw_data_t pHwData ); // 20060619.5 Add
void Wb35Reg_destroy( phw_data_t pHwData ); void Wb35Reg_destroy( phw_data_t pHwData );
unsigned char Wb35Reg_Read( phw_data_t pHwData, u16 RegisterNo, PULONG pRegisterValue ); unsigned char Wb35Reg_Read( phw_data_t pHwData, u16 RegisterNo, u32 * pRegisterValue );
unsigned char Wb35Reg_ReadSync( phw_data_t pHwData, u16 RegisterNo, PULONG pRegisterValue ); unsigned char Wb35Reg_ReadSync( phw_data_t pHwData, u16 RegisterNo, u32 * pRegisterValue );
unsigned char Wb35Reg_Write( phw_data_t pHwData, u16 RegisterNo, u32 RegisterValue ); unsigned char Wb35Reg_Write( phw_data_t pHwData, u16 RegisterNo, u32 RegisterValue );
unsigned char Wb35Reg_WriteSync( phw_data_t pHwData, u16 RegisterNo, u32 RegisterValue ); unsigned char Wb35Reg_WriteSync( phw_data_t pHwData, u16 RegisterNo, u32 RegisterValue );
unsigned char Wb35Reg_WriteWithCallbackValue( phw_data_t pHwData, unsigned char Wb35Reg_WriteWithCallbackValue( phw_data_t pHwData,
u16 RegisterNo, u16 RegisterNo,
u32 RegisterValue, u32 RegisterValue,
PCHAR pValue, s8 *pValue,
s8 Len); s8 Len);
unsigned char Wb35Reg_BurstWrite( phw_data_t pHwData, u16 RegisterNo, PULONG pRegisterData, u8 NumberOfData, u8 Flag ); unsigned char Wb35Reg_BurstWrite( phw_data_t pHwData, u16 RegisterNo, u32 * pRegisterData, u8 NumberOfData, u8 Flag );
void Wb35Reg_EP0VM( phw_data_t pHwData ); void Wb35Reg_EP0VM( phw_data_t pHwData );
void Wb35Reg_EP0VM_start( phw_data_t pHwData ); void Wb35Reg_EP0VM_start( phw_data_t pHwData );
...@@ -47,7 +47,7 @@ void Wb35Reg_EP0VM_complete( PURB pUrb ); ...@@ -47,7 +47,7 @@ void Wb35Reg_EP0VM_complete( PURB pUrb );
u32 BitReverse( u32 dwData, u32 DataLength); u32 BitReverse( u32 dwData, u32 DataLength);
void CardGetMulticastBit( u8 Address[MAC_ADDR_LENGTH], u8 *Byte, u8 *Value ); void CardGetMulticastBit( u8 Address[MAC_ADDR_LENGTH], u8 *Byte, u8 *Value );
u32 CardComputeCrc( PUCHAR Buffer, u32 Length ); u32 CardComputeCrc( u8 * Buffer, u32 Length );
void Wb35Reg_phy_calibration( phw_data_t pHwData ); void Wb35Reg_phy_calibration( phw_data_t pHwData );
void Wb35Reg_Update( phw_data_t pHwData, u16 RegisterNo, u32 RegisterValue ); void Wb35Reg_Update( phw_data_t pHwData, u16 RegisterNo, u32 RegisterValue );
......
...@@ -75,7 +75,7 @@ typedef struct _REG_QUEUE ...@@ -75,7 +75,7 @@ typedef struct _REG_QUEUE
union union
{ {
u32 VALUE; u32 VALUE;
PULONG pBuffer; u32 * pBuffer;
}; };
u8 RESERVED[4];// space reserved for communication u8 RESERVED[4];// space reserved for communication
...@@ -143,7 +143,7 @@ typedef struct _WB35REG ...@@ -143,7 +143,7 @@ typedef struct _WB35REG
//------------------- //-------------------
// VM // VM
//------------------- //-------------------
OS_SPIN_LOCK EP0VM_spin_lock; // 4B spinlock_t EP0VM_spin_lock; // 4B
u32 EP0VM_status;//$$ u32 EP0VM_status;//$$
PREG_QUEUE pRegFirst; PREG_QUEUE pRegFirst;
PREG_QUEUE pRegLast; PREG_QUEUE pRegLast;
......
...@@ -27,7 +27,7 @@ void Wb35Rx_start(phw_data_t pHwData) ...@@ -27,7 +27,7 @@ void Wb35Rx_start(phw_data_t pHwData)
void Wb35Rx( phw_data_t pHwData ) void Wb35Rx( phw_data_t pHwData )
{ {
PWB35RX pWb35Rx = &pHwData->Wb35Rx; PWB35RX pWb35Rx = &pHwData->Wb35Rx;
PUCHAR pRxBufferAddress; u8 * pRxBufferAddress;
PURB pUrb = (PURB)pWb35Rx->RxUrb; PURB pUrb = (PURB)pWb35Rx->RxUrb;
int retv; int retv;
u32 RxBufferId; u32 RxBufferId;
...@@ -35,12 +35,11 @@ void Wb35Rx( phw_data_t pHwData ) ...@@ -35,12 +35,11 @@ void Wb35Rx( phw_data_t pHwData )
// //
// Issuing URB // Issuing URB
// //
do {
if (pHwData->SurpriseRemove || pHwData->HwStop) if (pHwData->SurpriseRemove || pHwData->HwStop)
break; goto error;
if (pWb35Rx->rx_halt) if (pWb35Rx->rx_halt)
break; goto error;
// Get RxBuffer's ID // Get RxBuffer's ID
RxBufferId = pWb35Rx->RxBufferId; RxBufferId = pWb35Rx->RxBufferId;
...@@ -49,7 +48,7 @@ void Wb35Rx( phw_data_t pHwData ) ...@@ -49,7 +48,7 @@ void Wb35Rx( phw_data_t pHwData )
#ifdef _PE_RX_DUMP_ #ifdef _PE_RX_DUMP_
WBDEBUG(("Rx driver fifo unavailable\n")); WBDEBUG(("Rx driver fifo unavailable\n"));
#endif #endif
break; goto error;
} }
// Update buffer point, then start to bulkin the data from USB // Update buffer point, then start to bulkin the data from USB
...@@ -60,7 +59,7 @@ void Wb35Rx( phw_data_t pHwData ) ...@@ -60,7 +59,7 @@ void Wb35Rx( phw_data_t pHwData )
if (1 != OS_MEMORY_ALLOC((void* *)&pWb35Rx->pDRx, MAX_USB_RX_BUFFER)) { if (1 != OS_MEMORY_ALLOC((void* *)&pWb35Rx->pDRx, MAX_USB_RX_BUFFER)) {
printk("w35und: Rx memory alloc failed\n"); printk("w35und: Rx memory alloc failed\n");
break; goto error;
} }
pRxBufferAddress = pWb35Rx->pDRx; pRxBufferAddress = pWb35Rx->pDRx;
...@@ -75,11 +74,11 @@ void Wb35Rx( phw_data_t pHwData ) ...@@ -75,11 +74,11 @@ void Wb35Rx( phw_data_t pHwData )
if (retv != 0) { if (retv != 0) {
printk("Rx URB sending error\n"); printk("Rx URB sending error\n");
break; goto error;
} }
return; return;
} while(FALSE);
error:
// VM stop // VM stop
pWb35Rx->EP3vm_state = VM_STOP; pWb35Rx->EP3vm_state = VM_STOP;
OS_ATOMIC_DEC( pHwData->Adapter, &pWb35Rx->RxFireCounter ); OS_ATOMIC_DEC( pHwData->Adapter, &pWb35Rx->RxFireCounter );
...@@ -89,7 +88,7 @@ void Wb35Rx_Complete(PURB pUrb) ...@@ -89,7 +88,7 @@ void Wb35Rx_Complete(PURB pUrb)
{ {
phw_data_t pHwData = pUrb->context; phw_data_t pHwData = pUrb->context;
PWB35RX pWb35Rx = &pHwData->Wb35Rx; PWB35RX pWb35Rx = &pHwData->Wb35Rx;
PUCHAR pRxBufferAddress; u8 * pRxBufferAddress;
u32 SizeCheck; u32 SizeCheck;
u16 BulkLength; u16 BulkLength;
u32 RxBufferId; u32 RxBufferId;
...@@ -99,7 +98,6 @@ void Wb35Rx_Complete(PURB pUrb) ...@@ -99,7 +98,6 @@ void Wb35Rx_Complete(PURB pUrb)
pWb35Rx->EP3vm_state = VM_COMPLETED; pWb35Rx->EP3vm_state = VM_COMPLETED;
pWb35Rx->EP3VM_status = pUrb->status;//Store the last result of Irp pWb35Rx->EP3VM_status = pUrb->status;//Store the last result of Irp
do {
RxBufferId = pWb35Rx->CurrentRxBufferId; RxBufferId = pWb35Rx->CurrentRxBufferId;
pRxBufferAddress = pWb35Rx->pDRx; pRxBufferAddress = pWb35Rx->pDRx;
...@@ -109,14 +107,14 @@ void Wb35Rx_Complete(PURB pUrb) ...@@ -109,14 +107,14 @@ void Wb35Rx_Complete(PURB pUrb)
pWb35Rx->EP3vm_state = VM_COMPLETED; pWb35Rx->EP3vm_state = VM_COMPLETED;
if (pHwData->SurpriseRemove || pHwData->HwStop) // Must be here, or RxBufferId is invalid if (pHwData->SurpriseRemove || pHwData->HwStop) // Must be here, or RxBufferId is invalid
break; goto error;
if (pWb35Rx->rx_halt) if (pWb35Rx->rx_halt)
break; goto error;
// Start to process the data only in successful condition // Start to process the data only in successful condition
pWb35Rx->RxOwner[ RxBufferId ] = 0; // Set the owner to driver pWb35Rx->RxOwner[ RxBufferId ] = 0; // Set the owner to driver
R00.value = le32_to_cpu(*(PULONG)pRxBufferAddress); R00.value = le32_to_cpu(*(u32 *)pRxBufferAddress);
// The URB is completed, check the result // The URB is completed, check the result
if (pWb35Rx->EP3VM_status != 0) { if (pWb35Rx->EP3VM_status != 0) {
...@@ -125,7 +123,7 @@ void Wb35Rx_Complete(PURB pUrb) ...@@ -125,7 +123,7 @@ void Wb35Rx_Complete(PURB pUrb)
DebugUsbdStatusInformation( pWb35Rx->EP3VM_status ); DebugUsbdStatusInformation( pWb35Rx->EP3VM_status );
#endif #endif
pWb35Rx->EP3vm_state = VM_STOP; pWb35Rx->EP3vm_state = VM_STOP;
break; goto error;
} }
// 20060220 For recovering. check if operating in single USB mode // 20060220 For recovering. check if operating in single USB mode
...@@ -156,8 +154,7 @@ void Wb35Rx_Complete(PURB pUrb) ...@@ -156,8 +154,7 @@ void Wb35Rx_Complete(PURB pUrb)
Wb35Rx(pHwData); Wb35Rx(pHwData);
return; return;
} while(FALSE); error:
pWb35Rx->RxOwner[ RxBufferId ] = 1; // Set the owner to hardware pWb35Rx->RxOwner[ RxBufferId ] = 1; // Set the owner to hardware
OS_ATOMIC_DEC( pHwData->Adapter, &pWb35Rx->RxFireCounter ); OS_ATOMIC_DEC( pHwData->Adapter, &pWb35Rx->RxFireCounter );
pWb35Rx->EP3vm_state = VM_STOP; pWb35Rx->EP3vm_state = VM_STOP;
...@@ -223,7 +220,7 @@ void Wb35Rx_reset_descriptor( phw_data_t pHwData ) ...@@ -223,7 +220,7 @@ void Wb35Rx_reset_descriptor( phw_data_t pHwData )
void Wb35Rx_adjust(PDESCRIPTOR pRxDes) void Wb35Rx_adjust(PDESCRIPTOR pRxDes)
{ {
PULONG pRxBufferAddress; u32 * pRxBufferAddress;
u32 DecryptionMethod; u32 DecryptionMethod;
u32 i; u32 i;
u16 BufferSize; u16 BufferSize;
...@@ -264,7 +261,7 @@ u16 Wb35Rx_indicate(phw_data_t pHwData) ...@@ -264,7 +261,7 @@ u16 Wb35Rx_indicate(phw_data_t pHwData)
{ {
DESCRIPTOR RxDes; DESCRIPTOR RxDes;
PWB35RX pWb35Rx = &pHwData->Wb35Rx; PWB35RX pWb35Rx = &pHwData->Wb35Rx;
PUCHAR pRxBufferAddress; u8 * pRxBufferAddress;
u16 PacketSize; u16 PacketSize;
u16 stmp, BufferSize, stmp2 = 0; u16 stmp, BufferSize, stmp2 = 0;
u32 RxBufferId; u32 RxBufferId;
...@@ -283,13 +280,13 @@ u16 Wb35Rx_indicate(phw_data_t pHwData) ...@@ -283,13 +280,13 @@ u16 Wb35Rx_indicate(phw_data_t pHwData)
// Parse the bulkin buffer // Parse the bulkin buffer
while (BufferSize >= 4) { while (BufferSize >= 4) {
if ((cpu_to_le32(*(PULONG)pRxBufferAddress) & 0x0fffffff) == RX_END_TAG) //Is ending? 921002.9.a if ((cpu_to_le32(*(u32 *)pRxBufferAddress) & 0x0fffffff) == RX_END_TAG) //Is ending? 921002.9.a
break; break;
// Get the R00 R01 first // Get the R00 R01 first
RxDes.R00.value = le32_to_cpu(*(PULONG)pRxBufferAddress); RxDes.R00.value = le32_to_cpu(*(u32 *)pRxBufferAddress);
PacketSize = (u16)RxDes.R00.R00_receive_byte_count; PacketSize = (u16)RxDes.R00.R00_receive_byte_count;
RxDes.R01.value = le32_to_cpu(*((PULONG)(pRxBufferAddress+4))); RxDes.R01.value = le32_to_cpu(*((u32 *)(pRxBufferAddress+4)));
// For new DMA 4k // For new DMA 4k
if ((PacketSize & 0x03) > 0) if ((PacketSize & 0x03) > 0)
PacketSize -= 4; PacketSize -= 4;
......
...@@ -41,7 +41,7 @@ typedef struct _WB35RX ...@@ -41,7 +41,7 @@ typedef struct _WB35RX
u32 Ep3ErrorCount2; // 20060625.1 Usbd for Rx DMA error count u32 Ep3ErrorCount2; // 20060625.1 Usbd for Rx DMA error count
int EP3VM_status; int EP3VM_status;
PUCHAR pDRx; u8 * pDRx;
} WB35RX, *PWB35RX; } WB35RX, *PWB35RX;
......
This diff is collapsed.
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
//==================================== //====================================
unsigned char Wb35Tx_initial( phw_data_t pHwData ); unsigned char Wb35Tx_initial( phw_data_t pHwData );
void Wb35Tx_destroy( phw_data_t pHwData ); void Wb35Tx_destroy( phw_data_t pHwData );
unsigned char Wb35Tx_get_tx_buffer( phw_data_t pHwData, PUCHAR *pBuffer ); unsigned char Wb35Tx_get_tx_buffer( phw_data_t pHwData, u8 **pBuffer );
void Wb35Tx_EP2VM( phw_data_t pHwData ); void Wb35Tx_EP2VM( phw_data_t pHwData );
void Wb35Tx_EP2VM_start( phw_data_t pHwData ); void Wb35Tx_EP2VM_start( phw_data_t pHwData );
......
This diff is collapsed.
This diff is collapsed.
unsigned char Mds_initial( PADAPTER Adapter ); unsigned char Mds_initial( PADAPTER Adapter );
void Mds_Destroy( PADAPTER Adapter ); void Mds_Destroy( PADAPTER Adapter );
void Mds_Tx( PADAPTER Adapter ); void Mds_Tx( PADAPTER Adapter );
void Mds_HeaderCopy( PADAPTER Adapter, PDESCRIPTOR pDes, PUCHAR TargetBuffer ); void Mds_HeaderCopy( PADAPTER Adapter, PDESCRIPTOR pDes, u8 *TargetBuffer );
u16 Mds_BodyCopy( PADAPTER Adapter, PDESCRIPTOR pDes, PUCHAR TargetBuffer ); u16 Mds_BodyCopy( PADAPTER Adapter, PDESCRIPTOR pDes, u8 *TargetBuffer );
void Mds_DurationSet( PADAPTER Adapter, PDESCRIPTOR pDes, PUCHAR TargetBuffer ); void Mds_DurationSet( PADAPTER Adapter, PDESCRIPTOR pDes, u8 *TargetBuffer );
void Mds_SendComplete( PADAPTER Adapter, PT02_DESCRIPTOR pT02 ); void Mds_SendComplete( PADAPTER Adapter, PT02_DESCRIPTOR pT02 );
void Mds_MpduProcess( PADAPTER Adapter, PDESCRIPTOR pRxDes ); void Mds_MpduProcess( PADAPTER Adapter, PDESCRIPTOR pRxDes );
void Mds_reset_descriptor( PADAPTER Adapter ); void Mds_reset_descriptor( PADAPTER Adapter );
......
...@@ -86,7 +86,7 @@ typedef struct _MDS ...@@ -86,7 +86,7 @@ typedef struct _MDS
{ {
// For Tx usage // For Tx usage
u8 TxOwner[ ((MAX_USB_TX_BUFFER_NUMBER + 3) & ~0x03) ]; u8 TxOwner[ ((MAX_USB_TX_BUFFER_NUMBER + 3) & ~0x03) ];
PUCHAR pTxBuffer; u8 *pTxBuffer;
u16 TxBufferSize[ ((MAX_USB_TX_BUFFER_NUMBER + 1) & ~0x01) ]; u16 TxBufferSize[ ((MAX_USB_TX_BUFFER_NUMBER + 1) & ~0x01) ];
u8 TxDesFrom[ ((MAX_USB_TX_DESCRIPTOR + 3) & ~0x03) ];//931130.4.u // 1: MLME 2: NDIS control 3: NDIS data u8 TxDesFrom[ ((MAX_USB_TX_DESCRIPTOR + 3) & ~0x03) ];//931130.4.u // 1: MLME 2: NDIS control 3: NDIS data
u8 TxCountInBuffer[ ((MAX_USB_TX_DESCRIPTOR + 3) & ~0x03) ]; // 20060928 u8 TxCountInBuffer[ ((MAX_USB_TX_DESCRIPTOR + 3) & ~0x03) ]; // 20060928
...@@ -103,7 +103,7 @@ typedef struct _MDS ...@@ -103,7 +103,7 @@ typedef struct _MDS
u16 TxResult[ ((MAX_USB_TX_DESCRIPTOR + 1) & ~0x01) ];//Collect the sending result of Mpdu u16 TxResult[ ((MAX_USB_TX_DESCRIPTOR + 1) & ~0x01) ];//Collect the sending result of Mpdu
u8 MicRedundant[8]; // For tmp use u8 MicRedundant[8]; // For tmp use
PUCHAR MicWriteAddress[2]; //The start address to fill the Mic, use 2 point due to Mic maybe fragment u8 *MicWriteAddress[2]; //The start address to fill the Mic, use 2 point due to Mic maybe fragment
u16 MicWriteSize[2]; //931130.4.x u16 MicWriteSize[2]; //931130.4.x
...@@ -144,7 +144,7 @@ typedef struct _MDS ...@@ -144,7 +144,7 @@ typedef struct _MDS
typedef struct _RxBuffer typedef struct _RxBuffer
{ {
PUCHAR pBufferAddress; // Pointer the received data buffer. u8 * pBufferAddress; // Pointer the received data buffer.
u16 BufferSize; u16 BufferSize;
u8 RESERVED; u8 RESERVED;
u8 BufferIndex;// Only 1 byte u8 BufferIndex;// Only 1 byte
...@@ -176,7 +176,7 @@ typedef struct _RXLAYER1 ...@@ -176,7 +176,7 @@ typedef struct _RXLAYER1
///////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////
// For brand-new Rx system // For brand-new Rx system
u8 ReservedBuffer[ 2400 ];//If Buffer ID is reserved one, it must copy the data into this area u8 ReservedBuffer[ 2400 ];//If Buffer ID is reserved one, it must copy the data into this area
PUCHAR ReservedBufferPoint;// Point to the next availabe address of reserved buffer u8 *ReservedBufferPoint;// Point to the next availabe address of reserved buffer
}RXLAYER1, * PRXLAYER1; }RXLAYER1, * PRXLAYER1;
......
...@@ -125,12 +125,12 @@ ...@@ -125,12 +125,12 @@
typedef struct _MLME_FRAME typedef struct _MLME_FRAME
{ {
//NDIS_PACKET MLME_Packet; //NDIS_PACKET MLME_Packet;
PCHAR pMMPDU; s8 * pMMPDU;
u16 len; u16 len;
u8 DataType; u8 DataType;
u8 IsInUsed; u8 IsInUsed;
OS_SPIN_LOCK MLMESpinLock; spinlock_t MLMESpinLock;
u8 TxMMPDU[MAX_NUM_TX_MMPDU][MAX_MMPDU_SIZE]; u8 TxMMPDU[MAX_NUM_TX_MMPDU][MAX_MMPDU_SIZE];
u8 TxMMPDUInUse[ (MAX_NUM_TX_MMPDU+3) & ~0x03 ]; u8 TxMMPDUInUse[ (MAX_NUM_TX_MMPDU+3) & ~0x03 ];
......
...@@ -113,13 +113,13 @@ MLME_GetNextPacket(PADAPTER Adapter, PDESCRIPTOR pDes) ...@@ -113,13 +113,13 @@ MLME_GetNextPacket(PADAPTER Adapter, PDESCRIPTOR pDes)
pDes->Type = Adapter->sMlmeFrame.DataType; pDes->Type = Adapter->sMlmeFrame.DataType;
} }
void MLMEfreeMMPDUBuffer(PWB32_ADAPTER Adapter, PCHAR pData) void MLMEfreeMMPDUBuffer(PWB32_ADAPTER Adapter, s8 *pData)
{ {
int i; int i;
// Reclaim the data buffer // Reclaim the data buffer
for (i = 0; i < MAX_NUM_TX_MMPDU; i++) { for (i = 0; i < MAX_NUM_TX_MMPDU; i++) {
if (pData == (PCHAR)&(Adapter->sMlmeFrame.TxMMPDU[i])) if (pData == (s8 *)&(Adapter->sMlmeFrame.TxMMPDU[i]))
break; break;
} }
if (Adapter->sMlmeFrame.TxMMPDUInUse[i]) if (Adapter->sMlmeFrame.TxMMPDUInUse[i])
......
...@@ -20,7 +20,7 @@ MLMEGetMMPDUBuffer( ...@@ -20,7 +20,7 @@ MLMEGetMMPDUBuffer(
PWB32_ADAPTER Adapter PWB32_ADAPTER Adapter
); );
void MLMEfreeMMPDUBuffer( PWB32_ADAPTER Adapter, PCHAR pData); void MLMEfreeMMPDUBuffer( PWB32_ADAPTER Adapter, s8 * pData);
void MLME_GetNextPacket( PADAPTER Adapter, PDESCRIPTOR pDes ); void MLME_GetNextPacket( PADAPTER Adapter, PDESCRIPTOR pDes );
u8 MLMESendFrame( PWB32_ADAPTER Adapter, u8 MLMESendFrame( PWB32_ADAPTER Adapter,
...@@ -42,7 +42,7 @@ MLMERcvFrame( ...@@ -42,7 +42,7 @@ MLMERcvFrame(
void void
MLMEReturnPacket( MLMEReturnPacket(
PWB32_ADAPTER Adapter, PWB32_ADAPTER Adapter,
PUCHAR pRxBufer u8 * pRxBufer
); );
#ifdef _IBSS_BEACON_SEQ_STICK_ #ifdef _IBSS_BEACON_SEQ_STICK_
s8 SendBCNullData(PWB32_ADAPTER Adapter, u16 wIdx); s8 SendBCNullData(PWB32_ADAPTER Adapter, u16 wIdx);
......
This diff is collapsed.
...@@ -10,4 +10,5 @@ ...@@ -10,4 +10,5 @@
s8 sme_get_rssi(void *pcore_data, s32 *prssi) s8 sme_get_rssi(void *pcore_data, s32 *prssi)
{ {
BUG(); BUG();
return 0;
} }
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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