[PATCH 2/7] main: improve mac80211 related debug messages
Kalle Valo
kvalo at qca.qualcomm.com
Mon May 20 06:53:54 EDT 2013
The debug messages in main.c used wcn36xx_info() too much which was spamming
the log. Use the wcn36xx_dbg() macro instead.
Add new debug levels HAL_DUMP and MAC. The former is just consistency, the
actual debug messages dumping hal messages will be added later.
Signed-off-by: Kalle Valo <kvalo at qca.qualcomm.com>
---
main.c | 36 ++++++++++++++++++++++++++++++------
wcn36xx.h | 2 ++
2 files changed, 32 insertions(+), 6 deletions(-)
diff --git a/main.c b/main.c
index 4de9e49..461eb9e 100644
--- a/main.c
+++ b/main.c
@@ -39,6 +39,8 @@ static int wcn36xx_start(struct ieee80211_hw *hw)
struct wcn36xx *wcn = hw->priv;
int ret;
+ wcn36xx_dbg(WCN36XX_DBG_MAC, "mac start");
+
// SMD initialization
ret = wcn36xx_smd_open(wcn);
if (ret) {
@@ -76,6 +78,8 @@ static void wcn36xx_stop(struct ieee80211_hw *hw)
{
struct wcn36xx *wcn = hw->priv;
+ wcn36xx_dbg(WCN36XX_DBG_MAC, "mac stop");
+
wcn36xx_dxe_deinit(wcn);
wcn36xx_smd_close(wcn);
@@ -85,21 +89,28 @@ static void wcn36xx_stop(struct ieee80211_hw *hw)
static void wcn36xx_remove_interface(struct ieee80211_hw *hw,
struct ieee80211_vif *vif)
{
+ wcn36xx_dbg(WCN36XX_DBG_MAC, "mac remove interface vif %p", vif);
}
static int wcn36xx_change_interface(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
enum nl80211_iftype new_type, bool p2p)
{
+ wcn36xx_dbg(WCN36XX_DBG_MAC, "mac change interface vif %p new_type %d p2p %d",
+ vif, new_type, p2p);
+
return 0;
}
static int wcn36xx_config(struct ieee80211_hw *hw, u32 changed)
{
struct wcn36xx *wcn = hw->priv;
+ wcn36xx_dbg(WCN36XX_DBG_MAC, "mac config changed 0x%08x", changed);
+
if (changed & IEEE80211_CONF_CHANGE_CHANNEL) {
wcn->ch = ieee80211_frequency_to_channel(hw->conf.chandef.chan->center_freq);
- wcn36xx_info("wcn36xx_config channel switch=%d", wcn->ch);
+ wcn36xx_dbg(WCN36XX_DBG_MAC, "mac change channel %d", wcn->ch);
+
}
return 0;
@@ -119,6 +130,8 @@ static void wcn36xx_configure_filter(struct ieee80211_hw *hw,
unsigned int changed,
unsigned int *total, u64 multicast)
{
+ wcn36xx_dbg(WCN36XX_DBG_MAC, "mac configure filter");
+
changed &= WCN36XX_SUPPORTED_FILTERS;
*total &= WCN36XX_SUPPORTED_FILTERS;
}
@@ -200,8 +213,13 @@ static void wcn36xx_bss_info_changed(struct ieee80211_hw *hw,
struct sk_buff *skb = NULL;
u16 tim_off, tim_len;
+ wcn36xx_dbg(WCN36XX_DBG_MAC, "mac bss info changed vif %p changed 0x%08x",
+ vif, changed);
+
if(changed & BSS_CHANGED_BSSID) {
- wcn36xx_info("wcn36xx_bss_info_changed BSS_CHANGED_BSSID=%pM", bss_conf->bssid);
+ wcn36xx_dbg(WCN36XX_DBG_MAC, "mac bss changed_bssid %pM",
+ bss_conf->bssid);
+
if(!is_zero_ether_addr(bss_conf->bssid)) {
wcn36xx_smd_join(wcn, (u8*)bss_conf->bssid, vif->addr, wcn->ch);
wcn36xx_smd_config_bss(wcn, true, (u8*)bss_conf->bssid, 0);
@@ -268,19 +286,21 @@ static int wcn36xx_add_interface(struct ieee80211_hw *hw,
{
struct wcn36xx *wcn = hw->priv;
+ wcn36xx_dbg(WCN36XX_DBG_MAC, "mac add interface vif %p type %d",
+ vif, vif->type);
+
if(vif) {
switch (vif->type) {
case NL80211_IFTYPE_STATION:
- wcn36xx_info("Add station interface");
wcn36xx_smd_add_sta_self(wcn, wcn->addresses[0], 0);
break;
case NL80211_IFTYPE_AP:
- wcn36xx_info("Add AP interface");
wcn36xx_smd_add_sta_self(wcn, wcn->addresses[0], 0);
break;
default:
- wcn36xx_info("Add interface=%d", vif->type);
- break;
+ wcn36xx_warn("Unsupported interface type requested: %d",
+ vif->type);
+ return -EOPNOTSUPP;
}
}
@@ -292,6 +312,8 @@ static int wcn36xx_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
{
struct wcn36xx *wcn = hw->priv;
+ wcn36xx_dbg(WCN36XX_DBG_MAC, "mac sta add vif %p sta %pM", vif, sta->addr);
+
wcn36xx_smd_set_link_st(wcn, sta->addr, vif->addr, WCN36XX_HAL_LINK_POSTASSOC_STATE);
wcn36xx_smd_config_sta(wcn, sta->addr, sta->aid, vif->addr);
wcn36xx_smd_config_bss(wcn, true, sta->addr, 1);
@@ -302,6 +324,8 @@ static int wcn36xx_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif
{
struct wcn36xx *wcn = hw->priv;
+ wcn36xx_dbg(WCN36XX_DBG_MAC, "mac sta remove vif %p sta %pM", vif, sta->addr);
+
wcn36xx_smd_delete_sta(wcn);
wcn36xx_smd_delete_bss(wcn);
wcn36xx_smd_set_link_st(wcn, sta->addr, vif->addr, WCN36XX_HAL_LINK_IDLE_STATE);
diff --git a/wcn36xx.h b/wcn36xx.h
index 447c7d5..0ca615d 100644
--- a/wcn36xx.h
+++ b/wcn36xx.h
@@ -44,6 +44,8 @@ enum wcn36xx_debug_mask {
WCN36XX_DBG_TX = 0x00000040,
WCN36XX_DBG_TX_DUMP = 0x00000080,
WCN36XX_DBG_HAL = 0x00000100,
+ WCN36XX_DBG_HAL_DUMP = 0x00000200,
+ WCN36XX_DBG_MAC = 0x00000400,
WCN36XX_DBG_ANY = 0xffffffff,
};
More information about the wcn36xx
mailing list