From nobody Thu Apr 16 22:40:44 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 1546330DECB for ; Wed, 15 Apr 2026 11:25: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=1776252343; cv=none; b=tch3NpBNUs71g2FY4wwHkmNM3baZnL01T+mq+nXCDuiwisNipbA7RjaARR2VMiZJmYaM/3SI8N6uGuAwYBhliv3cwtNLHB4h3AlTBZt1CgNqd/1fzO3N6us+l1mSDpD3SD+v11M+3TvDzPSw+1JY4ERR+ZQ4j9y7uKJQO+1wrPg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776252343; c=relaxed/simple; bh=fqGiXwv7TMUQTJi8HRdgDj9tkcWqqY9b9ZpTnTA2HXc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=FM0f7El4ItoZf3+5ZvCPQu0pE6n+U+amKLmEiv9z4bRvGVhSA4S3ge/+IH5EzlmP4QtePQ2m/+d3j1vkxkhRler4bi35qrS7t7vs/vmU4UwVOpE+OCEsEOodO5mLtSplWp/tZ2A45Q4hNVSEsAIlT5TAnt9x9MoW32eEdYx33RY= 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=lNuAfwfF; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Q4BXjSQ2; 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="lNuAfwfF"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Q4BXjSQ2" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63F7tckL764418 for ; Wed, 15 Apr 2026 11:25:41 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=ISnEXNmu4DG VhMqbwORuMrVkS8MlUvvf+D9exDaKuko=; b=lNuAfwfFic9oteZQ2ytXZckml1E OcFEYmslPzLZp/3QOgYO4BlGlxBMgrBJKvdVveGfQBB6U9WMLF5r70FL/lANqYiU /feszuvvqEwZQuzAA7CE7LfC2BiRCkWWbiI42hudpNDoEJC5YEfFdrt8bGpTwpQ2 h9uxWdLv70vbVBw13dlmtIztDhVNRCXULl/rG+969AAOaXpAtRDwGI1p0c7o1TMY zC7jEXVI6yans6+4WXPEvzWSN1Vvrz4mVBdG7zvUVPkxL7ZerjsEa22/dtrsWjH3 CM8AbsQblsQBvvRvUHDY1aqsgkemu3ikJjftgTF5BY0Dnwb+xoQLJ1+ePhA== Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dj6q7rrnu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 15 Apr 2026 11:25:41 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-35daf3d3030so6769830a91.1 for ; Wed, 15 Apr 2026 04:25:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776252341; x=1776857141; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ISnEXNmu4DGVhMqbwORuMrVkS8MlUvvf+D9exDaKuko=; b=Q4BXjSQ2VqiO1IEo6wx5hgVYQNuEWsICxeodTH6g8wNk9FcvRhMfdWdlX8avupD86B UhEyhEjlWl+Sp+oekiPs8HeTg4aiCXE97riKo7XWRb7IqchdbaIxpew//so5gyRtEm/L 9IuW7E+APQU1dJtxXJkj+Gg6zw++X/Pgui7uiPphqAKWnoOehviJ4fLbcEm4ATcW33L3 df2ciaNLdHRjhonPwB0GWSVNwZG1Dw3yC2Ry1JIeBudBNvto91D9nk3R2iJCtXeZAe+3 fsA9GbSAr3RB6MxnBiV+4JAMDCYioxVZXKeDcfASyQnq7XCm3miUKyY4FZues6vPWNiM zphg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776252341; x=1776857141; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ISnEXNmu4DGVhMqbwORuMrVkS8MlUvvf+D9exDaKuko=; b=iDxusbrffOOi2ytL3bGADwF+tKSR5SIpO095mTBqdzuduGkubu/ZDeICoyXBrmky8t e4diVOoRf6ImJw5kYSKWP4vG6J4DQ6EN++FQv2SHfILRpJuvC23xX+qAfj9vbEFOZtiS urGaH98KD2eOfAcIL4vqH4XDTLfCYEss22qUZ8eXn8HpQ0X0RWwupoZXMZnibOGV9Mj7 lYBvJm+jMjbXAnC8JmC9STOPEbOt8zB3N7oWxV+eqL6oYK2wJ1NB9erEOKkjsLfwiSAh mRPBQdgBXtKUn7Qf7yFCc6pyuysBq7ICEh8w3MXInDdIjpD3fCUZcfO8PunPaVxOSA9u 9S/w== X-Forwarded-Encrypted: i=1; AFNElJ+cwa48MIKkFWdDgeCT6Dk34S2Yc8jMh/yNB0RqDiO1hhwG7gxWq7X7WnbkEik5mBXyvbNKDwbGr8bKggs=@vger.kernel.org X-Gm-Message-State: AOJu0Yypp+ju3GJAvmhvltuwZ95WcbXINYFtv2co9ZXKjq8Amo5dJxGj hfYNWyCLwHEow+2wmyn8RlobGZUGOgSfcmOdHFEUoXSdOP7/D7xE8W55TekSz+wy0cU4toDxWLF W0twinkOiai1RrsNw1TuxKk98BRy/IFCcMhhfauIrXVbcAxLuVUxdHrNkA+vfYxp6Iq4= X-Gm-Gg: AeBDiev5mHCT7qk5VKzgvk6Rm5SFOrsO8Rm0XWhOmzjIEN+kluhgsGgLbyNpEXbfAmY mD1o9w0dgnWSITTyOCArYH4tdOS193cxwOULzckU2ga5drsG3+Jy3Swy/+0Ow3LbmZrFACgZqJQ 33N3DnGqye4P1ckSnlWNV8p24G1GWZ2Z77ql6Sc288vkILtR0SdQe7wqzwUwE71F4b7zrKoMspE 85aP38ucDf0Sjq2jNJ8qU+g8GnFV8Ab2X3eG0M9fe2Hn5rlqDuZC5P15kXLmtLOXyaNjmQp6GjT U+CmohKTjzrOaHu84/yl9mREj6abQN6E5pL/aBHXq5emaTrWgMki5NkXxGfbj4RCmArmqRdaOSg nRWOCj+VGJxvfiJ9+qs9JF1lK1pxhVmahDWVwfC/ik2IwjF43kYJZY5kbYC3U4nc6 X-Received: by 2002:a17:903:283:b0:2b4:5b9e:4edd with SMTP id d9443c01a7336-2b45b9e5280mr123919005ad.9.1776252340602; Wed, 15 Apr 2026 04:25:40 -0700 (PDT) X-Received: by 2002:a17:903:283:b0:2b4:5b9e:4edd with SMTP id d9443c01a7336-2b45b9e5280mr123918545ad.9.1776252339875; Wed, 15 Apr 2026 04:25:39 -0700 (PDT) Received: from hu-ekangupt-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b4782b6fd8sm26794325ad.73.2026.04.15.04.25.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Apr 2026 04:25:39 -0700 (PDT) From: Ekansh Gupta To: srini@kernel.org, linux-arm-msm@vger.kernel.org Cc: gregkh@linuxfoundation.org, quic_bkumar@quicinc.com, linux-kernel@vger.kernel.org, quic_chennak@quicinc.com, dri-devel@lists.freedesktop.org, arnd@arndb.de, dmitry.baryshkov@oss.qualcomm.com, konrad.dybcio@oss.qualcomm.com, andersson@kernel.org Subject: [PATCH v8 1/4] misc: fastrpc: Move fdlist to invoke context structure Date: Wed, 15 Apr 2026 16:55:27 +0530 Message-Id: <20260415112530.4083240-2-ekansh.gupta@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260415112530.4083240-1-ekansh.gupta@oss.qualcomm.com> References: <20260415112530.4083240-1-ekansh.gupta@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-Authority-Analysis: v=2.4 cv=AvHeGu9P c=1 sm=1 tr=0 ts=69df75b5 cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=IPuuj3Sbi4WKP8RQR18A:9 a=mQ_c8vxmzFEMiUWkPHU9:22 X-Proofpoint-GUID: JY9c5wnNXxLooEnDvSibyOqfYQ8pcZV9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDE1MDEwNSBTYWx0ZWRfX72V2Sh1JAeMO idojS1BRUOJpIG0eTW64XH6MUEOsg9jLzDht4FC/OlRtSMvTF/zP99qh/f4ZM9snmRUQNViUfW4 Vg+1qMr1Xfe4EStNLGoGthdEH6dFiq4bZKpmnMaA6nXmasuSRgXrDisDINUnrSF/G9d11eMIIA5 FmBcjN8ZJ+27pVDRwzL9RhD0mSj4ILGykfTPRZm+5Rnpog8UMAkACOaTBSXwHWIhLhyXvAn3sEP MZTyroxkT9bDphqDrgrbsFXW1Nbz9IkOJmsAbrTSuxKK4GgADFJMtK80dZO/qUpjuZFfEjn7buZ rY9Wg7YajMGJuDatwJlAkp1fiFnzCO7F7VXuY2udRWyecDzOMM6+rpAA4BuBaLzzUEJHFyle9di B6ymqN/WrMk7Aoo24YVjSw2oXau222p22cNV2oacJFF+0eJ2+wo7Rv7Nc1qwGQdFPg7NVToEe2K HNwPPxWehDC6HlkWgmw== X-Proofpoint-ORIG-GUID: JY9c5wnNXxLooEnDvSibyOqfYQ8pcZV9 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-14_04,2026-04-13_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 spamscore=0 clxscore=1015 adultscore=0 phishscore=0 bulkscore=0 suspectscore=0 priorityscore=1501 impostorscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604150105 Content-Type: text/plain; charset="utf-8" The fdlist is currently part of the meta buffer which is set during fastrpc_get_args(), this fdlist is getting recalculated during fastrpc_put_args(). Move fdlist to the invoke context structure to improve maintainability and reduce redundancy. This centralizes its handling and simplifies meta buffer preparation and reading logic. Signed-off-by: Ekansh Gupta --- drivers/misc/fastrpc.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index 1080f9acf70a..a9f507a88c67 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -233,6 +233,7 @@ struct fastrpc_invoke_ctx { int pid; int client_id; u32 sc; + u64 *fdlist; u32 *crc; u64 ctxid; u64 msg_sz; @@ -1016,6 +1017,7 @@ static int fastrpc_get_args(u32 kernel, struct fastrp= c_invoke_ctx *ctx) rpra =3D ctx->buf->virt; list =3D fastrpc_invoke_buf_start(rpra, ctx->nscalars); pages =3D fastrpc_phy_page_start(list, ctx->nscalars); + ctx->fdlist =3D (u64 *)(pages + ctx->nscalars); args =3D (uintptr_t)ctx->buf->virt + metalen; rlen =3D pkt_size - metalen; ctx->rpra =3D rpra; @@ -1118,18 +1120,11 @@ static int fastrpc_put_args(struct fastrpc_invoke_c= tx *ctx, union fastrpc_remote_arg *rpra =3D ctx->rpra; struct fastrpc_user *fl =3D ctx->fl; struct fastrpc_map *mmap =3D NULL; - struct fastrpc_invoke_buf *list; - struct fastrpc_phy_page *pages; - u64 *fdlist; - int i, inbufs, outbufs, handles; + u64 *fdlist =3D ctx->fdlist; + int i, inbufs; int ret =3D 0; =20 inbufs =3D REMOTE_SCALARS_INBUFS(ctx->sc); - outbufs =3D REMOTE_SCALARS_OUTBUFS(ctx->sc); - handles =3D REMOTE_SCALARS_INHANDLES(ctx->sc) + REMOTE_SCALARS_OUTHANDLES= (ctx->sc); - list =3D fastrpc_invoke_buf_start(rpra, ctx->nscalars); - pages =3D fastrpc_phy_page_start(list, ctx->nscalars); - fdlist =3D (uint64_t *)(pages + inbufs + outbufs + handles); =20 for (i =3D inbufs; i < ctx->nbufs; ++i) { if (!ctx->maps[i]) { --=20 2.34.1 From nobody Thu Apr 16 22:40:44 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 8A6DD2C21C3 for ; Wed, 15 Apr 2026 11:25:46 +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=1776252347; cv=none; b=bsAvNbq/rC46FvEWahE57LDZTLdpBOmNHdZQL8oF2DoEKPDHYAVfdzxybZ9ZkkytfWi6zWLmhJFf1NtdR7FS9hGaMoCMsj+CDYJ/IOx45EL4n/lG1bRsaAIvsBBVdajCslj0Vk5LqfpKXkLeUhICNhS6ZL+jR02DPsAdocUgYAI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776252347; c=relaxed/simple; bh=17Ef71wpPprYkzSdH9NRRGCjdmeEYelFAAr5q3M9YqE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Rug98azLeTIQxIAnMeT51mEnlKqTXy009iartDcB1GxiQxba83DsezLpmPzW8jN+rHgL/dVyQaAsJCpt7bQGM0W6xomVNciajgTE4Zwred6qcuiv20IJInjOeAGYGwfdNsr796Ye6jFYEI4gwvUrk4CBq5r64FRxk8rkTlGyGXE= 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=KGmANgAW; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ZTd/AMjk; 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="KGmANgAW"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ZTd/AMjk" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63FAgeJS3126664 for ; Wed, 15 Apr 2026 11:25:45 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=TZq/rLCuYKP zZ+3bFaDBlw4HhmEskTpGrvorY5Ef4Mg=; b=KGmANgAWlCO1gEeQJ5VVozAh+zm sV+Ldiunp+1ulSTCnd98Qa/7mY/LRPY0O+3WpJEuCyD6sMRGIrRJDC8AP25bMX0i fu4X0S+3IHTdKjfbZAI1lFaZXMo4MbTD2BEjKM8DICr1nQZF5DKWl96zijCvTaMF AKD3MxKtzrsRDBdRhtvU9QeJo/ld6uvfEwZQmkWZjw7PaQ5iTANg15ezs5WnO+EJ niUnBiQDKzuXxejSMJsKVccgINvvdA2lm6r0GfIhAUo0apWLDi4QF5GFU8px/qQE XT+xA7pwvmcykC/3Nvm9CR+b30UKHCdoe8Ve9uS5nuJX5IJmLYUKLAahiRA== 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 4dht56u077-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 15 Apr 2026 11:25:45 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2b2e6ee9444so42144765ad.1 for ; Wed, 15 Apr 2026 04:25:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776252345; x=1776857145; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=TZq/rLCuYKPzZ+3bFaDBlw4HhmEskTpGrvorY5Ef4Mg=; b=ZTd/AMjkU1n4EJv/LLIh2myPbZARifg9qI4UtVPhUNz1tsWn93nacr7KA2Kd0HGvzx ii/iX2KBua+y2MM8Gx9AwJT2bXlw94CeYFoDYDrKXiIl7tHSjBs/RLck4GnxlvJZ8/Ir 5WabpVt+TNrEuMI0YEOmGUblNzlMqkm3Dpa7NsQBxEWcXIcnncCTaJH6Uk6m9YI0dGj0 /ieH4Jnoa5ZVMc3/OsrzLWQLtaloR78lJXL/3HMctu2E9r1fY07rZ9hzErlb27bAYz3P S4HxgphJ9J8h7bxx8vkzXk0IHVwc5U63Gbd3DHBLnzGrbYJORvw0Pp2kj86JQQNmWqF4 j6fA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776252345; x=1776857145; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=TZq/rLCuYKPzZ+3bFaDBlw4HhmEskTpGrvorY5Ef4Mg=; b=EMsUjIZ6ClatX+LAzdEpvYOrOIyqAScIYO9sYq+vSnSh1GwDknrlE8IRCAsoZUk6ow ErOJybQ3kXF0JvtqTjRYcblahsdbex1UiUyZELeEGPVD8dKxjyYE0xb+aDgmCpd7JNnN /EF0Ckm95cAnhNqO2oYKh75F2A9TwO4zdkEmgmlhU+yUqI3Fsxxt3XrNmeoNiuepiZbO B8FkhN6kdtayEc5NhjjYz7rIJeBgfR2iOB0Ont3/oymznaCrDH6QuwZgjxNuQV6ys6Ji 9x5VUmFitzVZ3LozhldpH5anAix2x4rfaJktvKXGLGD0tgh/3NUT34o78+UZcsL+8hRr jUGw== X-Forwarded-Encrypted: i=1; AFNElJ9hUgH9eVNOQTYK11MNuE7HuCHAlnNKGv6mbXOq+WCi58MQVIKNl1BK/9X71etgwLhqJ35mhc56SYNh+68=@vger.kernel.org X-Gm-Message-State: AOJu0YzeZYJYcu1Rimn+nfWZAk9Gi7+4qzpnTVrl1V0Xz/kBRE5nqAib +Gll2e5yrY8D7o7leS0hw4/iPXTAaRYdjY9pic5n+RG/bP2cogdlgezDjDer6UQLueu6gRP/c0d VNvFS464NYzoAsS9TuYkmJAe9X8/mbx1cbZZIDJ6owpP0gsJVFYtzQD2EZyuwrw44eHU= X-Gm-Gg: AeBDievgMhhXojoiZoCswcZmDHMYhEwqZZK/ALD6EKzKYevE6pTAm8U38tB7TmEmnRS wrxEx4wurmCchvylsmrHhroo/FRnuSmsOjVLnvSVEXtomHM0P4q91u7Ikrp0EajC6LIj8G3RoYm lKtanfABrLd37lopKOW9X8iMrx0AwhH9azmOQATBcuE0poLs0TjQSex9kQnP+peHP5uezphrWoO U/161ZbUtSmADde6ydIDPcbXSsTF/XMWLC/SHeonWmRXGkV3x/vJNlMn6v0xyjxi4X6ROgz3d4k /ew3S4OxiHlRLaMHcXKI7Y7+XcsCOia9GygnAgH0d1UhrRcvKT70UMBIWikoa8zX2js89KGSdDb T0G1vuI7ZSS9VlZn8ScFFVF5kAKgef8e8TRfiyn7z2rGKJRxL5KadKqM+9AeHNtAE X-Received: by 2002:a17:903:38c4:b0:2b2:4f43:b49a with SMTP id d9443c01a7336-2b2d5d8ab1bmr197871775ad.22.1776252344515; Wed, 15 Apr 2026 04:25:44 -0700 (PDT) X-Received: by 2002:a17:903:38c4:b0:2b2:4f43:b49a with SMTP id d9443c01a7336-2b2d5d8ab1bmr197871535ad.22.1776252344070; Wed, 15 Apr 2026 04:25:44 -0700 (PDT) Received: from hu-ekangupt-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b4782b6fd8sm26794325ad.73.2026.04.15.04.25.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Apr 2026 04:25:43 -0700 (PDT) From: Ekansh Gupta To: srini@kernel.org, linux-arm-msm@vger.kernel.org Cc: gregkh@linuxfoundation.org, quic_bkumar@quicinc.com, linux-kernel@vger.kernel.org, quic_chennak@quicinc.com, dri-devel@lists.freedesktop.org, arnd@arndb.de, dmitry.baryshkov@oss.qualcomm.com, konrad.dybcio@oss.qualcomm.com, andersson@kernel.org Subject: [PATCH v8 2/4] misc: fastrpc: Replace hardcoded ctxid mask with GENMASK Date: Wed, 15 Apr 2026 16:55:28 +0530 Message-Id: <20260415112530.4083240-3-ekansh.gupta@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260415112530.4083240-1-ekansh.gupta@oss.qualcomm.com> References: <20260415112530.4083240-1-ekansh.gupta@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-Authority-Analysis: v=2.4 cv=LuiiDHdc c=1 sm=1 tr=0 ts=69df75b9 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=HL6mAI18knL3XnPGOeUA:9 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDE1MDEwNSBTYWx0ZWRfX9bx7103zhLPZ 0HrKSkPJnOkPPHPEZ/VmXQrzn5QekrHTsoVqNInwZDXEH/JPK9OT1JQKhixybgw/MIvEDBBcpZv 8pX8hR0RmyutQS2J9wEldkA6vbDVPX8BGoq3zauOGnmLtCM0O8AJILTdH0JDBE7R9cxoQ0U2jDi kjTJazV5rDqUTfKcci1JCy0s/m77JaJOd2JgCJ5p5izQpMaNsOZvSvhfVGN1aEV+P9QUYX2cP84 Xrh3psh+88lmSUP+55QmoomxGIwnvvkr3PuQIJ1CBHzVxpGZY7HH/mB9jW+21wUvcBFXPxs0InU YBLAN+zekHOhbXVUkUQASti9PTkYcXYz2p01HUkve+ars6XbISposRAZU6i5NldMdB2cBHMwcDG E+n3eM81U3TWExtgQt27Dd9SRyajBYY9jXtZOnVdHllwiviWRNfwk4aGRkXsU5WW9KOhHtMlvHv k6HrPoOL3l1uytvpzIQ== X-Proofpoint-ORIG-GUID: 8LXbMizzjYVLot26_nVa7c1SFgE9V2cZ X-Proofpoint-GUID: 8LXbMizzjYVLot26_nVa7c1SFgE9V2cZ 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-14_04,2026-04-13_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 clxscore=1015 priorityscore=1501 adultscore=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 lowpriorityscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604150105 Content-Type: text/plain; charset="utf-8" Replace the hardcoded context ID mask (0xFF0) with GENMASK(11, 4) to improve readability and follow kernel bitfield conventions. Use FIELD_PREP and FIELD_GET instead of manual shifts for setting and extracting ctxid values. Reviewed-by: Konrad Dybcio Signed-off-by: Ekansh Gupta --- drivers/misc/fastrpc.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index a9f507a88c67..3f5d5d73be5a 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -23,6 +23,7 @@ #include #include #include +#include =20 #define ADSP_DOMAIN_ID (0) #define MDSP_DOMAIN_ID (1) @@ -37,7 +38,7 @@ #define FASTRPC_CTX_MAX (256) #define FASTRPC_INIT_HANDLE 1 #define FASTRPC_DSP_UTILITIES_HANDLE 2 -#define FASTRPC_CTXID_MASK (0xFF0) +#define FASTRPC_CTXID_MASK GENMASK(11, 4) #define INIT_FILELEN_MAX (2 * 1024 * 1024) #define INIT_FILE_NAMELEN_MAX (128) #define FASTRPC_DEVICE_NAME "fastrpc" @@ -515,7 +516,7 @@ static void fastrpc_context_free(struct kref *ref) fastrpc_buf_free(ctx->buf); =20 spin_lock_irqsave(&cctx->lock, flags); - idr_remove(&cctx->ctx_idr, ctx->ctxid >> 4); + idr_remove(&cctx->ctx_idr, FIELD_GET(FASTRPC_CTXID_MASK, ctx->ctxid)); spin_unlock_irqrestore(&cctx->lock, flags); =20 kfree(ctx->maps); @@ -649,7 +650,7 @@ static struct fastrpc_invoke_ctx *fastrpc_context_alloc( spin_unlock_irqrestore(&cctx->lock, flags); goto err_idr; } - ctx->ctxid =3D ret << 4; + ctx->ctxid =3D FIELD_PREP(FASTRPC_CTXID_MASK, ret); spin_unlock_irqrestore(&cctx->lock, flags); =20 kref_init(&ctx->refcount); @@ -2508,7 +2509,7 @@ static int fastrpc_rpmsg_callback(struct rpmsg_device= *rpdev, void *data, if (len < sizeof(*rsp)) return -EINVAL; =20 - ctxid =3D ((rsp->ctx & FASTRPC_CTXID_MASK) >> 4); + ctxid =3D FIELD_GET(FASTRPC_CTXID_MASK, rsp->ctx); =20 spin_lock_irqsave(&cctx->lock, flags); ctx =3D idr_find(&cctx->ctx_idr, ctxid); --=20 2.34.1 From nobody Thu Apr 16 22:40:44 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 060F537AA7A for ; Wed, 15 Apr 2026 11:25: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=1776252352; cv=none; b=rcLkCRb6gamUgTCxvCbKHG/ovpLaHiVCxYx4PRFra/6BEqlelDmkkcV/WzVYFHCRSu9Jw23f81Wwabu5hyj6uYU1BOQ4vsr/G8JuzDTYbYhdBuWWmSkPeoGOjYRjAXm77cjA4GlsbCGo6P+h32ODVtCyETuDeq8qxAuUFtrYiv4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776252352; c=relaxed/simple; bh=wLHY1YKwTOtJ5TMOu7Sc4w4rQ5+KEfPEjuD58JrY/gw=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=oqh895dYW5yZlGgv+9ONrW7S/PDarJ1zUjk43ADpMdqj6GQEi0r5N/bh7ZfNg2S2szJWeU6OEwkwJzUvi35eeuFbkL7M9UHdyCm43W2REfT9UxG6WoKLMg7hDnZHbV10MG/UjLdRlABLbm6w/osOtDuuOIqNW8XcbdKluxawLx0= 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=WprX435k; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=bOYlnoX7; 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="WprX435k"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="bOYlnoX7" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63F9s0fm1701733 for ; Wed, 15 Apr 2026 11:25:50 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=tFUu7w/Mdhl BRhU4Ur6TRUhTba4EbTByy053HqbjsgU=; b=WprX435kplAEgsQTfMPYD97BASu LJuAGZygo87rFdvNo8j7F5cR4oUwvHOzBwsWi49+H4zzkD/EfUVb6lT2z6hbvD7M CxruIwU6WJNVd1CDSlXlRlbE8ig8Z6x5smEqnSaHKERwcn2LeQ0ZaWMLX02x70PJ wIf2TKYmSjJm79ThdLFc7dpYgyrmC+LvPJ+XEZ9NVRPal0YYqK4fqZnLNXXSDvZS 3igHGsSiSvwuyTy4G91e8ms4QhXeIlWQOBaNnFtNNv3C18q1k0a1smAhDnWfUgpE XC+p4O+nRUttCDFsxNv2lh4bzXLOt1Bv9BTkl4hz/unn/Ev9S+VjtlA8YxA== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dht56u0q9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 15 Apr 2026 11:25:49 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2adc527eaf5so48312105ad.0 for ; Wed, 15 Apr 2026 04:25:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776252349; x=1776857149; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=tFUu7w/MdhlBRhU4Ur6TRUhTba4EbTByy053HqbjsgU=; b=bOYlnoX7cUcZ9ow9MNQ+lwTrNQbX+UPhMKmT+fUyQjvVTf85Lk4PCfp6ueDx+T7ic5 YpzW7xLrdyPfs3Ctucdzw7jCCDqQTTg87bPJXFSyMvgXjGLh7l6Tm0J4gUJo2/G0S3ii R6o+wQ+9COEkl8GgS1vkiPE6tYbGN0Nk4C+ivpOtD3ORPqjCJxSHj3vhBFsxtX47VUkF pmYuWmb2uBkms4lwdlj5WznTJjps9iQ4FSH5TAN/rGHSsaeRltM7aKysN6ygqzKOWPiN Ekvv0Gbk4u57S5Q7N9iQYsq6x+fyEldvr95gWYRn0Wmsy2ILHm5EV9arPu1yQ4J9aLA7 EcnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776252349; x=1776857149; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=tFUu7w/MdhlBRhU4Ur6TRUhTba4EbTByy053HqbjsgU=; b=RpOH8ufGVO/kOujmrb1Nf9xXewYPn1pPdWaKFkbGZs1hnwu/1lpWzbUCovU712ZhnA L/I+0NvT3hjuUPnHcyW5QMnQokliHEJdMWThQC9h/52RAhM2EdJiZbi8ayy2hAArTkhq mDxXIOsks3Rzpd7FRr+KX6Ga9CIEzh7bJQ+XGYyz8fX4Vrn7UVY5LCDQo+Ia13Nkedpv J6oTRAWEgXzut6+rcj1u/b91GEdfJ1s43FT4A82XLnV/dKDhbARQWKolOombBRAxqiCo EyrptTKvJqMrxT1UZcw3OLTlJZRfFf/dLjzosuwZiOdHWCGYYgO+EmS2oznVsvlR1lXC rsCQ== X-Forwarded-Encrypted: i=1; AFNElJ+JhVjQbDsgapMQymRGFBAWk9uh2ittQsUyWQpxIJ6TpBBPMIjVtcWMe1gF4I1zfBu4T+3sgk+iEdXWjOc=@vger.kernel.org X-Gm-Message-State: AOJu0YwLxZoHlJ4jeNHtcGg433UymRL6VHpkM/J5a89T0R+9qiFSDi2y OPpCePC/V9M4VThwCFCZv0/mI5J/ki3IaBIjKFe1OaG9eeM2T6FG7r0qPmZfJ6BjwoApSkIbLkQ Myg6ls8ndTn2Ykkl7FslKEx8n3Rm8tEJvStWdnLHo6zbJL3KRuW5J7p+44OILWwjQH4k= X-Gm-Gg: AeBDieswK5enzb3MW/4Zq8LW1Tp15683oSIi1uQiX8KUkp5px/C3nVHS7mdFJ+dBj/i Bv/oG1SB/Wk6/kfS67gT9He7YjGnIAHvSPb3jTzKpJAsTKxVatz4F8ZhGUNr6dPoqZCMNI5K1/D 3DXIiow5tK+Wo1GEMDfW+DJrraPud4Rw2N9eu5fAK7iwU3QORO8Vj9r+HzgG5lx5pxd0kviUOU1 3v4nQOdn73LbHlG1icDB1BnkbPJO8YPj2W/VHPjxIJpezpHWW0TJGtDfsb2ebqXJ9ahk6eqstcr k4BhzHYNd+7X+rW+++T9BAi8fSd57Sh4M3HRT5Mew6/7Hri5/16GHztQ2WUEw2zvx8LvLx8Acr4 Fx7yhGAOeUBH0rQYUfCgJavRn6YzWMdKF1qj9k8kfnu9jRxMNWfQYu4LPtklk5Cs1 X-Received: by 2002:a17:903:2c04:b0:2ae:c5fc:b2ef with SMTP id d9443c01a7336-2b2d5a558a4mr210626265ad.30.1776252348834; Wed, 15 Apr 2026 04:25:48 -0700 (PDT) X-Received: by 2002:a17:903:2c04:b0:2ae:c5fc:b2ef with SMTP id d9443c01a7336-2b2d5a558a4mr210625925ad.30.1776252348244; Wed, 15 Apr 2026 04:25:48 -0700 (PDT) Received: from hu-ekangupt-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b4782b6fd8sm26794325ad.73.2026.04.15.04.25.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Apr 2026 04:25:47 -0700 (PDT) From: Ekansh Gupta To: srini@kernel.org, linux-arm-msm@vger.kernel.org Cc: gregkh@linuxfoundation.org, quic_bkumar@quicinc.com, linux-kernel@vger.kernel.org, quic_chennak@quicinc.com, dri-devel@lists.freedesktop.org, arnd@arndb.de, dmitry.baryshkov@oss.qualcomm.com, konrad.dybcio@oss.qualcomm.com, andersson@kernel.org Subject: [PATCH v8 3/4] misc: fastrpc: Expand context ID mask for DSP polling mode support Date: Wed, 15 Apr 2026 16:55:29 +0530 Message-Id: <20260415112530.4083240-4-ekansh.gupta@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260415112530.4083240-1-ekansh.gupta@oss.qualcomm.com> References: <20260415112530.4083240-1-ekansh.gupta@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-Proofpoint-ORIG-GUID: U0OcT9NermX3BeFOSIfYnAigh71RF9l9 X-Proofpoint-GUID: U0OcT9NermX3BeFOSIfYnAigh71RF9l9 X-Authority-Analysis: v=2.4 cv=K9gS2SWI c=1 sm=1 tr=0 ts=69df75bd cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=JTa3dIKMUYn8LlmgGFYA:9 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDE1MDEwNSBTYWx0ZWRfX4sUkWX/w9jqe 7LXfDBYriYGHV4BstAdXLDKOAOwTIBe5fD79/K/70st8tJjHTGuD9zWHIg91O7r4j0Lu65n16eS 2nVNg/aUhqTXG2pJCZcy/qTmo7p1HFA3ULPaM6FgdPddXtiSHKJ8TfcGOsHqIxK01zUQ8IuwOmU 4MiF3P2ziSm0uynzjnX18L1o/F6NFmNAv6kW9hm9cBbYxwbggP6Xvb/8dgru5ApfoEn4cNcRNAB 19B5pQ0RDkwzKrEZvSvIAlayvkUD2U0rb+vsqvsgXYEzvN5sD0Z9+rVvZGC/zFRwbC8P7Wf3nId 6KncbOcGTYhklG8hHU7TdapBsawFwHlDec4GIKFmrx4W1tvzmjxetbkFHT6nTmZRxgSqGzlE8ju FxDZT5ZfZQyfPFkdk8V5KoQz0Ct4f2+2mkxUfIuJHzB7eGR2hjxNPtOUWaFOTzwnVH1shy2nb4e JkZu193n7lq24vlSL8g== 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-14_04,2026-04-13_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 suspectscore=0 malwarescore=0 priorityscore=1501 spamscore=0 clxscore=1015 phishscore=0 bulkscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604150105 Content-Type: text/plain; charset="utf-8" Current FastRPC context uses a 12-bit mask: [ID(8 bits)][PD type(4 bits)] =3D GENMASK(11, 4) This works for normal calls but fails for DSP polling mode. Polling mode expects a 16-bit layout: [15:8] =3D context ID (8 bits) [7:5] =3D reserved [4] =3D async mode bit [3:0] =3D PD type (4 bits) If async bit (bit 4) is set, DSP disables polling. With current mask, odd IDs can set this bit, causing DSP to skip poll updates. Update FASTRPC_CTXID_MASK to GENMASK(15, 8) so IDs occupy upper byte and lower byte is left for DSP flags and PD type. Reserved bits remain unused. This change is compatible with polling mode and does not break non-polling behavior. Bit layout: [15:8] =3D CCCCCCCC (context ID) [7:5] =3D xxx (reserved) [4] =3D A (async mode) [3:0] =3D PPPP (PD type) Reviewed-by: Dmitry Baryshkov Signed-off-by: Ekansh Gupta --- drivers/misc/fastrpc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index 3f5d5d73be5a..c4a3547a5c7f 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -38,7 +38,7 @@ #define FASTRPC_CTX_MAX (256) #define FASTRPC_INIT_HANDLE 1 #define FASTRPC_DSP_UTILITIES_HANDLE 2 -#define FASTRPC_CTXID_MASK GENMASK(11, 4) +#define FASTRPC_CTXID_MASK GENMASK(15, 8) #define INIT_FILELEN_MAX (2 * 1024 * 1024) #define INIT_FILE_NAMELEN_MAX (128) #define FASTRPC_DEVICE_NAME "fastrpc" --=20 2.34.1 From nobody Thu Apr 16 22:40:44 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 4C31337997E for ; Wed, 15 Apr 2026 11:25:55 +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=1776252356; cv=none; b=WJam7H2TEDBD8Fynqc52ysXen67qeiDeFjMgh+EpMytHFR+Klk7yEt8j+vhdwW5jiThMzOTlMJVNSZGXR/uA+RtyPMk3pgkr1dAIJyy7JA2qkYH97ozFjXGegX0Upu9t3v8lGhfIQeArqOsDf56r4DBsPLm0cDaxjQT9Kmrt/zs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776252356; c=relaxed/simple; bh=9NtfT/xeDbpPS5zh1vRL//BeR89KETtiI2+PapMo87g=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=mPqnQqJBGbeH2lPmMxK3faTII5x7AsE4rZtavHNktC0gNtsd4njUR7pI1MmJFHJVqJotdUE4jAKZM/u98YKZ+gGqumIDFv96gIGC7rbOtamaAax5M/47AYjFDeLvAPkLCrkl8W9w6DrYvwD779cokRkJgujhdqkCIQs1+fMbKtg= 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=aKAS8NFI; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=V+bfmRZ8; 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="aKAS8NFI"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="V+bfmRZ8" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63FAUtGC1701737 for ; Wed, 15 Apr 2026 11:25: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=s16jXTEpX8d jsndW4awZ3LPPzFOFOS9R2ZCv2wz6JVs=; b=aKAS8NFIgE6foBgEvADXwMMke6k K7AF8nzOprGnb6nCSks9qWm1n4DPYI1Ndpy6aDSYaUitylYGJ+wFGEM/CE2ZTgWu 5hCzovLcNVZWXtJqEDNy1zKFwu7oxKlatPSFPs18ulksHZHadLCreG3/sOBzEuIl xaxX1ePdBicL2UuxovEzRUhKanAOvonAPqUQzx+iIKNDCqbTJNESuhwM+FMFVr1m 1HNIuGeUGhsH3rWA45c1ftGuYWX5mc29Dg4JClCpAJH2AiQqwaMDQ6tuCct3wgq1 5DddXwj1RFzsKoX+qlIkETJNHugpnBjFrmxHXFqF3c+hnfvE3TJ03N3MKqA== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dht56u0qg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 15 Apr 2026 11:25:54 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2b241be0126so130368725ad.3 for ; Wed, 15 Apr 2026 04:25:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776252353; x=1776857153; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=s16jXTEpX8djsndW4awZ3LPPzFOFOS9R2ZCv2wz6JVs=; b=V+bfmRZ8oBOjHcAW7H0aYRy03DdD5z9sDaMsbHDxJjYrSAjzH9v2H1Y5/xSZyflYcb 28E8wfoHBuHYiaJgpKZ9Mgo5rYJ0MdN9A8y7JvMl+52hATcQbcrg2NdOlv5qeVf6QMYT 8iYjWvAAt1GuXdLd7a84HA5wTptFNq0mjdtI2OD6Ay13dGGh7fJFrSlrzT0mJQSzrL70 PuzvEw0c32aG7zP3Kkd4waAvzlOb/dMqz30LO3ArSbRZ8YCaAa929RUWRkZrgLPeImDp GqaPeD8uOg75xgKQqSgvpTyGs8LbwnGHdnE3Hq1B7MifmhnL/tD40OudqGw4wLjrlseH S37A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776252353; x=1776857153; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=s16jXTEpX8djsndW4awZ3LPPzFOFOS9R2ZCv2wz6JVs=; b=Oxb9VevYrpGsmijKDp8xAa8uJsSAIZd6AqQGSMyHbXWesTQEO1ssNu1+wDvwdyQ85o NsHM55NColLXWAIaf9OMzbOn9o7j75utJk/thbAtdTIjYfZ4RbovgQDzaFX6aeeLrKc0 xGLT1+V1eHF3/Q0TsoyiJeH7dqON/Xeq9L1llGlFqiNaQG49rIcNuJnpD6ZD3lBEDQSC kCk56dXxM0vdzbGGo2QFuTmxpbokl91J2jIX4xh0QKaJwTZsxDrMv8EvxiqGeP3vdSPb N1rq3hWB0mK8eeOhlKfi3QRg5tAptaKx5DSxefM35CMm7h1of0WZlwbYHWQ+n7qthC9V GKlw== X-Forwarded-Encrypted: i=1; AFNElJ9ci4v17gNdAQbEWJ4jDV0o3wlxxrfXGCvZOrrQuRAl10em2iqz3sVq2acTELWgOl9U/Rm/OBaCM+6iPSY=@vger.kernel.org X-Gm-Message-State: AOJu0YxYOZ8IcMj2d43+cKfh1hgOLJvg/iH+cE4BP0q9hH3s9obNAZR4 GGaolNc+S5wWdWmJIBn8xhEmmmqgP3N8dQh3Jx04QnPghT3os+qetYv8xHrpYN0wCIGUiewbKHl 6ZuNX0lB0LVaqcibJjTmvmO/fgseeBdX3c7/MgNN05ZQ82GqmcnwlZ50rQbCisIuHhFo= X-Gm-Gg: AeBDietXvPU0HT6H3vb+s93TzXCxVfvDQGkE94Sz31ogBjcWmOS+CYF3MpubqDUF6yF /sT8Vh1u0vRFtkleJA4aFHDlW/uNXEL1tCDWAtOIqDFpZMmeb6di7iuQ25x7nibYiw0YSx+2qTq Ks50947gc2LR8TBhav8Ta3zBgL4S98CPYl9S/Nl+idiC0akr+SWO0cAtiVOckXbBMzQRY1K5b+T oStWWJyqtVYCqn7FPulxi5ms0wQYn/H+1fz1le3i9eqOATz1LLJiw011LVxVCxmdTakI4zEupmk 2rCLQyQb0jLeLEnNL/ZRtVFhfPvs/8uaZgJdRIZTNsE6H910SZNdgsL3xNg77kPPcmdN8jMc+RJ nIfJ9wJuZiuHEd2q4v5SqcAZ2MduFp9deu+JJmf3vY0zW+guOoJYev+AOPxc0ccvk X-Received: by 2002:a17:903:2c04:b0:2b2:ddfa:3a1e with SMTP id d9443c01a7336-2b2ddfa3e92mr183732215ad.30.1776252353026; Wed, 15 Apr 2026 04:25:53 -0700 (PDT) X-Received: by 2002:a17:903:2c04:b0:2b2:ddfa:3a1e with SMTP id d9443c01a7336-2b2ddfa3e92mr183731865ad.30.1776252352515; Wed, 15 Apr 2026 04:25:52 -0700 (PDT) Received: from hu-ekangupt-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b4782b6fd8sm26794325ad.73.2026.04.15.04.25.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Apr 2026 04:25:51 -0700 (PDT) From: Ekansh Gupta To: srini@kernel.org, linux-arm-msm@vger.kernel.org Cc: gregkh@linuxfoundation.org, quic_bkumar@quicinc.com, linux-kernel@vger.kernel.org, quic_chennak@quicinc.com, dri-devel@lists.freedesktop.org, arnd@arndb.de, dmitry.baryshkov@oss.qualcomm.com, konrad.dybcio@oss.qualcomm.com, andersson@kernel.org Subject: [PATCH v8 4/4] misc: fastrpc: Add polling mode support for fastRPC driver Date: Wed, 15 Apr 2026 16:55:30 +0530 Message-Id: <20260415112530.4083240-5-ekansh.gupta@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260415112530.4083240-1-ekansh.gupta@oss.qualcomm.com> References: <20260415112530.4083240-1-ekansh.gupta@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-Proofpoint-ORIG-GUID: d7FskZfSl_HnzcHzAYh0L8SBGCMhiQ0a X-Proofpoint-GUID: d7FskZfSl_HnzcHzAYh0L8SBGCMhiQ0a X-Authority-Analysis: v=2.4 cv=K9gS2SWI c=1 sm=1 tr=0 ts=69df75c2 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=TEHdEMHTk_fMHrPBF0kA:9 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDE1MDEwNSBTYWx0ZWRfX8eSd8w712ntb gBC9+IqvYuL1lqT4vATc49X9Az8vylysFUtqTLFmW1NbQbk/PElR/pO3HaDk+6PSkCojMp3mZu8 HH2XpZh2Y0evG1Qh4+X7Hlu86/YcoHO1SeU1C5SpgxlFrxHDXhWI2zpk0lNa1xRAHvizYL4zqSu RJHfgs5wbmkJ8+uol3Xe6EwCQQH6XLJt7KFS1T+2hLmPAOD6qKKrPeMWSJt8tpz7f7OnIRb2A5r 0xtDQ4EliU1DCEIXpqTsYE1OIzZDQTkpvEbToJtb+cRJXYlTKjMBsCpfv6PcNzqAc6DFKGxF/Db MDQvFq2+WRtmdgdRkkDOPr6T2WpprVklRi7VoDil/18hq06N6nNtvgtgC4vmf4T+BlQoLxaZ8Vk 9CHZzmQSJwBAk7JoySN/IQvQnPztoGkeQDOwgyeUVm3Ly8q9uGX+FByNONKqHbLeQbRhvQtwWr3 2uWIoORshDJ+2UtYJag== 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-14_04,2026-04-13_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 suspectscore=0 malwarescore=0 priorityscore=1501 spamscore=0 clxscore=1015 phishscore=0 bulkscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604150105 Content-Type: text/plain; charset="utf-8" For any remote call to DSP, after sending an invocation message, fastRPC driver waits for glink response and during this time the CPU can go into low power modes. This adds latency to overall fastrpc call as CPU wakeup and scheduling latencies are included. Add polling mode support with which fastRPC driver will poll continuously on a memory after sending a message to remote subsystem which will eliminate CPU wakeup and scheduling latencies and reduce fastRPC overhead. In case poll timeout happens, the call will fallback to normal RPC mode. Poll mode can be enabled by user by using FASTRPC_IOCTL_SET_OPTION ioctl request with FASTRPC_POLL_MODE request id. Signed-off-by: Ekansh Gupta --- drivers/misc/fastrpc.c | 137 ++++++++++++++++++++++++++++++++++-- include/uapi/misc/fastrpc.h | 25 +++++++ 2 files changed, 155 insertions(+), 7 deletions(-) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index c4a3547a5c7f..5311a4ba4bb7 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -24,6 +24,8 @@ #include #include #include +#include +#include =20 #define ADSP_DOMAIN_ID (0) #define MDSP_DOMAIN_ID (1) @@ -38,6 +40,12 @@ #define FASTRPC_CTX_MAX (256) #define FASTRPC_INIT_HANDLE 1 #define FASTRPC_DSP_UTILITIES_HANDLE 2 +/* + * Maximum handle value for static handles. + * Static handles are pre-defined, fixed numeric values statically assigned + * in the IDL file or FastRPC framework. + */ +#define FASTRPC_MAX_STATIC_HANDLE (20) #define FASTRPC_CTXID_MASK GENMASK(15, 8) #define INIT_FILELEN_MAX (2 * 1024 * 1024) #define INIT_FILE_NAMELEN_MAX (128) @@ -106,6 +114,12 @@ =20 #define miscdev_to_fdevice(d) container_of(d, struct fastrpc_device, miscd= ev) =20 +/* Poll response number from remote processor for call completion */ +#define FASTRPC_POLL_RESPONSE (0xdecaf) + +/* Polling mode timeout limit */ +#define FASTRPC_POLL_MAX_TIMEOUT_US (10000) + struct fastrpc_phy_page { dma_addr_t addr; /* dma address */ u64 size; /* size of contiguous region */ @@ -236,8 +250,14 @@ struct fastrpc_invoke_ctx { u32 sc; u64 *fdlist; u32 *crc; + /* Poll memory that DSP updates */ + u32 *poll; u64 ctxid; u64 msg_sz; + /* work done status flag */ + bool is_work_done; + /* process updates poll memory instead of glink response */ + bool is_polled; struct kref refcount; struct list_head node; /* list of ctxs */ struct completion work; @@ -308,6 +328,8 @@ struct fastrpc_user { int client_id; int pd; bool is_secure_dev; + /* Flags poll mode state */ + bool poll_mode; /* Lock for lists */ spinlock_t lock; /* lock for allocations */ @@ -923,7 +945,8 @@ static int fastrpc_get_meta_size(struct fastrpc_invoke_= ctx *ctx) sizeof(struct fastrpc_invoke_buf) + sizeof(struct fastrpc_phy_page)) * ctx->nscalars + sizeof(u64) * FASTRPC_MAX_FDLIST + - sizeof(u32) * FASTRPC_MAX_CRCLIST; + sizeof(u32) * FASTRPC_MAX_CRCLIST + + sizeof(u32); =20 return size; } @@ -1019,6 +1042,9 @@ static int fastrpc_get_args(u32 kernel, struct fastrp= c_invoke_ctx *ctx) list =3D fastrpc_invoke_buf_start(rpra, ctx->nscalars); pages =3D fastrpc_phy_page_start(list, ctx->nscalars); ctx->fdlist =3D (u64 *)(pages + ctx->nscalars); + ctx->poll =3D (u32 *)((uintptr_t)ctx->fdlist + sizeof(u64) * FASTRPC_MAX_= FDLIST + + sizeof(u32) * FASTRPC_MAX_CRCLIST); + args =3D (uintptr_t)ctx->buf->virt + metalen; rlen =3D pkt_size - metalen; ctx->rpra =3D rpra; @@ -1188,6 +1214,74 @@ static int fastrpc_invoke_send(struct fastrpc_sessio= n_ctx *sctx, =20 } =20 +static inline u32 fastrpc_poll_op(void *p) +{ + struct fastrpc_invoke_ctx *ctx =3D p; + + dma_rmb(); + return READ_ONCE(*ctx->poll); +} + +static int poll_for_remote_response(struct fastrpc_invoke_ctx *ctx) +{ + u32 val; + int ret; + + /* + * Poll until DSP writes FASTRPC_POLL_RESPONSE into *ctx->poll + * or until another path marks the work done. + */ + ret =3D read_poll_timeout_atomic(fastrpc_poll_op, val, + (val =3D=3D FASTRPC_POLL_RESPONSE) || ctx->is_work_done, 1, + FASTRPC_POLL_MAX_TIMEOUT_US, false, ctx); + + if (!ret && val =3D=3D FASTRPC_POLL_RESPONSE) { + ctx->is_work_done =3D true; + ctx->retval =3D 0; + } + + if (ret =3D=3D -ETIMEDOUT) + ret =3D -EIO; + + return ret; +} + +static inline int fastrpc_wait_for_response(struct fastrpc_invoke_ctx *ctx, + u32 kernel) +{ + int err =3D 0; + + if (kernel) { + if (!wait_for_completion_timeout(&ctx->work, 10 * HZ)) + err =3D -ETIMEDOUT; + } else { + err =3D wait_for_completion_interruptible(&ctx->work); + } + + return err; +} + +static int fastrpc_wait_for_completion(struct fastrpc_invoke_ctx *ctx, + u32 kernel) +{ + int err; + + do { + if (ctx->is_polled) { + err =3D poll_for_remote_response(ctx); + /* If polling timed out, move to normal response mode */ + if (err) + ctx->is_polled =3D false; + } else { + err =3D fastrpc_wait_for_response(ctx, kernel); + if (err) + return err; + } + } while (!ctx->is_work_done); + + return 0; +} + static int fastrpc_internal_invoke(struct fastrpc_user *fl, u32 kernel, u32 handle, u32 sc, struct fastrpc_invoke_args *args) @@ -1223,13 +1317,14 @@ static int fastrpc_internal_invoke(struct fastrpc_u= ser *fl, u32 kernel, if (err) goto bail; =20 - if (kernel) { - if (!wait_for_completion_timeout(&ctx->work, 10 * HZ)) - err =3D -ETIMEDOUT; - } else { - err =3D wait_for_completion_interruptible(&ctx->work); - } + /* + * Set message context as polled if the call is for a user PD + * dynamic module and user has enabled poll mode. + */ + if (handle > FASTRPC_MAX_STATIC_HANDLE && fl->pd =3D=3D USER_PD && fl->po= ll_mode) + ctx->is_polled =3D true; =20 + err =3D fastrpc_wait_for_completion(ctx, kernel); if (err) goto bail; =20 @@ -1813,6 +1908,30 @@ static int fastrpc_get_info_from_kernel(struct fastr= pc_ioctl_capability *cap, return 0; } =20 +static int fastrpc_set_option(struct fastrpc_user *fl, char __user *argp) +{ + struct fastrpc_ioctl_set_option opt =3D {0}; + int i; + + if (copy_from_user(&opt, argp, sizeof(opt))) + return -EFAULT; + + for (i =3D 0; i < ARRAY_SIZE(opt.reserved); i++) { + if (opt.reserved[i] !=3D 0) + return -EINVAL; + } + + if (opt.request_id !=3D FASTRPC_POLL_MODE) + return -EINVAL; + + if (opt.value) + fl->poll_mode =3D true; + else + fl->poll_mode =3D false; + + return 0; +} + static int fastrpc_get_dsp_info(struct fastrpc_user *fl, char __user *argp) { struct fastrpc_ioctl_capability cap =3D {0}; @@ -2168,6 +2287,9 @@ static long fastrpc_device_ioctl(struct file *file, u= nsigned int cmd, case FASTRPC_IOCTL_MEM_UNMAP: err =3D fastrpc_req_mem_unmap(fl, argp); break; + case FASTRPC_IOCTL_SET_OPTION: + err =3D fastrpc_set_option(fl, argp); + break; case FASTRPC_IOCTL_GET_DSP_INFO: err =3D fastrpc_get_dsp_info(fl, argp); break; @@ -2521,6 +2643,7 @@ static int fastrpc_rpmsg_callback(struct rpmsg_device= *rpdev, void *data, } =20 ctx->retval =3D rsp->retval; + ctx->is_work_done =3D true; complete(&ctx->work); =20 /* diff --git a/include/uapi/misc/fastrpc.h b/include/uapi/misc/fastrpc.h index c6e2925f47e6..63346e27d5e9 100644 --- a/include/uapi/misc/fastrpc.h +++ b/include/uapi/misc/fastrpc.h @@ -16,6 +16,7 @@ #define FASTRPC_IOCTL_INIT_CREATE_STATIC _IOWR('R', 9, struct fastrpc_init= _create_static) #define FASTRPC_IOCTL_MEM_MAP _IOWR('R', 10, struct fastrpc_mem_map) #define FASTRPC_IOCTL_MEM_UNMAP _IOWR('R', 11, struct fastrpc_mem_unmap) +#define FASTRPC_IOCTL_SET_OPTION _IOWR('R', 12, struct fastrpc_ioctl_set_o= ption) #define FASTRPC_IOCTL_GET_DSP_INFO _IOWR('R', 13, struct fastrpc_ioctl_cap= ability) =20 /** @@ -67,6 +68,24 @@ enum fastrpc_proc_attr { /* Fastrpc attribute for memory protection of buffers */ #define FASTRPC_ATTR_SECUREMAP (1) =20 +/** + * FASTRPC_POLL_MODE - Enable/disable poll mode for FastRPC invocations + * + * Poll mode is an optimization that allows the CPU to poll shared memory + * for completion instead of waiting for an interrupt-based response. + * This reduces latency for fast-completing operations. + * + * Restrictions: + * - Only supported for USER_PD (User Protection Domain) + * - Only applies to dynamic modules (handle > 20) + * - Static modules always use interrupt-based completion + * + * Values: + * - 0: Disable poll mode (use interrupt-based completion) + * - 1: Enable poll mode (poll shared memory for completion) + */ +#define FASTRPC_POLL_MODE (1) + struct fastrpc_invoke_args { __u64 ptr; __u64 length; @@ -133,6 +152,12 @@ struct fastrpc_mem_unmap { __s32 reserved[5]; }; =20 +struct fastrpc_ioctl_set_option { + __u32 request_id; /* Request type (e.g., FASTRPC_POLL_MODE) */ + __u32 value; /* Request-specific value */ + __s32 reserved[6]; +}; + struct fastrpc_ioctl_capability { __u32 unused; /* deprecated, ignored by the kernel */ __u32 attribute_id; --=20 2.34.1