From nobody Mon Feb 9 00:55:59 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 7810B2FE04F; Fri, 14 Nov 2025 08:41:58 +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=1763109720; cv=none; b=dq+uV2KEj1dv+gTi99YhoXYbhTwJO4NDSwRNZITjTv5RMdP8fEvpYw1lta2pj3qOuQmMCE/X39ixXy8FlGZqxUazsnag8kwEI1JwcHEQ+Vwu/gGqc3oAht72iT22QsDlxJXg4gdTeajJrEjKhZIM9Hsjeu/G/62BUcGDceXEa1U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763109720; c=relaxed/simple; bh=2XMocmxfUQDLkTMG8yxn6kk4DrI/02xpfLDQ6vLdNfQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Ea21twjSNdlx3oow929S5yLbqUnAzGFMWxYwRcuuxD7zxfUme6cfYyMWh0hqasrE8dljOhwjfT2gAKXflWTKzm+raIWlZ8WaXUFXj19b+YEBUpRqb5OPXlVvDObt+WwkLWKmGYJoKCEsgZ5tv1GLjM6XcEa9hcfiInypCSN1Zy8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=GJXdfbb4; 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=qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="GJXdfbb4" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5AE8VgmB1488265; Fri, 14 Nov 2025 08:41:51 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=6lCovysLRBG s6M0LZGZMBEnAPfoDxSOQOodmHgPUmlA=; b=GJXdfbb4u34F2Uq06pmFAlxo5Jk piIcjC0j3UjJnPUHprhSQRfraDSfJ7v/PTEEDp75GxEJXVheQI1NHkw+IBpSi02j GVm7R9n4ttG9VNTepHgLLBQO/XZ+xJgC/pFLWsR76UBoYeZL44z9Z8XHXO9CwD90 K9lHnskhjQ2sz8J14XRVys1bDDpir1UTarxIVNMmG0rbVIxJkjhO2pc5sOqncqT2 C2EiMhstrxdxoMeNk0y3JT8nADoklAKnw7acPc/q8FcsYkbwLHRBoWA8sFV5s+Dz DGe2nJPmdj06xBZDBmeb1C+/jIO+nzaRTPp8MunjfU8N8UQonVUN6QRMj4Q== Received: from apblrppmta02.qualcomm.com (blr-bdr-fw-01_GlobalNAT_AllZones-Outside.qualcomm.com [103.229.18.19]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4adr9hsejq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 14 Nov 2025 08:41:50 +0000 (GMT) Received: from pps.filterd (APBLRPPMTA02.qualcomm.com [127.0.0.1]) by APBLRPPMTA02.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTP id 5AE8fmeO001452; Fri, 14 Nov 2025 08:41:48 GMT Received: from pps.reinject (localhost [127.0.0.1]) by APBLRPPMTA02.qualcomm.com (PPS) with ESMTPS id 4a9xxn3dkx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 14 Nov 2025 08:41:48 +0000 Received: from APBLRPPMTA02.qualcomm.com (APBLRPPMTA02.qualcomm.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 5AE8flTJ001446; Fri, 14 Nov 2025 08:41:47 GMT Received: from hu-devc-hyd-u22-c.qualcomm.com (hu-kpallavi-hyd.qualcomm.com [10.147.243.7]) by APBLRPPMTA02.qualcomm.com (PPS) with ESMTPS id 5AE8fl9l001443 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 14 Nov 2025 08:41:47 +0000 Received: by hu-devc-hyd-u22-c.qualcomm.com (Postfix, from userid 4720299) id 563D3534; Fri, 14 Nov 2025 14:11:46 +0530 (+0530) From: Kumari Pallavi To: kpallavi@qti.qualcomm.com, srini@kernel.org, amahesh@qti.qualcomm.com, arnd@arndb.de, gregkh@linuxfoundation.org Cc: Kumari Pallavi , quic_bkumar@quicinc.com, ekansh.gupta@oss.qualcomm.com, linux-kernel@vger.kernel.org, quic_chennak@quicinc.com, dri-devel@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, jingyi.wang@oss.qualcomm.com, aiqun.yu@oss.qualcomm.com, ktadakam@qti.qualcomm.com Subject: [PATCH v3 1/4] dt-bindings: misc: qcom,fastrpc: Add compatible for Kaanapali Date: Fri, 14 Nov 2025 14:11:39 +0530 Message-Id: <20251114084142.3386682-2-kumari.pallavi@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251114084142.3386682-1-kumari.pallavi@oss.qualcomm.com> References: <20251114084142.3386682-1-kumari.pallavi@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: quoted-printable X-QCInternal: smtphost X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: i-tCi5JyHv_C8uccPXBYjw0ToBAWsq_O X-Proofpoint-ORIG-GUID: i-tCi5JyHv_C8uccPXBYjw0ToBAWsq_O X-Authority-Analysis: v=2.4 cv=N+Qk1m9B c=1 sm=1 tr=0 ts=6916eb4e cx=c_pps a=Ou0eQOY4+eZoSc0qltEV5Q==:117 a=Ou0eQOY4+eZoSc0qltEV5Q==:17 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=Nm9LIuUv2BkR6wWcX_kA:9 a=cPQSjfK2_nFv0Q5t_7PE:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTE0MDA2OCBTYWx0ZWRfXzPL2yEKoFCk8 P26L86OuFgfi9TdarUNVmeMe+tBubZ1hmWxoSnDMjZL/2WJAOPUSvDPYF/zG0pn3MCMkM4JslSH X3nOpP81I9Ki2I9PdtMf8+fz0ODHQpLK8LddGYQjNRFDLdZEXWySIufHjmWQf2XBAWrMl7G2mJN 8NGbBNSkFAX8c+1mQL3I2Pxp6ytlNLYseYqEmOjDL1bt5zkRhWUCZotkil8ns68zRPBqEhkVdgM rtN0xldtKR1uijCFYsRcuYMMhYIEF0stngQjZjsu/UfCZuGU75mub6588r/SMB/jUKy4BcRa5L6 8IOP97shkGOj5k85MdKrc1I0uJFqznphYVWGAMEiJbRQ/M2Tl8c9QUTA+4WB6e6zizTSBxQq6eB JFCKUykNEf1V3m0mqvaiZGK/yLNJNw== 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 adultscore=0 priorityscore=1501 spamscore=0 suspectscore=0 impostorscore=0 clxscore=1015 malwarescore=0 bulkscore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511140068 Content-Type: text/plain; charset="utf-8" Add a new compatible string "qcom,kaanapali-fastrpc" to support for Kaanapali SoC. Signed-off-by: Kumari Pallavi --- Documentation/devicetree/bindings/misc/qcom,fastrpc.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/misc/qcom,fastrpc.yaml b/Doc= umentation/devicetree/bindings/misc/qcom,fastrpc.yaml index 3f6199fc9ae6..13ba91fe1176 100644 --- a/Documentation/devicetree/bindings/misc/qcom,fastrpc.yaml +++ b/Documentation/devicetree/bindings/misc/qcom,fastrpc.yaml @@ -18,7 +18,10 @@ description: | =20 properties: compatible: - const: qcom,fastrpc + items: + - enum: + - qcom,kaanapali-fastrpc + - qcom,fastrpc =20 label: enum: --=20 2.34.1 From nobody Mon Feb 9 00:55:59 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 4FBFB3002CF; Fri, 14 Nov 2025 08:42:02 +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=1763109724; cv=none; b=Q4jWTrYspLl811eXR6xl/VrU1kib5ZSIyPJj/UROrKz8R/TgrBBiTgE/ef9DOoZ63l+Caen99r7zPFmrgEtVO7KFWmu5yPCp2tVnoopS2WTn49taKx0Jcwot/0+0vM0L1wWuTOu+o4GMjTDZDJBc2fJkRIIP7Fwqwb4PybQFhjI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763109724; c=relaxed/simple; bh=UlwjWjghtLNdv4rlErmQwe94eXphtq5tvB2UkGKH214=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=DFL5pehsB+aS1pHSV+cNJQRuF115ybTOZVgUP9wqKZiw+9kpYkcTFSIDTq6ZR8oVtKlbNm2SUevPymycyo9Av9iTo4eJWxpyNsL+Kg+G/nlePTNubI/n9eSMMLI+mpFXEDfXWEBp+YwYGl9WYcLYE8d54kcDPmZPkAbw30FGF9g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=GvgGGVeT; 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=qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="GvgGGVeT" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5AE41EVX2263177; Fri, 14 Nov 2025 08:41:53 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=+VsboiF2lka zB/nrbkOVn0VqQVtGf71BQEcsJ6PhXmc=; b=GvgGGVeTokSiRER3vSk3l/FXvlu ZJQ58s/Gr9z0oanMWsWbVV5p/V8XjEU5W6DDz41qlUaZOcp4gP5x9XL3yHnEucVw xI61gFEENkYDZ2UZQ2gzeNQUCCyupq1QuKPYIW6hNM3t8yso4jCyIO2TaNssPXgs tZuYKS7AfAep/FnGFs2qbhzxNocPqaDYLbueeOSP2kZV8hXAyb6YA5dR4XlgNFib bnW8WjKqqfzVA2yddtFI1hLp3ZEaOYScaDYV3tIg2UbnrMa/VQGBiwT4d2eAJSGL X53hKTfg+hSaeqc1AAmLWaAC/9+M16MO+mdFt9cZb89UYoKgx+cDhGdJrbg== Received: from apblrppmta02.qualcomm.com (blr-bdr-fw-01_GlobalNAT_AllZones-Outside.qualcomm.com [103.229.18.19]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4adw1j0q76-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 14 Nov 2025 08:41:53 +0000 (GMT) Received: from pps.filterd (APBLRPPMTA02.qualcomm.com [127.0.0.1]) by APBLRPPMTA02.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTP id 5AE8fmUA001455; Fri, 14 Nov 2025 08:41:50 GMT Received: from pps.reinject (localhost [127.0.0.1]) by APBLRPPMTA02.qualcomm.com (PPS) with ESMTPS id 4a9xxn3dm6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 14 Nov 2025 08:41:49 +0000 Received: from APBLRPPMTA02.qualcomm.com (APBLRPPMTA02.qualcomm.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 5AE8fnxn001462; Fri, 14 Nov 2025 08:41:49 GMT Received: from hu-devc-hyd-u22-c.qualcomm.com (hu-kpallavi-hyd.qualcomm.com [10.147.243.7]) by APBLRPPMTA02.qualcomm.com (PPS) with ESMTPS id 5AE8fmNe001460 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 14 Nov 2025 08:41:49 +0000 Received: by hu-devc-hyd-u22-c.qualcomm.com (Postfix, from userid 4720299) id D9934534; Fri, 14 Nov 2025 14:11:47 +0530 (+0530) From: Kumari Pallavi To: kpallavi@qti.qualcomm.com, srini@kernel.org, amahesh@qti.qualcomm.com, arnd@arndb.de, gregkh@linuxfoundation.org Cc: Kumari Pallavi , quic_bkumar@quicinc.com, ekansh.gupta@oss.qualcomm.com, linux-kernel@vger.kernel.org, quic_chennak@quicinc.com, dri-devel@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, jingyi.wang@oss.qualcomm.com, aiqun.yu@oss.qualcomm.com, ktadakam@qti.qualcomm.com Subject: [PATCH v3 2/4] misc: fastrpc: Rename phys to dma_addr for clarity Date: Fri, 14 Nov 2025 14:11:40 +0530 Message-Id: <20251114084142.3386682-3-kumari.pallavi@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251114084142.3386682-1-kumari.pallavi@oss.qualcomm.com> References: <20251114084142.3386682-1-kumari.pallavi@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: quoted-printable X-QCInternal: smtphost X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Authority-Analysis: v=2.4 cv=Jv38bc4C c=1 sm=1 tr=0 ts=6916eb51 cx=c_pps a=Ou0eQOY4+eZoSc0qltEV5Q==:117 a=Ou0eQOY4+eZoSc0qltEV5Q==:17 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=2RPu2l_XV19vImn-r00A:9 a=cPQSjfK2_nFv0Q5t_7PE:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTE0MDA2OCBTYWx0ZWRfXzTfa9OQhF41D ehHkawbNf3hxarFF1PLt7NJUcIMWE5tQkjsAGLsRijapppzC4aPHJrF6SpME/3ueCSfxyBc8lBs QrmT8FwVg0NV5pPpFCmGH+tsFYOtA8zXcFr44yunX0R/dXwhTyrahmzsft4/3O1hN64g8XjiUNz pTKg6CyDSZbZiZQZUg+vDqvf0S0Ghw/eKsw323RKojSZ+prywUnLTit27nqiCYFu7yp1OJAz2uR ovTkOCkWUJZKdOq9nKdGfNfIfuKMftVcvE12OQSqUeqp0nEFNpXZW5/dkShceiJVarGOA8sQUR1 jM1HcWGZP2H2Tp2U0d7TuCwexu55JNSYaq2NJD2AjJkuYLCCC6Vz5Y0srS1O42WLipc28ZmJ+wm 5VZSkRVCJBdtB8t46NakSKjPX1kDhw== X-Proofpoint-ORIG-GUID: -csoRL6BBIaIERAcMOMjyqjKJq-BASiH X-Proofpoint-GUID: -csoRL6BBIaIERAcMOMjyqjKJq-BASiH 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 malwarescore=0 adultscore=0 phishscore=0 impostorscore=0 suspectscore=0 spamscore=0 lowpriorityscore=0 priorityscore=1501 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511140068 Content-Type: text/plain; charset="utf-8" Update all references of buf->phys and map->phys to buf->dma_addr and map->dma_addr to accurately represent that these fields store DMA addresses, not physical addresses. This change improves code clarity and aligns with kernel conventions for dma_addr_t usage. Signed-off-by: Kumari Pallavi --- drivers/misc/fastrpc.c | 76 ++++++++++++++++++++++-------------------- 1 file changed, 40 insertions(+), 36 deletions(-) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index ee652ef01534..d6a7960fe716 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -106,7 +106,7 @@ #define miscdev_to_fdevice(d) container_of(d, struct fastrpc_device, miscd= ev) =20 struct fastrpc_phy_page { - u64 addr; /* physical address */ + u64 addr; /* physical or dma address */ u64 size; /* size of contiguous region */ }; =20 @@ -171,7 +171,7 @@ struct fastrpc_msg { u64 ctx; /* invoke caller context */ u32 handle; /* handle to invoke */ u32 sc; /* scalars structure describing the data */ - u64 addr; /* physical address */ + u64 addr; /* physical or dma address */ u64 size; /* size of contiguous region */ }; =20 @@ -194,7 +194,7 @@ struct fastrpc_buf { struct dma_buf *dmabuf; struct device *dev; void *virt; - u64 phys; + u64 dma_addr; u64 size; /* Lock for dma buf attachments */ struct mutex lock; @@ -217,7 +217,7 @@ struct fastrpc_map { struct dma_buf *buf; struct sg_table *table; struct dma_buf_attachment *attach; - u64 phys; + u64 dma_addr; u64 size; void *va; u64 len; @@ -320,11 +320,12 @@ static void fastrpc_free_map(struct kref *ref) =20 perm.vmid =3D QCOM_SCM_VMID_HLOS; perm.perm =3D QCOM_SCM_PERM_RWX; - err =3D qcom_scm_assign_mem(map->phys, map->len, + err =3D qcom_scm_assign_mem(map->dma_addr, map->len, &src_perms, &perm, 1); if (err) { - dev_err(map->fl->sctx->dev, "Failed to assign memory phys 0x%llx size = 0x%llx err %d\n", - map->phys, map->len, err); + dev_err(map->fl->sctx->dev, + "Failed to assign memory dma_addr 0x%llx size 0x%llx err %d\n", + map->dma_addr, map->len, err); return; } } @@ -389,7 +390,7 @@ static int fastrpc_map_lookup(struct fastrpc_user *fl, = int fd, static void fastrpc_buf_free(struct fastrpc_buf *buf) { dma_free_coherent(buf->dev, buf->size, buf->virt, - FASTRPC_PHYS(buf->phys)); + FASTRPC_PHYS(buf->dma_addr)); kfree(buf); } =20 @@ -408,12 +409,12 @@ static int __fastrpc_buf_alloc(struct fastrpc_user *f= l, struct device *dev, =20 buf->fl =3D fl; buf->virt =3D NULL; - buf->phys =3D 0; + buf->dma_addr =3D 0; buf->size =3D size; buf->dev =3D dev; buf->raddr =3D 0; =20 - buf->virt =3D dma_alloc_coherent(dev, buf->size, (dma_addr_t *)&buf->phys, + buf->virt =3D dma_alloc_coherent(dev, buf->size, (dma_addr_t *)&buf->dma_= addr, GFP_KERNEL); if (!buf->virt) { mutex_destroy(&buf->lock); @@ -439,7 +440,7 @@ static int fastrpc_buf_alloc(struct fastrpc_user *fl, s= truct device *dev, buf =3D *obuf; =20 if (fl->sctx && fl->sctx->sid) - buf->phys +=3D ((u64)fl->sctx->sid << 32); + buf->dma_addr +=3D ((u64)fl->sctx->sid << 32); =20 return 0; } @@ -684,7 +685,7 @@ static int fastrpc_dma_buf_attach(struct dma_buf *dmabu= f, return -ENOMEM; =20 ret =3D dma_get_sgtable(buffer->dev, &a->sgt, buffer->virt, - FASTRPC_PHYS(buffer->phys), buffer->size); + FASTRPC_PHYS(buffer->dma_addr), buffer->size); if (ret < 0) { dev_err(buffer->dev, "failed to get scatterlist from DMA API\n"); kfree(a); @@ -733,7 +734,7 @@ static int fastrpc_mmap(struct dma_buf *dmabuf, dma_resv_assert_held(dmabuf->resv); =20 return dma_mmap_coherent(buf->dev, vma, buf->virt, - FASTRPC_PHYS(buf->phys), size); + FASTRPC_PHYS(buf->dma_addr), size); } =20 static const struct dma_buf_ops fastrpc_dma_buf_ops =3D { @@ -785,10 +786,10 @@ static int fastrpc_map_attach(struct fastrpc_user *fl= , int fd, map->table =3D table; =20 if (attr & FASTRPC_ATTR_SECUREMAP) { - map->phys =3D sg_phys(map->table->sgl); + map->dma_addr =3D sg_phys(map->table->sgl); } else { - map->phys =3D sg_dma_address(map->table->sgl); - map->phys +=3D ((u64)fl->sctx->sid << 32); + map->dma_addr =3D sg_dma_address(map->table->sgl); + map->dma_addr +=3D ((u64)fl->sctx->sid << 32); } for_each_sg(map->table->sgl, sgl, map->table->nents, sgl_index) @@ -815,10 +816,11 @@ static int fastrpc_map_attach(struct fastrpc_user *fl= , int fd, dst_perms[1].vmid =3D fl->cctx->vmperms[0].vmid; dst_perms[1].perm =3D QCOM_SCM_PERM_RWX; map->attr =3D attr; - err =3D qcom_scm_assign_mem(map->phys, (u64)map->len, &src_perms, dst_pe= rms, 2); + err =3D qcom_scm_assign_mem(map->dma_addr, (u64)map->len, &src_perms, ds= t_perms, 2); if (err) { - dev_err(sess->dev, "Failed to assign memory with phys 0x%llx size 0x%ll= x err %d\n", - map->phys, map->len, err); + dev_err(sess->dev, + "Failed to assign memory with dma_addr 0x%llx size 0x%llx err %d\n", + map->dma_addr, map->len, err); goto map_err; } } @@ -1009,7 +1011,7 @@ static int fastrpc_get_args(u32 kernel, struct fastrp= c_invoke_ctx *ctx) struct vm_area_struct *vma =3D NULL; =20 rpra[i].buf.pv =3D (u64) ctx->args[i].ptr; - pages[i].addr =3D ctx->maps[i]->phys; + pages[i].addr =3D ctx->maps[i]->dma_addr; =20 mmap_read_lock(current->mm); vma =3D find_vma(current->mm, ctx->args[i].ptr); @@ -1036,7 +1038,7 @@ static int fastrpc_get_args(u32 kernel, struct fastrp= c_invoke_ctx *ctx) goto bail; =20 rpra[i].buf.pv =3D args - ctx->olaps[oix].offset; - pages[i].addr =3D ctx->buf->phys - + pages[i].addr =3D ctx->buf->dma_addr - ctx->olaps[oix].offset + (pkt_size - rlen); pages[i].addr =3D pages[i].addr & PAGE_MASK; @@ -1068,7 +1070,7 @@ static int fastrpc_get_args(u32 kernel, struct fastrp= c_invoke_ctx *ctx) list[i].num =3D ctx->args[i].length ? 1 : 0; list[i].pgidx =3D i; if (ctx->maps[i]) { - pages[i].addr =3D ctx->maps[i]->phys; + pages[i].addr =3D ctx->maps[i]->dma_addr; pages[i].size =3D ctx->maps[i]->size; } rpra[i].dma.fd =3D ctx->args[i].fd; @@ -1150,7 +1152,7 @@ static int fastrpc_invoke_send(struct fastrpc_session= _ctx *sctx, msg->ctx =3D ctx->ctxid | fl->pd; msg->handle =3D handle; msg->sc =3D ctx->sc; - msg->addr =3D ctx->buf ? ctx->buf->phys : 0; + msg->addr =3D ctx->buf ? ctx->buf->dma_addr : 0; msg->size =3D roundup(ctx->msg_sz, PAGE_SIZE); fastrpc_context_get(ctx); =20 @@ -1306,13 +1308,14 @@ static int fastrpc_init_create_static_process(struc= t fastrpc_user *fl, if (fl->cctx->vmcount) { u64 src_perms =3D BIT(QCOM_SCM_VMID_HLOS); =20 - err =3D qcom_scm_assign_mem(fl->cctx->remote_heap->phys, + err =3D qcom_scm_assign_mem(fl->cctx->remote_heap->dma_addr, (u64)fl->cctx->remote_heap->size, &src_perms, fl->cctx->vmperms, fl->cctx->vmcount); if (err) { - dev_err(fl->sctx->dev, "Failed to assign memory with phys 0x%llx size = 0x%llx err %d\n", - fl->cctx->remote_heap->phys, fl->cctx->remote_heap->size, err); + dev_err(fl->sctx->dev, + "Failed to assign memory with dma_addr 0x%llx size 0x%llx err %d\n", + fl->cctx->remote_heap->dma_addr, fl->cctx->remote_heap->size, err); goto err_map; } scm_done =3D true; @@ -1332,7 +1335,7 @@ static int fastrpc_init_create_static_process(struct = fastrpc_user *fl, args[1].length =3D inbuf.namelen; args[1].fd =3D -1; =20 - pages[0].addr =3D fl->cctx->remote_heap->phys; + pages[0].addr =3D fl->cctx->remote_heap->dma_addr; pages[0].size =3D fl->cctx->remote_heap->size; =20 args[2].ptr =3D (u64)(uintptr_t) pages; @@ -1361,12 +1364,12 @@ static int fastrpc_init_create_static_process(struc= t fastrpc_user *fl, =20 dst_perms.vmid =3D QCOM_SCM_VMID_HLOS; dst_perms.perm =3D QCOM_SCM_PERM_RWX; - err =3D qcom_scm_assign_mem(fl->cctx->remote_heap->phys, + err =3D qcom_scm_assign_mem(fl->cctx->remote_heap->dma_addr, (u64)fl->cctx->remote_heap->size, &src_perms, &dst_perms, 1); if (err) - dev_err(fl->sctx->dev, "Failed to assign memory phys 0x%llx size 0x%llx= err %d\n", - fl->cctx->remote_heap->phys, fl->cctx->remote_heap->size, err); + dev_err(fl->sctx->dev, "Failed to assign memory dma_addr 0x%llx size 0x= %llx err %d\n", + fl->cctx->remote_heap->dma_addr, fl->cctx->remote_heap->size, err); } err_map: fastrpc_buf_free(fl->cctx->remote_heap); @@ -1455,7 +1458,7 @@ static int fastrpc_init_create_process(struct fastrpc= _user *fl, args[2].length =3D inbuf.filelen; args[2].fd =3D init.filefd; =20 - pages[0].addr =3D imem->phys; + pages[0].addr =3D imem->dma_addr; pages[0].size =3D imem->size; =20 args[3].ptr =3D (u64)(uintptr_t) pages; @@ -1913,7 +1916,7 @@ static int fastrpc_req_mmap(struct fastrpc_user *fl, = char __user *argp) args[0].ptr =3D (u64) (uintptr_t) &req_msg; args[0].length =3D sizeof(req_msg); =20 - pages.addr =3D buf->phys; + pages.addr =3D buf->dma_addr; pages.size =3D buf->size; =20 args[1].ptr =3D (u64) (uintptr_t) &pages; @@ -1941,11 +1944,12 @@ static int fastrpc_req_mmap(struct fastrpc_user *fl= , char __user *argp) if (req.flags =3D=3D ADSP_MMAP_REMOTE_HEAP_ADDR && fl->cctx->vmcount) { u64 src_perms =3D BIT(QCOM_SCM_VMID_HLOS); =20 - err =3D qcom_scm_assign_mem(buf->phys, (u64)buf->size, + err =3D qcom_scm_assign_mem(buf->dma_addr, (u64)buf->size, &src_perms, fl->cctx->vmperms, fl->cctx->vmcount); if (err) { - dev_err(fl->sctx->dev, "Failed to assign memory phys 0x%llx size 0x%llx= err %d", - buf->phys, buf->size, err); + dev_err(fl->sctx->dev, + "Failed to assign memory dma_addr 0x%llx size 0x%llx err %d", + buf->dma_addr, buf->size, err); goto err_assign; } } @@ -2059,7 +2063,7 @@ static int fastrpc_req_mem_map(struct fastrpc_user *f= l, char __user *argp) args[0].ptr =3D (u64) (uintptr_t) &req_msg; args[0].length =3D sizeof(req_msg); =20 - pages.addr =3D map->phys; + pages.addr =3D map->dma_addr; pages.size =3D map->len; =20 args[1].ptr =3D (u64) (uintptr_t) &pages; --=20 2.34.1 From nobody Mon Feb 9 00:55:59 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 631C52FE04F; Fri, 14 Nov 2025 08:42:02 +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=1763109725; cv=none; b=Mmovb0rD72c/aGp4dxk1OI1TUN5P0I0CcvSaPN520o8a6pxROveu8zM3dSDr3CDXV9N7jTw5h3qdYcM5kHf0YWu8IlZ7e0XUHhoyzC5/uDgm3XUbMSfgkULl3ld66jjL4OliyuEwdV5vXZQSzRxsvPWTjmpqLKgiHgE5Ro+aWW4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763109725; c=relaxed/simple; bh=xqh1PGbSktcu1rRVxMikpD77A97eiExQQTvYxP8flDQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=K1lM1/PNtg0Mii0fgwkzyu368svdLw1PxNJMnFEYaRm29OPaM6t6cpzUFtyJswz5fPY6GpjqDrJvQcANaEIkvhCfdOooKxR3d6a7emHqRSloAc5Tc01DZtGl2Tq4CtrstJmNnfq7LQZMmYqPnqRcel4/Syvwz0F4q3TN9QN7Xc0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=nhm5hrYk; 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=qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="nhm5hrYk" 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 5AE8T7Gw1595897; Fri, 14 Nov 2025 08:41:54 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=J4ZWsQG2t13 Qf04qjd/yY/QujuoMGp7M2ND0bS3hTSM=; b=nhm5hrYkpZfSRnjdKLevUFeizeJ mMLcKt9XBSGVWvtpQ4/Mo7VyE8h/2o38L4fWZMHJ40ywcaqmMFWDuoY7+D2zBDu6 t7r5GQwnnsWV8udkruNe5vuftpg/stxl2j2z2WYow4MRQhZJ3ds3hW43ve0wBdIC R281N6fOmK1EhFb3XIi4KSKV+NEvm/foZfn9ML4WcrXQB4kEhi4vHPt+au0Yiqv6 nryY+TNene8vgdgGy4JukoUc51646DD3rWmZUU0vGVoid0NsJ2CIVYp9/N7A/wWZ z0D53aSqITE0AGwigrYE9gKyUNW+8ZZpuqKWhJBeyg46K57L5ji09yicHyw== Received: from apblrppmta02.qualcomm.com (blr-bdr-fw-01_GlobalNAT_AllZones-Outside.qualcomm.com [103.229.18.19]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4adr9fsfuj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 14 Nov 2025 08:41:54 +0000 (GMT) Received: from pps.filterd (APBLRPPMTA02.qualcomm.com [127.0.0.1]) by APBLRPPMTA02.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTP id 5AE8fkbF001442; Fri, 14 Nov 2025 08:41:50 GMT Received: from pps.reinject (localhost [127.0.0.1]) by APBLRPPMTA02.qualcomm.com (PPS) with ESMTPS id 4a9xxn3dmc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 14 Nov 2025 08:41:50 +0000 Received: from APBLRPPMTA02.qualcomm.com (APBLRPPMTA02.qualcomm.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 5AE8foJC001473; Fri, 14 Nov 2025 08:41:50 GMT Received: from hu-devc-hyd-u22-c.qualcomm.com (hu-kpallavi-hyd.qualcomm.com [10.147.243.7]) by APBLRPPMTA02.qualcomm.com (PPS) with ESMTPS id 5AE8fn7r001467 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 14 Nov 2025 08:41:50 +0000 Received: by hu-devc-hyd-u22-c.qualcomm.com (Postfix, from userid 4720299) id 14760576; Fri, 14 Nov 2025 14:11:49 +0530 (+0530) From: Kumari Pallavi To: kpallavi@qti.qualcomm.com, srini@kernel.org, amahesh@qti.qualcomm.com, arnd@arndb.de, gregkh@linuxfoundation.org Cc: Kumari Pallavi , quic_bkumar@quicinc.com, ekansh.gupta@oss.qualcomm.com, linux-kernel@vger.kernel.org, quic_chennak@quicinc.com, dri-devel@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, jingyi.wang@oss.qualcomm.com, aiqun.yu@oss.qualcomm.com, ktadakam@qti.qualcomm.com Subject: [PATCH v3 3/4] misc: fastrpc: Add support for new DSP IOVA formatting Date: Fri, 14 Nov 2025 14:11:41 +0530 Message-Id: <20251114084142.3386682-4-kumari.pallavi@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251114084142.3386682-1-kumari.pallavi@oss.qualcomm.com> References: <20251114084142.3386682-1-kumari.pallavi@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: quoted-printable X-QCInternal: smtphost X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Authority-Analysis: v=2.4 cv=SdD6t/Ru c=1 sm=1 tr=0 ts=6916eb52 cx=c_pps a=Ou0eQOY4+eZoSc0qltEV5Q==:117 a=Ou0eQOY4+eZoSc0qltEV5Q==:17 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=-4e2_yvRbxqkDXL5fRYA:9 a=cPQSjfK2_nFv0Q5t_7PE:22 X-Proofpoint-GUID: XbyKJeKSxhWXX_ugCP-kr85FQahxskJg X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTE0MDA2OCBTYWx0ZWRfX7qH/j1z9YbRz C1iCTPPShBMsRg4iZX/+G0+QZSklZyG0TGE/Ak/kXjknBESfsxI5t12XrM/Z4qW0ephL3xoC4FQ 4OhRneUsL/DT9LIFaMJ1Qx9kOBHKQuD2lzcIhUlvd/tojxwASghDwAOt9+5xTQazerk7sQhH5Rk 7LOhpe5jA3crLCjlKKLYE0snCQS2TOsXgEGgEEHAy+RPZxAjzD2SccJyBxNBlVKyvF5Pyx7H/gJ QsSBcNtt2gM0UOyOtYNR1k9i0WmdDET6wnl5zgTfUDfUSn7niELO2Or8qmyZ86vYTusgpCe3OJ/ lLBrvVuR+ETm/bNeicrD2ORQlolBmjlmBrmgBcoSgWTYLj6y+eTGSmF4Oz8a0e8B36k85/Vo0Lw WPIuc7IzX030HBkk0GbyP1NEZb3zxA== X-Proofpoint-ORIG-GUID: XbyKJeKSxhWXX_ugCP-kr85FQahxskJg 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 clxscore=1015 suspectscore=0 priorityscore=1501 spamscore=0 bulkscore=0 impostorscore=0 phishscore=0 adultscore=0 malwarescore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511140068 Content-Type: text/plain; charset="utf-8" Implement the new IOVA formatting required by the DSP architecture change on Kaanapali SoC. Place the SID for DSP DMA transactions at bit 56 in the physical address. This placement is necessary for the DSPs to correctly identify streams and operate as intended. To address this, set SID position to bit 56 via OF matching on the fastrpc node; otherwise, default to legacy 32-bit placement. This change ensures consistent SID placement across DSPs. Signed-off-by: Kumari Pallavi --- drivers/misc/fastrpc.c | 46 +++++++++++++++++++++++++++++++++++------- 1 file changed, 39 insertions(+), 7 deletions(-) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index d6a7960fe716..bcf3c7f8d3e9 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -33,7 +33,6 @@ #define FASTRPC_ALIGN 128 #define FASTRPC_MAX_FDLIST 16 #define FASTRPC_MAX_CRCLIST 64 -#define FASTRPC_PHYS(p) ((p) & 0xffffffff) #define FASTRPC_CTX_MAX (256) #define FASTRPC_INIT_HANDLE 1 #define FASTRPC_DSP_UTILITIES_HANDLE 2 @@ -105,6 +104,15 @@ =20 #define miscdev_to_fdevice(d) container_of(d, struct fastrpc_device, miscd= ev) =20 +/* Extract smmu pa from consolidated iova */ +#define IPA_TO_DMA_ADDR(iova, sid_pos) (iova & ((1ULL << sid_pos) - 1ULL)) +/* + * Prepare the consolidated iova to send to dsp by prepending the sid + * to smmu pa at the appropriate position + */ +#define IOVA_FROM_SID_PA(sid, phys, sid_pos) \ + (phys +=3D sid << sid_pos) + struct fastrpc_phy_page { u64 addr; /* physical or dma address */ u64 size; /* size of contiguous region */ @@ -257,6 +265,10 @@ struct fastrpc_session_ctx { bool valid; }; =20 +struct fastrpc_soc_data { + u32 sid_pos; +}; + struct fastrpc_channel_ctx { int domain_id; int sesscount; @@ -278,6 +290,7 @@ struct fastrpc_channel_ctx { bool secure; bool unsigned_support; u64 dma_mask; + const struct fastrpc_soc_data *soc_data; }; =20 struct fastrpc_device { @@ -390,7 +403,7 @@ static int fastrpc_map_lookup(struct fastrpc_user *fl, = int fd, static void fastrpc_buf_free(struct fastrpc_buf *buf) { dma_free_coherent(buf->dev, buf->size, buf->virt, - FASTRPC_PHYS(buf->dma_addr)); + IPA_TO_DMA_ADDR(buf->dma_addr, buf->fl->cctx->soc_data->sid_pos)); kfree(buf); } =20 @@ -440,7 +453,8 @@ static int fastrpc_buf_alloc(struct fastrpc_user *fl, s= truct device *dev, buf =3D *obuf; =20 if (fl->sctx && fl->sctx->sid) - buf->dma_addr +=3D ((u64)fl->sctx->sid << 32); + IOVA_FROM_SID_PA((u64)fl->sctx->sid, buf->dma_addr, + fl->cctx->soc_data->sid_pos); =20 return 0; } @@ -685,7 +699,8 @@ static int fastrpc_dma_buf_attach(struct dma_buf *dmabu= f, return -ENOMEM; =20 ret =3D dma_get_sgtable(buffer->dev, &a->sgt, buffer->virt, - FASTRPC_PHYS(buffer->dma_addr), buffer->size); + IPA_TO_DMA_ADDR(buffer->dma_addr, + buffer->fl->cctx->soc_data->sid_pos), buffer->size); if (ret < 0) { dev_err(buffer->dev, "failed to get scatterlist from DMA API\n"); kfree(a); @@ -734,7 +749,8 @@ static int fastrpc_mmap(struct dma_buf *dmabuf, dma_resv_assert_held(dmabuf->resv); =20 return dma_mmap_coherent(buf->dev, vma, buf->virt, - FASTRPC_PHYS(buf->dma_addr), size); + IPA_TO_DMA_ADDR(buf->dma_addr, + buf->fl->cctx->soc_data->sid_pos), size); } =20 static const struct dma_buf_ops fastrpc_dma_buf_ops =3D { @@ -789,7 +805,8 @@ static int fastrpc_map_attach(struct fastrpc_user *fl, = int fd, map->dma_addr =3D sg_phys(map->table->sgl); } else { map->dma_addr =3D sg_dma_address(map->table->sgl); - map->dma_addr +=3D ((u64)fl->sctx->sid << 32); + IOVA_FROM_SID_PA((u64)fl->sctx->sid, + map->dma_addr, fl->cctx->soc_data->sid_pos); } for_each_sg(map->table->sgl, sgl, map->table->nents, sgl_index) @@ -2289,6 +2306,14 @@ static int fastrpc_get_domain_id(const char *domain) return -EINVAL; } =20 +static const struct fastrpc_soc_data kaanapali_soc_data =3D { + .sid_pos =3D 56, +}; + +static const struct fastrpc_soc_data default_soc_data =3D { + .sid_pos =3D 32, +}; + static int fastrpc_rpmsg_probe(struct rpmsg_device *rpdev) { struct device *rdev =3D &rpdev->dev; @@ -2297,6 +2322,11 @@ static int fastrpc_rpmsg_probe(struct rpmsg_device *= rpdev) const char *domain; bool secure_dsp; unsigned int vmids[FASTRPC_MAX_VMIDS]; + const struct fastrpc_soc_data *soc_data =3D NULL; + + soc_data =3D device_get_match_data(rdev); + if (!soc_data) + soc_data =3D &default_soc_data; =20 err =3D of_property_read_string(rdev->of_node, "label", &domain); if (err) { @@ -2349,6 +2379,7 @@ static int fastrpc_rpmsg_probe(struct rpmsg_device *r= pdev) =20 secure_dsp =3D !(of_property_read_bool(rdev->of_node, "qcom,non-secure-do= main")); data->secure =3D secure_dsp; + data->soc_data =3D soc_data; =20 switch (domain_id) { case ADSP_DOMAIN_ID: @@ -2486,7 +2517,8 @@ static int fastrpc_rpmsg_callback(struct rpmsg_device= *rpdev, void *data, } =20 static const struct of_device_id fastrpc_rpmsg_of_match[] =3D { - { .compatible =3D "qcom,fastrpc" }, + { .compatible =3D "qcom,kaanapali-fastrpc", .data =3D &kaanapali_soc_data= }, + { .compatible =3D "qcom,fastrpc", .data =3D &default_soc_data }, { }, }; MODULE_DEVICE_TABLE(of, fastrpc_rpmsg_of_match); --=20 2.34.1 From nobody Mon Feb 9 00:55:59 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 C27202FF66A; Fri, 14 Nov 2025 08:42:00 +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=1763109722; cv=none; b=UwLIoMslvyAIhcW359xZAPwqkuv6PE9XZec74ZrTMMlaQi3M2+lTXFfbcuPbKuBcvOJsCwy5CHtpc7aPly+ehAFaJnfN708TmjZIukHMBv+x0RB/VCHwIAX60LBJ77IyXc4+FMrqf58vr0DghYDKs+KMOMbTaCo0HjQBYxF82cU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763109722; c=relaxed/simple; bh=wOa0yGjzjsEr5XYD6aP6woUj0wLFoQ0Wr493fRqBGHU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=hNy6hxZamrYgvJ94SlHzJTXLEW2NBeEh+u/vDOwJBx6YDi9a9RMWnioVwhyIennZBnLHCKZqy2N8k926OJ1EvMCLo/VyAk2BXKDYL9IjkhY0/LvWUfQXQJR74R7Ciow6eeq01JNiVdiN2pVhQ5Qh8B3gASZ4H7oHB9XzXa/ztQk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=pRhXR1vZ; 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=qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="pRhXR1vZ" 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 5AE83Hvl1582950; Fri, 14 Nov 2025 08:41:55 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=2cS2BtErjyY yRZPNiD7GL3okIO5nA0lihGeBRe0V/1Y=; b=pRhXR1vZmPEbonfXct/1HPPZE1l iojotwrmiTeJjwpdzckUZuXmzr+HcC/3DE9dnmv0bY8XjCuKB/+V9QDOSoTi4NLo P565TzNZk5zWbaRdAmJ+Yk7nSjReDHISVnsnVQYc1H0zW63aNedzh+0A1iAqk7LY Xb07URNqLAtmZd0SLzBGjmjzutMD2e7aeo0MYJb3wsDMTF2sbA0MVQPe6DeBkqnO PKNvfGTKt5/eDvvqnjWfIGD8vRGNMkjyir+XMy/cRre6ZOmlv/PGDCy1d1xDbT+b 59LOdY25YgFWYMxBe9vF6W/oF2X7xjh3p7RQo6qHimjacQ+G/ObyZD8EAUg== Received: from apblrppmta02.qualcomm.com (blr-bdr-fw-01_GlobalNAT_AllZones-Outside.qualcomm.com [103.229.18.19]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4adr9fsfum-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 14 Nov 2025 08:41:54 +0000 (GMT) Received: from pps.filterd (APBLRPPMTA02.qualcomm.com [127.0.0.1]) by APBLRPPMTA02.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTP id 5AE8fpLn001493; Fri, 14 Nov 2025 08:41:51 GMT Received: from pps.reinject (localhost [127.0.0.1]) by APBLRPPMTA02.qualcomm.com (PPS) with ESMTPS id 4a9xxn3dmg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 14 Nov 2025 08:41:51 +0000 Received: from APBLRPPMTA02.qualcomm.com (APBLRPPMTA02.qualcomm.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 5AE8fp6L001488; Fri, 14 Nov 2025 08:41:51 GMT Received: from hu-devc-hyd-u22-c.qualcomm.com (hu-kpallavi-hyd.qualcomm.com [10.147.243.7]) by APBLRPPMTA02.qualcomm.com (PPS) with ESMTPS id 5AE8fpfv001484 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 14 Nov 2025 08:41:51 +0000 Received: by hu-devc-hyd-u22-c.qualcomm.com (Postfix, from userid 4720299) id 259E2534; Fri, 14 Nov 2025 14:11:50 +0530 (+0530) From: Kumari Pallavi To: kpallavi@qti.qualcomm.com, srini@kernel.org, amahesh@qti.qualcomm.com, arnd@arndb.de, gregkh@linuxfoundation.org Cc: Kumari Pallavi , quic_bkumar@quicinc.com, ekansh.gupta@oss.qualcomm.com, linux-kernel@vger.kernel.org, quic_chennak@quicinc.com, dri-devel@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, jingyi.wang@oss.qualcomm.com, aiqun.yu@oss.qualcomm.com, ktadakam@qti.qualcomm.com Subject: [PATCH v3 4/4] misc: fastrpc: Update dma_bits for CDSP support on Kaanapali SoC Date: Fri, 14 Nov 2025 14:11:42 +0530 Message-Id: <20251114084142.3386682-5-kumari.pallavi@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251114084142.3386682-1-kumari.pallavi@oss.qualcomm.com> References: <20251114084142.3386682-1-kumari.pallavi@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: quoted-printable X-QCInternal: smtphost X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Authority-Analysis: v=2.4 cv=SdD6t/Ru c=1 sm=1 tr=0 ts=6916eb52 cx=c_pps a=Ou0eQOY4+eZoSc0qltEV5Q==:117 a=Ou0eQOY4+eZoSc0qltEV5Q==:17 a=6UeiqGixMTsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=pfE1wiWnY1F2L3mdSfMA:9 a=cPQSjfK2_nFv0Q5t_7PE:22 X-Proofpoint-GUID: cnX0oeIqxa9h6MZbRsDn3Nka7He5Rn_2 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTE0MDA2OCBTYWx0ZWRfX4IQH0ffK8IGw xZTPUvjaeeKavFhGUAtM9WbH/TeaV+RySv3ZnitWzuMuTreXj0MPS/cc1Gd//1OKYkWNJnjX6sN KW2N/Yt3vUoZIDdYeg/3zozO9J7Zhf/QxdaJijV2u3KKCycc21k2LdPp1+OmZ4Ldsd7PPO+KZSL ZaN7WpknT6mTL60rRrzoo1tKKg+O2zEbtOB45c/RBVLXP811rsQfI/YBMppx+zRGID61EVHxCoq s58yckTyic3mrCK1OyuLiY/plKP7WN4Wbc5V194jtI6G8yDUAhoZ1srneVjavEBVZ0LMp4fWPed VFau7e+8T24Jfj04tdYAlC3Ll6LeWGA7ciEIQb58vaao0cR1QWmcxrIDAhq70HmUZGu8Gruf150 UFt03HmPOpL0HiOjP34K692kIawVQA== X-Proofpoint-ORIG-GUID: cnX0oeIqxa9h6MZbRsDn3Nka7He5Rn_2 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 clxscore=1015 suspectscore=0 priorityscore=1501 spamscore=0 bulkscore=0 impostorscore=0 phishscore=0 adultscore=0 malwarescore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511140068 Content-Type: text/plain; charset="utf-8" DSP currently supports 32-bit IOVA (32-bit PA + 4-bit SID) for both Q6 and user DMA (uDMA) access. This is being upgraded to 34-bit PA + 4-bit SID due to a hardware revision in CDSP for Kaanapali SoC, which expands the DMA addressable range. Update DMA bits configuration in the driver to support CDSP on Kaanapali SoC. Set the default `dma_bits` to 32-bit and update it to 34-bit based on CDSP and OF matching on the fastrpc node. Signed-off-by: Kumari Pallavi --- drivers/misc/fastrpc.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index bcf3c7f8d3e9..2eb8d37cd9b4 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -267,6 +267,8 @@ struct fastrpc_session_ctx { =20 struct fastrpc_soc_data { u32 sid_pos; + u32 cdsp_dma_bits; + u32 dsp_default_dma_bits; }; =20 struct fastrpc_channel_ctx { @@ -2186,6 +2188,7 @@ static int fastrpc_cb_probe(struct platform_device *p= dev) int i, sessions =3D 0; unsigned long flags; int rc; + u32 dma_bits; =20 cctx =3D dev_get_drvdata(dev->parent); if (!cctx) @@ -2199,12 +2202,16 @@ static int fastrpc_cb_probe(struct platform_device = *pdev) spin_unlock_irqrestore(&cctx->lock, flags); return -ENOSPC; } + dma_bits =3D cctx->soc_data->dsp_default_dma_bits; sess =3D &cctx->session[cctx->sesscount++]; sess->used =3D false; sess->valid =3D true; sess->dev =3D dev; dev_set_drvdata(dev, sess); =20 + if (cctx->domain_id =3D=3D CDSP_DOMAIN_ID) + dma_bits =3D cctx->soc_data->cdsp_dma_bits; + if (of_property_read_u32(dev->of_node, "reg", &sess->sid)) dev_info(dev, "FastRPC Session ID not specified in DT\n"); =20 @@ -2219,9 +2226,9 @@ static int fastrpc_cb_probe(struct platform_device *p= dev) } } spin_unlock_irqrestore(&cctx->lock, flags); - rc =3D dma_set_mask(dev, DMA_BIT_MASK(32)); + rc =3D dma_set_mask(dev, DMA_BIT_MASK(dma_bits)); if (rc) { - dev_err(dev, "32-bit DMA enable failed\n"); + dev_err(dev, "%u-bit DMA enable failed\n", dma_bits); return rc; } =20 @@ -2308,10 +2315,14 @@ static int fastrpc_get_domain_id(const char *domain) =20 static const struct fastrpc_soc_data kaanapali_soc_data =3D { .sid_pos =3D 56, + .cdsp_dma_bits =3D 34, + .dsp_default_dma_bits =3D 32, }; =20 static const struct fastrpc_soc_data default_soc_data =3D { .sid_pos =3D 32, + .cdsp_dma_bits =3D 32, + .dsp_default_dma_bits =3D 32, }; =20 static int fastrpc_rpmsg_probe(struct rpmsg_device *rpdev) --=20 2.34.1