aboutsummaryrefslogtreecommitdiff
path: root/drivers/staging/winbond/linux
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/winbond/linux')
-rw-r--r--drivers/staging/winbond/linux/common.h8
-rw-r--r--drivers/staging/winbond/linux/wb35reg.c8
-rw-r--r--drivers/staging/winbond/linux/wb35reg_s.h2
-rw-r--r--drivers/staging/winbond/linux/wb35rx.c9
-rw-r--r--drivers/staging/winbond/linux/wb35rx_s.h2
-rw-r--r--drivers/staging/winbond/linux/wb35tx.c16
-rw-r--r--drivers/staging/winbond/linux/wb35tx_s.h4
7 files changed, 20 insertions, 29 deletions
diff --git a/drivers/staging/winbond/linux/common.h b/drivers/staging/winbond/linux/common.h
index 521b68a9381..925e1b6cbc4 100644
--- a/drivers/staging/winbond/linux/common.h
+++ b/drivers/staging/winbond/linux/common.h
@@ -73,14 +73,6 @@
#define OS_EVENT_INDICATE( _A, _B, _F )
#define OS_PMKID_STATUS_EVENT( _A )
-
-/* Uff, no, longs are not atomic on all architectures Linux
- * supports. This should really use atomic_t */
-
-#define OS_ATOMIC u32
-#define OS_ATOMIC_READ( _A, _V ) _V
-#define OS_ATOMIC_INC( _A, _V ) EncapAtomicInc( _A, (void*)_V )
-#define OS_ATOMIC_DEC( _A, _V ) EncapAtomicDec( _A, (void*)_V )
#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
diff --git a/drivers/staging/winbond/linux/wb35reg.c b/drivers/staging/winbond/linux/wb35reg.c
index 56ad504bb06..6215e3ca418 100644
--- a/drivers/staging/winbond/linux/wb35reg.c
+++ b/drivers/staging/winbond/linux/wb35reg.c
@@ -386,11 +386,11 @@ Wb35Reg_EP0VM_start( phw_data_t pHwData )
{
struct wb35_reg *reg = &pHwData->reg;
- if (OS_ATOMIC_INC( pHwData->adapter, &reg->RegFireCount) == 1) {
+ if (atomic_inc_return(&reg->RegFireCount) == 1) {
reg->EP0vm_state = VM_RUNNING;
Wb35Reg_EP0VM(pHwData);
} else
- OS_ATOMIC_DEC( pHwData->adapter, &reg->RegFireCount );
+ atomic_dec(&reg->RegFireCount);
}
void
@@ -447,7 +447,7 @@ Wb35Reg_EP0VM(phw_data_t pHwData )
cleanup:
reg->EP0vm_state = VM_STOP;
- OS_ATOMIC_DEC( pHwData->adapter, &reg->RegFireCount );
+ atomic_dec(&reg->RegFireCount);
}
@@ -465,7 +465,7 @@ Wb35Reg_EP0VM_complete(struct urb *urb)
if (pHwData->SurpriseRemove) { // Let WbWlanHalt to handle surprise remove
reg->EP0vm_state = VM_STOP;
- OS_ATOMIC_DEC( pHwData->adapter, &reg->RegFireCount );
+ atomic_dec(&reg->RegFireCount);
} else {
// Complete to send, remove the URB from the first
spin_lock_irq( &reg->EP0VM_spin_lock );
diff --git a/drivers/staging/winbond/linux/wb35reg_s.h b/drivers/staging/winbond/linux/wb35reg_s.h
index c77306c585d..2f665d1b1a4 100644
--- a/drivers/staging/winbond/linux/wb35reg_s.h
+++ b/drivers/staging/winbond/linux/wb35reg_s.h
@@ -142,7 +142,7 @@ struct wb35_reg {
u32 EP0VM_status;//$$
struct wb35_reg_queue *reg_first;
struct wb35_reg_queue *reg_last;
- OS_ATOMIC RegFireCount;
+ atomic_t RegFireCount;
// Hardware status
u8 EP0vm_state;
diff --git a/drivers/staging/winbond/linux/wb35rx.c b/drivers/staging/winbond/linux/wb35rx.c
index e492fa581a4..f690298dea2 100644
--- a/drivers/staging/winbond/linux/wb35rx.c
+++ b/drivers/staging/winbond/linux/wb35rx.c
@@ -10,17 +10,16 @@
//============================================================================
#include "sysdef.h"
-
void Wb35Rx_start(phw_data_t pHwData)
{
PWB35RX pWb35Rx = &pHwData->Wb35Rx;
// Allow only one thread to run into the Wb35Rx() function
- if (OS_ATOMIC_INC(pHwData->adapter, &pWb35Rx->RxFireCounter) == 1) {
+ if (atomic_inc_return(&pWb35Rx->RxFireCounter) == 1) {
pWb35Rx->EP3vm_state = VM_RUNNING;
Wb35Rx(pHwData);
} else
- OS_ATOMIC_DEC(pHwData->adapter, &pWb35Rx->RxFireCounter);
+ atomic_dec(&pWb35Rx->RxFireCounter);
}
// This function cannot reentrain
@@ -82,7 +81,7 @@ void Wb35Rx( phw_data_t pHwData )
error:
// VM stop
pWb35Rx->EP3vm_state = VM_STOP;
- OS_ATOMIC_DEC( pHwData->adapter, &pWb35Rx->RxFireCounter );
+ atomic_dec(&pWb35Rx->RxFireCounter);
}
void Wb35Rx_Complete(struct urb *urb)
@@ -157,7 +156,7 @@ void Wb35Rx_Complete(struct urb *urb)
error:
pWb35Rx->RxOwner[ RxBufferId ] = 1; // Set the owner to hardware
- OS_ATOMIC_DEC( pHwData->adapter, &pWb35Rx->RxFireCounter );
+ atomic_dec(&pWb35Rx->RxFireCounter);
pWb35Rx->EP3vm_state = VM_STOP;
}
diff --git a/drivers/staging/winbond/linux/wb35rx_s.h b/drivers/staging/winbond/linux/wb35rx_s.h
index b90c269e6ad..f18350b41c4 100644
--- a/drivers/staging/winbond/linux/wb35rx_s.h
+++ b/drivers/staging/winbond/linux/wb35rx_s.h
@@ -18,7 +18,7 @@
typedef struct _WB35RX
{
u32 ByteReceived;// For calculating throughput of BulkIn
- OS_ATOMIC RxFireCounter;// Does Wb35Rx module fire?
+ atomic_t RxFireCounter;// Does Wb35Rx module fire?
u8 RxBuffer[ MAX_USB_RX_BUFFER_NUMBER ][ ((MAX_USB_RX_BUFFER+3) & ~0x03 ) ];
u16 RxBufferSize[ ((MAX_USB_RX_BUFFER_NUMBER+1) & ~0x01) ];
diff --git a/drivers/staging/winbond/linux/wb35tx.c b/drivers/staging/winbond/linux/wb35tx.c
index 020c52d761c..a58a193ce2b 100644
--- a/drivers/staging/winbond/linux/wb35tx.c
+++ b/drivers/staging/winbond/linux/wb35tx.c
@@ -25,11 +25,11 @@ void Wb35Tx_start(phw_data_t pHwData)
PWB35TX pWb35Tx = &pHwData->Wb35Tx;
// Allow only one thread to run into function
- if (OS_ATOMIC_INC(pHwData->adapter, &pWb35Tx->TxFireCounter) == 1) {
+ if (atomic_inc_return(&pWb35Tx->TxFireCounter) == 1) {
pWb35Tx->EP4vm_state = VM_RUNNING;
Wb35Tx(pHwData);
} else
- OS_ATOMIC_DEC( pHwData->adapter, &pWb35Tx->TxFireCounter );
+ atomic_dec(&pWb35Tx->TxFireCounter);
}
@@ -81,7 +81,7 @@ void Wb35Tx(phw_data_t pHwData)
cleanup:
pWb35Tx->EP4vm_state = VM_STOP;
- OS_ATOMIC_DEC( pHwData->adapter, &pWb35Tx->TxFireCounter );
+ atomic_dec(&pWb35Tx->TxFireCounter);
}
@@ -118,7 +118,7 @@ void Wb35Tx_complete(struct urb * pUrb)
return;
error:
- OS_ATOMIC_DEC( pHwData->adapter, &pWb35Tx->TxFireCounter );
+ atomic_dec(&pWb35Tx->TxFireCounter);
pWb35Tx->EP4vm_state = VM_STOP;
}
@@ -211,12 +211,12 @@ void Wb35Tx_EP2VM_start(phw_data_t pHwData)
PWB35TX pWb35Tx = &pHwData->Wb35Tx;
// Allow only one thread to run into function
- if (OS_ATOMIC_INC( pHwData->adapter, &pWb35Tx->TxResultCount ) == 1) {
+ if (atomic_inc_return(&pWb35Tx->TxResultCount) == 1) {
pWb35Tx->EP2vm_state = VM_RUNNING;
Wb35Tx_EP2VM( pHwData );
}
else
- OS_ATOMIC_DEC( pHwData->adapter, &pWb35Tx->TxResultCount );
+ atomic_dec(&pWb35Tx->TxResultCount);
}
@@ -252,7 +252,7 @@ void Wb35Tx_EP2VM(phw_data_t pHwData)
return;
error:
pWb35Tx->EP2vm_state = VM_STOP;
- OS_ATOMIC_DEC( pHwData->adapter, &pWb35Tx->TxResultCount );
+ atomic_dec(&pWb35Tx->TxResultCount);
}
@@ -301,7 +301,7 @@ void Wb35Tx_EP2VM_complete(struct urb * pUrb)
return;
error:
- OS_ATOMIC_DEC( pHwData->adapter, &pWb35Tx->TxResultCount );
+ atomic_dec(&pWb35Tx->TxResultCount);
pWb35Tx->EP2vm_state = VM_STOP;
}
diff --git a/drivers/staging/winbond/linux/wb35tx_s.h b/drivers/staging/winbond/linux/wb35tx_s.h
index ac432573676..8cb449f7a38 100644
--- a/drivers/staging/winbond/linux/wb35tx_s.h
+++ b/drivers/staging/winbond/linux/wb35tx_s.h
@@ -21,8 +21,8 @@ typedef struct _WB35TX
// For Interrupt pipe
u8 EP2_buf[MAX_INTERRUPT_LENGTH];
- OS_ATOMIC TxResultCount;// For thread control of EP2 931130.4.m
- OS_ATOMIC TxFireCounter;// For thread control of EP4 931130.4.n
+ atomic_t TxResultCount;// For thread control of EP2 931130.4.m
+ atomic_t TxFireCounter;// For thread control of EP4 931130.4.n
u32 ByteTransfer;
u32 TxSendIndex;// The next index of Mds array to be sent