From patchwork Fri Sep 27 14:38:24 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Kazior X-Patchwork-Id: 2955531 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 32C2CBFF0B for ; Fri, 27 Sep 2013 14:38:43 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 1E2A1201EA for ; Fri, 27 Sep 2013 14:38:42 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id EAABE202C1 for ; Fri, 27 Sep 2013 14:38:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753893Ab3I0Oih (ORCPT ); Fri, 27 Sep 2013 10:38:37 -0400 Received: from ebb06.tieto.com ([131.207.168.38]:49051 "EHLO ebb06.tieto.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753734Ab3I0Oif (ORCPT ); Fri, 27 Sep 2013 10:38:35 -0400 X-AuditID: 83cfa826-b7f268e000004e10-4b-52459868eca5 Received: from FIHGA-EXHUB01.eu.tieto.com ( [131.207.136.34]) by ebb06.tieto.com (SMTP Mailer) with SMTP id C9.2C.19984.86895425; Fri, 27 Sep 2013 17:38:32 +0300 (EEST) Received: from uw001058.eu.tieto.com (10.28.19.57) by inbound.tieto.com (131.207.136.49) with Microsoft SMTP Server id 8.3.298.1; Fri, 27 Sep 2013 17:38:31 +0300 From: Michal Kazior To: CC: , Michal Kazior Subject: [PATCH 2/4] ath10k: split vdev_id calculation from tx function Date: Fri, 27 Sep 2013 16:38:24 +0200 Message-ID: <1380292706-3609-3-git-send-email-michal.kazior@tieto.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1380292706-3609-1-git-send-email-michal.kazior@tieto.com> References: <1380292706-3609-1-git-send-email-michal.kazior@tieto.com> MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrJIsWRmVeSWpSXmKPExsXSfL5DSTdjhmuQwfXXyhaPLh1jtniz4g67 xbetD9gcmD0+z7zL5rF5Sb3H501yAcxRXDYpqTmZZalF+nYJXBkTj69lL9jAX9Fw7wFjA+N1 ni5GTg4JAROJVXu3MEHYYhIX7q1n62Lk4hASWMUocantACOEs5RR4v+i7WBVbAK6Eq8az7KC 2CICChK/Jn1kA7GZBXwlnj1ZBlYjLOAucW/nHbA4i4CqxJMfi1lAbF4BN4lnn84BDeUA2qYg MWeSDUiYE6j8wIvtYCOFgEraP29ghSgXlDg58wkLxHgJiYMvXjBD1KhIHFy/n3kCo8AsJGWz kJQtYGRaxcifmpRkYKZXkplakq+XnJ+7iREcgivUdjA+eyB1iFGAg1GJh1ehzCVIiDWxrLgy 9xCjJAeTkihvcq9rkBBfUn5KZUZicUZ8UWlOavEhRgkOZiURXpFOoBxvSmJlVWpRPkxKmoNF SZx3Q4djkJBAemJJanZqakFqEUxWhoNDSYJXcDpQo2BRanpqRVpmTglCmomDE2Q4D9BwcZAa 3uKCxNzizHSI/ClGRSlxXjmQhABIIqM0D64XliJeMYoDvSLMawxSxQNML3Ddr4AGMwENduhw AhlckoiQkmpgDM9s15q5fB7bwVy1v/2T9liab5k+taM8alP93UOLQuw+RcjW6Cmdi3qp+zZs /vyqZ9pTNVSv3lwQv7rAMchqz5fl3gtPiE743Pr6sqzM5aMpSgLCj45aym18xL6DI4NV3HTy l/PnmQ6F8a16pqtRV/PwwOZKWTMDR7Folm/XutexSchcsKxiUGIpzkg01GIuKk4EAGE0bNXs AgAA Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Spam-Status: No, score=-9.3 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, 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 Signed-off-by: Michal Kazior --- drivers/net/wireless/ath/ath10k/mac.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c index 7415a60..4b7c949 100644 --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c @@ -1421,6 +1421,19 @@ static u8 ath10k_tx_h_get_tid(struct ieee80211_hdr *hdr) return ieee80211_get_qos_ctl(hdr)[0] & IEEE80211_QOS_CTL_TID_MASK; } +static u8 ath10k_tx_h_get_vdev_id(struct ath10k *ar, + struct ieee80211_tx_info *info) +{ + if (info->control.vif) + return ath10k_vif_to_arvif(info->control.vif)->vdev_id; + + if (ar->monitor_enabled) + return ar->monitor_vdev_id; + + ath10k_warn("could not resolve vdev id\n"); + return 0; +} + /* * Frames sent to the FW have to be in "Native Wifi" format. * Strip the QoS field from the 802.11 header. @@ -1785,16 +1798,7 @@ static void ath10k_tx(struct ieee80211_hw *hw, struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; struct ath10k *ar = hw->priv; - struct ath10k_vif *arvif = NULL; - u32 vdev_id = 0; - u8 tid; - - if (info->control.vif) { - arvif = ath10k_vif_to_arvif(info->control.vif); - vdev_id = arvif->vdev_id; - } else if (ar->monitor_enabled) { - vdev_id = ar->monitor_vdev_id; - } + u8 tid, vdev_id; /* We should disable CCK RATE due to P2P */ if (info->flags & IEEE80211_TX_CTL_NO_CCK_RATE) @@ -1803,6 +1807,7 @@ static void ath10k_tx(struct ieee80211_hw *hw, /* we must calculate tid before we apply qos workaround * as we'd lose the qos control field */ tid = ath10k_tx_h_get_tid(hdr); + vdev_id = ath10k_tx_h_get_vdev_id(ar, info); /* it makes no sense to process injected frames like that */ if (info->control.vif &&