diff --git a/drivers/net/wireless/iwlwifi/dvm/tx.c b/drivers/net/wireless/iwlwifi/dvm/tx.c index da442b8..1fef524 100644 --- a/drivers/net/wireless/iwlwifi/dvm/tx.c +++ b/drivers/net/wireless/iwlwifi/dvm/tx.c @@ -433,27 +433,19 @@ int iwlagn_tx_skb(struct iwl_priv *priv, /* Copy MAC header from skb into command buffer */ memcpy(tx_cmd->hdr, hdr, hdr_len); + txq_id = info->hw_queue; + if (is_agg) txq_id = priv->tid_data[sta_id][tid].agg.txq_id; else if (info->flags & IEEE80211_TX_CTL_SEND_AFTER_DTIM) { /* - * Send this frame after DTIM -- there's a special queue - * reserved for this for contexts that support AP mode. - */ - txq_id = ctx->mcast_queue; - - /* * The microcode will clear the more data * bit in the last frame it transmits. */ hdr->frame_control |= cpu_to_le16(IEEE80211_FCTL_MOREDATA); - } else if (info->flags & IEEE80211_TX_CTL_TX_OFFCHAN) - txq_id = IWL_AUX_QUEUE; - else - txq_id = ctx->ac_to_queue[skb_get_queue_mapping(skb)]; + } - WARN_ON_ONCE(!is_agg && txq_id != info->hw_queue); WARN_ON_ONCE(is_agg && priv->queue_to_mac80211[txq_id] != info->hw_queue); diff --git a/drivers/net/wireless/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/iwlwifi/mvm/mac80211.c index 9833cdf..e081c03 100644 --- a/drivers/net/wireless/iwlwifi/mvm/mac80211.c +++ b/drivers/net/wireless/iwlwifi/mvm/mac80211.c @@ -217,12 +217,16 @@ int iwl_mvm_mac_setup_register(struct iwl_mvm *mvm) mvm->fw->ucode_capa.max_probe_length - 24 - 34; hw->wiphy->max_scan_ssids = PROBE_OPTION_MAX; - if (mvm->nvm_data->bands[IEEE80211_BAND_2GHZ].n_channels) + if (mvm->nvm_data->bands[IEEE80211_BAND_2GHZ].n_channels){ hw->wiphy->bands[IEEE80211_BAND_2GHZ] = &mvm->nvm_data->bands[IEEE80211_BAND_2GHZ]; - if (mvm->nvm_data->bands[IEEE80211_BAND_5GHZ].n_channels) + IWL_ERR(mvm, "SEIK AP create the 802.11 header with 2.4\n"); + } + if (mvm->nvm_data->bands[IEEE80211_BAND_5GHZ].n_channels) { hw->wiphy->bands[IEEE80211_BAND_5GHZ] = &mvm->nvm_data->bands[IEEE80211_BAND_5GHZ]; + IWL_ERR(mvm, "SEIK AP create the 802.11 header with 5\n"); + } hw->wiphy->hw_version = mvm->trans->hw_id; diff --git a/net/wireless/reg.c b/net/wireless/reg.c index de06d5d..4d5dad7 100644 --- a/net/wireless/reg.c +++ b/net/wireless/reg.c @@ -58,6 +58,8 @@ #include "regdb.h" #include "nl80211.h" +#define CONFIG_CFG80211_REG_DEBUG + #ifdef CONFIG_CFG80211_REG_DEBUG #define REG_DBG_PRINT(format, args...) \ printk(KERN_DEBUG pr_fmt(format), ##args) @@ -758,6 +760,8 @@ const struct ieee80211_reg_rule *freq_reg_info(struct wiphy *wiphy, } EXPORT_SYMBOL(freq_reg_info); +#define CONFIG_CFG80211_REG_DEBUG + #ifdef CONFIG_CFG80211_REG_DEBUG static const char *reg_initiator_name(enum nl80211_reg_initiator initiator) { @@ -976,8 +980,8 @@ static bool ignore_reg_update(struct wiphy *wiphy, if (initiator == NL80211_REGDOM_SET_BY_CORE && wiphy->flags & WIPHY_FLAG_CUSTOM_REGULATORY) { - REG_DBG_PRINT("Ignoring regulatory request %s since the driver uses its own custom regulatory domain\n", - reg_initiator_name(initiator)); + REG_DBG_PRINT("Ignoring regulatory request %s since the driver uses its own custom regulatory domain %lx\n", + reg_initiator_name(initiator), wiphy->flags); return true; } @@ -993,8 +997,14 @@ static bool ignore_reg_update(struct wiphy *wiphy, return true; } - if (reg_request_cell_base(lr)) + if (reg_request_cell_base(lr)){ + REG_DBG_PRINT("Ignoring regulatory request ?? %s: %i\n", + reg_initiator_name(initiator), reg_dev_ignore_cell_hint(wiphy)); + return reg_dev_ignore_cell_hint(wiphy); + } + REG_DBG_PRINT("NOT Ignoring regulatory request %s \n", + reg_initiator_name(initiator)); return false; } @@ -1516,6 +1526,7 @@ static void reg_process_hint(struct regulatory_request *reg_request, enum nl80211_reg_initiator reg_initiator) { struct wiphy *wiphy = NULL; + REG_DBG_PRINT("SEIK reg_process_hint begin\n"); if (WARN_ON(!reg_request->alpha2)) return; @@ -1531,14 +1542,19 @@ static void reg_process_hint(struct regulatory_request *reg_request, switch (__regulatory_hint(wiphy, reg_request)) { case REG_REQ_ALREADY_SET: /* This is required so that the orig_* parameters are saved */ - if (wiphy && wiphy->flags & WIPHY_FLAG_STRICT_REGULATORY) + if (wiphy && wiphy->flags & WIPHY_FLAG_STRICT_REGULATORY){ wiphy_update_regulatory(wiphy, reg_initiator); + REG_DBG_PRINT("SEIK reg_process_hint already set\n"); + } break; default: - if (reg_initiator == NL80211_REGDOM_SET_BY_USER) + if (reg_initiator == NL80211_REGDOM_SET_BY_USER){ schedule_delayed_work(®_timeout, msecs_to_jiffies(3142)); + REG_DBG_PRINT("SEIK reg_process_hint default\n"); + } break; + } } @@ -1558,6 +1574,7 @@ static void reg_process_pending_hints(void) REG_DBG_PRINT("Pending regulatory request, waiting for it to be processed...\n"); return; } + REG_DBG_PRINT("SEIK regulatory request...at 1\n"); spin_lock(®_requests_lock); @@ -1572,8 +1589,11 @@ static void reg_process_pending_hints(void) list_del_init(®_request->list); spin_unlock(®_requests_lock); + REG_DBG_PRINT("SEIK regulatory request...at 2\n"); reg_process_hint(reg_request, reg_request->initiator); + REG_DBG_PRINT("SEIK regulatory request...at 3\n"); + } /* Processes beacon hints -- this has nothing to do with country IEs */