|
@@ -1,68 +1,68 @@
|
|
|
-From patchwork Wed Sep 18 21:20:55 2024
|
|
|
|
|
|
|
+From patchwork Wed May 21 22:45:38 2025
|
|
|
Content-Type: text/plain; charset="utf-8"
|
|
Content-Type: text/plain; charset="utf-8"
|
|
|
MIME-Version: 1.0
|
|
MIME-Version: 1.0
|
|
|
Content-Transfer-Encoding: 7bit
|
|
Content-Transfer-Encoding: 7bit
|
|
|
X-Patchwork-Submitter: Pradeep Kumar Chitrapu <[email protected]>
|
|
X-Patchwork-Submitter: Pradeep Kumar Chitrapu <[email protected]>
|
|
|
-X-Patchwork-Id: 13807216
|
|
|
|
|
|
|
+X-Patchwork-Id: 14096124
|
|
|
X-Patchwork-Delegate: [email protected]
|
|
X-Patchwork-Delegate: [email protected]
|
|
|
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
|
|
Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com
|
|
|
[205.220.180.131])
|
|
[205.220.180.131])
|
|
|
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
|
|
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
|
|
|
(No client certificate requested)
|
|
(No client certificate requested)
|
|
|
- by smtp.subspace.kernel.org (Postfix) with ESMTPS id C64DB1CB518
|
|
|
|
|
- for <[email protected]>; Wed, 18 Sep 2024 21:21:15 +0000 (UTC)
|
|
|
|
|
|
|
+ by smtp.subspace.kernel.org (Postfix) with ESMTPS id DEE9223A9AA
|
|
|
|
|
+ for <[email protected]>; Wed, 21 May 2025 22:45:59 +0000 (UTC)
|
|
|
Authentication-Results: smtp.subspace.kernel.org;
|
|
Authentication-Results: smtp.subspace.kernel.org;
|
|
|
arc=none smtp.client-ip=205.220.180.131
|
|
arc=none smtp.client-ip=205.220.180.131
|
|
|
ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
|
|
ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
|
|
|
- t=1726694477; cv=none;
|
|
|
|
|
- b=aWI5JISgL9c0iB/8EAXYKF/Lb2sJoeG+v5+Va4eb/voqwiSQ4FtwPkCC00b9attXvu4dD9wEHGKPW8Uh2kb1tSTl0uNHxijRmLYK2VUWkLHsZ3Pd6VvGoTpbtmOTgsGklZHZiFd+jyWgGkHB4ZBkHSkG9JH6VR44MSIgNj8g14A=
|
|
|
|
|
|
|
+ t=1747867561; cv=none;
|
|
|
|
|
+ b=qWgm5H8L0Zhrc5crkCw7SBoGEQ8yf+aC0TSWOzfiTwcAddeStpjorEa3XaBl0GOhHPRaECOhMSNqu88tQ5CzCGmumBQ3QLC6mod6Tb0Y0PdeUJm3YoGKcI+F0oE3g5kCHaU9LRKKnmMZQS72kE7dO+lEBfwMIuCX/VwV066B1p8=
|
|
|
ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org;
|
|
ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org;
|
|
|
- s=arc-20240116; t=1726694477; c=relaxed/simple;
|
|
|
|
|
- bh=AYJpDHbXZ0n0NNHQi7/aGcqo7YfyoYhv+FrXZ143wMA=;
|
|
|
|
|
|
|
+ s=arc-20240116; t=1747867561; c=relaxed/simple;
|
|
|
|
|
+ bh=61S52HJJJauXcXkg3NpFqkwtGSPNO+bmTpNYu1v9AKM=;
|
|
|
h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References:
|
|
h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References:
|
|
|
MIME-Version:Content-Type;
|
|
MIME-Version:Content-Type;
|
|
|
- b=jD1C2mzFvENculg9HS0v02iWUDzrWXiuU5GXTyC/0BKAJirnQkOUdVm7u0AEPiMxfkktLT3QCJLuvnKu3ZqSXWNbc2zOdUHTyW12fKdDNHib1WYYySBnfqu4EmiJKGcTE57VFlVdbklngOCDTCqHvVgP7YitGg2fWLPqBP/4yhM=
|
|
|
|
|
|
|
+ b=gi5WIxM8SYlljyfdAVTdIK6JQ5jJHPGGfdxPkwbtEaPElRA55vurxkaaJ0RktTtDYYJEn7KLZFieBHAv5/nEcrDjL4NGvgT3wiAoGcbsd+TIF6w5J2RSmAwhAP008N5swveLHDzJ0M9TrtQj2HHndc8JPD4oGWbcEqKQqHSq8ck=
|
|
|
ARC-Authentication-Results: i=1; smtp.subspace.kernel.org;
|
|
ARC-Authentication-Results: i=1; smtp.subspace.kernel.org;
|
|
|
dmarc=pass (p=none dis=none) header.from=quicinc.com;
|
|
dmarc=pass (p=none dis=none) header.from=quicinc.com;
|
|
|
spf=pass smtp.mailfrom=quicinc.com;
|
|
spf=pass smtp.mailfrom=quicinc.com;
|
|
|
dkim=pass (2048-bit key) header.d=quicinc.com [email protected]
|
|
dkim=pass (2048-bit key) header.d=quicinc.com [email protected]
|
|
|
- header.b=OMqc+btb; arc=none smtp.client-ip=205.220.180.131
|
|
|
|
|
|
|
+ header.b=lMYw009C; arc=none smtp.client-ip=205.220.180.131
|
|
|
Authentication-Results: smtp.subspace.kernel.org;
|
|
Authentication-Results: smtp.subspace.kernel.org;
|
|
|
dmarc=pass (p=none dis=none) header.from=quicinc.com
|
|
dmarc=pass (p=none dis=none) header.from=quicinc.com
|
|
|
Authentication-Results: smtp.subspace.kernel.org;
|
|
Authentication-Results: smtp.subspace.kernel.org;
|
|
|
spf=pass smtp.mailfrom=quicinc.com
|
|
spf=pass smtp.mailfrom=quicinc.com
|
|
|
Authentication-Results: smtp.subspace.kernel.org;
|
|
Authentication-Results: smtp.subspace.kernel.org;
|
|
|
dkim=pass (2048-bit key) header.d=quicinc.com [email protected]
|
|
dkim=pass (2048-bit key) header.d=quicinc.com [email protected]
|
|
|
- header.b="OMqc+btb"
|
|
|
|
|
-Received: from pps.filterd (m0279872.ppops.net [127.0.0.1])
|
|
|
|
|
|
|
+ header.b="lMYw009C"
|
|
|
|
|
+Received: from pps.filterd (m0279868.ppops.net [127.0.0.1])
|
|
|
by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id
|
|
by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id
|
|
|
- 48I8sxTR020476;
|
|
|
|
|
- Wed, 18 Sep 2024 21:21:11 GMT
|
|
|
|
|
|
|
+ 54LJgEPE029249;
|
|
|
|
|
+ Wed, 21 May 2025 22:45:56 GMT
|
|
|
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=
|
|
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=
|
|
|
cc:content-transfer-encoding:content-type:date:from:in-reply-to
|
|
cc:content-transfer-encoding:content-type:date:from:in-reply-to
|
|
|
:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
|
|
:message-id:mime-version:references:subject:to; s=qcppdkim1; bh=
|
|
|
- dFohRj9vqwjJTRRYk31/1oJCFqLLKUuQ/verxCo/cGo=; b=OMqc+btbHl9cHSxO
|
|
|
|
|
- NauW5WX4C34QsGL/4d03QTtCDlctfB5PRmINiP2/jGcVZk3NZWS3d2f5zjPY7+hd
|
|
|
|
|
- uaUDslDMQwvAj1Jay/we1qNaFIPuzj4c9BbHqvvXa0WiCgQWpBC2h2jcFLXbeVHE
|
|
|
|
|
- 5bqH+plXU5cz1d2YbsRpCXsdUWL/+S3u6A6/qxj6UraJ1s/rkE4ndQe/AQuf96Ja
|
|
|
|
|
- ylYiZPdtJJXzB6rPDN1bQsSET/PNXzIkrYTaDLF9A6688WU9izJdAjRcsu8oB8o1
|
|
|
|
|
- U+yftDfoegI7+ZyTZ4JUnQs7zJp171L/qsF0U9RONZCIbSLN9pkTo6xp6CrHGeLQ
|
|
|
|
|
- 0tCmwQ==
|
|
|
|
|
-Received: from nalasppmta05.qualcomm.com (Global_NAT1.qualcomm.com
|
|
|
|
|
|
|
+ ph+yJaIkwYsZzzEsymzTjupgmHjdwFMJhbEzuPrYvfY=; b=lMYw009CSvZqDxkz
|
|
|
|
|
+ +HCEzcZhy6QO8G2ut93TJxHdCbVLlRaMNReXGlGqx2KRNracyLRkAQsC16i+QcpJ
|
|
|
|
|
+ aHBvIE2c0/TEtBiyv3HzBf3/89R0POT080sz81P6go3m8w9bcIE+Q2DqjdhVNqu3
|
|
|
|
|
+ AlV8qb6pj/QUVvDbJQxO1M9eCXSO6g2BBDjgRCktOu+x2TlxhdBZ/tJP+h0AUk+j
|
|
|
|
|
+ YsH1LhcLOZYCFTJyB6IFmHWvtGk5Ef6i6D/tXyCL7nQiDP/R1v2PcdlLlI5e5/PO
|
|
|
|
|
+ FhKB2+RCmSyJUtyaAHHi/mVen5yqFX2K3/vL3BtprRAJINhFxQrLs6xLIQabELzj
|
|
|
|
|
+ KCstuQ==
|
|
|
|
|
+Received: from nalasppmta04.qualcomm.com (Global_NAT1.qualcomm.com
|
|
|
[129.46.96.20])
|
|
[129.46.96.20])
|
|
|
- by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 41n4j6uagr-1
|
|
|
|
|
|
|
+ by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 46rwfb4b3x-1
|
|
|
(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
|
|
(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
|
|
|
- Wed, 18 Sep 2024 21:21:10 +0000 (GMT)
|
|
|
|
|
|
|
+ Wed, 21 May 2025 22:45:55 +0000 (GMT)
|
|
|
Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com
|
|
Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com
|
|
|
[10.47.209.196])
|
|
[10.47.209.196])
|
|
|
- by NALASPPMTA05.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTPS id
|
|
|
|
|
- 48ILL9IB009589
|
|
|
|
|
|
|
+ by NALASPPMTA04.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTPS id
|
|
|
|
|
+ 54LMjtX2022238
|
|
|
(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
|
|
(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
|
|
|
- Wed, 18 Sep 2024 21:21:09 GMT
|
|
|
|
|
-Received: from ath12k-linux1.qualcomm.com (10.80.80.8) by
|
|
|
|
|
|
|
+ Wed, 21 May 2025 22:45:55 GMT
|
|
|
|
|
+Received: from ath12k-linux2.qualcomm.com (10.80.80.8) by
|
|
|
nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server
|
|
nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server
|
|
|
(version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
|
|
(version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
|
|
|
- 15.2.1544.9; Wed, 18 Sep 2024 14:21:09 -0700
|
|
|
|
|
|
|
+ 15.2.1544.9; Wed, 21 May 2025 15:45:54 -0700
|
|
|
From: Pradeep Kumar Chitrapu <[email protected]>
|
|
From: Pradeep Kumar Chitrapu <[email protected]>
|
|
|
To: <[email protected]>
|
|
To: <[email protected]>
|
|
|
CC: <[email protected]>,
|
|
CC: <[email protected]>,
|
|
@@ -71,12 +71,13 @@ CC: <[email protected]>,
|
|
|
P Praneesh <[email protected]>,
|
|
P Praneesh <[email protected]>,
|
|
|
"Jeff
|
|
"Jeff
|
|
|
Johnson" <[email protected]>
|
|
Johnson" <[email protected]>
|
|
|
-Subject: [PATCH V8 8/9] wifi: ath12k: add support for 160 MHz bandwidth
|
|
|
|
|
-Date: Wed, 18 Sep 2024 14:20:55 -0700
|
|
|
|
|
-Message-ID: <[email protected]>
|
|
|
|
|
-X-Mailer: git-send-email 2.34.1
|
|
|
|
|
-In-Reply-To: <[email protected]>
|
|
|
|
|
-References: <[email protected]>
|
|
|
|
|
|
|
+Subject: [PATCH ath-next V14 8/9] wifi: ath12k: add support for 160 MHz
|
|
|
|
|
+ bandwidth
|
|
|
|
|
+Date: Wed, 21 May 2025 15:45:38 -0700
|
|
|
|
|
+Message-ID: <[email protected]>
|
|
|
|
|
+X-Mailer: git-send-email 2.43.0
|
|
|
|
|
+In-Reply-To: <[email protected]>
|
|
|
|
|
+References: <[email protected]>
|
|
|
Precedence: bulk
|
|
Precedence: bulk
|
|
|
X-Mailing-List: [email protected]
|
|
X-Mailing-List: [email protected]
|
|
|
List-Id: <linux-wireless.vger.kernel.org>
|
|
List-Id: <linux-wireless.vger.kernel.org>
|
|
@@ -88,17 +89,28 @@ X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To
|
|
|
X-QCInternal: smtphost
|
|
X-QCInternal: smtphost
|
|
|
X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800
|
|
X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800
|
|
|
signatures=585085
|
|
signatures=585085
|
|
|
-X-Proofpoint-ORIG-GUID: wO0mnzqAAbcWYLNaoEhU3YfsdCyDJ2hk
|
|
|
|
|
-X-Proofpoint-GUID: wO0mnzqAAbcWYLNaoEhU3YfsdCyDJ2hk
|
|
|
|
|
|
|
+X-Proofpoint-ORIG-GUID: T9MbsOp4F8M93FD6ZEyfm1BTh5tEiCIl
|
|
|
|
|
+X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNTIxMDIyNiBTYWx0ZWRfX0EeEFBAyVxZV
|
|
|
|
|
+ WX6jh2dkCn4P+eViI8Gvz/6S+yZ+Avx9/8To2mbulh5j1kDm92bEDu7iQtI17ILPnOgbUXWAjjt
|
|
|
|
|
+ Z2LvemtbMzJe0lY0EjJNWWunihdlsXPAdOnZFjV0rOtakq8Xx4y8K45/1cGY9dQOApxDFC9HiLZ
|
|
|
|
|
+ +FK9apopZ2DyP6haLf5HQI+6DC3wwgbEQlE+89g69hXEM8UePlFlsf0fpfIVgiWG73gfzHkrRPM
|
|
|
|
|
+ 8ByVGmKpFSXIBmvY+EZZOPuPsQHt/91pIisXw5Joxdbl6Qf2anjuC0X4LPrTgTxgXWhljS4JdXo
|
|
|
|
|
+ djhNt09IBnNuagxN9aMx/frUhqQPNL54kp/cXbpgcLQX0XQg8SOvwyxJs+CALQUyymluDLHyH9w
|
|
|
|
|
+ UQUznCXFrps86AX/Fpnhrl9hqR5NO0/6oR340zsS7mvryRucOqzT7vc3WPMJEhW68VMCAl5Z
|
|
|
|
|
+X-Proofpoint-GUID: T9MbsOp4F8M93FD6ZEyfm1BTh5tEiCIl
|
|
|
|
|
+X-Authority-Analysis: v=2.4 cv=dLCmmPZb c=1 sm=1 tr=0 ts=682e57a4 cx=c_pps
|
|
|
|
|
+ a=ouPCqIW2jiPt+lZRy3xVPw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17
|
|
|
|
|
+ a=GEpy-HfZoHoA:10 a=dt9VzEwgFbYA:10 a=COk6AnOGAAAA:8 a=dOJm2eNAaUnF9U8lSB4A:9
|
|
|
|
|
+ a=TjNXssC_j7lpFel5tvFf:22
|
|
|
X-Proofpoint-Virus-Version: vendor=baseguard
|
|
X-Proofpoint-Virus-Version: vendor=baseguard
|
|
|
- engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.60.29
|
|
|
|
|
- definitions=2024-09-06_09,2024-09-06_01,2024-09-02_01
|
|
|
|
|
|
|
+ engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40
|
|
|
|
|
+ definitions=2025-05-21_07,2025-05-20_03,2025-03-28_01
|
|
|
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
|
|
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0
|
|
|
- phishscore=0 mlxlogscore=999
|
|
|
|
|
- mlxscore=0 malwarescore=0 bulkscore=0 priorityscore=1501 clxscore=1015
|
|
|
|
|
- adultscore=0 suspectscore=0 lowpriorityscore=0 spamscore=0 impostorscore=0
|
|
|
|
|
- classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2408220000
|
|
|
|
|
- definitions=main-2409180140
|
|
|
|
|
|
|
+ mlxscore=0 clxscore=1015 adultscore=0 bulkscore=0 phishscore=0 suspectscore=0
|
|
|
|
|
+ impostorscore=0 malwarescore=0 lowpriorityscore=0 mlxlogscore=999 spamscore=0
|
|
|
|
|
+ priorityscore=1501 classifier=spam authscore=0 authtc=n/a authcc=
|
|
|
|
|
+ route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505160000
|
|
|
|
|
+ definitions=main-2505210226
|
|
|
|
|
|
|
|
Add support to configure maximum NSS in 160 MHz bandwidth.
|
|
Add support to configure maximum NSS in 160 MHz bandwidth.
|
|
|
Firmware advertises support for handling NSS ratio information
|
|
Firmware advertises support for handling NSS ratio information
|
|
@@ -119,18 +131,18 @@ Signed-off-by: Pradeep Kumar Chitrapu <[email protected]>
|
|
|
Acked-by: Jeff Johnson <[email protected]>
|
|
Acked-by: Jeff Johnson <[email protected]>
|
|
|
---
|
|
---
|
|
|
drivers/net/wireless/ath/ath12k/core.h | 2 +
|
|
drivers/net/wireless/ath/ath12k/core.h | 2 +
|
|
|
- drivers/net/wireless/ath/ath12k/mac.c | 85 ++++++++++++++++++++++----
|
|
|
|
|
|
|
+ drivers/net/wireless/ath/ath12k/mac.c | 89 ++++++++++++++++++++++----
|
|
|
drivers/net/wireless/ath/ath12k/mac.h | 2 +
|
|
drivers/net/wireless/ath/ath12k/mac.h | 2 +
|
|
|
- drivers/net/wireless/ath/ath12k/wmi.c | 19 +++++-
|
|
|
|
|
- drivers/net/wireless/ath/ath12k/wmi.h | 28 +++++++++
|
|
|
|
|
- 5 files changed, 124 insertions(+), 12 deletions(-)
|
|
|
|
|
|
|
+ drivers/net/wireless/ath/ath12k/wmi.c | 7 +-
|
|
|
|
|
+ drivers/net/wireless/ath/ath12k/wmi.h | 28 ++++++++
|
|
|
|
|
+ 5 files changed, 115 insertions(+), 13 deletions(-)
|
|
|
|
|
|
|
|
--- a/drivers/net/wireless/ath/ath12k/core.h
|
|
--- a/drivers/net/wireless/ath/ath12k/core.h
|
|
|
+++ b/drivers/net/wireless/ath/ath12k/core.h
|
|
+++ b/drivers/net/wireless/ath/ath12k/core.h
|
|
|
-@@ -717,6 +717,8 @@ struct ath12k_pdev_cap {
|
|
|
|
|
- u32 tx_chain_mask_shift;
|
|
|
|
|
- u32 rx_chain_mask_shift;
|
|
|
|
|
|
|
+@@ -789,6 +789,8 @@ struct ath12k_pdev_cap {
|
|
|
struct ath12k_band_cap band[NUM_NL80211_BANDS];
|
|
struct ath12k_band_cap band[NUM_NL80211_BANDS];
|
|
|
|
|
+ u32 eml_cap;
|
|
|
|
|
+ u32 mld_cap;
|
|
|
+ bool nss_ratio_enabled;
|
|
+ bool nss_ratio_enabled;
|
|
|
+ u8 nss_ratio_info;
|
|
+ u8 nss_ratio_info;
|
|
|
};
|
|
};
|
|
@@ -138,7 +150,7 @@ Acked-by: Jeff Johnson <[email protected]>
|
|
|
struct mlo_timestamp {
|
|
struct mlo_timestamp {
|
|
|
--- a/drivers/net/wireless/ath/ath12k/mac.c
|
|
--- a/drivers/net/wireless/ath/ath12k/mac.c
|
|
|
+++ b/drivers/net/wireless/ath/ath12k/mac.c
|
|
+++ b/drivers/net/wireless/ath/ath12k/mac.c
|
|
|
-@@ -2050,6 +2050,34 @@ ath12k_peer_assoc_h_vht_limit(u16 tx_mcs
|
|
|
|
|
|
|
+@@ -2267,6 +2267,34 @@ ath12k_peer_assoc_h_vht_limit(u16 tx_mcs
|
|
|
return tx_mcs_set;
|
|
return tx_mcs_set;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -171,28 +183,27 @@ Acked-by: Jeff Johnson <[email protected]>
|
|
|
+}
|
|
+}
|
|
|
+
|
|
+
|
|
|
static void ath12k_peer_assoc_h_vht(struct ath12k *ar,
|
|
static void ath12k_peer_assoc_h_vht(struct ath12k *ar,
|
|
|
- struct ieee80211_vif *vif,
|
|
|
|
|
- struct ieee80211_sta *sta,
|
|
|
|
|
-@@ -2065,6 +2093,7 @@ static void ath12k_peer_assoc_h_vht(stru
|
|
|
|
|
|
|
+ struct ath12k_link_vif *arvif,
|
|
|
|
|
+ struct ath12k_link_sta *arsta,
|
|
|
|
|
+@@ -2284,6 +2312,7 @@ static void ath12k_peer_assoc_h_vht(stru
|
|
|
u8 max_nss, vht_mcs;
|
|
u8 max_nss, vht_mcs;
|
|
|
int i, vht_nss, nss_idx;
|
|
int i, vht_nss, nss_idx;
|
|
|
bool user_rate_valid = true;
|
|
bool user_rate_valid = true;
|
|
|
+ u32 rx_nss, tx_nss, nss_160;
|
|
+ u32 rx_nss, tx_nss, nss_160;
|
|
|
|
|
|
|
|
- if (WARN_ON(ath12k_mac_vif_chan(vif, &def)))
|
|
|
|
|
- return;
|
|
|
|
|
-@@ -2159,10 +2188,24 @@ static void ath12k_peer_assoc_h_vht(stru
|
|
|
|
|
|
|
+ lockdep_assert_wiphy(ath12k_ar_to_hw(ar)->wiphy);
|
|
|
|
|
+
|
|
|
|
|
+@@ -2388,10 +2417,24 @@ static void ath12k_peer_assoc_h_vht(stru
|
|
|
/* TODO: Check */
|
|
/* TODO: Check */
|
|
|
arg->tx_max_mcs_nss = 0xFF;
|
|
arg->tx_max_mcs_nss = 0xFF;
|
|
|
|
|
|
|
|
- ath12k_dbg(ar->ab, ATH12K_DBG_MAC, "mac vht peer %pM max_mpdu %d flags 0x%x\n",
|
|
- ath12k_dbg(ar->ab, ATH12K_DBG_MAC, "mac vht peer %pM max_mpdu %d flags 0x%x\n",
|
|
|
-- sta->addr, arg->peer_max_mpdu, arg->peer_flags);
|
|
|
|
|
|
|
+- arsta->addr, arg->peer_max_mpdu, arg->peer_flags);
|
|
|
+ if (arg->peer_phymode == MODE_11AC_VHT160) {
|
|
+ if (arg->peer_phymode == MODE_11AC_VHT160) {
|
|
|
+ tx_nss = ath12k_get_nss_160mhz(ar, max_nss);
|
|
+ tx_nss = ath12k_get_nss_160mhz(ar, max_nss);
|
|
|
+ rx_nss = min(arg->peer_nss, tx_nss);
|
|
+ rx_nss = min(arg->peer_nss, tx_nss);
|
|
|
+ arg->peer_bw_rxnss_override = ATH12K_BW_NSS_MAP_ENABLE;
|
|
+ arg->peer_bw_rxnss_override = ATH12K_BW_NSS_MAP_ENABLE;
|
|
|
-
|
|
|
|
|
-- /* TODO: rxnss_override */
|
|
|
|
|
|
|
++
|
|
|
+ if (!rx_nss) {
|
|
+ if (!rx_nss) {
|
|
|
+ ath12k_warn(ar->ab, "invalid max_nss\n");
|
|
+ ath12k_warn(ar->ab, "invalid max_nss\n");
|
|
|
+ return;
|
|
+ return;
|
|
@@ -201,28 +212,26 @@ Acked-by: Jeff Johnson <[email protected]>
|
|
|
+ nss_160 = u32_encode_bits(rx_nss - 1, ATH12K_PEER_RX_NSS_160MHZ);
|
|
+ nss_160 = u32_encode_bits(rx_nss - 1, ATH12K_PEER_RX_NSS_160MHZ);
|
|
|
+ arg->peer_bw_rxnss_override |= nss_160;
|
|
+ arg->peer_bw_rxnss_override |= nss_160;
|
|
|
+ }
|
|
+ }
|
|
|
-+
|
|
|
|
|
|
|
+
|
|
|
|
|
+- /* TODO: rxnss_override */
|
|
|
+ ath12k_dbg(ar->ab, ATH12K_DBG_MAC,
|
|
+ ath12k_dbg(ar->ab, ATH12K_DBG_MAC,
|
|
|
+ "mac vht peer %pM max_mpdu %d flags 0x%x nss_override 0x%x\n",
|
|
+ "mac vht peer %pM max_mpdu %d flags 0x%x nss_override 0x%x\n",
|
|
|
-+ sta->addr, arg->peer_max_mpdu, arg->peer_flags,
|
|
|
|
|
|
|
++ arsta->addr, arg->peer_max_mpdu, arg->peer_flags,
|
|
|
+ arg->peer_bw_rxnss_override);
|
|
+ arg->peer_bw_rxnss_override);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
static int ath12k_mac_get_max_he_mcs_map(u16 mcs_map, int nss)
|
|
static int ath12k_mac_get_max_he_mcs_map(u16 mcs_map, int nss)
|
|
|
-@@ -2251,6 +2294,7 @@ static void ath12k_peer_assoc_h_he(struc
|
|
|
|
|
|
|
+@@ -2484,6 +2527,7 @@ static void ath12k_peer_assoc_h_he(struc
|
|
|
u16 he_tx_mcs = 0, v = 0;
|
|
u16 he_tx_mcs = 0, v = 0;
|
|
|
int he_nss, nss_idx;
|
|
int he_nss, nss_idx;
|
|
|
bool user_rate_valid = true;
|
|
bool user_rate_valid = true;
|
|
|
+ u32 rx_nss, tx_nss, nss_160;
|
|
+ u32 rx_nss, tx_nss, nss_160;
|
|
|
|
|
|
|
|
- if (WARN_ON(ath12k_mac_vif_chan(vif, &def)))
|
|
|
|
|
|
|
+ if (WARN_ON(ath12k_mac_vif_link_chan(vif, link_id, &def)))
|
|
|
return;
|
|
return;
|
|
|
-@@ -2429,11 +2473,28 @@ static void ath12k_peer_assoc_h_he(struc
|
|
|
|
|
- he_mcs_mask[i])
|
|
|
|
|
- max_nss = i + 1;
|
|
|
|
|
- }
|
|
|
|
|
-+ max_nss = min(max_nss, ar->num_tx_chains);
|
|
|
|
|
- arg->peer_nss = min(sta->deflink.rx_nss, max_nss);
|
|
|
|
|
|
|
+@@ -2681,9 +2725,25 @@ static void ath12k_peer_assoc_h_he(struc
|
|
|
|
|
+ max_nss = min(max_nss, ar->num_tx_chains);
|
|
|
|
|
+ arg->peer_nss = min(link_sta->rx_nss, max_nss);
|
|
|
|
|
|
|
|
+ if (arg->peer_phymode == MODE_11AX_HE160) {
|
|
+ if (arg->peer_phymode == MODE_11AX_HE160) {
|
|
|
+ tx_nss = ath12k_get_nss_160mhz(ar, max_nss);
|
|
+ tx_nss = ath12k_get_nss_160mhz(ar, max_nss);
|
|
@@ -240,30 +249,31 @@ Acked-by: Jeff Johnson <[email protected]>
|
|
|
+
|
|
+
|
|
|
ath12k_dbg(ar->ab, ATH12K_DBG_MAC,
|
|
ath12k_dbg(ar->ab, ATH12K_DBG_MAC,
|
|
|
- "mac he peer %pM nss %d mcs cnt %d\n",
|
|
- "mac he peer %pM nss %d mcs cnt %d\n",
|
|
|
-- sta->deflink.addr, arg->peer_nss, arg->peer_he_mcs_count);
|
|
|
|
|
|
|
+- arsta->addr, arg->peer_nss, arg->peer_he_mcs_count);
|
|
|
+ "mac he peer %pM nss %d mcs cnt %d nss_override 0x%x\n",
|
|
+ "mac he peer %pM nss %d mcs cnt %d nss_override 0x%x\n",
|
|
|
-+ sta->deflink.addr, arg->peer_nss,
|
|
|
|
|
|
|
++ arsta->addr, arg->peer_nss,
|
|
|
+ arg->peer_he_mcs_count,
|
|
+ arg->peer_he_mcs_count,
|
|
|
+ arg->peer_bw_rxnss_override);
|
|
+ arg->peer_bw_rxnss_override);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
static void ath12k_peer_assoc_h_he_6ghz(struct ath12k *ar,
|
|
static void ath12k_peer_assoc_h_he_6ghz(struct ath12k *ar,
|
|
|
-@@ -2965,13 +3026,13 @@ static void ath12k_peer_assoc_prepare(st
|
|
|
|
|
- ath12k_peer_assoc_h_basic(ar, vif, sta, arg);
|
|
|
|
|
- ath12k_peer_assoc_h_crypto(ar, vif, sta, arg);
|
|
|
|
|
- ath12k_peer_assoc_h_rates(ar, vif, sta, arg);
|
|
|
|
|
-+ ath12k_peer_assoc_h_phymode(ar, vif, sta, arg);
|
|
|
|
|
- ath12k_peer_assoc_h_ht(ar, vif, sta, arg);
|
|
|
|
|
- ath12k_peer_assoc_h_vht(ar, vif, sta, arg);
|
|
|
|
|
- ath12k_peer_assoc_h_he(ar, vif, sta, arg);
|
|
|
|
|
- ath12k_peer_assoc_h_he_6ghz(ar, vif, sta, arg);
|
|
|
|
|
- ath12k_peer_assoc_h_eht(ar, vif, sta, arg);
|
|
|
|
|
- ath12k_peer_assoc_h_qos(ar, vif, sta, arg);
|
|
|
|
|
-- ath12k_peer_assoc_h_phymode(ar, vif, sta, arg);
|
|
|
|
|
- ath12k_peer_assoc_h_smps(sta, arg);
|
|
|
|
|
|
|
+@@ -2924,10 +2984,13 @@ static enum wmi_phy_mode ath12k_mac_get_
|
|
|
|
|
+ struct ieee80211_link_sta *link_sta)
|
|
|
|
|
+ {
|
|
|
|
|
+ if (link_sta->bandwidth == IEEE80211_STA_RX_BW_160) {
|
|
|
|
|
+- if (link_sta->vht_cap.cap & IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160MHZ)
|
|
|
|
|
++ if (link_sta->vht_cap.cap & (IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160MHZ |
|
|
|
|
|
++ IEEE80211_VHT_CAP_EXT_NSS_BW_MASK))
|
|
|
|
|
+ return MODE_11AC_VHT160;
|
|
|
|
|
+
|
|
|
|
|
+- /* not sure if this is a valid case? */
|
|
|
|
|
++ /* Allow STA to connect even if it does not explicitly advertise 160 MHz
|
|
|
|
|
++ * support
|
|
|
|
|
++ */
|
|
|
|
|
+ return MODE_11AC_VHT160;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- /* TODO: amsdu_disable req? */
|
|
|
|
|
-@@ -5552,10 +5613,8 @@ ath12k_create_vht_cap(struct ath12k *ar,
|
|
|
|
|
|
|
+@@ -6826,10 +6889,8 @@ ath12k_create_vht_cap(struct ath12k *ar,
|
|
|
|
|
|
|
|
ath12k_set_vht_txbf_cap(ar, &vht_cap.cap);
|
|
ath12k_set_vht_txbf_cap(ar, &vht_cap.cap);
|
|
|
|
|
|
|
@@ -276,29 +286,29 @@ Acked-by: Jeff Johnson <[email protected]>
|
|
|
|
|
|
|
|
rxmcs_map = 0;
|
|
rxmcs_map = 0;
|
|
|
txmcs_map = 0;
|
|
txmcs_map = 0;
|
|
|
-@@ -9711,7 +9770,8 @@ static int ath12k_mac_setup_iface_combin
|
|
|
|
|
- combinations[0].radar_detect_widths = BIT(NL80211_CHAN_WIDTH_20_NOHT) |
|
|
|
|
|
- BIT(NL80211_CHAN_WIDTH_20) |
|
|
|
|
|
- BIT(NL80211_CHAN_WIDTH_40) |
|
|
|
|
|
-- BIT(NL80211_CHAN_WIDTH_80);
|
|
|
|
|
-+ BIT(NL80211_CHAN_WIDTH_80) |
|
|
|
|
|
-+ BIT(NL80211_CHAN_WIDTH_160);
|
|
|
|
|
|
|
+@@ -11437,7 +11498,8 @@ ath12k_mac_setup_radio_iface_comb(struct
|
|
|
|
|
+ comb[0].radar_detect_widths = BIT(NL80211_CHAN_WIDTH_20_NOHT) |
|
|
|
|
|
+ BIT(NL80211_CHAN_WIDTH_20) |
|
|
|
|
|
+ BIT(NL80211_CHAN_WIDTH_40) |
|
|
|
|
|
+- BIT(NL80211_CHAN_WIDTH_80);
|
|
|
|
|
++ BIT(NL80211_CHAN_WIDTH_80) |
|
|
|
|
|
++ BIT(NL80211_CHAN_WIDTH_160);
|
|
|
|
|
|
|
|
- wiphy->iface_combinations = combinations;
|
|
|
|
|
- wiphy->n_iface_combinations = 1;
|
|
|
|
|
-@@ -9927,6 +9987,9 @@ static int ath12k_mac_hw_register(struct
|
|
|
|
|
|
|
+ return 0;
|
|
|
|
|
+ }
|
|
|
|
|
+@@ -11811,6 +11873,9 @@ static int ath12k_mac_hw_register(struct
|
|
|
ieee80211_hw_set(hw, SUPPORTS_TX_FRAG);
|
|
ieee80211_hw_set(hw, SUPPORTS_TX_FRAG);
|
|
|
ieee80211_hw_set(hw, REPORTS_LOW_ACK);
|
|
ieee80211_hw_set(hw, REPORTS_LOW_ACK);
|
|
|
|
|
|
|
|
+ if (cap->nss_ratio_enabled)
|
|
+ if (cap->nss_ratio_enabled)
|
|
|
+ ieee80211_hw_set(hw, SUPPORTS_VHT_EXT_NSS_BW);
|
|
+ ieee80211_hw_set(hw, SUPPORTS_VHT_EXT_NSS_BW);
|
|
|
+
|
|
+
|
|
|
- if ((ht_cap & WMI_HT_CAP_ENABLED) || ar->supports_6ghz) {
|
|
|
|
|
|
|
+ if ((ht_cap & WMI_HT_CAP_ENABLED) || is_6ghz) {
|
|
|
ieee80211_hw_set(hw, AMPDU_AGGREGATION);
|
|
ieee80211_hw_set(hw, AMPDU_AGGREGATION);
|
|
|
ieee80211_hw_set(hw, TX_AMPDU_SETUP_IN_HW);
|
|
ieee80211_hw_set(hw, TX_AMPDU_SETUP_IN_HW);
|
|
|
--- a/drivers/net/wireless/ath/ath12k/mac.h
|
|
--- a/drivers/net/wireless/ath/ath12k/mac.h
|
|
|
+++ b/drivers/net/wireless/ath/ath12k/mac.h
|
|
+++ b/drivers/net/wireless/ath/ath12k/mac.h
|
|
|
-@@ -37,6 +37,8 @@ struct ath12k_generic_iter {
|
|
|
|
|
|
|
+@@ -38,6 +38,8 @@ struct ath12k_generic_iter {
|
|
|
#define IEEE80211_DISABLE_VHT_MCS_SUPPORT_0_11 BIT(24)
|
|
#define IEEE80211_DISABLE_VHT_MCS_SUPPORT_0_11 BIT(24)
|
|
|
|
|
|
|
|
#define ATH12K_CHAN_WIDTH_NUM 14
|
|
#define ATH12K_CHAN_WIDTH_NUM 14
|
|
@@ -320,35 +330,19 @@ Acked-by: Jeff Johnson <[email protected]>
|
|
|
} else {
|
|
} else {
|
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
|
}
|
|
}
|
|
|
-@@ -982,11 +986,24 @@ int ath12k_wmi_vdev_down(struct ath12k *
|
|
|
|
|
- static void ath12k_wmi_put_wmi_channel(struct ath12k_wmi_channel_params *chan,
|
|
|
|
|
- struct wmi_vdev_start_req_arg *arg)
|
|
|
|
|
- {
|
|
|
|
|
-+ u32 center_freq1 = arg->band_center_freq1;
|
|
|
|
|
-+
|
|
|
|
|
- memset(chan, 0, sizeof(*chan));
|
|
|
|
|
|
|
+@@ -1014,7 +1018,8 @@ static void ath12k_wmi_put_wmi_channel(s
|
|
|
|
|
|
|
|
- chan->mhz = cpu_to_le32(arg->freq);
|
|
|
|
|
- chan->band_center_freq1 = cpu_to_le32(arg->band_center_freq1);
|
|
|
|
|
-- chan->band_center_freq2 = 0;
|
|
|
|
|
-+ if (arg->mode == MODE_11AX_HE160) {
|
|
|
|
|
-+ if (arg->freq > center_freq1)
|
|
|
|
|
-+ chan->band_center_freq1 =
|
|
|
|
|
-+ cpu_to_le32(center_freq1 + 40);
|
|
|
|
|
-+ else
|
|
|
|
|
-+ chan->band_center_freq1 =
|
|
|
|
|
-+ cpu_to_le32(center_freq1 - 40);
|
|
|
|
|
-+
|
|
|
|
|
-+ chan->band_center_freq2 = cpu_to_le32(arg->band_center_freq1);
|
|
|
|
|
-+ } else {
|
|
|
|
|
-+ chan->band_center_freq2 = 0;
|
|
|
|
|
-+ }
|
|
|
|
|
|
|
+ chan->band_center_freq2 = cpu_to_le32(center_freq1);
|
|
|
|
|
|
|
|
- chan->info |= le32_encode_bits(arg->mode, WMI_CHAN_INFO_MODE);
|
|
|
|
|
- if (arg->passive)
|
|
|
|
|
|
|
+- } else if (arg->mode == MODE_11BE_EHT160) {
|
|
|
|
|
++ } else if (arg->mode == MODE_11BE_EHT160 ||
|
|
|
|
|
++ arg->mode == MODE_11AX_HE160) {
|
|
|
|
|
+ if (arg->freq > center_freq1)
|
|
|
|
|
+ chan->band_center_freq1 = cpu_to_le32(center_freq1 + 40);
|
|
|
|
|
+ else
|
|
|
--- a/drivers/net/wireless/ath/ath12k/wmi.h
|
|
--- a/drivers/net/wireless/ath/ath12k/wmi.h
|
|
|
+++ b/drivers/net/wireless/ath/ath12k/wmi.h
|
|
+++ b/drivers/net/wireless/ath/ath12k/wmi.h
|
|
|
-@@ -2264,6 +2264,21 @@ enum wmi_direct_buffer_module {
|
|
|
|
|
|
|
+@@ -2290,6 +2290,21 @@ enum wmi_direct_buffer_module {
|
|
|
WMI_DIRECT_BUF_MAX
|
|
WMI_DIRECT_BUF_MAX
|
|
|
};
|
|
};
|
|
|
|
|
|
|
@@ -370,7 +364,7 @@ Acked-by: Jeff Johnson <[email protected]>
|
|
|
struct ath12k_wmi_pdev_band_arg {
|
|
struct ath12k_wmi_pdev_band_arg {
|
|
|
u32 pdev_id;
|
|
u32 pdev_id;
|
|
|
u32 start_freq;
|
|
u32 start_freq;
|
|
|
-@@ -2580,6 +2595,12 @@ struct ath12k_wmi_hw_mode_cap_params {
|
|
|
|
|
|
|
+@@ -2606,6 +2621,12 @@ struct ath12k_wmi_hw_mode_cap_params {
|
|
|
} __packed;
|
|
} __packed;
|
|
|
|
|
|
|
|
#define WMI_MAX_HECAP_PHY_SIZE (3)
|
|
#define WMI_MAX_HECAP_PHY_SIZE (3)
|
|
@@ -383,7 +377,7 @@ Acked-by: Jeff Johnson <[email protected]>
|
|
|
|
|
|
|
|
/* pdev_id is present in lower 16 bits of pdev_and_hw_link_ids in
|
|
/* pdev_id is present in lower 16 bits of pdev_and_hw_link_ids in
|
|
|
* ath12k_wmi_mac_phy_caps_params & ath12k_wmi_caps_ext_params.
|
|
* ath12k_wmi_mac_phy_caps_params & ath12k_wmi_caps_ext_params.
|
|
|
-@@ -2621,6 +2642,13 @@ struct ath12k_wmi_mac_phy_caps_params {
|
|
|
|
|
|
|
+@@ -2647,6 +2668,13 @@ struct ath12k_wmi_mac_phy_caps_params {
|
|
|
__le32 he_cap_info_2g_ext;
|
|
__le32 he_cap_info_2g_ext;
|
|
|
__le32 he_cap_info_5g_ext;
|
|
__le32 he_cap_info_5g_ext;
|
|
|
__le32 he_cap_info_internal;
|
|
__le32 he_cap_info_internal;
|