From nobody Sat Apr 4 01:36:50 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 F16A4362149 for ; Thu, 2 Apr 2026 03:54:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775102083; cv=none; b=SEsPChXsOPxfl3Tl78tKefH64GUG8GtRLLqBnJajshecPvgans4eDHrWD3QmFdfoa3c51omGb7N6Zr1PJ48m2s9ExsmBoQ+WXuJrAWaZ7yGUWl7KN84XUn9bmKl392YcMOzuC3tIFyYQtxq09hZJN+eXo8hLq2SeL0ZyyCBw2ig= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775102083; c=relaxed/simple; bh=nrvVvbe04rz89echh+gNgVl/hbrlbKXffD7YlpyqvWM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=K0canT85Ze3sJUkrTGBN6wm8pQwOF/F1aPcAOop5UpOujBScYUyhe+0KcdMMwL4fLTsbFqElYwZBMXAvPLnBi5x8FA/wFs9hguGK04f43brnV2JdW/Am1LzFs1ecOioe6ps29QX+NoxTG8EL3jNgCILfjmbr10wM9QFt7kv57fI= 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=RR+AEfH0; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=P3Iy8YTS; arc=none smtp.client-ip=205.220.168.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="RR+AEfH0"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="P3Iy8YTS" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 631M47lA4009504 for ; Thu, 2 Apr 2026 03:54:41 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= i/MVEIY36FHTkZc/aDnAH9tjdCOidmJdEoxNpNn+WXI=; b=RR+AEfH03aPwBl/v ES/B2b5UjUscjQpF07y6B94d8FnFQbIKaExqShAvSdkJy7Es2JnBnyd9BBwKO/DK 3CKpA2NhQqrE5ogwg8epS2Fz/LDGHbEbswOB9+F9Y9PLh3NZtYFfDnRu/nu5UCPk okO2EE4phComAe0fifgCB1tlLfmU9I2wW5s6zaeuR6z67VLXV7Tt9vsLukhODekB yJ6qvRz9ktPamC+Qkv9ChSusgW7+e92AHIcpYHPOzFTgbjNcLDWsDbr7jbkKddcp sIJGbC2gMr5F+T1cH+ifcG3kbYsQ4XefIgxFVfWOw5pEZIXQWPqZDX4C2aYGD2UF IBD3FA== 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 4d97e01xd2-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 02 Apr 2026 03:54:41 +0000 (GMT) Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-c76b0e04285so159057a12.3 for ; Wed, 01 Apr 2026 20:54:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775102080; x=1775706880; 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=i/MVEIY36FHTkZc/aDnAH9tjdCOidmJdEoxNpNn+WXI=; b=P3Iy8YTS4xLNIlyz7QTLrt8s0hH+ATfE/J2jcub8xV+DrhqYxv6ePXDEiwhiU09/Tn 05epO6pXE+C3jsLJ09r08vbdbypUW5HylLvGNxRBPQBSbRqLYNhgg8vULwr/U5yxanXf OjJUoerNoELJXrd6SSIeXC3mn/dt6z31e3OcywUsZx9zND4Eg2ogFI3qSl90o/milwXX lXidMNmVi7FNxaNpNGYwtFfkL3nYxGOpTfVLWBFHS89/0J1pTk1xdmu4xVMkAZYkg1sa stiXrfDY0MWok9Rr2I5Xe1v32u83yd7/6hzXq+JQJECvaCJUxRlOU05V8psf6sG5FQmt kBYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775102080; x=1775706880; 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=i/MVEIY36FHTkZc/aDnAH9tjdCOidmJdEoxNpNn+WXI=; b=M+8KNLrRtkYqFOLNfj+BudCjAbLZKuSqe95JOKqv5bQHvRyxqle6Kk02ylbUT6awx/ qelf4efSWWq/JTukUukldKce0vfWMFgTNhqVZ+lNNGdYpzt7MfUwCDAukqYjDV58Nq5m 8zvHfWgw55P4iCqtZHtQUNrYZdtBG66DTesxQAznB/iXPxiJ+/4YjhJOZ1udSXyIv5NN 2wNmZaieG87qT1U9rzwPuuWxg/D9QnbErITolSw0ehaw0yfLQ32SXXdZCllhInaupo8S 8ZPi5xUSyAASgHZFX1YN7paSdpbSSiHq2557XnOEZf6xvgGz43UCT/JDS4bUoVVNqvDM Bx0A== X-Forwarded-Encrypted: i=1; AJvYcCXCjH68BWSsOYkoVRhY2o2L8PaeU6alfMtzxcYFtn2AM7AVliBkcb4xd9hVT5M2Kd0wCJVwxWZ/v+J3COw=@vger.kernel.org X-Gm-Message-State: AOJu0Yw+hjgIVezuhnzBGsGaN0P/mHvWA2lkiNfrQXguNKtrF3d91Xz6 04OxFIj+tyLWZcHYEBGYnzBRZmnoBwcl9r5KoJJNvG4cKuV25umsbCt2iXL89q9596CioEvJ/hJ 9Fyucbh2wEfJcGgvDS+GE29uKqcBr6SfcibIvyQB8hd1HEzuhAQtficZqEfwCaERr85TMJKyyq8 0= X-Gm-Gg: ATEYQzwTMtTfKPqWC69h08pjxU6PqoiyhpPE97OKnPrD5qNPihXq2R0aowNbalrggcH HD/jp2W4j9iKh9eXEDmxE/TaJ6CzTJI2jQPLxrUzZ0JTEzFJYio94emWvsQgAM+x6u8FBp80TVw o4q+97mJhp2BkwAZWzD5cmttFAMovvNm+pNTT3KZl6IHe2ZX9Jn2NVENC29AkLPJoZWe69/hfrj uzgW52YLjerb2D9oEBmK8NOX7SGrcdfaG+KRxlOwYQIDGnHKwsv+3Cs1elhQ9pFEEFD/azeZoXk Et3wyUcWq8HnZdNpC/oopIgzCtgZtO+Z5O2z7ejYtP+7SqJgl6zLupAJ7RiRqaIHxmgXA9OndIQ xY3Fb4Hkn2U/5flxOnHNcB4p9F68pCMGBKTNSgM0ALdG4fn0InT1KOwCIhshhNaZJzIsj3qgR+s d8aIFNyWoAYeZAe+bmilcngFsbo/cE4GBDAm5JETg= X-Received: by 2002:a05:6a00:2d82:b0:82c:e816:4135 with SMTP id d2e1a72fcca58-82cfb9c0d13mr1887463b3a.47.1775102080222; Wed, 01 Apr 2026 20:54:40 -0700 (PDT) X-Received: by 2002:a05:6a00:2d82:b0:82c:e816:4135 with SMTP id d2e1a72fcca58-82cfb9c0d13mr1887430b3a.47.1775102079627; Wed, 01 Apr 2026 20:54:39 -0700 (PDT) Received: from hu-rajkbhag-blr.qualcomm.com (blr-bdr-fw-01_GlobalNAT_AllZones-Outside.qualcomm.com. [103.229.18.19]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82cf9b272bdsm1456189b3a.12.2026.04.01.20.54.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Apr 2026 20:54:39 -0700 (PDT) From: Raj Kumar Bhagat Date: Thu, 02 Apr 2026 09:24:04 +0530 Subject: [PATCH ath-next v4 6/6] wifi: ath12k: Enable IPQ5424 WiFi device support 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: <20260402-ath12k-ipq5424-v4-6-cd1e0f0a6c88@oss.qualcomm.com> References: <20260402-ath12k-ipq5424-v4-0-cd1e0f0a6c88@oss.qualcomm.com> In-Reply-To: <20260402-ath12k-ipq5424-v4-0-cd1e0f0a6c88@oss.qualcomm.com> To: Johannes Berg , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Jeff Johnson Cc: linux-wireless@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, ath12k@lists.infradead.org, Raj Kumar Bhagat , Sowmiya Sree Elavalagan , Saravanakumar Duraisamy X-Mailer: b4 0.14.3 X-Authority-Analysis: v=2.4 cv=fdGgCkQF c=1 sm=1 tr=0 ts=69cde881 cx=c_pps a=oF/VQ+ItUULfLr/lQ2/icg==:117 a=Ou0eQOY4+eZoSc0qltEV5Q==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=COk6AnOGAAAA:8 a=x73wdjvOoWb_6dWcbhYA:9 a=QEXdDO2ut3YA:10 a=3WC7DwWrALyhR5TkjVHa:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-ORIG-GUID: HGTY2w4uMRr4kJW1SKXbnPlBFlUAH1w1 X-Proofpoint-GUID: HGTY2w4uMRr4kJW1SKXbnPlBFlUAH1w1 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAyMDAzMSBTYWx0ZWRfX7zdY2Uf1ML/C 6EWlRPziDfbbcRg1jikjdrU7i3Rr0omO40IgETXo2N+mLom3pBz4H6wtKUKgI4dKsX6Wrw4w+m5 AGpuw6O0tXcMGPXF/YQhmhV2NBsxTQZv+AswD29U4INQMl2J25a4bdiZ1iUAeg+RK8zVih9mnv4 J+ewJloHFJP4iGYisTQc6s4n7iyCCpMzf8uLYRTiW2dK3U2Pu5mxTGGAZW1KQ9PCYIxsSfKVlYF 3yXyI7HlUqB9FsAzHC7OzkGLKlMmaZmgCZEzzhgiagRED+Qhn56o3ePYTs2ADsRM5v48zQycAuU lPzJlDfOVn1KvfFOuskxEyQcYtbh+QR0bE8hoGwhTlJASM8k5UMNLJK2NOR0ymCv3Ugc5OvaLam m8RE6zKafmjVIGe76SKDxwi6HeplYgqaScXFlUTzmGAvdUeVWz2sdhoQelzsbCJG/Na58rKqa6a VVT7nzUKKpufp+orvTQ== 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-04-02_01,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 adultscore=0 malwarescore=0 impostorscore=0 bulkscore=0 phishscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604020031 From: Sowmiya Sree Elavalagan Currently, ath12k AHB (in IPQ5332) uses SCM calls to authenticate the firmware image to bring up userpd. From IPQ5424 onwards, Q6 firmware can directly communicate with the Trusted Management Engine - Lite (TME-L), eliminating the need for SCM calls for userpd bring-up. Hence, to enable IPQ5424 device support, use qcom_mdt_load_no_init() and skip the SCM call as Q6 will directly authenticate the userpd firmware. Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.6-01243-QCAHKSWPL_SILICONZ-1 Tested-on: IPQ5332 hw1.0 AHB WLAN.WBE.1.6-01275-QCAHKSWPL_SILICONZ-1 Tested-on: IPQ5424 hw1.0 AHB WLAN.WBE.1.6-01275-QCAHKSWPL_SILICONZ-1 Signed-off-by: Sowmiya Sree Elavalagan Co-developed-by: Saravanakumar Duraisamy Signed-off-by: Saravanakumar Duraisamy Co-developed-by: Raj Kumar Bhagat Signed-off-by: Raj Kumar Bhagat --- drivers/net/wireless/ath/ath12k/ahb.c | 36 ++++++++++++++++++-------= ---- drivers/net/wireless/ath/ath12k/ahb.h | 1 + drivers/net/wireless/ath/ath12k/wifi7/ahb.c | 8 +++++++ 3 files changed, 31 insertions(+), 14 deletions(-) diff --git a/drivers/net/wireless/ath/ath12k/ahb.c b/drivers/net/wireless/a= th/ath12k/ahb.c index 9a4d34e49104..2dcf0a52e4c1 100644 --- a/drivers/net/wireless/ath/ath12k/ahb.c +++ b/drivers/net/wireless/ath/ath12k/ahb.c @@ -382,8 +382,12 @@ static int ath12k_ahb_power_up(struct ath12k_base *ab) ATH12K_AHB_UPD_SWID; =20 /* Load FW image to a reserved memory location */ - ret =3D qcom_mdt_load(dev, fw, fw_name, pasid, mem_region, mem_phys, mem_= size, - &mem_phys); + if (ab_ahb->scm_auth_enabled) + ret =3D qcom_mdt_load(dev, fw, fw_name, pasid, mem_region, + mem_phys, mem_size, &mem_phys); + else + ret =3D qcom_mdt_load_no_init(dev, fw, fw_name, mem_region, + mem_phys, mem_size, &mem_phys); if (ret) { ath12k_err(ab, "Failed to load MDT segments: %d\n", ret); goto err_fw; @@ -414,11 +418,13 @@ static int ath12k_ahb_power_up(struct ath12k_base *ab) goto err_fw2; } =20 - /* Authenticate FW image using peripheral ID */ - ret =3D qcom_scm_pas_auth_and_reset(pasid); - if (ret) { - ath12k_err(ab, "failed to boot the remote processor %d\n", ret); - goto err_fw2; + if (ab_ahb->scm_auth_enabled) { + /* Authenticate FW image using peripheral ID */ + ret =3D qcom_scm_pas_auth_and_reset(pasid); + if (ret) { + ath12k_err(ab, "failed to boot the remote processor %d\n", ret); + goto err_fw2; + } } =20 /* Instruct Q6 to spawn userPD thread */ @@ -475,13 +481,15 @@ static void ath12k_ahb_power_down(struct ath12k_base = *ab, bool is_suspend) =20 qcom_smem_state_update_bits(ab_ahb->stop_state, BIT(ab_ahb->stop_bit), 0); =20 - pasid =3D (u32_encode_bits(ab_ahb->userpd_id, ATH12K_USERPD_ID_MASK)) | - ATH12K_AHB_UPD_SWID; - /* Release the firmware */ - ret =3D qcom_scm_pas_shutdown(pasid); - if (ret) - ath12k_err(ab, "scm pas shutdown failed for userPD%d: %d\n", - ab_ahb->userpd_id, ret); + if (ab_ahb->scm_auth_enabled) { + pasid =3D (u32_encode_bits(ab_ahb->userpd_id, ATH12K_USERPD_ID_MASK)) | + ATH12K_AHB_UPD_SWID; + /* Release the firmware */ + ret =3D qcom_scm_pas_shutdown(pasid); + if (ret) + ath12k_err(ab, "scm pas shutdown failed for userPD%d\n", + ab_ahb->userpd_id); + } } =20 static void ath12k_ahb_init_qmi_ce_config(struct ath12k_base *ab) diff --git a/drivers/net/wireless/ath/ath12k/ahb.h b/drivers/net/wireless/a= th/ath12k/ahb.h index be9e31b3682d..0fa15daaa3e6 100644 --- a/drivers/net/wireless/ath/ath12k/ahb.h +++ b/drivers/net/wireless/ath/ath12k/ahb.h @@ -68,6 +68,7 @@ struct ath12k_ahb { int userpd_irq_num[ATH12K_USERPD_MAX_IRQ]; const struct ath12k_ahb_ops *ahb_ops; const struct ath12k_ahb_device_family_ops *device_family_ops; + bool scm_auth_enabled; }; =20 struct ath12k_ahb_driver { diff --git a/drivers/net/wireless/ath/ath12k/wifi7/ahb.c b/drivers/net/wire= less/ath/ath12k/wifi7/ahb.c index a6c5f7689edd..6a8b8b2a56f9 100644 --- a/drivers/net/wireless/ath/ath12k/wifi7/ahb.c +++ b/drivers/net/wireless/ath/ath12k/wifi7/ahb.c @@ -19,6 +19,9 @@ static const struct of_device_id ath12k_wifi7_ahb_of_matc= h[] =3D { { .compatible =3D "qcom,ipq5332-wifi", .data =3D (void *)ATH12K_HW_IPQ5332_HW10, }, + { .compatible =3D "qcom,ipq5424-wifi", + .data =3D (void *)ATH12K_HW_IPQ5424_HW10, + }, { } }; =20 @@ -38,6 +41,11 @@ static int ath12k_wifi7_ahb_probe(struct platform_device= *pdev) switch (hw_rev) { case ATH12K_HW_IPQ5332_HW10: ab_ahb->userpd_id =3D ATH12K_IPQ5332_USERPD_ID; + ab_ahb->scm_auth_enabled =3D true; + break; + case ATH12K_HW_IPQ5424_HW10: + ab_ahb->userpd_id =3D ATH12K_IPQ5332_USERPD_ID; + ab_ahb->scm_auth_enabled =3D false; break; default: return -EOPNOTSUPP; --=20 2.34.1