OSDN Git Service

wil6210: print debug info when starting AP
authorVladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Mon, 16 Jun 2014 16:37:01 +0000 (19:37 +0300)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 19 Jun 2014 19:49:23 +0000 (15:49 -0400)
In the wil_cfg80211_start_ap(), debug print selected data:
- beacon (before and after fix-up)
- crypto parameters
- mark start/stop AP invocation

Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/wil6210/cfg80211.c

index cfdf1a2..a3042cd 100644 (file)
@@ -566,6 +566,34 @@ static int wil_cancel_remain_on_channel(struct wiphy *wiphy,
        return rc;
 }
 
+static void wil_print_bcon_data(struct cfg80211_beacon_data *b)
+{
+       print_hex_dump_bytes("head     ", DUMP_PREFIX_OFFSET,
+                            b->head, b->head_len);
+       print_hex_dump_bytes("tail     ", DUMP_PREFIX_OFFSET,
+                            b->tail, b->tail_len);
+       print_hex_dump_bytes("BCON IE  ", DUMP_PREFIX_OFFSET,
+                            b->beacon_ies, b->beacon_ies_len);
+       print_hex_dump_bytes("PROBE    ", DUMP_PREFIX_OFFSET,
+                            b->probe_resp, b->probe_resp_len);
+       print_hex_dump_bytes("PROBE IE ", DUMP_PREFIX_OFFSET,
+                            b->proberesp_ies, b->proberesp_ies_len);
+       print_hex_dump_bytes("ASSOC IE ", DUMP_PREFIX_OFFSET,
+                            b->assocresp_ies, b->assocresp_ies_len);
+}
+
+static void wil_print_crypto(struct wil6210_priv *wil,
+                            struct cfg80211_crypto_settings *c)
+{
+       wil_dbg_misc(wil, "WPA versions: 0x%08x cipher group 0x%08x\n",
+                    c->wpa_versions, c->cipher_group);
+       wil_dbg_misc(wil, "Pairwise ciphers [%d]\n", c->n_ciphers_pairwise);
+       wil_dbg_misc(wil, "AKM suites [%d]\n", c->n_akm_suites);
+       wil_dbg_misc(wil, "Control port : %d, eth_type 0x%04x no_encrypt %d\n",
+                    c->control_port, be16_to_cpu(c->control_port_ethertype),
+                    c->control_port_no_encrypt);
+}
+
 static int wil_fix_bcon(struct wil6210_priv *wil,
                        struct cfg80211_beacon_data *bcon)
 {
@@ -599,8 +627,11 @@ static int wil_cfg80211_start_ap(struct wiphy *wiphy,
        struct wireless_dev *wdev = ndev->ieee80211_ptr;
        struct ieee80211_channel *channel = info->chandef.chan;
        struct cfg80211_beacon_data *bcon = &info->beacon;
+       struct cfg80211_crypto_settings *crypto = &info->crypto;
        u8 wmi_nettype = wil_iftype_nl2wmi(wdev->iftype);
 
+       wil_dbg_misc(wil, "%s()\n", __func__);
+
        if (!channel) {
                wil_err(wil, "AP: No channel???\n");
                return -EINVAL;
@@ -608,11 +639,19 @@ static int wil_cfg80211_start_ap(struct wiphy *wiphy,
 
        wil_dbg_misc(wil, "AP on Channel %d %d MHz, %s\n", channel->hw_value,
                     channel->center_freq, info->privacy ? "secure" : "open");
+       wil_dbg_misc(wil, "Privacy: %d auth_type %d\n",
+                    info->privacy, info->auth_type);
+       wil_dbg_misc(wil, "BI %d DTIM %d\n", info->beacon_interval,
+                    info->dtim_period);
        print_hex_dump_bytes("SSID ", DUMP_PREFIX_OFFSET,
                             info->ssid, info->ssid_len);
+       wil_print_bcon_data(bcon);
+       wil_print_crypto(wil, crypto);
 
-       if (wil_fix_bcon(wil, bcon))
+       if (wil_fix_bcon(wil, bcon)) {
                wil_dbg_misc(wil, "Fixed bcon\n");
+               wil_print_bcon_data(bcon);
+       }
 
        mutex_lock(&wil->mutex);
 
@@ -667,6 +706,8 @@ static int wil_cfg80211_stop_ap(struct wiphy *wiphy,
        int rc = 0;
        struct wil6210_priv *wil = wiphy_to_wil(wiphy);
 
+       wil_dbg_misc(wil, "%s()\n", __func__);
+
        mutex_lock(&wil->mutex);
 
        rc = wmi_pcp_stop(wil);