From patchwork Sun Apr 13 13:01:51 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Emmanuel Grumbach X-Patchwork-Id: 3973751 Return-Path: X-Original-To: patchwork-linux-wireless@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 04DFEBFF02 for ; Sun, 13 Apr 2014 13:02:17 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 31135201FB for ; Sun, 13 Apr 2014 13:02:16 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4BF8A201E4 for ; Sun, 13 Apr 2014 13:02:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754369AbaDMNCL (ORCPT ); Sun, 13 Apr 2014 09:02:11 -0400 Received: from mail-wi0-f173.google.com ([209.85.212.173]:55212 "EHLO mail-wi0-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754190AbaDMNCK (ORCPT ); Sun, 13 Apr 2014 09:02:10 -0400 Received: by mail-wi0-f173.google.com with SMTP id z2so2927482wiv.0 for ; Sun, 13 Apr 2014 06:02:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=ldgP8Nn6iT1MaKmHFRyjyLOI5lBHxPnqc7fJZsw8Tq0=; b=Pi0yho5p9pp1WKIlbjXqYRZrQXvgqN40+wEzAzKZCaxzK255WT67m+5XVzfbqEPXJi Iykj5+2pu+9OyJHRfY1XqE9siaxLONZZOYiP2P4AKMXgxl7/vcgLzRwwBKHq0YA9Zk+G RwpaGMpwpb16N66XYr0K8noamlgJh4wG4KNVDcLdgtaaZr0cLCG/SOP812d1xT+V5NzL jxLPMi9UohflnSJ/Ubn1ncIiaGrd9rVkuWmz8SP6xN37zbgn/pUCdkO1Nr53cyjp5Vmf Yt5BAUY6Q1+7Mnli5hmfg8b2/oRYXQAg+ew8Z2TTjmEfkrAgqcWt6D8o5HrWWOe3fIv+ HWGQ== X-Received: by 10.180.85.10 with SMTP id d10mr5883152wiz.0.1397394128720; Sun, 13 Apr 2014 06:02:08 -0700 (PDT) Received: from localhost.localdomain (93-172-156-194.bb.netvision.net.il. [93.172.156.194]) by mx.google.com with ESMTPSA id bx16sm16761871wib.13.2014.04.13.06.02.06 for (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sun, 13 Apr 2014 06:02:07 -0700 (PDT) From: Emmanuel Grumbach To: linux-wireless@vger.kernel.org Cc: Johannes Berg , , Emmanuel Grumbach Subject: [PATCH 01/13] iwlwifi: mvm: delay enabling smart FIFO until after beacon RX Date: Sun, 13 Apr 2014 16:01:51 +0300 Message-Id: <1397394123-25102-1-git-send-email-egrumbach@gmail.com> X-Mailer: git-send-email 1.8.3.2 In-Reply-To: <534A8A49.2030100@gmail.com> References: <534A8A49.2030100@gmail.com> Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Spam-Status: No, score=-7.8 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, T_DKIM_INVALID, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Johannes Berg If we have no beacon data before association, delay smart FIFO enablement until after we have this data. Not doing so can cause association failures in extremely silent environments (usually only a shielded box/room) as beacon RX is not sent to the host immediately, and then the association time event ends without the host receiving any beacon even though it was on the air - it's just stuck on the FIFO. Cc: [3.14] Fixes: 1f3b0ff8ecce ("iwlwifi: mvm: Add Smart FIFO support") Signed-off-by: Johannes Berg Signed-off-by: Emmanuel Grumbach --- drivers/net/wireless/iwlwifi/mvm/mac80211.c | 1 + drivers/net/wireless/iwlwifi/mvm/sf.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/iwlwifi/mvm/mac80211.c index 4dd9ff4..f0cebf1 100644 --- a/drivers/net/wireless/iwlwifi/mvm/mac80211.c +++ b/drivers/net/wireless/iwlwifi/mvm/mac80211.c @@ -1332,6 +1332,7 @@ static void iwl_mvm_bss_info_changed_station(struct iwl_mvm *mvm, */ iwl_mvm_remove_time_event(mvm, mvmvif, &mvmvif->time_event_data); + iwl_mvm_sf_update(mvm, vif, false); WARN_ON(iwl_mvm_enable_beacon_filter(mvm, vif, CMD_SYNC)); } else if (changes & (BSS_CHANGED_PS | BSS_CHANGED_P2P_PS | BSS_CHANGED_QOS)) { diff --git a/drivers/net/wireless/iwlwifi/mvm/sf.c b/drivers/net/wireless/iwlwifi/mvm/sf.c index 8401627..88809b2 100644 --- a/drivers/net/wireless/iwlwifi/mvm/sf.c +++ b/drivers/net/wireless/iwlwifi/mvm/sf.c @@ -274,7 +274,8 @@ int iwl_mvm_sf_update(struct iwl_mvm *mvm, struct ieee80211_vif *changed_vif, return -EINVAL; if (changed_vif->type != NL80211_IFTYPE_STATION) { new_state = SF_UNINIT; - } else if (changed_vif->bss_conf.assoc) { + } else if (changed_vif->bss_conf.assoc && + changed_vif->bss_conf.dtim_period) { mvmvif = iwl_mvm_vif_from_mac80211(changed_vif); sta_id = mvmvif->ap_sta_id; new_state = SF_FULL_ON;