From nobody Sun Feb 8 17:13:16 2026 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 A2B4430FC31 for ; Fri, 14 Nov 2025 10:22:41 +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=1763115764; cv=none; b=ckEy65Dj0ohWM+rTSVYcvLO5Vhi7c9+w/72b4Img4Mef0+gawP1BWZUcGp8ze6J9OtltnFSgvMVThIaowGf6uAA/cuDWwaUV3kWPyNZujojvuLKiYK4bJIaF+aYu7ybg9C2NA8QbjZp2UxnbYnXI97PEtjvTcNZJNKRLzS0T9ZY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763115764; c=relaxed/simple; bh=cvW46ry7pIu7R0scHAtxGzfzExIsVr93GRnzo1DinzM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=AvYKpRd/UUx4FfPM0XrmouBnvXSHBv+x1AAirx9iA/x6jp1KvtUakGNpBqeEaXRhn9negY2OyRqzyaVnTObxq3AeqVMicx2Fh4Afzs5zHFvy+yKQFYPO3qXiZyA8XPu4el0VdwdvtZ4I4fMxStcbs9Z0jIiGrIiSqPgxwu+1dIE= 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=pzk/Nxzs; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=JptVEdim; 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="pzk/Nxzs"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="JptVEdim" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5AE8V7Th1695158 for ; Fri, 14 Nov 2025 10:22:40 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= UgyTWGbkbQVvLrWWo2qJSUt0tmq/uB9p5M5fSzftSUY=; b=pzk/NxzsthTijrP9 WMKucxELmsPsAyRm+UaQbb/CgpgX0T4Btr+EMDa2Rd/DF4XcIo0J1yY9+x0Sg2zF Jg0g2Rzj96G5zISRBgofX+D2ALM9havqbLSbabBvU/L9eLYk6+A4EyBfw1XNp/Sn dghMMScDWMSvCPSPO/zUgWWlxlGX4IMH8ZRXjtXf1RQeTK2MNqTswObqko55qwKl TUbGJGSfo56A+cT8J9kRks2/fx7ytB6dtrdsmidPWzjrDtmKqbhn/nqskN9wGrax JGFW/3fQFBbYmBTYEp1sEan5wnTPlysms2XkWu61W6O15Bpocbwwli74R3brDJ0F nS+8Zg== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4adr9g1sqq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 14 Nov 2025 10:22:40 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-295915934bfso27420275ad.0 for ; Fri, 14 Nov 2025 02:22:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763115759; x=1763720559; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=UgyTWGbkbQVvLrWWo2qJSUt0tmq/uB9p5M5fSzftSUY=; b=JptVEdimYZ6uk1FLt/8S00YdajjV0Wj1b96MuZoYcT5nSdgGaMjUuNXucInDcdI4co crbRBdV3Q3oMVWhCNegvTF7uSF/iOe8GoWKrhyIXJk1hYTl0364VJF6kRUA5UNAPUha2 I+473Dm+DQL8qycL1moNC5LScOOynGgMwoQpcSclT4nlHpKKgSOGUL+IVfAxlaPh0k+U OXWGKSZkXwNPcn2yK1wzFLkZaZ0+fszzuP577t6UBcx/l/ZD/53zbJ6srncfW0jXMnOZ 3qSNbhqV5w51r6Rg4cUOBQCtxvA4Nu30/kxGfqF/OpoJC8xHo8J4iolA6n2rx7ja6hmZ Z6nQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763115759; x=1763720559; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=UgyTWGbkbQVvLrWWo2qJSUt0tmq/uB9p5M5fSzftSUY=; b=TnfW75Al1ewsMjpqgxEUexn6WBUelsv5r87+Z5hR8Bdyfy9zAJ2or8w3ifDmqJGWPC SU2k1kocyRJppM2AKLuud4TnsrIvBzOt4faF1O1YZGoVqVjxeYvDEZr8aYRpUkKA6S1H hn26lZQTYyH3Iun8MkO7ZVf6CEVcE/5PFDFYbXsxjGwCYgk9tDAk6IPA3Y2hvVqYUMBs 8zQZVAtVi2RttTXATjNel+1RxiZ2yZSFWo03+PtpQm5CGR6gc0mFA0HHUOJ2ys7xQR8M 7V7NDkPs0wUaZegW1VCdvoG7jvuk0G4vzK1HYo1OWXm2AThdG3yctUJXLwL5hLsa2Zzm iy3Q== X-Forwarded-Encrypted: i=1; AJvYcCVxZXyqTmXEYiv12sMn3Fh3Z0vHjNi7GH3ucQhUAT7jdBwtUjgzPW348SjCn+p1pV/DjcAgDmPbl3Vlwko=@vger.kernel.org X-Gm-Message-State: AOJu0YzBxOGVWE5hZnGiRsPqtBoEGp+6fO0X+/LFDmTS3N6Jh5g2c7EY U5umGjo0lmcPCU+WKQKf+gUMTpFZCZhS/kk7Xio7/jgMPbvaKUTgiyCe0MxGA02BjLAIyklcPyb zTBxq8CxaPArE+vuA4ldZkW477AabeR/RODEjUNFJtWSBuLZHPWDD/mmhKg1UeRHl89I= X-Gm-Gg: ASbGncu0p2bfP+TbEnfvUUbNsok/XCjfHqdN+C36vZr/fp6rDLkxfZhKjKsktco4McS uxWu8BSfyS3c13BXrQuHmEU1gcoVYHiUgt130i0e4i3VD21C911vuc8BUzowA6/HDdukBGWldkS 6L2/u21stPKz231OX8FvXWEifVUJSp4T50Fl9UbL9ib/M0UUG8q+e2LOtTbi9YdNwVPqMNUyCSK su+SeZYqbkj4r0QPR/MYITv4dax1K3+gdHV2TYG8TPwhQ1DVmNdJiD969nTumB92FqkiMZl5+u5 GpkDUKpx49PuZv98KcSyTMJyDiPaXqdyrCHcOtF0ykyJ8585Y0eWZQAO7kqeGFAbe0WnJ/gHzW8 WcFo8EhOloYbT5kNDxXD0JmdTkxrk X-Received: by 2002:a17:903:2349:b0:298:5abe:4b1 with SMTP id d9443c01a7336-2986a76bc5fmr26587235ad.52.1763115759373; Fri, 14 Nov 2025 02:22:39 -0800 (PST) X-Google-Smtp-Source: AGHT+IG+NJodpENh5gfXKO3wDwpoE6d1mGJnrqIto96tOBNteYm3rrkrIjPNrBF+fIwbuU/gyWQU6w== X-Received: by 2002:a17:903:2349:b0:298:5abe:4b1 with SMTP id d9443c01a7336-2986a76bc5fmr26586925ad.52.1763115758812; Fri, 14 Nov 2025 02:22:38 -0800 (PST) Received: from [192.168.1.102] ([120.60.77.228]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2985c245edasm50883705ad.27.2025.11.14.02.22.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Nov 2025 02:22:38 -0800 (PST) From: Manivannan Sadhasivam Date: Fri, 14 Nov 2025 15:52:19 +0530 Subject: [PATCH 1/2] wifi: ath: Use static calibration variant table for devicetree platforms Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251114-ath-variant-tbl-v1-1-a9adfc49e3f3@oss.qualcomm.com> References: <20251114-ath-variant-tbl-v1-0-a9adfc49e3f3@oss.qualcomm.com> In-Reply-To: <20251114-ath-variant-tbl-v1-0-a9adfc49e3f3@oss.qualcomm.com> To: Jeff Johnson , Johannes Berg , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, ath10k@lists.infradead.org, ath11k@lists.infradead.org, devicetree@vger.kernel.org, ath12k@lists.infradead.org, Miaoqing Pan , Manivannan Sadhasivam X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=9048; i=manivannan.sadhasivam@oss.qualcomm.com; h=from:subject:message-id; bh=cvW46ry7pIu7R0scHAtxGzfzExIsVr93GRnzo1DinzM=; b=kA0DAAoBVZ8R5v6RzvUByyZiAGkXAt+gRDO6ct4MnDYCpj+7of6Rlq6JRvQD83YvuFDh1OlCx okBMwQAAQoAHRYhBGelQyqBSMvYpFgnl1WfEeb+kc71BQJpFwLfAAoJEFWfEeb+kc71OnAH/jZj 3GhZiZqzaHqWEyIiui5ye6ykDfO/Nw9NmHENl5f4Iov6+bW3OsekjVmUVUgdSl5K5Z8uymnY4R0 UsjaxQ9/Txv6zu+6f+X+Dos5mlm9GQ8fp4vKmi6iWdYokl3GjVrL2w6n7rFuNO/lLeEIkyCljCG MSp5k1PopCLRc939o6GTE0v8owgSqdHy347NiPWwYitvvlCOYu13JMCwSEc6ICUGiBCo+DkZosC UaZRRkWKWyM4nefLEYVPpUmJ26+TMqMWZ/3VVzN9o89usYN/ySs8d42nvgb7pnHPLF2ncGHeux8 15CI1wPpeyLYMf/roAaMAJdnem+4E3Av29NOepc= X-Developer-Key: i=manivannan.sadhasivam@oss.qualcomm.com; a=openpgp; fpr=C668AEC3C3188E4C611465E7488550E901166008 X-Proofpoint-GUID: OzJTfXSCuQkweMcqtMurAsz9m__iWH5U X-Proofpoint-ORIG-GUID: OzJTfXSCuQkweMcqtMurAsz9m__iWH5U X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTE0MDA4MiBTYWx0ZWRfX1lD0mHR1spZ0 HLw77jdl6ZOWLoTIuKX0NknXa3xhOLYTOcJst/UfIgYrsK1XudIxmM4Y87iUjE8xOdlp28ok9T+ TcCpu3iVG0I/8/UOejypZV9MQJV6s2SxiB99Bn9lgg2UKmFaIuCizRrO14PYGZUdLIn5+b4BdY7 xFkc7NHzjvCupLcNpX9foAjyafbmKp33ZT93tkHQEkKthVxieGQiwUF/QzocBa/wXBQGVcLMMvl hgVgjisy6GxXkU0dHPeaGUJBMwv38W28Ir35tLc1CDOd2T4afL+NjyZuB2YAFcoSzv9Gj+KJTZz ptBsSGXiNpA+YzGhFFhTYt97V0FxwaJjp1hhlpZAdXwJLv+X9IQaxDZ35IyC42Q2ZPjQYv2wV7E zIMUXdrRIh2VvgTt9jYMzZ98Y8lIIQ== X-Authority-Analysis: v=2.4 cv=IM8PywvG c=1 sm=1 tr=0 ts=691702f0 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=9R49FEQIXN7mQozuOwW6cA==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=u1Wyjy0uBQZ4QtDYgmYA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-14_02,2025-11-13_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 clxscore=1015 malwarescore=0 suspectscore=0 lowpriorityscore=0 adultscore=0 impostorscore=0 phishscore=0 priorityscore=1501 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511140082 On devicetree platforms, ath{10k/11k} drivers rely on the presence of the 'qcom,*calibration-variant' property to select the correct calibration data for device variants with colliding IDs. But this property based selection has its own downside that it needs to be added to the devicetree node of the WLAN device, especially for PCI based devices. Currently, the users/vendors are forced to hardcode this property in the PCI device node. If a different device need to be attached to the slot, then the devicetree node also has to be changed. This approach is not scalable and creates a bad user experience. To get rid of this requirement, this commit introduces a static calibration variant table ath_calib_variant_table[], consisting of the platform model and the calibration variant for all upstream supported devices. The entries of this table are derived from the upstream DTS files. The newly introduced helper, ath_get_calib_variant() will parse the model name from devicetree and use it to do the variant lookup during runtime. If the platform model name doesn't match, it will fallback to the devicetree property based lookup. Going forward, the devicetree based lookup will be deprecated and this table will be used exclusively for devices connected to the devicetree based host platforms. Tested-on: WCN6750 hw1.0 AHB WLAN.MSL.2.0.c2-00204-QCAMSLSWPLZ-1 Signed-off-by: Manivannan Sadhasivam --- drivers/net/wireless/ath/ath.h | 98 ++++++++++++++++++++++++++++++= ++++ drivers/net/wireless/ath/ath10k/core.c | 5 ++ drivers/net/wireless/ath/ath11k/core.c | 7 +++ 3 files changed, 110 insertions(+) diff --git a/drivers/net/wireless/ath/ath.h b/drivers/net/wireless/ath/ath.h index 34654f710d8a1e63f65a47d4602e2035262a4d9e..d0a12151b7fc13355161c48ba1f= b200e4617ed11 100644 --- a/drivers/net/wireless/ath/ath.h +++ b/drivers/net/wireless/ath/ath.h @@ -21,6 +21,7 @@ #include #include #include +#include #include =20 /* @@ -336,4 +337,101 @@ static inline const char *ath_bus_type_to_string(enum= ath_bus_type bustype) return ath_bus_type_strings[bustype]; } =20 +static const struct __ath_calib_variant_table { + const char *machine; + const char *variant; +} ath_calib_variant_table[] =3D { + { "ALFA Network AP120C-AC", "ALFA-Network-AP120C-AC" }, + { "8devices Jalapeno", "8devices-Jalapeno" }, + { "Google cozmo board", "GO_COZMO" }, + { "Google damu board", "GO_DAMU" }, + { "Google fennel sku1 board", "GO_FENNEL" }, + { "Google fennel sku6 board", "GO_FENNEL" }, + { "Google fennel sku7 board", "GO_FENNEL" }, + { "Google fennel14 sku2 board", "GO_FENNEL14" }, + { "Google fennel14 sku0 board", "GO_FENNEL14" }, + { "Google juniper sku16 board", "GO_JUNIPER" }, + { "Google makomo sku0 board", "GO_FENNEL14" }, + { "Google makomo sku1 board", "GO_FENNEL14" }, + { "MediaTek kakadu board sku22", "GO_KAKADU" }, + { "MediaTek kakadu board", "GO_KAKADU" }, + { "Google katsu board", "GO_KATSU" }, + { "Google katsu sku38 board", "GO_KATSU" }, + { "MediaTek kodama sku16 board", "GO_KODAMA" }, + { "MediaTek kodama sku272 board", "GO_KODAMA" }, + { "MediaTek kodama sku288 board", "GO_KODAMA" }, + { "MediaTek kodama sku32 board", "GO_KODAMA" }, + { "MediaTek krane sku0 board", "LE_Krane" }, + { "MediaTek krane sku176 board", "LE_Krane" }, + { "Qualcomm Technologies, Inc. Lemans Ride Rev3", "QC_SA8775P_Ride" }, + { "Qualcomm Technologies, Inc. Lemans Ride", "QC_SA8775P_Ride" }, + { "Qualcomm SA8775P Ride Rev3", "QC_SA8775P_Ride" }, + { "Qualcomm SA8775P Ride", "QC_SA8775P_Ride" }, + { "Lenovo Miix 630", "Lenovo_Miix630" }, + { "Fairphone 5", "Fairphone_5" }, + { "Qualcomm Technologies, Inc. QCM6490 IDP", "Qualcomm_qcm6490idp" }, + { "SHIFT SHIFTphone 8", "SHIFTphone_8" }, + { "Qualcomm Technologies, Inc. QCS615 Ride", "QC_QCS615_Ride" }, + { "Qualcomm Technologies, Inc. Robotics RB3gen2", "Qualcomm_rb3gen2" }, + { "Qualcomm Technologies, Inc. Robotics RB1", "Thundercomm_RB1" }, + { "Qualcomm Technologies, Inc. QRB4210 RB2", "Thundercomm_RB2" }, + { "Google Homestar (rev2)", "GO_HOMESTAR" }, + { "Google Homestar (rev3)", "GO_HOMESTAR" }, + { "Google Homestar (rev4+)", "GO_HOMESTAR" }, + { "Google Kingoftown", "GO_KINGOFTOWN" }, + { "Google Lazor Limozeen without Touchscreen (rev10+)", "GO_LAZOR" }, + { "Google Lazor Limozeen without Touchscreen (rev5 - rev8)", "GO_LAZOR" }, + { "Google Lazor Limozeen without Touchscreen (rev9)", "GO_LAZOR" }, + { "Google Lazor Limozeen (rev10+)", "GO_LAZOR" }, + { "Google Lazor Limozeen (rev4 - rev8)", "GO_LAZOR" }, + { "Google Lazor Limozeen (rev9)", "GO_LAZOR" }, + { "Google Lazor (rev1 - 2)", "GO_LAZOR" }, + { "Google Lazor (rev10+) with KB Backlight", "GO_LAZOR" }, + { "Google Lazor (rev10+) with LTE", "GO_LAZOR" }, + { "Google Lazor (rev10+)", "GO_LAZOR" }, + { "Google Lazor (rev3 - 8) with KB Backlight", "GO_LAZOR" }, + { "Google Lazor (rev3 - 8) with LTE", "GO_LAZOR" }, + { "Google Lazor (rev3 - 8)", "GO_LAZOR" }, + { "Google Lazor (rev9) with KB Backlight", "GO_LAZOR" }, + { "Google Lazor (rev9) with LTE", "GO_LAZOR" }, + { "Google Lazor (rev9)", "GO_LAZOR" }, + { "Google Pazquel (Parade,LTE)", "GO_PAZQUEL360" }, + { "Google Pazquel (Parade,WIFI-only)", "GO_PAZQUEL360" }, + { "Google Pompom (rev1)", "GO_POMPOM" }, + { "Google Pompom (rev2)", "GO_POMPOM" }, + { "Google Pompom (rev3+)", "GO_POMPOM" }, + { "Google Wormdingler rev1+ (BOE, rt5682s)", "GO_WORMDINGLER" }, + { "Google Wormdingler rev1+ BOE panel board", "GO_WORMDINGLER" }, + { "Google Wormdingler rev1+ (INX, rt5682s)", "GO_WORMDINGLER" }, + { "Google Wormdingler rev1+ INX panel board", "GO_WORMDINGLER" }, + { "Qualcomm SC8280XP CRD", "QC_8280XP_CRD" }, + { "Lenovo ThinkPad X13s", "LE_X13S" }, + { "Microsoft Surface Pro 9 5G", "MS_SP9_5G" }, + { "Windows Dev Kit 2023", "MS_Volterra" }, + { "Inforce 6560 Single Board Computer", "Inforce_IFC6560" }, + { "Thundercomm Dragonboard 845c", "Thundercomm_DB845C" }, + { "Qualcomm Technologies, Inc. SDM845 MTP", "Qualcomm_sdm845mtp" }, + { "Lenovo Yoga C630", "Lenovo_C630" }, + { "F(x)tec Pro1X (QX1050)", "Fxtec_QX1050" }, + { "Lenovo Tab P11", "Lenovo_P11" }, + { "Qualcomm Technologies, Inc. SM8150 HDK", "Qualcomm_sm8150hdk" }, + { "Xiaomi Mi Pad 5 Pro (BOE)", "Xiaomi_Pad_5Pro" }, + { "Xiaomi Mi Pad 5 Pro (CSOT)", "Xiaomi_Pad_5Pro" }, + { "ASUS Zenbook A14 (UX3407QA)", "UX3407Q" }, + { "Google Scarlet", "GO_DUMO" }, + { /* Sentinel */ } +}; + +static inline const char *ath_get_calib_variant(void) +{ + const struct __ath_calib_variant_table *entry =3D ath_calib_variant_table; + struct device_node *root __free(device_node) =3D of_find_node_by_path("/"= ); + const char *model =3D of_get_property(root, "model", NULL); + + while ((entry->machine) && strcmp(entry->machine, model)) + entry++; + + return entry->machine ? entry->variant : NULL; +} + #endif /* ATH_H */ diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/= ath/ath10k/core.c index 6f78f1752cd6ffcf8eb56621ba0e4978ac23e696..099b8592d50bfac37c54dee7b0a= a660ac126a410 100644 --- a/drivers/net/wireless/ath/ath10k/core.c +++ b/drivers/net/wireless/ath/ath10k/core.c @@ -1161,6 +1161,10 @@ int ath10k_core_check_dt(struct ath10k *ar) struct device_node *node; const char *variant =3D NULL; =20 + variant =3D ath_get_calib_variant(); + if (variant) + goto copy_variant; + node =3D ar->dev->of_node; if (!node) return -ENOENT; @@ -1173,6 +1177,7 @@ int ath10k_core_check_dt(struct ath10k *ar) if (!variant) return -ENODATA; =20 +copy_variant: if (strscpy(ar->id.bdf_ext, variant, sizeof(ar->id.bdf_ext)) < 0) ath10k_dbg(ar, ATH10K_DBG_BOOT, "bdf variant string is longer than the buffer can accommodate (varia= nt: %s)\n", diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/= ath/ath11k/core.c index 2810752260f2f7eee226f88d5aea7cdabe7e9ed4..2db067d6357c8848ede7384ec4a= 615ca22282650 100644 --- a/drivers/net/wireless/ath/ath11k/core.c +++ b/drivers/net/wireless/ath/ath11k/core.c @@ -20,6 +20,8 @@ #include "wow.h" #include "fw.h" =20 +#include "../ath.h" + unsigned int ath11k_debug_mask; EXPORT_SYMBOL(ath11k_debug_mask); module_param_named(debug_mask, ath11k_debug_mask, uint, 0644); @@ -1362,6 +1364,10 @@ int ath11k_core_check_dt(struct ath11k_base *ab) const char *variant =3D NULL; struct device_node *node; =20 + variant =3D ath_get_calib_variant(); + if (variant) + goto copy_variant; + node =3D ab->dev->of_node; if (!node) return -ENOENT; @@ -1374,6 +1380,7 @@ int ath11k_core_check_dt(struct ath11k_base *ab) if (!variant) return -ENODATA; =20 +copy_variant: if (strscpy(ab->qmi.target.bdf_ext, variant, max_len) < 0) ath11k_dbg(ab, ATH11K_DBG_BOOT, "bdf variant string is longer than the buffer can accommodate (varia= nt: %s)\n", --=20 2.48.1 From nobody Sun Feb 8 17:13:16 2026 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 1D069310621 for ; Fri, 14 Nov 2025 10:22:50 +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=1763115772; cv=none; b=mPT8S9vfGqi8/X1IzoO6JM7GQTI4XUGYtNM3i8B6svJremznHTlqvBI5O/W7g4yGv7mJ+2a2l3xF3YQ26bclgkfzAP8OMEvbEwwM8PxGDZMq9xVmtrkxvepyw+vcrC92yD9Kta7wBvR9IrHOdr9DosehU3HqIjaVY90V3Q9jizw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763115772; c=relaxed/simple; bh=k3nnJASyGzjwvyMuUxQFV6JFb1OmNF6MwYd2U70py9w=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=BDIXEHwkzY7s3hgQ1qw8WhaIOpaqMpDqu99rNIKc9QAidRdQvpgWgUvIpu48ffz7gfZHFLUn2XqzfXezx4QIR+wlD6UT7PQJGC58Mh8TwelH2sqizNX9MbrSg5gQkhTGXzkz2c/gpdrsnFfg1FIK6RXPMzBJct8od2xMXsRH848= 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=HCwPMqUT; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=MJsMPwSW; 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="HCwPMqUT"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="MJsMPwSW" 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 5AE8RRGL1424135 for ; Fri, 14 Nov 2025 10:22:50 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= ahWiBjMc2fo3WP8rF99Mw4GcS3iUglJWkT5uYMXPyOs=; b=HCwPMqUTwUNRWF4E u0ZGfTiYpzvQ3tb0ucmstDJkS/3ZNwPz+VVXwUWJGD5eqh3i3lzJgFkajsxvxp6e AgrUEDx+GnJsIdq6qaOOdN9FBTQozBsKjAvEzxJ5cXHcsOQWdkm5b2yABIAEkE53 B0x1FsVnm+8KwWG8k8enKItScKckXKEpP68ij/tadSKMcSvOebc3rIRYXIrlhrPa KleZlNPN0g7gVR/hMq+hs6gLoKRyn+yfRD6cK2OGXecBhFGXBW2Jaj95jIy3VVFu MyjEovc0ooYtlbfwN3ZIkkNzXdP4lrCsB5CgLmQXk3drwKOHaJrGNdJKLnkKT49j nGDolw== Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4adr9g1s75-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 14 Nov 2025 10:22:49 +0000 (GMT) Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-b969f3f5bb1so4163010a12.0 for ; Fri, 14 Nov 2025 02:22:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763115769; x=1763720569; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=ahWiBjMc2fo3WP8rF99Mw4GcS3iUglJWkT5uYMXPyOs=; b=MJsMPwSWjyDOz9LvlTGuauRyJ3pk7uB2eVKY+BAOtrF9JdBQA2hrhzSaFShGd3usUp h4Z9/xP2FODzcmacyxaFWPp6AlBdAYA9R2w1ZhGOZJHChQ4bxjHBk9zbHJnYoJvjOQSk 0EpgmLvr7Wj+8BkpbeGJGNKtaP+IfmPWcqh0D8vJ0H1df1ziwiFLG3cs0iXjyZk6dFcs zVTkThEiOhn2Xy3SeT6epcjxRxjem6Bsk6dJ2PnoAoy4IVZ28Sy4oW79rrO7VLXpOyoq dFy5fRUlTvvUstFUyoi9golbZIMb77chjRfVyB2lITxLNRGwXWNmENPKNX52oo8/ZcxS m1gg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763115769; x=1763720569; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=ahWiBjMc2fo3WP8rF99Mw4GcS3iUglJWkT5uYMXPyOs=; b=Ax3W50DlnPLuAhfRQyi8fhIzjfsTeJ7P/CQvwxWRd7/ey52AuDXPPfFzibI8Vj2uM0 sjjElme7PfbrsT0C7/orD64gGmKdORxMi5IV0zLj4kKLts2Rb6MggUMylJntV/ekqdKI +YzICDOZxti8jBhynHMMA7vJopxdl94rQmqAEqpOYiCOTg/YPdqgBHmQ8JKsppwuXaA6 LOwjzRiv5B+M6OP86P1SYV7NLL8hVZjSIUYtkVsYXJ99L/aod6/TaQaoZbM54o12Tc9e BHrSG4bq50BKbq0Jfe3gj19UkdZ9Nebjir4zurXNCqYEElSSTiSVMbM4iWZmUc+hyJyY 7NzQ== X-Forwarded-Encrypted: i=1; AJvYcCXQg4HOX9KIoR4IUW+sKH9yH7tcxg8BiR3IJajoOJp7618ILn6EsR+Tgf8Vv0X+NwpKouwLtim2I9yNwK8=@vger.kernel.org X-Gm-Message-State: AOJu0Ywd7ptOJKzgQxCvXhGKbjFOoJW7r4MU1MlJYRAtcf3mj1t98ogz 0S4oHCEbohKNd0wJ2aNkxXzokZkNCzmIvgzodwvkPgY5cDBYsxGNvf21ynhUvfP8RC7o1FZe/TJ kIO2i34oFkSFzkjJlpjXT+pCn9gLWR1FL7zek8p9/6Rqw93Sqj6rsjY4j5KQjmguwYCM= X-Gm-Gg: ASbGncv2qi5QpiUmVt5xTNC1gOgdbKYqOmOQhtPzNjGhhEbo/Mhlv2HbHRUqlw6ZOPO zbUPynk+g/FLInWaNV6KtEV4rKBwfkOJ5SzmnTYbpzj8GP/hQF+8VkIuenG8ry346+cxI5Cu6rV Kak1SWxWTUW9f4dDY143nmCqDEq7x0coLWtscOaMfKYrRsoQ3e6cdDM5pzZD45r42vuqmnNwlex 1n/FPFM3ELprKZOxC9/q4WY8uYNCYLBp1PmGKE6hwKTyW6g6hzcz/S07KSXs0EzRXNA7GdFnSwi hF3es0ionI1cQqosMGHVTe6KCkbAR/Z8j1J6Ucr6ljMro6OXLTsWpxpP1COrzGrMJBYIT11I8cO FoK4XLul66nfspdaC3izUo1bFhtBh X-Received: by 2002:a17:902:f54a:b0:294:9699:74f6 with SMTP id d9443c01a7336-2986a755558mr27623665ad.43.1763115768528; Fri, 14 Nov 2025 02:22:48 -0800 (PST) X-Google-Smtp-Source: AGHT+IHAYL4yAe6yDVMwggNZYuI710G44ZijcHgePARCZdvnUFPU4HcL5StexME9kyo5opZ3RwNdRQ== X-Received: by 2002:a17:902:f54a:b0:294:9699:74f6 with SMTP id d9443c01a7336-2986a755558mr27623385ad.43.1763115767997; Fri, 14 Nov 2025 02:22:47 -0800 (PST) Received: from [192.168.1.102] ([120.60.77.228]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2985c245edasm50883705ad.27.2025.11.14.02.22.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Nov 2025 02:22:47 -0800 (PST) From: Manivannan Sadhasivam Date: Fri, 14 Nov 2025 15:52:20 +0530 Subject: [PATCH 2/2] dt-bindings: wireless: ath: Deprecate 'qcom,calibration-variant' property Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251114-ath-variant-tbl-v1-2-a9adfc49e3f3@oss.qualcomm.com> References: <20251114-ath-variant-tbl-v1-0-a9adfc49e3f3@oss.qualcomm.com> In-Reply-To: <20251114-ath-variant-tbl-v1-0-a9adfc49e3f3@oss.qualcomm.com> To: Jeff Johnson , Johannes Berg , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, ath10k@lists.infradead.org, ath11k@lists.infradead.org, devicetree@vger.kernel.org, ath12k@lists.infradead.org, Miaoqing Pan , Manivannan Sadhasivam X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=6347; i=manivannan.sadhasivam@oss.qualcomm.com; h=from:subject:message-id; bh=k3nnJASyGzjwvyMuUxQFV6JFb1OmNF6MwYd2U70py9w=; b=owEBbQGS/pANAwAKAVWfEeb+kc71AcsmYgBpFwLfhfLZG7hwNQalZFkaKtKe3vWWu+Xk75X+w 3YQ7r9LW1+JATMEAAEKAB0WIQRnpUMqgUjL2KRYJ5dVnxHm/pHO9QUCaRcC3wAKCRBVnxHm/pHO 9RzaB/97wv8NzPTBqYcKzOK7mewrlHPXfc4PuQvOcHEq+C6zeuGwE/6GKb6es/Yu62eOuhB6Hie GO8peTK4ZSKZ+2ofnCcGa8ySrZ5V3I9QFVvdNi+kRBn6R5FEj5NwSC8iH4o8Z+7NSjycB3mMJ/Y DqtNHur05DpfSrHGw4JBJr5X59dTQ68J7Dulq02j/28f1Ee1zsYMYh65CHoHBj26cDYDf2tbwLs ONi3hrlOjc39Dd1qKMRvvYwKR3gi3Tm9PJSvBNOWdQ8EVF1JXnBTVTLg6Jaa2ruxKdvZyXVgh6T 07ZlWPoJTAtwEjRrKRJOG2LdsVTYfG3gny5Nm8dY1HWW/+zl X-Developer-Key: i=manivannan.sadhasivam@oss.qualcomm.com; a=openpgp; fpr=C668AEC3C3188E4C611465E7488550E901166008 X-Authority-Analysis: v=2.4 cv=L+AQguT8 c=1 sm=1 tr=0 ts=691702f9 cx=c_pps a=rz3CxIlbcmazkYymdCej/Q==:117 a=9R49FEQIXN7mQozuOwW6cA==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=SpmQgKv4x172yhoqWS8A:9 a=QEXdDO2ut3YA:10 a=bFCP_H2QrGi7Okbo017w:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTE0MDA4MiBTYWx0ZWRfX8X4UjBBm8kDH wWbo0g0Rboe/vwvGvny9dDlIUBNQPoV4W1JrMXTEItMu4ay2ItzU+DO1hBctlxHWOwhk53o7d3T qqqBV/2lVI9tC8uaSauiyH17qnrhKUKkcshUf6xvwubKqjnipmb8t6a7o/H40cyjBhemTmyfM8u BMKFvvITjGAjoZGXmiPgeaA8+tzPDyeA+oo3dFuQQ1X3n6paeLSnxlLX2yWPjRV73rHfhd/G0GN Ue3473JSWK+DfvK+81e5gAr4rsLy/sD+jaHDro3FTm4NlMMV9LoVDMRdhQEzbxj6YK67acysvCL chIJy390Q4rsjQzkSb5qsD19ZrnP4tos4MPgn0xK8tfqSDx3KI6WYPLV78ZOx+GFaKfqyLafIGO VuB1O0LMq/EN3dkq1vlDFzWWD/gopA== X-Proofpoint-ORIG-GUID: z-4qtu--GrcfoOggl_UMUQqimiTfmL6T X-Proofpoint-GUID: z-4qtu--GrcfoOggl_UMUQqimiTfmL6T X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-14_02,2025-11-13_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 phishscore=0 impostorscore=0 priorityscore=1501 adultscore=0 clxscore=1015 bulkscore=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511140082 On devicetree platforms, ath{10k/11k} drivers rely on the presence of the 'qcom,calibration-variant' property to select the correct calibration data for device variants with colliding IDs. But this property based selection has its own downside that it needs to be added to the devicetree node of the WLAN device, especially for PCI based devices. Currently, the users/vendors are forced to hardcode this property in the PCI device node. If a different device need to be attached to the slot, then the devicetree node also has to be changed. This approach is not scalable and creates a bad user experience. So deprecate this property from WLAN devicetree nodes and let the drivers do the devicetree model based calibration variant lookup using a static table. This also warrants removing the property from examples in the binding. Signed-off-by: Manivannan Sadhasivam --- Documentation/devicetree/bindings/net/wireless/qcom,ath10k.yaml | 1 + Documentation/devicetree/bindings/net/wireless/qcom,ath11k-pci.yaml | 3 +-- Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml | 1 + Documentation/devicetree/bindings/net/wireless/qcom,ath12k-wsi.yaml | 6 +-= ---- .../devicetree/bindings/net/wireless/qcom,ipq5332-wifi.yaml | 2 +- 5 files changed, 5 insertions(+), 8 deletions(-) diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.yam= l b/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.yaml index f2440d39b7ebcda77db592de85573bec902fb334..efe11bdec30dcdb6d48185b6809= 3ea8c247b8c3d 100644 --- a/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.yaml +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath10k.yaml @@ -107,6 +107,7 @@ properties: =20 qcom,calibration-variant: $ref: /schemas/types.yaml#/definitions/string + deprecated: true description: Unique variant identifier of the calibration data in board-2.bin for designs with colliding bus and device specific ids diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k-pci= .yaml b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k-pci.yaml index e34d42a30192b80311a4c6bb41bd3c8ffc66375f..df7d7aae3343168ffa92bcce16a= 0b429a6d7bfef 100644 --- a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k-pci.yaml +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k-pci.yaml @@ -24,6 +24,7 @@ properties: =20 qcom,calibration-variant: $ref: /schemas/types.yaml#/definitions/string + deprecated: true description: | string to uniquely identify variant of the calibration data for desi= gns with colliding bus and device ids @@ -139,8 +140,6 @@ examples: vddrfa0p8-supply =3D <&vreg_pmu_rfa_0p8>; vddrfa1p2-supply =3D <&vreg_pmu_rfa_1p2>; vddrfa1p8-supply =3D <&vreg_pmu_rfa_1p7>; - - qcom,calibration-variant =3D "LE_X13S"; }; }; }; diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yam= l b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml index c089677702cf17f3016b054d21494d2a7706ce5d..45ae5d3ca73b75b0755466f4dd9= 2df1625dcb4c1 100644 --- a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml @@ -43,6 +43,7 @@ properties: =20 qcom,calibration-variant: $ref: /schemas/types.yaml#/definitions/string + deprecated: true description: string to uniquely identify variant of the calibration data in the board-2.bin for designs with colliding bus and device specific ids diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath12k-wsi= .yaml b/Documentation/devicetree/bindings/net/wireless/qcom,ath12k-wsi.yaml index 589960144fe1d56eb6f15f63a2d594210e045d27..cd6604eab5f3608811805d204a4= c59ce1dcc060a 100644 --- a/Documentation/devicetree/bindings/net/wireless/qcom,ath12k-wsi.yaml +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath12k-wsi.yaml @@ -54,6 +54,7 @@ properties: =20 qcom,calibration-variant: $ref: /schemas/types.yaml#/definitions/string + deprecated: true description: String to uniquely identify variant of the calibration data for desi= gns with colliding bus and device ids @@ -110,8 +111,6 @@ examples: compatible =3D "pci17cb,1109"; reg =3D <0x0 0x0 0x0 0x0 0x0>; =20 - qcom,calibration-variant =3D "RDP433_1"; - ports { #address-cells =3D <1>; #size-cells =3D <0>; @@ -146,7 +145,6 @@ examples: compatible =3D "pci17cb,1109"; reg =3D <0x0 0x0 0x0 0x0 0x0>; =20 - qcom,calibration-variant =3D "RDP433_2"; qcom,wsi-controller; =20 ports { @@ -183,8 +181,6 @@ examples: compatible =3D "pci17cb,1109"; reg =3D <0x0 0x0 0x0 0x0 0x0>; =20 - qcom,calibration-variant =3D "RDP433_3"; - ports { #address-cells =3D <1>; #size-cells =3D <0>; diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ipq5332-wi= fi.yaml b/Documentation/devicetree/bindings/net/wireless/qcom,ipq5332-wifi.= yaml index 363a0ecb6ad97c3dce72881ff552d238d08a2c12..1e6ff8e7a6c20cbe4abe31cacd8= b25a78af05f4c 100644 --- a/Documentation/devicetree/bindings/net/wireless/qcom,ipq5332-wifi.yaml +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ipq5332-wifi.yaml @@ -151,6 +151,7 @@ properties: =20 qcom,calibration-variant: $ref: /schemas/types.yaml#/definitions/string + deprecated: true description: String to uniquely identify variant of the calibration data for desi= gns with colliding bus and device ids @@ -304,7 +305,6 @@ examples: =20 memory-region =3D <&q6_region>, <&m3_dump>, <&q6_caldb>, <&mlo_mem= >; memory-region-names =3D "q6-region", "m3-dump", "q6-caldb", "mlo-g= lobal-mem"; - qcom,calibration-variant =3D "RDP441_1"; qcom,rproc =3D <&q6v5_wcss>; qcom,smem-states =3D <&wcss_smp2p_out 8>, <&wcss_smp2p_out 9>, --=20 2.48.1