From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7C84837BE65 for ; Sat, 9 May 2026 02:59:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778295563; cv=none; b=sSkLgj5yHfiE+1NU641OjFc6wZou1xR+r9u1yGwlKkl/Lqf6uxeUOYBwWM3bXOkBPP/PyiGm7qvIR7HBKHsWqPcTpiY7cNrogNKcD2KsXhbxV16o7iNJvTp62NkXXaY1SKzmp1LmtB90GBvszpzVmTwudRBrKYSkpM08qOXnZOo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778295563; c=relaxed/simple; bh=BdV0X3nZR8PCcjenjPa8imJgl1N26Nzy4KidKMtGhmg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=m82OvF59ae9+K+SyNXU+jtCensifNVpbO39DgLN/ca7jqs7Uz9TlW8PFHvZ23BvzXOp/NnJqeEq8i1tm46EUHX4cMNuG58WTehJQOF+yOrjqeH1MN/COQHK3ggewAWOnccjn9aAljWLyELUVLyOJB8+/T+uhDVnSgq5cX+zU9P4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=ZzZkJusr; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Ya8AzCrY; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="ZzZkJusr"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Ya8AzCrY" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6492Xk2j2769685 for ; Sat, 9 May 2026 02:59:20 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=AwM5k+UWfUT Ut59a3ABR2UlFzgDmzYoEve9ZdYQTTxU=; b=ZzZkJusr3zRgZqckksdkRkWZK4x yHRSOKtSxuREkWNS5Ox3w5y8XxyPZaWb+T5AyXeVXYcUo534BBHMf0GTSlmd6qS3 fX70zAFLZ/0GxPBu5SaUdRlM9W6Y1YU1yyGMNBZGGsLY96/l0u2PN+9ocw15iyUj /ndcZTAit+TmeMO1pFTQqNXMw87+Ta/pNjPZOyLNrh8DhNoBrqjR7zPuUKTUL3e6 89Utbz7KWhrQPz1OJVG7TGzmv1oF8HCrgjvcJR3CQecN/6YKk2WGrp5o4M20SvnB n5bSne9vhUBqDS3rTbFVrK9kDnGGZRclCHMjSF30eqV2U7lGpLbkcRgGG8Q== Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e1v8gr19k-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sat, 09 May 2026 02:59:20 +0000 (GMT) Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-c81086bf930so2154376a12.1 for ; Fri, 08 May 2026 19:59:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778295559; x=1778900359; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=AwM5k+UWfUTUt59a3ABR2UlFzgDmzYoEve9ZdYQTTxU=; b=Ya8AzCrYJjJlWRjGXhHWutp0Hmq2NBpapLeQ9UyV3UekMHa5yXxsT27mvKJtvhS5ls F/goapwZDdPh83INeP4z8jEgaGAhRoNj7xdzmiqs8BVceg8UQjBm/Ka/1O4kMoE9DxoZ jTq0+YDFLWOEFp07jL5/x9MrtaFq5jJbFnTVBi5LNfiQPKaG1Y7LM88TTi49afDLlbSK h0fd5yjouJRgArrW6l/0vOMVFRkOlC6bM7vjzF/2cWlWObEL5BrC6fMWRtjRK4EF8eTp UfwtTIiYgJMjHqLYd5Vd3l4TLKyNAfNyURcoEXKFsIiQLGWxCFgXYjv5ZJBRq4HJlJca R8TA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778295559; x=1778900359; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=AwM5k+UWfUTUt59a3ABR2UlFzgDmzYoEve9ZdYQTTxU=; b=alNqoYZjNa6dlBqUfHRrXvdy0dq8yV1LAv2NNFpoBxCISfBGXtABbPq5SDuraBh01i TpXpbtmdvzrGuFJJnA2skG8uEAJsMDtJP6SP1Ov6i/ziTa3tlxKgN42FKfiWJc3XwtGt M6QymH+U2TcEZbwK3nbzX6lVirNGP6j6m8WDUUJbNxrP7VSWjI2tVnt542nAU0+YwERJ gRZLLDenBYkROd868L7za5SUNp7q00hkZQjnLgbnTqsDJikXfOVMd+64sxJ6fATRKv7k VIxgV/s5l0XLyWuvW655tGcgiQn4B0gtGu5j9KFaY44cMes0fHkU9j6jT1Fb4tc32Z1o hq8g== X-Forwarded-Encrypted: i=1; AFNElJ8AVYCViouuYncnihYzVKkhw04JJq3852RINq75uxw9kNrZvRFwJEPJ8Jk8FuRk85kxBwN84Cunm8RwYfY=@vger.kernel.org X-Gm-Message-State: AOJu0Yye5wdkv67sSwjNDZUw5yw5F1MrpcaZDt1oj0wX5ygkJ9uVS2jv SSeC5Q+JyhJNqyfKcMfl3f6mne9u5TO25FKwzsA9dkoWYHDr8JEUgeksXMlQoqPRlkGkObhyM0h Ji6j0snt/CXCz57I+9EwL4Ukwl20QVxw6uApqW8VqO7inod3PlIhiwshagU9BKORB280= X-Gm-Gg: Acq92OGTaK8B8ZIUFKZEIgs/6bFWnfJySWJdNFa040u3nogcv1ZyGnBVLZ/L4Om/xdK tZ8JAwUxMcvBMzfVK6TP51Tz0cyEjn9LfUuhRXM67026RiuCpFrp/hMjCuiTWOiuKGdp///M1KK +HekwJPho8BXgjKvmDMIC3Giw/zZr0mCWyvhWkxMf/YBdVmQhtSzSpDlSuikIXQ7HrYRkJTinuV i4j02+G6B9H4fH3iWawjNty8zC+Us7L3I+4Ny6wdiRNnEyppvplbhSY91QNIshpDUVR9VgxT/PF eCrLD0uMgTxsJH1SuYttc6RupXTc4qGgCDDiWMJ0mZ1F83CZbkCwyYyYycZ26Y1YW3alO8R/YcP 3GKG4v7jT5RtZm/cqsqzQL8IUQox5LCIZodqaNKb6Z4LkriMm/3e1i+DfgYP1YCuI1K0JF/LbhN +YtHRF3T0sni0O8uw= X-Received: by 2002:a17:90b:2707:b0:35c:1d65:7867 with SMTP id 98e67ed59e1d1-36605a524admr9707138a91.15.1778295559119; Fri, 08 May 2026 19:59:19 -0700 (PDT) X-Received: by 2002:a17:90b:2707:b0:35c:1d65:7867 with SMTP id 98e67ed59e1d1-36605a524admr9707110a91.15.1778295558548; Fri, 08 May 2026 19:59:18 -0700 (PDT) Received: from Z2-SFF-G9-MQ.ap.qualcomm.com (i-global052.qualcomm.com. [199.106.103.52]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-367be8be938sm750899a91.4.2026.05.08.19.59.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 May 2026 19:59:18 -0700 (PDT) From: Miaoqing Pan To: jjohnson@kernel.org Cc: ath12k@lists.infradead.org, linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, Miaoqing Pan Subject: [PATCH ath-next 3/5] wifi: ath12k: add HAL ops for monitor TLV header decode and alignment Date: Sat, 9 May 2026 10:58:17 +0800 Message-Id: <20260509025819.1641630-4-miaoqing.pan@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260509025819.1641630-1-miaoqing.pan@oss.qualcomm.com> References: <20260509025819.1641630-1-miaoqing.pan@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Proofpoint-GUID: ynRUYDqqqij6Tyx2ESjpsTBdyvyYoI8P X-Proofpoint-ORIG-GUID: ynRUYDqqqij6Tyx2ESjpsTBdyvyYoI8P X-Authority-Analysis: v=2.4 cv=RMCD2Yi+ c=1 sm=1 tr=0 ts=69fea308 cx=c_pps a=oF/VQ+ItUULfLr/lQ2/icg==:117 a=b9+bayejhc3NMeqCNyeLQQ==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=cBALExdzTAL-QLrJbW0A:9 a=3WC7DwWrALyhR5TkjVHa:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTA5MDAyNyBTYWx0ZWRfX5IQU5FFCB+gb EzD7nvHt/Wsk/9W3Qm3sO+kyaL6n0eadCUMribUJ/jytaPQEX1U/3LYlUFcomWVy/aw9zEMw1Pr eQyTlgWgkIs9VkwBUWlTEzejJjRqgjH9ylgz0xN6q2z20M2ooJ/Bk0s+zmy2kURF1zQ0+35isvf 90+ersrsTvYmOeButLRi8uiU3uksSmiqmd/7U11FqfqGPCbAWBbc9kCn3u2YMrM7s30oLrj0Hxe Ijpguxe3z27JTKwro2Prt7jP2Tt4BbQ/NDGup/df64yps9Lz5h/kXPRaRjfor+wACUnV8poAZOj x1gJ9nAuvTCnNgD/4W6If5+4UFZmMxco1kyr+AgguRA6xp6KlVYa3NvZDQ4m7PJTOxA4Xln87u6 w3Wjghero9/G/1288bA2iqQlf3OvyxkFObjaFyvMihfkfyKhnGakRCtFy8ZSThsa5pVjfP1HY9x ZoA2WQ/lH1itHZALuxw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-09_01,2026-05-08_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 lowpriorityscore=0 bulkscore=0 suspectscore=0 clxscore=1015 malwarescore=0 spamscore=0 priorityscore=1501 adultscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2605090027 Wi-Fi 7 monitor RX status TLV parsing needs to decode TLV headers and advance the pointer with the correct header alignment. Different targets use different TLV header layouts (32-bit vs 64-bit), but the HAL ops for dp_mon RX status header decode and header alignment were not populated for all wifi7 targets. Add dp_mon RX status TLV header decode callbacks and TLV header alignment helpers to the wifi7 HAL ops for QCC2072, QCN9274 and WCN7850. Export helpers to query the required TLV header alignment for 32-bit and 64-bit TLV headers so the caller can align the TLV walk correctly across targets. Tested-on: QCC2072 hw1.0 PCI WLAN.COL.1.0.c2-00068-QCACOLSWPL_V1_TO_SILICONZ-1 Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3 Signed-off-by: Miaoqing Pan --- drivers/net/wireless/ath/ath12k/hal.c | 12 ++++++++++++ drivers/net/wireless/ath/ath12k/hal.h | 4 ++++ drivers/net/wireless/ath/ath12k/wifi7/hal_qcc2072.c | 2 ++ drivers/net/wireless/ath/ath12k/wifi7/hal_qcn9274.c | 2 ++ drivers/net/wireless/ath/ath12k/wifi7/hal_wcn7850.c | 2 ++ 5 files changed, 22 insertions(+) diff --git a/drivers/net/wireless/ath/ath12k/hal.c b/drivers/net/wireless/ath/ath12k/hal.c index d940f83cd92f..c0c3d2f047ef 100644 --- a/drivers/net/wireless/ath/ath12k/hal.c +++ b/drivers/net/wireless/ath/ath12k/hal.c @@ -875,3 +875,15 @@ void *ath12k_hal_decode_tlv32_hdr(void *tlv, u16 *tag, u16 *len, u16 *usrid) return tlv32->value; } EXPORT_SYMBOL(ath12k_hal_decode_tlv32_hdr); + +u32 ath12k_hal_get_tlv64_hdr_align(void) +{ + return HAL_TLV_64_ALIGN; +} +EXPORT_SYMBOL(ath12k_hal_get_tlv64_hdr_align); + +u32 ath12k_hal_get_tlv32_hdr_align(void) +{ + return HAL_TLV_ALIGN; +} +EXPORT_SYMBOL(ath12k_hal_get_tlv32_hdr_align); diff --git a/drivers/net/wireless/ath/ath12k/hal.h b/drivers/net/wireless/ath/ath12k/hal.h index 3158c1881c76..312993d3d5d4 100644 --- a/drivers/net/wireless/ath/ath12k/hal.h +++ b/drivers/net/wireless/ath/ath12k/hal.h @@ -1439,6 +1439,8 @@ struct hal_ops { u8 *rbm, u32 *msdu_cnt); void *(*reo_cmd_enc_tlv_hdr)(void *tlv, u64 tag, u64 len); u16 (*reo_status_dec_tlv_hdr)(void *tlv, void **desc); + void *(*mon_rx_status_dec_tlv_hdr)(void *tlv, u16 *tag, u16 *len, u16 *usrid); + u32 (*get_tlv_hdr_align)(void); }; #define HAL_TLV_HDR_TAG GENMASK(9, 1) @@ -1553,4 +1555,6 @@ void *ath12k_hal_encode_tlv64_hdr(void *tlv, u64 tag, u64 len); void *ath12k_hal_encode_tlv32_hdr(void *tlv, u64 tag, u64 len); void *ath12k_hal_decode_tlv64_hdr(void *tlv, u16 *tag, u16 *len, u16 *usrid); void *ath12k_hal_decode_tlv32_hdr(void *tlv, u16 *tag, u16 *len, u16 *usrid); +u32 ath12k_hal_get_tlv64_hdr_align(void); +u32 ath12k_hal_get_tlv32_hdr_align(void); #endif diff --git a/drivers/net/wireless/ath/ath12k/wifi7/hal_qcc2072.c b/drivers/net/wireless/ath/ath12k/wifi7/hal_qcc2072.c index c0583c3a2191..80ffadc47d48 100644 --- a/drivers/net/wireless/ath/ath12k/wifi7/hal_qcc2072.c +++ b/drivers/net/wireless/ath/ath12k/wifi7/hal_qcc2072.c @@ -490,6 +490,8 @@ const struct hal_ops hal_qcc2072_ops = { .rx_reo_ent_buf_paddr_get = ath12k_wifi7_hal_rx_reo_ent_buf_paddr_get, .reo_cmd_enc_tlv_hdr = ath12k_hal_encode_tlv32_hdr, .reo_status_dec_tlv_hdr = ath12k_hal_reo_status_dec_tlv_hdr_qcc2072, + .mon_rx_status_dec_tlv_hdr = ath12k_hal_decode_tlv32_hdr, + .get_tlv_hdr_align = ath12k_hal_get_tlv32_hdr_align, }; u32 ath12k_hal_rx_desc_get_mpdu_start_offset_qcc2072(void) diff --git a/drivers/net/wireless/ath/ath12k/wifi7/hal_qcn9274.c b/drivers/net/wireless/ath/ath12k/wifi7/hal_qcn9274.c index 8d8d1a9c05d3..129f6b1919e3 100644 --- a/drivers/net/wireless/ath/ath12k/wifi7/hal_qcn9274.c +++ b/drivers/net/wireless/ath/ath12k/wifi7/hal_qcn9274.c @@ -1132,4 +1132,6 @@ const struct hal_ops hal_qcn9274_ops = { .rx_reo_ent_buf_paddr_get = ath12k_wifi7_hal_rx_reo_ent_buf_paddr_get, .reo_cmd_enc_tlv_hdr = ath12k_hal_encode_tlv64_hdr, .reo_status_dec_tlv_hdr = ath12k_hal_reo_status_dec_tlv_hdr_qcn9274, + .mon_rx_status_dec_tlv_hdr = ath12k_hal_decode_tlv64_hdr, + .get_tlv_hdr_align = ath12k_hal_get_tlv64_hdr_align, }; diff --git a/drivers/net/wireless/ath/ath12k/wifi7/hal_wcn7850.c b/drivers/net/wireless/ath/ath12k/wifi7/hal_wcn7850.c index 4bef64ac9150..881986075548 100644 --- a/drivers/net/wireless/ath/ath12k/wifi7/hal_wcn7850.c +++ b/drivers/net/wireless/ath/ath12k/wifi7/hal_wcn7850.c @@ -815,4 +815,6 @@ const struct hal_ops hal_wcn7850_ops = { .rx_reo_ent_buf_paddr_get = ath12k_wifi7_hal_rx_reo_ent_buf_paddr_get, .reo_cmd_enc_tlv_hdr = ath12k_hal_encode_tlv64_hdr, .reo_status_dec_tlv_hdr = ath12k_hal_reo_status_dec_tlv_hdr_wcn7850, + .mon_rx_status_dec_tlv_hdr = ath12k_hal_decode_tlv64_hdr, + .get_tlv_hdr_align = ath12k_hal_get_tlv64_hdr_align, }; -- 2.34.1