]> Pileus Git - ~andy/linux/blobdiff - drivers/net/wireless/mwifiex/sta_event.c
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wirel...
[~andy/linux] / drivers / net / wireless / mwifiex / sta_event.c
index d7aa21da84d0124fd78a181da4bd7d711094c6eb..cc531b536a5658f2ae0f7f7cf61b6393527c5a83 100644 (file)
@@ -93,15 +93,15 @@ mwifiex_reset_connect_state(struct mwifiex_private *priv)
         */
 
        dev_dbg(adapter->dev, "info: previous SSID=%s, SSID len=%u\n",
-              priv->prev_ssid.ssid, priv->prev_ssid.ssid_len);
+               priv->prev_ssid.ssid, priv->prev_ssid.ssid_len);
 
        dev_dbg(adapter->dev, "info: current SSID=%s, SSID len=%u\n",
-              priv->curr_bss_params.bss_descriptor.ssid.ssid,
-              priv->curr_bss_params.bss_descriptor.ssid.ssid_len);
+               priv->curr_bss_params.bss_descriptor.ssid.ssid,
+               priv->curr_bss_params.bss_descriptor.ssid.ssid_len);
 
        memcpy(&priv->prev_ssid,
               &priv->curr_bss_params.bss_descriptor.ssid,
-              sizeof(struct mwifiex_802_11_ssid));
+              sizeof(struct cfg80211_ssid));
 
        memcpy(priv->prev_bssid,
               priv->curr_bss_params.bss_descriptor.mac_address, ETH_ALEN);
@@ -115,9 +115,9 @@ mwifiex_reset_connect_state(struct mwifiex_private *priv)
        if (adapter->num_cmd_timeout && adapter->curr_cmd)
                return;
        priv->media_connected = false;
-       dev_dbg(adapter->dev, "info: successfully disconnected from"
-                       " %pM: reason code %d\n", priv->cfg_bssid,
-                       WLAN_REASON_DEAUTH_LEAVING);
+       dev_dbg(adapter->dev,
+               "info: successfully disconnected from %pM: reason code %d\n",
+               priv->cfg_bssid, WLAN_REASON_DEAUTH_LEAVING);
        if (priv->bss_mode == NL80211_IFTYPE_STATION) {
                cfg80211_disconnected(priv->netdev, WLAN_REASON_DEAUTH_LEAVING,
                                      NULL, 0, GFP_KERNEL);
@@ -192,8 +192,8 @@ int mwifiex_process_sta_event(struct mwifiex_private *priv)
 
        switch (eventcause) {
        case EVENT_DUMMY_HOST_WAKEUP_SIGNAL:
-               dev_err(adapter->dev, "invalid EVENT: DUMMY_HOST_WAKEUP_SIGNAL,"
-                               " ignoring it\n");
+               dev_err(adapter->dev,
+                       "invalid EVENT: DUMMY_HOST_WAKEUP_SIGNAL, ignore it\n");
                break;
        case EVENT_LINK_SENSED:
                dev_dbg(adapter->dev, "event: LINK_SENSED\n");
@@ -235,8 +235,7 @@ int mwifiex_process_sta_event(struct mwifiex_private *priv)
        case EVENT_PS_AWAKE:
                dev_dbg(adapter->dev, "info: EVENT: AWAKE\n");
                if (!adapter->pps_uapsd_mode &&
-                       priv->media_connected &&
-                       adapter->sleep_period.period) {
+                   priv->media_connected && adapter->sleep_period.period) {
                                adapter->pps_uapsd_mode = true;
                                dev_dbg(adapter->dev,
                                        "event: PPS/UAPSD mode activated\n");
@@ -244,15 +243,19 @@ int mwifiex_process_sta_event(struct mwifiex_private *priv)
                adapter->tx_lock_flag = false;
                if (adapter->pps_uapsd_mode && adapter->gen_null_pkt) {
                        if (mwifiex_check_last_packet_indication(priv)) {
-                               if (!adapter->data_sent) {
-                                       if (!mwifiex_send_null_packet(priv,
-                                       MWIFIEX_TxPD_POWER_MGMT_NULL_PACKET
-                                       |
-                                       MWIFIEX_TxPD_POWER_MGMT_LAST_PACKET))
+                               if (adapter->data_sent) {
+                                       adapter->ps_state = PS_STATE_AWAKE;
+                                       adapter->pm_wakeup_card_req = false;
+                                       adapter->pm_wakeup_fw_try = false;
+                                       break;
+                               }
+                               if (!mwifiex_send_null_packet
+                                       (priv,
+                                        MWIFIEX_TxPD_POWER_MGMT_NULL_PACKET |
+                                        MWIFIEX_TxPD_POWER_MGMT_LAST_PACKET))
                                                adapter->ps_state =
                                                        PS_STATE_SLEEP;
                                        return 0;
-                               }
                        }
                }
                adapter->ps_state = PS_STATE_AWAKE;
@@ -371,12 +374,12 @@ int mwifiex_process_sta_event(struct mwifiex_private *priv)
                break;
        case EVENT_AMSDU_AGGR_CTRL:
                dev_dbg(adapter->dev, "event:  AMSDU_AGGR_CTRL %d\n",
-                      *(u16 *) adapter->event_body);
+                       *(u16 *) adapter->event_body);
                adapter->tx_buf_size =
                        min(adapter->curr_tx_buf_size,
                            le16_to_cpu(*(__le16 *) adapter->event_body));
                dev_dbg(adapter->dev, "event: tx_buf_size %d\n",
-                               adapter->tx_buf_size);
+                       adapter->tx_buf_size);
                break;
 
        case EVENT_WEP_ICV_ERR:
@@ -392,7 +395,7 @@ int mwifiex_process_sta_event(struct mwifiex_private *priv)
                break;
        default:
                dev_dbg(adapter->dev, "event: unknown event id: %#x\n",
-                                               eventcause);
+                       eventcause);
                break;
        }