From patchwork Tue Mar 31 10:26:26 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michal Kazior X-Patchwork-Id: 6128511 X-Patchwork-Delegate: kvalo@adurom.com 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.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 47C11BF4A6 for ; Tue, 31 Mar 2015 10:33:23 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 5A65320172 for ; Tue, 31 Mar 2015 10:33:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 6552320122 for ; Tue, 31 Mar 2015 10:33:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753831AbbCaKdU (ORCPT ); Tue, 31 Mar 2015 06:33:20 -0400 Received: from mail-lb0-f176.google.com ([209.85.217.176]:36030 "EHLO mail-lb0-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752809AbbCaKdM (ORCPT ); Tue, 31 Mar 2015 06:33:12 -0400 Received: by lbbug6 with SMTP id ug6so9023439lbb.3 for ; Tue, 31 Mar 2015 03:33:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tieto.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=e+RoKkb6DKXz3hRRswnn62CDV3HHhy9LhVspJ+8jDdg=; b=lAps4hhI+liKOGG6AjQXL5fn+nStqnd+eFF3XLuGDCPvqtpuslTIoO0yN1OEvab121 TbDjb8w5qiJJvjFHGAd776ib4sCqW+QOwQARBlKUqWvVn5ckqEX6RL7wz5UbGSV16ABL uSThmJLW11Evan1YU3RQpTWzsBet0Jl0eyvA0= 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:in-reply-to :references; bh=e+RoKkb6DKXz3hRRswnn62CDV3HHhy9LhVspJ+8jDdg=; b=FIhvqtWIL+ifLgkHspQZvMytfQs0td9BZwQvfghmam2mxvlkc9yI8fvbDU3NDn6z47 FAPHFTrUi/9N4J9fHrH3FjFohyHSy84pErcqlLQHpwOmHADQTXpnykCa+0o7ING8u7VA sQDIgD5YvAGwGQW+psc1hpc/2Qxhv6sxDuOuHizyPJl/dVvshG62pKxJA+43gI69W7gu WRsYejxMopOFX1MSrs1D5OfUkNwvWxtMDQD275M8HoyBOzPZToKR4awD3gZidwkWYwGL Tm6NEycsweGvhuSuoxbWGA9lARJtbCMvwI+8ky+xxUPyTpjlaGQiek+KYKcCqf++BCu0 +e0w== X-Gm-Message-State: ALoCoQmT8lXkKIrXLFO1FFBDcyFV9FfFwJnxJvvTisaIQ/Xv/iIjTzmbP+p3AblbkMyQYxo5EQESnxCMjxGxztkiW/x46N70z8HKFd8rZ8UBEsYUyIllaN2ke3PRQdMQcPN/nCq3Dy1k X-Received: by 10.152.20.37 with SMTP id k5mr16445042lae.102.1427797991524; Tue, 31 Mar 2015 03:33:11 -0700 (PDT) Received: from bob.homerouter.cpe (apn-46-169-246-95.dynamic.gprs.plus.pl. [46.169.246.95]) by mx.google.com with ESMTPSA id d3sm2553595lbc.39.2015.03.31.03.33.10 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 31 Mar 2015 03:33:10 -0700 (PDT) From: Michal Kazior To: ath10k@lists.infradead.org Cc: linux-wireless@vger.kernel.org, Michal Kazior Subject: [PATCH v6 7/7] ath10k: allocate fw resources for iface combinations Date: Tue, 31 Mar 2015 10:26:26 +0000 Message-Id: <1427797586-5132-8-git-send-email-michal.kazior@tieto.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1427797586-5132-1-git-send-email-michal.kazior@tieto.com> References: <1427797586-5132-1-git-send-email-michal.kazior@tieto.com> X-DomainID: tieto.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=-6.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,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 The number of 3 vdevs wasn't enough to handle the worst case for interface combinations in practice. wpa_supplicant may need up to 4 vifs to have 2 vifs actually connected, i.e. p2pdev + client + 2x p2p (either p2p client or p2p go). This fixes worst case warning: Free vdev map is empty, no more interfaces allowed. This keeps the ability to associate 32 stations in AP mode at the cost of not being able to guarantee that under all circumstances, i.e. some combinations may consume additional fw peer entries for internal purposes leaving less resource for stations in AP mode. Signed-off-by: Michal Kazior --- drivers/net/wireless/ath/ath10k/hw.h | 6 ++---- drivers/net/wireless/ath/ath10k/wmi-tlv.c | 8 ++++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/net/wireless/ath/ath10k/hw.h b/drivers/net/wireless/ath/ath10k/hw.h index 254215973637..89e09cbeac19 100644 --- a/drivers/net/wireless/ath/ath10k/hw.h +++ b/drivers/net/wireless/ath/ath10k/hw.h @@ -299,11 +299,9 @@ enum ath10k_hw_rate_cck { #define TARGET_10_2_DMA_BURST_SIZE 1 /* Target specific defines for WMI-TLV firmware */ -#define TARGET_TLV_NUM_VDEVS 3 +#define TARGET_TLV_NUM_VDEVS 4 #define TARGET_TLV_NUM_STATIONS 32 -#define TARGET_TLV_NUM_PEERS ((TARGET_TLV_NUM_STATIONS) + \ - (TARGET_TLV_NUM_VDEVS) + \ - 2) +#define TARGET_TLV_NUM_PEERS 35 #define TARGET_TLV_NUM_TDLS_VDEVS 1 #define TARGET_TLV_NUM_TIDS ((TARGET_TLV_NUM_PEERS) * 2) #define TARGET_TLV_NUM_MSDU_DESC (1024 + 32) diff --git a/drivers/net/wireless/ath/ath10k/wmi-tlv.c b/drivers/net/wireless/ath/ath10k/wmi-tlv.c index 03e34c351576..ae120782e737 100644 --- a/drivers/net/wireless/ath/ath10k/wmi-tlv.c +++ b/drivers/net/wireless/ath/ath10k/wmi-tlv.c @@ -1318,8 +1318,8 @@ static struct sk_buff *ath10k_wmi_tlv_op_gen_init(struct ath10k *ar) cfg->num_peers = __cpu_to_le32(TARGET_TLV_NUM_PEERS); if (test_bit(WMI_SERVICE_RX_FULL_REORDER, ar->wmi.svc_map)) { - cfg->num_offload_peers = __cpu_to_le32(3); - cfg->num_offload_reorder_bufs = __cpu_to_le32(3); + cfg->num_offload_peers = __cpu_to_le32(TARGET_TLV_NUM_VDEVS); + cfg->num_offload_reorder_bufs = __cpu_to_le32(TARGET_TLV_NUM_VDEVS); } else { cfg->num_offload_peers = __cpu_to_le32(0); cfg->num_offload_reorder_bufs = __cpu_to_le32(0); @@ -1336,8 +1336,8 @@ static struct sk_buff *ath10k_wmi_tlv_op_gen_init(struct ath10k *ar) cfg->rx_timeout_pri[3] = __cpu_to_le32(0x28); cfg->rx_decap_mode = __cpu_to_le32(1); cfg->scan_max_pending_reqs = __cpu_to_le32(4); - cfg->bmiss_offload_max_vdev = __cpu_to_le32(3); - cfg->roam_offload_max_vdev = __cpu_to_le32(3); + cfg->bmiss_offload_max_vdev = __cpu_to_le32(TARGET_TLV_NUM_VDEVS); + cfg->roam_offload_max_vdev = __cpu_to_le32(TARGET_TLV_NUM_VDEVS); cfg->roam_offload_max_ap_profiles = __cpu_to_le32(8); cfg->num_mcast_groups = __cpu_to_le32(0); cfg->num_mcast_table_elems = __cpu_to_le32(0);