diff options
author | Pekka Enberg <penberg@cs.helsinki.fi> | 2008-10-30 19:04:54 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-01-06 13:51:51 -0800 |
commit | 5c58093e63ff0a391acf708e153ef0b5d09aefc0 (patch) | |
tree | 00454f40b74dffaabfe5cadeca1d28bafcc528e0 /drivers/staging/winbond/wb35tx.c | |
parent | c139a814ab1735a8a1fa1b63cad71bd4f8dd8935 (diff) | |
download | op-kernel-dev-5c58093e63ff0a391acf708e153ef0b5d09aefc0.zip op-kernel-dev-5c58093e63ff0a391acf708e153ef0b5d09aefc0.tar.gz |
Staging: w35und: make functions local to wb35tx.c static
While there are no functional changes, the diff is quite large because we need
to shuffle code around to avoid forward declarations.
Acked-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/winbond/wb35tx.c')
-rw-r--r-- | drivers/staging/winbond/wb35tx.c | 199 |
1 files changed, 95 insertions, 104 deletions
diff --git a/drivers/staging/winbond/wb35tx.c b/drivers/staging/winbond/wb35tx.c index 32ee391e..b9b4456 100644 --- a/drivers/staging/winbond/wb35tx.c +++ b/drivers/staging/winbond/wb35tx.c @@ -23,21 +23,46 @@ Wb35Tx_get_tx_buffer(phw_data_t pHwData, u8 **pBuffer) return true; } -void Wb35Tx_start(struct wbsoft_priv *adapter) +static void Wb35Tx(struct wbsoft_priv *adapter); + +static void Wb35Tx_complete(struct urb * pUrb) { - phw_data_t pHwData = &adapter->sHwData; - PWB35TX pWb35Tx = &pHwData->Wb35Tx; + struct wbsoft_priv *adapter = pUrb->context; + phw_data_t pHwData = &adapter->sHwData; + PWB35TX pWb35Tx = &pHwData->Wb35Tx; + PMDS pMds = &adapter->Mds; - // Allow only one thread to run into function - if (atomic_inc_return(&pWb35Tx->TxFireCounter) == 1) { - pWb35Tx->EP4vm_state = VM_RUNNING; - Wb35Tx(adapter); - } else - atomic_dec(&pWb35Tx->TxFireCounter); -} + printk("wb35: tx complete\n"); + // Variable setting + pWb35Tx->EP4vm_state = VM_COMPLETED; + pWb35Tx->EP4VM_status = pUrb->status; //Store the last result of Irp + pMds->TxOwner[ pWb35Tx->TxSendIndex ] = 0;// Set the owner. Free the owner bit always. + pWb35Tx->TxSendIndex++; + pWb35Tx->TxSendIndex %= MAX_USB_TX_BUFFER_NUMBER; + if (pHwData->SurpriseRemove || pHwData->HwStop) // Let WbWlanHalt to handle surprise remove + goto error; -void Wb35Tx(struct wbsoft_priv *adapter) + if (pWb35Tx->tx_halt) + goto error; + + // The URB is completed, check the result + if (pWb35Tx->EP4VM_status != 0) { + printk("URB submission failed\n"); + pWb35Tx->EP4vm_state = VM_STOP; + goto error; + } + + Mds_Tx(adapter); + Wb35Tx(adapter); + return; + +error: + atomic_dec(&pWb35Tx->TxFireCounter); + pWb35Tx->EP4vm_state = VM_STOP; +} + +static void Wb35Tx(struct wbsoft_priv *adapter) { phw_data_t pHwData = &adapter->sHwData; PWB35TX pWb35Tx = &pHwData->Wb35Tx; @@ -88,50 +113,17 @@ void Wb35Tx(struct wbsoft_priv *adapter) atomic_dec(&pWb35Tx->TxFireCounter); } - -void Wb35Tx_complete(struct urb * pUrb) -{ - struct wbsoft_priv *adapter = pUrb->context; - phw_data_t pHwData = &adapter->sHwData; - PWB35TX pWb35Tx = &pHwData->Wb35Tx; - PMDS pMds = &adapter->Mds; - - printk("wb35: tx complete\n"); - // Variable setting - pWb35Tx->EP4vm_state = VM_COMPLETED; - pWb35Tx->EP4VM_status = pUrb->status; //Store the last result of Irp - pMds->TxOwner[ pWb35Tx->TxSendIndex ] = 0;// Set the owner. Free the owner bit always. - pWb35Tx->TxSendIndex++; - pWb35Tx->TxSendIndex %= MAX_USB_TX_BUFFER_NUMBER; - - if (pHwData->SurpriseRemove || pHwData->HwStop) // Let WbWlanHalt to handle surprise remove - goto error; - - if (pWb35Tx->tx_halt) - goto error; - - // The URB is completed, check the result - if (pWb35Tx->EP4VM_status != 0) { - printk("URB submission failed\n"); - pWb35Tx->EP4vm_state = VM_STOP; - goto error; - } - - Mds_Tx(adapter); - Wb35Tx(adapter); - return; - -error: - atomic_dec(&pWb35Tx->TxFireCounter); - pWb35Tx->EP4vm_state = VM_STOP; -} - -void Wb35Tx_reset_descriptor( phw_data_t pHwData ) +void Wb35Tx_start(struct wbsoft_priv *adapter) { + phw_data_t pHwData = &adapter->sHwData; PWB35TX pWb35Tx = &pHwData->Wb35Tx; - pWb35Tx->TxSendIndex = 0; - pWb35Tx->tx_halt = 0; + // Allow only one thread to run into function + if (atomic_inc_return(&pWb35Tx->TxFireCounter) == 1) { + pWb35Tx->EP4vm_state = VM_RUNNING; + Wb35Tx(adapter); + } else + atomic_dec(&pWb35Tx->TxFireCounter); } unsigned char Wb35Tx_initial(phw_data_t pHwData) @@ -211,59 +203,9 @@ void Wb35Tx_CurrentTime(struct wbsoft_priv *adapter, u32 TimeCount) } } -void Wb35Tx_EP2VM_start(struct wbsoft_priv *adapter) -{ - phw_data_t pHwData = &adapter->sHwData; - PWB35TX pWb35Tx = &pHwData->Wb35Tx; - - // Allow only one thread to run into function - if (atomic_inc_return(&pWb35Tx->TxResultCount) == 1) { - pWb35Tx->EP2vm_state = VM_RUNNING; - Wb35Tx_EP2VM(adapter); - } - else - atomic_dec(&pWb35Tx->TxResultCount); -} - +static void Wb35Tx_EP2VM(struct wbsoft_priv *adapter); -void Wb35Tx_EP2VM(struct wbsoft_priv *adapter) -{ - phw_data_t pHwData = &adapter->sHwData; - PWB35TX pWb35Tx = &pHwData->Wb35Tx; - struct urb * pUrb = (struct urb *)pWb35Tx->Tx2Urb; - u32 * pltmp = (u32 *)pWb35Tx->EP2_buf; - int retv; - - if (pHwData->SurpriseRemove || pHwData->HwStop) - goto error; - - if (pWb35Tx->tx_halt) - goto error; - - // - // Issuing URB - // - usb_fill_int_urb( pUrb, pHwData->WbUsb.udev, usb_rcvintpipe(pHwData->WbUsb.udev,2), - pltmp, MAX_INTERRUPT_LENGTH, Wb35Tx_EP2VM_complete, adapter, 32); - - pWb35Tx->EP2vm_state = VM_RUNNING; - retv = usb_submit_urb(pUrb, GFP_ATOMIC); - - if (retv < 0) { - #ifdef _PE_TX_DUMP_ - WBDEBUG(("EP2 Tx Irp sending error\n")); - #endif - goto error; - } - - return; -error: - pWb35Tx->EP2vm_state = VM_STOP; - atomic_dec(&pWb35Tx->TxResultCount); -} - - -void Wb35Tx_EP2VM_complete(struct urb * pUrb) +static void Wb35Tx_EP2VM_complete(struct urb * pUrb) { struct wbsoft_priv *adapter = pUrb->context; phw_data_t pHwData = &adapter->sHwData; @@ -312,3 +254,52 @@ error: pWb35Tx->EP2vm_state = VM_STOP; } +static void Wb35Tx_EP2VM(struct wbsoft_priv *adapter) +{ + phw_data_t pHwData = &adapter->sHwData; + PWB35TX pWb35Tx = &pHwData->Wb35Tx; + struct urb * pUrb = (struct urb *)pWb35Tx->Tx2Urb; + u32 * pltmp = (u32 *)pWb35Tx->EP2_buf; + int retv; + + if (pHwData->SurpriseRemove || pHwData->HwStop) + goto error; + + if (pWb35Tx->tx_halt) + goto error; + + // + // Issuing URB + // + usb_fill_int_urb( pUrb, pHwData->WbUsb.udev, usb_rcvintpipe(pHwData->WbUsb.udev,2), + pltmp, MAX_INTERRUPT_LENGTH, Wb35Tx_EP2VM_complete, adapter, 32); + + pWb35Tx->EP2vm_state = VM_RUNNING; + retv = usb_submit_urb(pUrb, GFP_ATOMIC); + + if (retv < 0) { + #ifdef _PE_TX_DUMP_ + WBDEBUG(("EP2 Tx Irp sending error\n")); + #endif + goto error; + } + + return; +error: + pWb35Tx->EP2vm_state = VM_STOP; + atomic_dec(&pWb35Tx->TxResultCount); +} + +void Wb35Tx_EP2VM_start(struct wbsoft_priv *adapter) +{ + phw_data_t pHwData = &adapter->sHwData; + PWB35TX pWb35Tx = &pHwData->Wb35Tx; + + // Allow only one thread to run into function + if (atomic_inc_return(&pWb35Tx->TxResultCount) == 1) { + pWb35Tx->EP2vm_state = VM_RUNNING; + Wb35Tx_EP2VM(adapter); + } + else + atomic_dec(&pWb35Tx->TxResultCount); +} |