From patchwork Thu Feb 26 10:11:22 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Kazior X-Patchwork-Id: 5890411 Return-Path: X-Original-To: patchwork-ath10k@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id C6F169F373 for ; Thu, 26 Feb 2015 10:13:11 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id DB76F20382 for ; Thu, 26 Feb 2015 10:13:10 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 18E252037A for ; Thu, 26 Feb 2015 10:13:10 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1YQvRE-0006AI-B6; Thu, 26 Feb 2015 10:13:00 +0000 Received: from mail-lb0-x230.google.com ([2a00:1450:4010:c04::230]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1YQvRB-00061f-8i for ath10k@lists.infradead.org; Thu, 26 Feb 2015 10:12:58 +0000 Received: by lbjb6 with SMTP id b6so9798066lbj.2 for ; Thu, 26 Feb 2015 02:12:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tieto.com; s=google; h=from:to:cc:subject:date:message-id; bh=v/WxOC6k4klQ+8GDW+aUyQ7ZJVT6rEQYMI2XYPWuihI=; b=HIQzeR8GUszbqaV9WVdjCdwW1Vxg2/AohALHBJBG6RyidSxnsMoZd8Qs6YOr6arc7b 2GSLv4KigUFTNYrSy72TLuZszJvq+SebMsl5IMhu62e2UIYLX56WJNhRQ3TOrBQ9B+Tl T1XUjG1ZNi516NMyiTqG0NvpG0kSd7T+iT/kc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=v/WxOC6k4klQ+8GDW+aUyQ7ZJVT6rEQYMI2XYPWuihI=; b=VkD2SUDf9A652ler171A/dEReQfcJhMTnWP9ZXyjZ2lnBH+VwFxkAy0BlZlfDXYCjb X4ovPL5ipv+HTE1rRkks4f+aWfdRXwqT4jV7oBlXABPlV4D1010eTzvW4PFljWaCnBxn tXU7d3qxOzuTWzHQMsOr1ZQ/01SICC5S5mjrPxs33pySZPwzIpsSUqFuxrBwGhfdwFQH PF4x6uCuEkXS4/FkCN/S4z6+557bfVfarak5P5kvi2a3J+IRM44sJjg2fE97P8fsUfjQ 4UVnXzZgxbl/LvXEgIAIhgxZXmLcUby4xY+m4c/GYiIEYFUjdCYcSP805FxNJf2bkUrn NmiA== X-Gm-Message-State: ALoCoQkqocrUAaUtcRb6+lY/YKV7Kd3ZC/tp3tSHTULG3tulFl7bHUxMfyE0Lq/yD7Zd1Gn6f/GlP9X303XvLapgYJRDlqP8Ad35KCWxYcdzTt1DgtWdrTY44Jz0xLGVd0+B+xJ5yeqObtBVbliK8/9tNhfjxM6RKFHMidGUGHBBVRP+PrUP6ds= X-Received: by 10.112.162.232 with SMTP id yd8mr1593715lbb.41.1424945552709; Thu, 26 Feb 2015 02:12:32 -0800 (PST) Received: from bob.homerouter.cpe (apn-77-113-114-198.dynamic.gprs.plus.pl. [77.113.114.198]) by mx.google.com with ESMTPSA id la5sm98630lac.0.2015.02.26.02.12.31 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 26 Feb 2015 02:12:32 -0800 (PST) From: Michal Kazior To: ath10k@lists.infradead.org Subject: [PATCH] ath10k: fix TxBF VHT capabilities for 2+ RF-chain devices Date: Thu, 26 Feb 2015 11:11:22 +0100 Message-Id: <1424945482-9765-1-git-send-email-michal.kazior@tieto.com> X-Mailer: git-send-email 1.8.5.3 X-DomainID: tieto.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20150226_021257_514014_B52F4946 X-CRM114-Status: UNSURE ( 9.30 ) X-CRM114-Notice: Please train this message. X-Spam-Score: -0.8 (/) Cc: linux-wireless@vger.kernel.org, Michal Kazior X-BeenThere: ath10k@lists.infradead.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: "ath10k" Errors-To: ath10k-bounces+patchwork-ath10k=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-4.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED, T_DKIM_INVALID, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=ham 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 Firmware doesn't report a complete and ready-to-use vht cap. Instead the driver is supposed to fill in the missing bits related to number of chains. This effectively increases Compressed Steering Number and Number of Sounding Dimensions in AssocReq frames for devices with more than one RF chain and should improve TxBF performance. Signed-off-by: Michal Kazior --- drivers/net/wireless/ath/ath10k/mac.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c index 0f39af7..383250e 100644 --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c @@ -5263,11 +5263,30 @@ static struct ieee80211_sta_vht_cap ath10k_create_vht_cap(struct ath10k *ar) { struct ieee80211_sta_vht_cap vht_cap = {0}; u16 mcs_map; + u32 val; int i; vht_cap.vht_supported = 1; vht_cap.cap = ar->vht_cap_info; + if (ar->vht_cap_info & (IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE | + IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE)) { + val = ar->num_rf_chains - 1; + val <<= IEEE80211_VHT_CAP_BEAMFORMEE_STS_SHIFT; + val &= IEEE80211_VHT_CAP_BEAMFORMEE_STS_MASK; + + vht_cap.cap |= val; + } + + if (ar->vht_cap_info & (IEEE80211_VHT_CAP_SU_BEAMFORMER_CAPABLE | + IEEE80211_VHT_CAP_MU_BEAMFORMER_CAPABLE)) { + val = ar->num_rf_chains - 1; + val <<= IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_SHIFT; + val &= IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_MASK; + + vht_cap.cap |= val; + } + mcs_map = 0; for (i = 0; i < 8; i++) { if (i < ar->num_rf_chains)