From nobody Wed Apr 1 12:37:30 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 0F8633A7824 for ; Mon, 30 Mar 2026 20:39: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=1774903189; cv=none; b=IeqbhoNbbFP/19DVOJc3S+79bcxNGLlTOWtxeisTRULQUEEoqlviyQYUmvBeAKo+Asef8GhWAVYzw6KT8xAuIUCuVyzgFgXNA08awSK69zAoX4n3bYaOIag9+yHFq2b/9QtBkIoPON2LdhrQORw0h5dukKf+yWMcWuvNs/rspng= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774903189; c=relaxed/simple; bh=nrvVvbe04rz89echh+gNgVl/hbrlbKXffD7YlpyqvWM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CywWS218meMetD4goxqMdu6PeFv6Wu3NNEyDrr10pQ4C0ykmf1YWqdAJVPdsx4c/RWDAbIkbs4nsnerY+Ww2QZu3yzJNXx+RURiCblEpEcWwNb4LWcuz7boMoVPa70mIO97wuca0FFb9GldjFb8EjwDcRSmV45fdX5Td1xoWyAM= 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=ETAEACna; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=LXu5PYUM; 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="ETAEACna"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="LXu5PYUM" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62UG6ZQA2723196 for ; Mon, 30 Mar 2026 20:39: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=ETAEACnauPpy6SGw 6GjCMXQ4lCkR4iR2zQwYAg4wbKOLuSHa0+i7sPhr+gVYR4hbEQIMD62ZQlLsU7s8 MK7I1Aq7fC++yavzQFAisOxdgNcydIYBieS8IfUeAyOuKLnS7zAl/bBJkvQbVD/8 OHhfDG0ODfb1P7aLjsCZEh9AEfVR12ZZ9mU3+9yFJ1jzChABzg2u5XHDRYrUJSVc labKCTAMNzbwSLI7JFdO5FEf9YEToEWB1XtkXOu5NTapkirW9wFdXqjMr7i0+RSZ L8ersC3y8RitliWZvqeSEDtyL0DoVO+2WEct6ISM8kXBUFSVv5J9CKYbzgNvLQ5q 1eKiog== 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 4d7qt0j9qs-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 30 Mar 2026 20:39:40 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2b0b0aae381so65184135ad.2 for ; Mon, 30 Mar 2026 13:39:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774903180; x=1775507980; 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=LXu5PYUMnqMi8par/3ZMPsu/QigyOo8GjUfs4hKLXLZOhMCOH7mCKR22zTRTizdRLZ 38mFItaCul/inNwh0OdFxpPr2wKfWB0eGVxHPTQp6RWiByjeKecY0yE/tRW84pGGclYA CSz3l0xhvfY/P963qJdPiGYlG6WYO6YCGQ6IMJufymCshKpdIK0UIUD8Mv1r3fY/RAHM +kPiaelWH96iFOaHEImA2AMfO9RNRw82FbrL2Af3l3rTPft9GUjiL/QqaMlm9InFcG+S lcx50QOiOPf8/gIw/GJ39CCQP3IfOxI/pvRt/RKhLOB6Il338rnRIIgdPKDsOkefhTtM Punw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774903180; x=1775507980; 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=onjgjlzd04JHToVLBPGugUI8g+GTMd/Nz5V/HyxOoheyNA0OOFatq5RCje+6Q5SQKz 3PqCswy5Y/5iEPALQRcsgKcHXwnCIeITITWWtDVgWtq4e9+R924hUieUXFo4CEdPntwF fWlyy33/h6jZgh6I94wFKbZ7zotAqmLLJDCmO3E3kF3X5CI6p+7jszg18PxPee/y/Skw 4tw2I8HmQtJgTgN8gEBQVxpf80UDVM8mAC01r8Cvu21Y/Di1ZAIK2bCqxpeauLzNPnRV QKrWKl2VzHcjD6qfX3Ihgp5EoyjKhmMmI3ZD9muYjhxweiwP2oe6CsOj5zJiVbr7KxJY REmA== X-Forwarded-Encrypted: i=1; AJvYcCXBBKdwtZ0EQ/NdzlTd1C0NfH7Djjg6lucTUPLdm1htYlNAiscsWaDdJ/Y2JHFxWpyjDZB5t2Rp5nnptUY=@vger.kernel.org X-Gm-Message-State: AOJu0YyUnMCnNP7PHz3ObsfBT+PwIz5ojbw1eH6ztmb4263su85PjJj5 4glk9N3itPuiOGJwZ+e+av4Wl4isFEddmQY5jO0g3UJtoD+qAkP+M6AZZEw62yGqh+xN5j2h15N ijf+WQ8R4nyTx8UmwUxcqP/vCIAvG45iQCI2vnmHv3WUXlpoU688BPPfrYsBLavR+h78= X-Gm-Gg: ATEYQzyG5Quj/6aXNrh2p8Enny1eqZp7eNO0BR/m7uoluO+21R8ih3Z7LUBjNZAu/M1 2VjBAxpUvn0I2XSjLQoB9I6/iaIgPgRfkZ9oUNqNI7y/adiTevVytiamZwlHYapAxHoHnjCfFDX QN6Yic5C/rlMMuPmhFd7gDZ0mTUNDPxVaCGaZpVpqmJQYmBjVEdxLZH02R1+EYpnJn87fBDe1P/ 0sGNG8DDTMWWzGqubQ2nZ+ux2KgNhZzR3ifhzTmXrVV77IvArioPB+ZQohCoTX5rIhD+4lvw/xA Jia8PFIrhqQ6EhOE6UeeML/zBzRmG7H7/7Xks93mOiNGrgfa3R4KTRa8Ut+J4SXQ/1t7mRVQbxW SGSVqcoUZfX8E2IbLtwx9gBUuPEHtDx4h5c8tuGt9BU+x8t9AEQqwQWd9q7qEIb7MJpLmgIvFco iWqeM9gEcvbSsvGY6VQdrVg/fyO+TLbLDvkOcSzzs= X-Received: by 2002:a17:903:3d0f:b0:2b0:49e6:9622 with SMTP id d9443c01a7336-2b0cdcde5ecmr136744585ad.37.1774903179920; Mon, 30 Mar 2026 13:39:39 -0700 (PDT) X-Received: by 2002:a17:903:3d0f:b0:2b0:49e6:9622 with SMTP id d9443c01a7336-2b0cdcde5ecmr136744345ad.37.1774903179465; Mon, 30 Mar 2026 13:39: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 d9443c01a7336-2b2427c3a4esm113517195ad.78.2026.03.30.13.39.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2026 13:39:39 -0700 (PDT) From: Raj Kumar Bhagat Date: Tue, 31 Mar 2026 02:09:11 +0530 Subject: [PATCH ath-next v3 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: <20260331-ath12k-ipq5424-v3-6-1455b9cae29c@oss.qualcomm.com> References: <20260331-ath12k-ipq5424-v3-0-1455b9cae29c@oss.qualcomm.com> In-Reply-To: <20260331-ath12k-ipq5424-v3-0-1455b9cae29c@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.15.1 X-Authority-Analysis: v=2.4 cv=XN09iAhE c=1 sm=1 tr=0 ts=69cadf8c cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=Ou0eQOY4+eZoSc0qltEV5Q==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=COk6AnOGAAAA:8 a=x73wdjvOoWb_6dWcbhYA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 a=TjNXssC_j7lpFel5tvFf:22 X-Proofpoint-GUID: kYkKxsSx6jW4rf41Rjj_CMJY2M4qVzsf X-Proofpoint-ORIG-GUID: kYkKxsSx6jW4rf41Rjj_CMJY2M4qVzsf X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzMwMDE3NCBTYWx0ZWRfX+TeWtHWZdxJq eIs9sWvPJ9Kqehs5n70aeoygyxLw80y5BSwcaJVMCc/FP3N4lBfNuq52ImEFcBzkvdhWnMrIrpY BhLFjCZdA6BosMpmGO0l8mBJEB9N0AW99I5pmTO3bpIEWs1KcIfLt+33TYcyioBiciaeG2AQOwJ nE8JFdZ2G9IHrX13GkWfN+cf0bgJT/QK23idbyKhYP3SyqBp8Lq1kVstCU7PS2LVagtKkkds4up 7Ne526bmkKI5QKOkFfazm4MxHMAO9edhXuvMEabeGFK4Y0/7pGq8AW79UV/oVg3n8QWlnvkV4So w56NJKN82DIOQdTF8vM8FtQqxwwhKWvOp6lEZk32pnVSkDbgcnE7ajJbaFhaOpeO8IuYz/bCBuz /LTX81LZsohtVcOzBl1Xg1iC2FabSdKEpWhxHKmZqmphDM7wDlsPYnSqzdFOBsUkGIZ1V5JlalN oNh+AKmuevFiFqzWvAQ== 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-03-30_01,2026-03-28_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 priorityscore=1501 phishscore=0 impostorscore=0 lowpriorityscore=0 spamscore=0 suspectscore=0 bulkscore=0 malwarescore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603300174 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