From patchwork Wed Sep 9 15:35:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bryan O'Donoghue X-Patchwork-Id: 11765665 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 CAC60618 for ; Wed, 9 Sep 2020 15:38:03 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A7CA120672 for ; Wed, 9 Sep 2020 15:38:03 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="I8waGxoj" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730326AbgIIPh7 (ORCPT ); Wed, 9 Sep 2020 11:37:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48004 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730260AbgIIPfJ (ORCPT ); Wed, 9 Sep 2020 11:35:09 -0400 Received: from mail-wm1-x344.google.com (mail-wm1-x344.google.com [IPv6:2a00:1450:4864:20::344]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B3B9DC061756 for ; Wed, 9 Sep 2020 08:35:08 -0700 (PDT) Received: by mail-wm1-x344.google.com with SMTP id s13so2716719wmh.4 for ; Wed, 09 Sep 2020 08:35:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=RqOhclRRIqI97WuGHZsdvXxzhC2mxsIcVlTbaDy3Bdg=; b=I8waGxojlzkRIl6Ew8JGRtxReXZpz0VU+jHluWkVETFxLkMTVb4sJRk3I9ZNkrD2L2 Cfc/3HFNgR6X6LKixBdbgHauFjurngCXFVUYGqp/QFdA4ZD4Xiez5XMdOf434hlPjWlW /MlQ6wU9gOVsWdvXpsr7U69zlcWYwX5ajbnF78hzgNdZP41yODTP8dCZMSSG5VzNgQM5 h7QtSDa/G3vFK2lItUMIDEppvbo7xul1v0315zkZFk1Aknh79juP6XsV7pYHAKEiuswO 11EkkU/l0iPosmmDerUQ0c9AOTYfREvGHyOyaLCnasVCWsagRjIIqFfNmTKF/j/o0DGL Jorg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=RqOhclRRIqI97WuGHZsdvXxzhC2mxsIcVlTbaDy3Bdg=; b=LV/3zl+KNpzasd5M2Fs1Tz3u/GvNBaG4/T4ZTB1GD8GV3zL0L5Y9/UKE7mIfSRc9Ju 8ISQdSFav1Oehi/iX3MgI9Fo2yb2R73o+HW38hU79C7YC+XQlBJ80EooZ9slHpO3C/RA M1Mo/7FF4rh/VJWZ0NyaiktsupVfCGMLjDScJEaH6nGdxOV72MX0QcRlc5hAf+vM89Pv 4yM85ovfjHkUhmFJnBiCQ1CRRPVZ98siL52S3ueOOy0z5Xk4LEd9Nl0za4bRsIYL3bEz dUn8A+H85s7UKMh7fQdu28a8GLtx8SAT22uTtKiEJMBbuXb/kUQPr3AGw97b9bkt3bPy mXbg== X-Gm-Message-State: AOAM531oJFy31k6kgVoqrhkDlUWeTBFUu/3TVYw7joTu21UKRgGNeAS2 qs2ywubIPAxhnXm577PT/kEfFw== X-Google-Smtp-Source: ABdhPJyWtYesrxWyrBxGMnos9C0CFI/MffEvq7V7967a7stgco9FeJCxXcHc2Y0tgP/twJTtTqvj+Q== X-Received: by 2002:a1c:5a87:: with SMTP id o129mr4237839wmb.145.1599665707121; Wed, 09 Sep 2020 08:35:07 -0700 (PDT) Received: from sagittarius-a.chello.ie (188-141-3-169.dynamic.upc.ie. [188.141.3.169]) by smtp.gmail.com with ESMTPSA id c4sm4922120wrp.85.2020.09.09.08.35.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Sep 2020 08:35:06 -0700 (PDT) From: Bryan O'Donoghue To: kvalo@codeaurora.org, wcn36xx@lists.infradead.org, linux-wireless@vger.kernel.org Cc: bryan.odonoghue@linaro.org, shawn.guo@linaro.org, loic.poulain@linaro.org Subject: [PATCH v4 1/2] wcn36xx: Add VHT fields to parameter data structures Date: Wed, 9 Sep 2020 16:35:53 +0100 Message-Id: <20200909153554.2904762-2-bryan.odonoghue@linaro.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200909153554.2904762-1-bryan.odonoghue@linaro.org> References: <20200909153554.2904762-1-bryan.odonoghue@linaro.org> MIME-Version: 1.0 Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org In order to pass VHT parameters to wcn3680 we need to use a super-set of the V1 data-structures with additional VHT parameters tacked on. This patch adds the additional fields to the STA and BSS parameter structures. Since neither wcn3620 nor wcn3660 support VHT the size of the passed message is fixed to the previous message length. Subsequent changes will differentiate between wcn3620/wcn3660 and wcn3680 which does use the larger message size. Signed-off-by: Bryan O'Donoghue --- drivers/net/wireless/ath/wcn36xx/hal.h | 14 +++++++++++++- drivers/net/wireless/ath/wcn36xx/smd.c | 2 ++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/ath/wcn36xx/hal.h b/drivers/net/wireless/ath/wcn36xx/hal.h index 573799274a02..3cceeaf0136f 100644 --- a/drivers/net/wireless/ath/wcn36xx/hal.h +++ b/drivers/net/wireless/ath/wcn36xx/hal.h @@ -1592,9 +1592,15 @@ struct wcn36xx_hal_config_sta_params_v1 { u8 reserved:4; /* These rates are the intersection of peer and self capabilities. */ - struct wcn36xx_hal_supported_rates supported_rates; + struct wcn36xx_hal_supported_rates_v1 supported_rates; + + u8 vht_capable; + u8 vht_tx_channel_width_set; + } __packed; +#define WCN36XX_DIFF_STA_PARAMS_V1_NOVHT 10 + struct wcn36xx_hal_config_sta_req_msg_v1 { struct wcn36xx_hal_msg_header header; struct wcn36xx_hal_config_sta_params_v1 sta_params; @@ -2015,8 +2021,14 @@ struct wcn36xx_hal_config_bss_params_v1 { * "STA context" */ struct wcn36xx_hal_config_sta_params_v1 sta; + + u8 vht_capable; + u8 vht_tx_channel_width_set; + } __packed; +#define WCN36XX_DIFF_BSS_PARAMS_V1_NOVHT (WCN36XX_DIFF_STA_PARAMS_V1_NOVHT + 2) + struct wcn36xx_hal_config_bss_req_msg_v1 { struct wcn36xx_hal_msg_header header; struct wcn36xx_hal_config_bss_params_v1 bss_params; diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c index 4c30036e2e56..55aaaeb78b14 100644 --- a/drivers/net/wireless/ath/wcn36xx/smd.c +++ b/drivers/net/wireless/ath/wcn36xx/smd.c @@ -1223,6 +1223,7 @@ static int wcn36xx_smd_config_sta_v1(struct wcn36xx *wcn, struct wcn36xx_hal_config_sta_params_v1 *sta = &msg_body.sta_params; INIT_HAL_MSG(msg_body, WCN36XX_HAL_CONFIG_STA_REQ); + msg_body.header.len -= WCN36XX_DIFF_STA_PARAMS_V1_NOVHT; wcn36xx_smd_convert_sta_to_v1(wcn, &orig->sta_params, &msg_body.sta_params); @@ -1294,6 +1295,7 @@ static int wcn36xx_smd_config_bss_v1(struct wcn36xx *wcn, return -ENOMEM; INIT_HAL_MSG((*msg_body), WCN36XX_HAL_CONFIG_BSS_REQ); + msg_body->header.len -= WCN36XX_DIFF_BSS_PARAMS_V1_NOVHT; bss = &msg_body->bss_params; sta = &bss->sta; From patchwork Wed Sep 9 15:35:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bryan O'Donoghue X-Patchwork-Id: 11765653 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 4F34714F6 for ; Wed, 9 Sep 2020 15:36:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 26DB921941 for ; Wed, 9 Sep 2020 15:36:46 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="Xi/gaK17" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730356AbgIIPgN (ORCPT ); Wed, 9 Sep 2020 11:36:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48012 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730321AbgIIPfK (ORCPT ); Wed, 9 Sep 2020 11:35:10 -0400 Received: from mail-wm1-x341.google.com (mail-wm1-x341.google.com [IPv6:2a00:1450:4864:20::341]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 977F1C0613ED for ; Wed, 9 Sep 2020 08:35:09 -0700 (PDT) Received: by mail-wm1-x341.google.com with SMTP id s13so2716773wmh.4 for ; Wed, 09 Sep 2020 08:35:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=tfNF9Nm72/GLHvVDln+H8GXexy5WDv58YkhHrtQxFnI=; b=Xi/gaK17S7A1P2TqeadY6OnuOBv2ko5+M3uMj9PoGSNOgZUW5DvaG0y24kHMGiqz7v +17c2FzRk0CUO6m5FYrb6K75lbtW+5wP+asoLHVbYg4lemsIBIgLiioQq+cb3NJ3E11V d1yxfZe/rHr9vjnh6QvufcfaUJI9P18H8Edac/FgaJ7sIg0P+6PrhWi2aW5I7VWeKHCe dU5kfU3U0wH1HWnikYLo45mk6D1O5VfH7cdWIlsuqKr0CsfXBb5AIiKo4UpzMISF2XfQ fWj8AbM+BycP6RTHPrxGSgX157+PtFIPbebOM9flbJeXtujxSZFG05ihSA0f1g3T5/Sl wF9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=tfNF9Nm72/GLHvVDln+H8GXexy5WDv58YkhHrtQxFnI=; b=akooimqAeVN6HoPZkUvdfaxJPy0St7isyG6v1zTHbnJAn6nw9+R3YX61NB9MjTI0cW cck1fsxzJyyBVUdBNeU2vtY24gaeS+qwOK3Ppw88wxWbjLYu0l+f97vEgzkZOdMyZUP+ zR50QbZ7hWd30JC6lstowym0iBqfXuWvZtBDPPaSYtoGM00ES9NkO0/3FNbKkQ40Xo2P Sm9GZE1dyD2EsEy3hPDJFmrhzS1ZyONise9OrAEzfPGLPZns1Zh4TF0OwUWCzJ3ID1ou ci2RES3uk1FyzkF6urrDz9ww2luUP+8R4Bx2V/gotsoGQTx0qpngQuKUxdPGGG5RNYdD /pww== X-Gm-Message-State: AOAM533L2775dOitH203mLfWW2hiE8o01zTYfm6DJenxpBqPimTn/V+S WzG2fV8+ASNrEQVleJVy1/ixLQ== X-Google-Smtp-Source: ABdhPJxTqvtrc1zOFoAyYWpNxD2EB5RfVxZAvA2eOM0s/z1Vd91w17JVPlYYXC01QiJHRQtIR4403Q== X-Received: by 2002:a1c:6385:: with SMTP id x127mr4298855wmb.95.1599665708121; Wed, 09 Sep 2020 08:35:08 -0700 (PDT) Received: from sagittarius-a.chello.ie (188-141-3-169.dynamic.upc.ie. [188.141.3.169]) by smtp.gmail.com with ESMTPSA id c4sm4922120wrp.85.2020.09.09.08.35.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Sep 2020 08:35:07 -0700 (PDT) From: Bryan O'Donoghue To: kvalo@codeaurora.org, wcn36xx@lists.infradead.org, linux-wireless@vger.kernel.org Cc: bryan.odonoghue@linaro.org, shawn.guo@linaro.org, loic.poulain@linaro.org Subject: [PATCH v4 2/2] wcn36xx: Use V1 data structure to store supported rates Date: Wed, 9 Sep 2020 16:35:54 +0100 Message-Id: <20200909153554.2904762-3-bryan.odonoghue@linaro.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200909153554.2904762-1-bryan.odonoghue@linaro.org> References: <20200909153554.2904762-1-bryan.odonoghue@linaro.org> MIME-Version: 1.0 Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org This patch converts the internal data structure used to store data-rates from version 0 to version 1. This allows us to extend out the internal storage to represent VHT parameters. Using the extended version 1 data-structure allows us to avoid a whole raft of version 1 specific fixup functions. Signed-off-by: Bryan O'Donoghue --- drivers/net/wireless/ath/wcn36xx/smd.c | 5 +++-- drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/ath/wcn36xx/smd.c b/drivers/net/wireless/ath/wcn36xx/smd.c index 55aaaeb78b14..d5ca9907af86 100644 --- a/drivers/net/wireless/ath/wcn36xx/smd.c +++ b/drivers/net/wireless/ath/wcn36xx/smd.c @@ -242,9 +242,10 @@ static void wcn36xx_smd_set_sta_params(struct wcn36xx *wcn, sta_params->aid = sta_priv->aid; wcn36xx_smd_set_sta_ht_params(sta, sta_params); memcpy(&sta_params->supported_rates, &sta_priv->supported_rates, - sizeof(sta_priv->supported_rates)); + sizeof(struct wcn36xx_hal_supported_rates)); } else { - wcn36xx_set_default_rates(&sta_params->supported_rates); + wcn36xx_set_default_rates((struct wcn36xx_hal_supported_rates *) + &sta_params->supported_rates); wcn36xx_smd_set_sta_default_ht_params(sta_params); } } diff --git a/drivers/net/wireless/ath/wcn36xx/wcn36xx.h b/drivers/net/wireless/ath/wcn36xx/wcn36xx.h index 342ca0ae7e28..d7d349de20e6 100644 --- a/drivers/net/wireless/ath/wcn36xx/wcn36xx.h +++ b/drivers/net/wireless/ath/wcn36xx/wcn36xx.h @@ -169,7 +169,7 @@ struct wcn36xx_sta { u8 bss_dpu_desc_index; bool is_data_encrypted; /* Rates */ - struct wcn36xx_hal_supported_rates supported_rates; + struct wcn36xx_hal_supported_rates_v1 supported_rates; spinlock_t ampdu_lock; /* protects next two fields */ enum wcn36xx_ampdu_state ampdu_state[16];