From patchwork Mon Sep 23 12:07:21 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anilkumar Kolli X-Patchwork-Id: 11156647 X-Patchwork-Delegate: kvalo@adurom.com Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 911D8912 for ; Mon, 23 Sep 2019 12:08:21 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6DF5520820 for ; Mon, 23 Sep 2019 12:08:21 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="NyH3Y9ke"; dkim=fail reason="key not found in DNS" (0-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="GS0jpsdJ"; dkim=fail reason="key not found in DNS" (0-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="oFACqfwr" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6DF5520820 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=ath11k-bounces+patchwork-ath11k=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date:Subject:To: From:Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=AHckk9vFgG4lSU9Z09qEc84tCGhhZKoadghD9oW9tvk=; b=NyH3Y9kedIZR39 AaEbnjZBz8aFTOMBst5c4xJWA+1mSenR4VOjETyz6VlDrssm4TcdJdexd6NSGBvDo4OIkYLWdh3b2 Nj3T5zSj8xWhuwlcQpLv4+3P56j7pYFAhip11LEDkgI6QxmWAwgeMxGqWX2Ar3TAqCLCS/8LxbiGi GEOig2LBByZcYlicazSIKm4K3j4z+jQA/k7cdCWy4mSGV43mZTkj663jvoop+edNiCCZCn7EsfLxX 0rNGoZ0+tzM4eEPiAW43e+TxYJO7thMPj26Hcdou9dOhi9R10XVYLvb1Kyvqogdgh6mgQ2wP2dkQY x1oc8t96PL5j218UmYZg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.2 #3 (Red Hat Linux)) id 1iCN8P-0000Ef-Mg; Mon, 23 Sep 2019 12:08:05 +0000 Received: from smtp.codeaurora.org ([198.145.29.96]) by bombadil.infradead.org with esmtps (Exim 4.92.2 #3 (Red Hat Linux)) id 1iCN7z-000064-Md for ath11k@lists.infradead.org; Mon, 23 Sep 2019 12:07:41 +0000 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 38B226021C; Mon, 23 Sep 2019 12:07:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1569240457; bh=1zQ1+MovkLBRb5DL3Ep9ps0iAfoecVg5nza2yOLoFMM=; h=From:To:Cc:Subject:Date:From; b=GS0jpsdJvq5SYe7a7RfRCzHyQlnvQvWvR6GdWJ00pcnD1Q3x/IxYwobJOR6jAEEKR 1WgfRYUCRw7jC3TRiNxy9q48iXiRvCBZmhV3y+7odnOW/XypiqoAdXNSSNsqe8t9Fk GqMefbZ+8yS/p2XW+fJ4N3JI66NTjv50yLqRPLI4= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_INVALID,DKIM_SIGNED,SPF_NONE autolearn=no autolearn_force=no version=3.4.0 Received: from localhost (blr-c-bdr-fw-01_globalnat_allzones-outside.qualcomm.com [103.229.19.19]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) (Authenticated sender: akolli@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id C84A660736; Mon, 23 Sep 2019 12:07:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1569240456; bh=1zQ1+MovkLBRb5DL3Ep9ps0iAfoecVg5nza2yOLoFMM=; h=From:To:Cc:Subject:Date:From; b=oFACqfwr+oRf7pbB7zJd2lspQtV+5pucz5kyvQAbfJI7AtrOb/0pU9aWbH+k73f4C +HyHj7p5Enz4v9tGOtIeEmtykuQ1oeJZwQEKb40yoPCMqHhFlHWfzKueKPVlG5o4RU hFdiuqmBF1cLCoJr77rIZZA3ay6dBN+BNN6EN+ek= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org C84A660736 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=akolli@codeaurora.org From: Anilkumar Kolli To: ath11k@lists.infradead.org Subject: [PATCH] ath11k: update tcl cmd descriptor parameters for STA mode Date: Mon, 23 Sep 2019 17:37:21 +0530 Message-Id: <1569240441-18252-1-git-send-email-akolli@codeaurora.org> X-Mailer: git-send-email 1.9.1 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190923_050739_786249_FA4B634E X-CRM114-Status: GOOD ( 11.82 ) X-Spam-Score: -2.5 (--) X-Spam-Report: SpamAssassin version 3.4.2 on bombadil.infradead.org summary: Content analysis details: (-2.5 points) pts rule name description ---- ---------------------- -------------------------------------------------- -2.3 RCVD_IN_DNSWL_MED RBL: Sender listed at https://www.dnswl.org/, medium trust [198.145.29.96 listed in list.dnswl.org] 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid X-BeenThere: ath11k@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: "ath11k" Errors-To: ath11k-bounces+patchwork-ath11k=patchwork.kernel.org@lists.infradead.org It is observed that ath11k STA mode UL throughput is low. This is due to packets delivered to FW from TCL instead of TQM. TCL AST search fail causes packet delivered to FW, fix this by properly configuring the TCL address search type and ast_hash. STA UL throughput is improved 10times with 11AC AP. Signed-off-by: Anilkumar Kolli --- drivers/net/wireless/ath/ath11k/dp.c | 9 ++++----- drivers/net/wireless/ath/ath11k/dp_rx.c | 2 +- drivers/net/wireless/ath/ath11k/hal_desc.h | 5 ++--- drivers/net/wireless/ath/ath11k/hal_tx.c | 6 +++--- drivers/net/wireless/ath/ath11k/hal_tx.h | 4 ++-- 5 files changed, 12 insertions(+), 14 deletions(-) diff --git a/drivers/net/wireless/ath/ath11k/dp.c b/drivers/net/wireless/ath/ath11k/dp.c index b55d9d023a55..2a0702eaf5f6 100644 --- a/drivers/net/wireless/ath/ath11k/dp.c +++ b/drivers/net/wireless/ath/ath11k/dp.c @@ -758,13 +758,12 @@ int ath11k_dp_htt_connect(struct ath11k_dp *dp) static void ath11k_dp_update_vdev_search(struct ath11k_vif *arvif) { - /* Enable AddrY (SA based search) for STA mode. All other modes it - * is going to be AddrX (DA based search). For STA mode, set search - * type based on AST value. - */ + /* For STA mode, enable address search index, + * tcl uses ast_hash value in the descriptor. + */ switch (arvif->vdev_type) { case WMI_VDEV_TYPE_STA: - arvif->hal_addr_search_flags = HAL_TX_ADDRY_EN; + arvif->hal_addr_search_flags = HAL_TX_ADDRX_EN; arvif->search_type = HAL_TX_ADDR_SEARCH_INDEX; break; case WMI_VDEV_TYPE_AP: diff --git a/drivers/net/wireless/ath/ath11k/dp_rx.c b/drivers/net/wireless/ath/ath11k/dp_rx.c index cc3bf25c9a91..3489d3f1dd1f 100644 --- a/drivers/net/wireless/ath/ath11k/dp_rx.c +++ b/drivers/net/wireless/ath/ath11k/dp_rx.c @@ -1334,7 +1334,7 @@ void ath11k_dp_htt_htc_t2h_msg_handler(struct ath11k_base *ab, ath11k_dp_get_mac_addr(resp->peer_map_ev.mac_addr_l32, peer_mac_h16, mac_addr); ast_hash = FIELD_GET(HTT_T2H_PEER_MAP_INFO2_AST_HASH_VAL, - resp->peer_map_ev.info1); + resp->peer_map_ev.info2); ath11k_peer_map_event(ab, vdev_id, peer_id, mac_addr, ast_hash); break; case HTT_T2H_MSG_TYPE_PEER_UNMAP: diff --git a/drivers/net/wireless/ath/ath11k/hal_desc.h b/drivers/net/wireless/ath/ath11k/hal_desc.h index dbfb82130db6..a1bdbd6e8fc6 100644 --- a/drivers/net/wireless/ath/ath11k/hal_desc.h +++ b/drivers/net/wireless/ath/ath11k/hal_desc.h @@ -934,9 +934,8 @@ struct hal_reo_flush_cache { #define HAL_TCL_DATA_CMD_INFO0_ENCRYPT_TYPE GENMASK(7, 4) #define HAL_TCL_DATA_CMD_INFO0_SRC_BUF_SWAP BIT(8) #define HAL_TCL_DATA_CMD_INFO0_LNK_META_SWAP BIT(9) -#define HAL_TCL_DATA_CMD_INFO0_SEARCH_TYPE BIT(12) -#define HAL_TCL_DATA_CMD_INFO0_ADDRX_EN BIT(14) -#define HAL_TCL_DATA_CMD_INFO0_ADDRY_EN BIT(15) +#define HAL_TCL_DATA_CMD_INFO0_SEARCH_TYPE GENMASK(13, 12) +#define HAL_TCL_DATA_CMD_INFO0_ADDR_EN GENMASK(15, 14) #define HAL_TCL_DATA_CMD_INFO0_CMD_NUM GENMASK(31, 16) #define HAL_TCL_DATA_CMD_INFO1_DATA_LEN GENMASK(15, 0) diff --git a/drivers/net/wireless/ath/ath11k/hal_tx.c b/drivers/net/wireless/ath/ath11k/hal_tx.c index 2b1789a260d2..f49525d46455 100644 --- a/drivers/net/wireless/ath/ath11k/hal_tx.c +++ b/drivers/net/wireless/ath/ath11k/hal_tx.c @@ -52,9 +52,9 @@ void ath11k_hal_tx_cmd_desc_setup(struct ath11k_base *ab, void *cmd, FIELD_PREP(HAL_TCL_DATA_CMD_INFO0_ENCAP_TYPE, ti->encap_type) | FIELD_PREP(HAL_TCL_DATA_CMD_INFO0_ENCRYPT_TYPE, ti->encrypt_type) | - FIELD_PREP(HAL_TCL_DATA_CMD_INFO0_ADDRX_EN, - ti->addr_search_flags) | - FIELD_PREP(HAL_TCL_DATA_CMD_INFO0_ADDRY_EN, + FIELD_PREP(HAL_TCL_DATA_CMD_INFO0_SEARCH_TYPE, + ti->search_type) | + FIELD_PREP(HAL_TCL_DATA_CMD_INFO0_ADDR_EN, ti->addr_search_flags) | FIELD_PREP(HAL_TCL_DATA_CMD_INFO0_CMD_NUM, ti->meta_data_flags); diff --git a/drivers/net/wireless/ath/ath11k/hal_tx.h b/drivers/net/wireless/ath/ath11k/hal_tx.h index 3b12dfda7423..ebe5b35fa08e 100644 --- a/drivers/net/wireless/ath/ath11k/hal_tx.h +++ b/drivers/net/wireless/ath/ath11k/hal_tx.h @@ -11,8 +11,8 @@ #define HAL_TX_ADDRX_EN 1 #define HAL_TX_ADDRY_EN 2 -#define HAL_TX_ADDR_SEARCH_INDEX 0 -#define HAL_TX_ADDR_SEARCH_DEFAULT 1 +#define HAL_TX_ADDR_SEARCH_DEFAULT 0 +#define HAL_TX_ADDR_SEARCH_INDEX 1 struct hal_tx_info { u16 meta_data_flags; /* %HAL_TCL_DATA_CMD_INFO0_META_ */