summaryrefslogtreecommitdiffstats
path: root/drivers/staging/bcm/InterfaceTx.c
diff options
context:
space:
mode:
authorMatthias Beyer2014-06-30 10:20:23 +0200
committerGreg Kroah-Hartman2014-07-09 01:20:25 +0200
commit26fba8e4e5821a9013ad5f27f197d6a191f4afd3 (patch)
treee33371ef9d448f76bcccf267b1fd45e0fec3b6c7 /drivers/staging/bcm/InterfaceTx.c
parentStaging: bcm: InterfaceTx.c: Shortened lines + Whitespace cleanup (diff)
downloadkernel-qcow2-linux-26fba8e4e5821a9013ad5f27f197d6a191f4afd3.tar.gz
kernel-qcow2-linux-26fba8e4e5821a9013ad5f27f197d6a191f4afd3.tar.xz
kernel-qcow2-linux-26fba8e4e5821a9013ad5f27f197d6a191f4afd3.zip
Staging: bcm: InterfaceTx.c: Outsourced code chunk
This patch outsources a chunk of code into an own function and refactors the variable names inside the new function. Signed-off-by: Matthias Beyer <mail@beyermatthias.de> Acked-by: Kevin McKinney <klmckinney1@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/bcm/InterfaceTx.c')
-rw-r--r--drivers/staging/bcm/InterfaceTx.c165
1 files changed, 84 insertions, 81 deletions
diff --git a/drivers/staging/bcm/InterfaceTx.c b/drivers/staging/bcm/InterfaceTx.c
index b1f28994915a..89e9e79c7c20 100644
--- a/drivers/staging/bcm/InterfaceTx.c
+++ b/drivers/staging/bcm/InterfaceTx.c
@@ -1,5 +1,87 @@
#include "headers.h"
+static void prepare_low_power_mode(struct urb *urb,
+ struct bcm_interface_adapter *interface,
+ struct bcm_mini_adapter *ps_adapter,
+ struct bcm_mini_adapter *ad,
+ struct bcm_link_request *p_control_msg,
+ bool *b_power_down_msg)
+{
+ if (((p_control_msg->szData[0] == GO_TO_IDLE_MODE_PAYLOAD) &&
+ (p_control_msg->szData[1] == TARGET_CAN_GO_TO_IDLE_MODE))) {
+
+ *b_power_down_msg = TRUE;
+ /*
+ * This covers the bus err while Idle Request msg
+ * sent down.
+ */
+ if (urb->status != STATUS_SUCCESS) {
+ ps_adapter->bPreparingForLowPowerMode = false;
+ BCM_DEBUG_PRINT(ad, DBG_TYPE_TX, NEXT_SEND,
+ DBG_LVL_ALL,
+ "Idle Mode Request msg failed to reach to Modem");
+ /* Signalling the cntrl pkt path in Ioctl */
+ wake_up(&ps_adapter->lowpower_mode_wait_queue);
+ StartInterruptUrb(interface);
+ return;
+ }
+
+ if (ps_adapter->bDoSuspend == false) {
+ ps_adapter->IdleMode = TRUE;
+ /* since going in Idle mode completed hence making this var false */
+ ps_adapter->bPreparingForLowPowerMode = false;
+
+ BCM_DEBUG_PRINT(ad, DBG_TYPE_TX, NEXT_SEND,
+ DBG_LVL_ALL,
+ "Host Entered in Idle Mode State...");
+ /* Signalling the cntrl pkt path in Ioctl*/
+ wake_up(&ps_adapter->lowpower_mode_wait_queue);
+ }
+
+ } else if ((p_control_msg->Leader.Status == LINK_UP_CONTROL_REQ) &&
+ (p_control_msg->szData[0] == LINK_UP_ACK) &&
+ (p_control_msg->szData[1] == LINK_SHUTDOWN_REQ_FROM_FIRMWARE) &&
+ (p_control_msg->szData[2] == SHUTDOWN_ACK_FROM_DRIVER)) {
+ /*
+ * This covers the bus err while shutdown Request
+ * msg sent down.
+ */
+ if (urb->status != STATUS_SUCCESS) {
+ ps_adapter->bPreparingForLowPowerMode = false;
+ BCM_DEBUG_PRINT(ad, DBG_TYPE_TX, NEXT_SEND,
+ DBG_LVL_ALL,
+ "Shutdown Request Msg failed to reach to Modem");
+ /* Signalling the cntrl pkt path in Ioctl */
+ wake_up(&ps_adapter->lowpower_mode_wait_queue);
+ StartInterruptUrb(interface);
+ return;
+ }
+
+ *b_power_down_msg = TRUE;
+ if (ps_adapter->bDoSuspend == false) {
+ ps_adapter->bShutStatus = TRUE;
+ /*
+ * since going in shutdown mode completed hence
+ * making this var false
+ */
+ ps_adapter->bPreparingForLowPowerMode = false;
+ BCM_DEBUG_PRINT(ad, DBG_TYPE_TX, NEXT_SEND,
+ DBG_LVL_ALL,
+ "Host Entered in shutdown Mode State...");
+ /* Signalling the cntrl pkt path in Ioctl */
+ wake_up(&ps_adapter->lowpower_mode_wait_queue);
+ }
+ }
+
+ if (ps_adapter->bDoSuspend && *b_power_down_msg) {
+ /* issuing bus suspend request */
+ BCM_DEBUG_PRINT(ad, DBG_TYPE_TX, NEXT_SEND, DBG_LVL_ALL,
+ "Issuing the Bus suspend request to USB stack");
+ interface->bPreparingForBusSuspend = TRUE;
+ schedule_work(&interface->usbSuspendWork);
+ }
+}
+
/*this is transmit call-back(BULK OUT)*/
static void write_bulk_callback(struct urb *urb/*, struct pt_regs *regs*/)
{
@@ -31,89 +113,10 @@ static void write_bulk_callback(struct urb *urb/*, struct pt_regs *regs*/)
atomic_dec(&psIntfAdapter->uNumTcbUsed);
if (TRUE == psAdapter->bPreparingForLowPowerMode) {
-
- if (((pControlMsg->szData[0] == GO_TO_IDLE_MODE_PAYLOAD) &&
- (pControlMsg->szData[1] ==
- TARGET_CAN_GO_TO_IDLE_MODE))) {
-
- bpowerDownMsg = TRUE;
- /*
- * This covers the bus err while Idle Request msg
- * sent down.
- */
- if (urb->status != STATUS_SUCCESS) {
- psAdapter->bPreparingForLowPowerMode = false;
- BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, NEXT_SEND,
- DBG_LVL_ALL,
- "Idle Mode Request msg failed to reach to Modem");
- /* Signalling the cntrl pkt path in Ioctl */
- wake_up(&psAdapter->lowpower_mode_wait_queue);
- StartInterruptUrb(psIntfAdapter);
- goto err_exit;
- }
-
- if (psAdapter->bDoSuspend == false) {
- psAdapter->IdleMode = TRUE;
- /* since going in Idle mode completed hence making this var false */
- psAdapter->bPreparingForLowPowerMode = false;
-
- BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, NEXT_SEND,
- DBG_LVL_ALL,
- "Host Entered in Idle Mode State...");
- /* Signalling the cntrl pkt path in Ioctl*/
- wake_up(&psAdapter->lowpower_mode_wait_queue);
- }
-
- } else if ((pControlMsg->Leader.Status ==
- LINK_UP_CONTROL_REQ) &&
- (pControlMsg->szData[0] == LINK_UP_ACK) &&
- (pControlMsg->szData[1] ==
- LINK_SHUTDOWN_REQ_FROM_FIRMWARE) &&
- (pControlMsg->szData[2] == SHUTDOWN_ACK_FROM_DRIVER)) {
- /*
- * This covers the bus err while shutdown Request
- * msg sent down.
- */
- if (urb->status != STATUS_SUCCESS) {
- psAdapter->bPreparingForLowPowerMode = false;
- BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, NEXT_SEND,
- DBG_LVL_ALL,
- "Shutdown Request Msg failed to reach to Modem");
- /* Signalling the cntrl pkt path in Ioctl */
- wake_up(&psAdapter->lowpower_mode_wait_queue);
- StartInterruptUrb(psIntfAdapter);
- goto err_exit;
- }
-
- bpowerDownMsg = TRUE;
- if (psAdapter->bDoSuspend == false) {
- psAdapter->bShutStatus = TRUE;
- /*
- * since going in shutdown mode completed hence
- * making this var false
- */
- psAdapter->bPreparingForLowPowerMode = false;
- BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, NEXT_SEND,
- DBG_LVL_ALL,
- "Host Entered in shutdown Mode State...");
- /* Signalling the cntrl pkt path in Ioctl */
- wake_up(&psAdapter->lowpower_mode_wait_queue);
- }
- }
-
- if (psAdapter->bDoSuspend && bpowerDownMsg) {
- /* issuing bus suspend request */
- BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, NEXT_SEND,
- DBG_LVL_ALL,
- "Issuing the Bus suspend request to USB stack");
- psIntfAdapter->bPreparingForBusSuspend = TRUE;
- schedule_work(&psIntfAdapter->usbSuspendWork);
-
- }
-
+ prepare_low_power_mode(urb, psIntfAdapter, psAdapter, Adapter,
+ pControlMsg, &bpowerDownMsg);
}
-err_exit:
usb_free_coherent(urb->dev, urb->transfer_buffer_length,
urb->transfer_buffer, urb->transfer_dma);
}