From nobody Sat Jul 25 21:21:07 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 2941B412263 for ; Mon, 13 Jul 2026 13:01:32 +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=1783947693; cv=none; b=D/ITsr2adGGVk1hYw7mttY9k9fSxAPrn7vzdCbbBCyuUPI9h2Mo0JJWKrKx1FOee4wuhHHST4H/nvVwYuqJuockq/TagF/NLXY6S3r/Wb7QiIF4cg9uvY22t/zlzkO4fVybOc31r6LPFxrEosv0lT/fKGKRnRlmh2S5SYSqxIlI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783947693; c=relaxed/simple; bh=T0ZAEoPGlcD+MBsHOs7IR7iXvbxs2FRnDbpOdt9CWCM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=NTTMaQ4l73pziCD4dchmsfkprTIKbhTYMs7Fa3DncowGKzbv/bww2HBM8VsVfJxa/xZnwXXQ6sWDeEynFK6xghmoFHb1+ujexuOCuNk15489RCndzJgZdOfrDQnT6CuoFsXHHP5nGxReGqjc3oKTkY1fuMP1UpzP7CfVGe6OXF0= 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=YJFK4Jks; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=i5iGQkTW; 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="YJFK4Jks"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="i5iGQkTW" 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 66DCECkc1304638 for ; Mon, 13 Jul 2026 13:01:30 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= ssHW8XScr3JWgrcOFJ5LiFi8t9CrlHFACuaOrI33AwM=; b=YJFK4JksueG3kSy8 CsEOscJBC0OK7MMfArRUpRlNVdIMqiFLSsK8Rxk7/0TdNSPRnBCtCiG0+lhDxu28 BfamHVNKBqy/hPtjgzzoA+09KlodvXoxi08WlHwwHwuh08qfKmmg4prKnYwRIy7Z +Po+aWQwWnfnO3w/IxNsmiY4m5NlC/GAid4Vz5OyPmmoWC8xTtKjFxuJdq0ivwc/ InSTFrya04EUXnWu5IMjBH3kixlulKAAaIDFFNYFd3lBiGSN9ygLRbNgdzkti7/C m6xeANqK3lYQCtkgWlJzZxXOEUZ/brJdM/WHD05dylQ6s3zy824QgqdyWq9tDtRP 6odF/g== Received: from mail-oi1-f199.google.com (mail-oi1-f199.google.com [209.85.167.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fcwk9rq5c-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 13 Jul 2026 13:01:30 +0000 (GMT) Received: by mail-oi1-f199.google.com with SMTP id 5614622812f47-4893fc86bebso4307699b6e.0 for ; Mon, 13 Jul 2026 06:01:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783947690; x=1784552490; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=ssHW8XScr3JWgrcOFJ5LiFi8t9CrlHFACuaOrI33AwM=; b=i5iGQkTWPkZGjCwR+DkIV4DjQ0ocfp1Gd1Kl+J4a5C8CtHBKRqoMwDRm7mbXYJsFgB vKds43yKhvWgRNiMd9QIxl2glIn4hUsBxFIyjZJu9bQBYThZdSuBJlsNlh4XAChU1ZWR l/NBrafJ56vpyO1v2QwdnHX59QgDqx2wHnml9qBRKAIAs0Ltglen1qNLaifvyLsXU6hf fIDJfHy89pvUkdi7Y+tmGYIKVlqoS8c5YXhno1/VN8ou6cO//NJh0A/7n1ZDlaopfVBt LPWhEePjymPC14O3TZdijNYDYOoG25YGG4Fsuc7RwTMCbKu/goF7d0IugWtodA/UaTSj DlkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783947690; x=1784552490; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=ssHW8XScr3JWgrcOFJ5LiFi8t9CrlHFACuaOrI33AwM=; b=ZmroY66PcBBEoCErRcYReS4mK/5Zb8Qk4aHciALQ3Q7WgcHoSnA7TM9xJFIQqeldfP hnA/t32P2XDGxOqLvR7Ee7N4qKUpzb0QHg6B5GU3j24v7mtKg3pUK9zy6tQbuOe7t1W/ oHIkq5neYXzaMoGlKtzZpFHZzjVf6wczcKakb2kOjzAAckWK1prQV/YMiMRCt2JK3Nel WmcA++0mZ29WJZWeBKShKZj/+sIC7XF4tMpNhEhG6+5Fp1uzzMNP18KT69M2Uyjdn/mE ZOl0X9p6q36p7A36+PkLUVY0qYz37Ys6vDt7Ee9SghggyBvpxynaFe6SGDnq/BE6w+Aj V1Wg== X-Forwarded-Encrypted: i=1; AFNElJ9n15aBVyM4Onnnu9MQmHiwKwd/iXf3wROBIvr5BjRdqsqPXnJwpjJAFjI8DgpFHlViQWgV2MwIxdKin24=@vger.kernel.org X-Gm-Message-State: AOJu0Yzsqb+f6bCawDPWfEmpymjPZfWHN+iOTFk2bA1DzV3Z1fy2NMXO eOPSRHHMJspwdA1Mcf3+julO9Lyf9NjMQRVwO6YldqstuKOEJuVP2qZkz0Y9SznXmFkg7z3jlrC ftpqa8+MUHewvCYCG1HApxzbj1Pm8mQROF00dTVYqPEyfF8xAHjoxPTPFOxz+jsHSjjU= X-Gm-Gg: AfdE7cmFzT1Kjt8wtj2kiiqHsn7VJGdDhCbRlwFESNfXbIai1NRppC9cBOY7XlzlG6z fFbHj/bOpNa2oJNZDgtk2vV8lxVU3ENFQTLUulk8XpnmokdEE25cKSMHD3H7rESLmNOM70IKeqn xc75Ej35RjqWxuYp4wLiMsFblJR8n6CC27QzXiWLfA1+POsU9PSyLGWhPE+ZdwzlX7n8/ZmWos9 cW3t4ARq8ib7PZ7NFv5OgYGjRMiYHW5U4HteJiK2vc7ufcrEEJpy6wkZEdw2lSntPi85y8JX52R HdzM1SVBJe+t4mSN7VKRW0WubCNSj77g6cfIloqm3aYTZcUHbuPbyakmJBNYNYjd6bFbnwrPuiX M8gMbHODn0KbebUkVCeG3YWDf9Z9WaCD99Mvkouvj X-Received: by 2002:a05:6820:216:b0:69d:fcab:c640 with SMTP id 006d021491bc7-6a39a6cc376mr4848284eaf.42.1783947689513; Mon, 13 Jul 2026 06:01:29 -0700 (PDT) X-Received: by 2002:a05:6820:216:b0:69d:fcab:c640 with SMTP id 006d021491bc7-6a39a6cc376mr4848226eaf.42.1783947688764; Mon, 13 Jul 2026 06:01:28 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:8881:83b8:89fa:1a2a]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-493f2d97527sm306129725e9.2.2026.07.13.06.01.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jul 2026 06:01:27 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 13 Jul 2026 15:01:02 +0200 Subject: [PATCH v21 01/14] dmaengine: constify struct dma_descriptor_metadata_ops 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: <20260713-qcom-qce-cmd-descr-v21-1-bc2583e18475@oss.qualcomm.com> References: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> In-Reply-To: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Md Sadre Alam , Dmitry Baryshkov , Manivannan Sadhasivam , Stephan Gerhold , Bjorn Andersson , Peter Ujfalusi , Michal Simek , Frank Li , Andy Gross , Neil Armstrong Cc: dmaengine@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, brgl@kernel.org, Bartosz Golaszewski , Bartosz Golaszewski , Radhey Shyam Pandey X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2359; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=T0ZAEoPGlcD+MBsHOs7IR7iXvbxs2FRnDbpOdt9CWCM=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqVOGVtk23j9WMdAK9vTBVzx3ggbDwbf+8TN6Cj XQXTvzeETaJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCalThlQAKCRAFnS7L/zaE w6FeD/9JqF+LVP1epiNp5FsiCS3htRKz5PlF4mocU3VrUG0etSCHC1tK4PzMixQZj2Tl7N7Zok1 j7/LP9ZI6/0xY7u7YuY9behpQ1mex/SKrXXzCId0DC1R40Gmifr67MXasXktEjiBwQNnHeouM3I KggDHXo4ccrCjBc9werjgP+GRdbBDWgE4lRaxZjjTOhkqAOgUrvIsv6KL/+nhZFSP4VAOtruUkr kJ/nzdGXfU6u1yCW3F0XbJaXqPdvE5rEi/RlO7ux6I7OXN4T7BPztA54Dc/Sv65u8TdxBn0d48q RevX3zqSTgmWUbfeb3PuW18MSNd7V/pU2Z2iJgHWX/1oYf0LDfwPIfcb7Pg+GWUD1WtcmVsWd7y DfCgRwzhPPnDaIwoeDGYK7OBE/RdtbRR25xC++dDTWSiCVlcIRvCvajQANHjzIO7NbKBNUI0uiX QFmbCPLc6SAwmhe1QojBH313wPgkjP9fYsCAoTwYGwW0tvaWaoWZPKrRNlDYJhNEqaSFhZJJs2h tesL4V5Kqv481xfqgE+XQdYFht2EAAFxyGQRRlHfzXyNPFesmC0bxRR/KG4FQjI4zOsKmphhDZl d6LFkMywLBDJO5nZzwXC4BIorLovMhXH+YyUuLEyqmUDehwLEBuDoPszp1uEOwmzRCUF86VVY+i eyex7CGHqOPsVWg== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfXxuxU+3U4Nqkq 1N0LR22ro72BWXaSo7EK6Q6Pbo2aMAsg5OUTWcf02mD3lywiYOsDAzC+9xtbFbJQJ9pErIFyEUt u9wp3RHKek46hAWYtaAXkR4SUcC3KRD8SGluEq7ScxbwQk53g+JZhelWWmfvu2Crc6B+Fpar4q5 xcMIHk3rloji8IyZB8T7kqD1h1ASyGfNK6F1d/orSkNLWgudDjhtFuMVn2gVO3c/ClXJ45kOmAV NjThkb0W2dkAGi/EJHXHNwsopg6SVMadRWQUjdhXI1hKwhoY9DMLZ06kQj2ZzHZwYGCns+CIsjG aX0onCxElUKn/VaiQYHDoQAkySv3JbVwbQSsh9MEdJt0Ibip8yZolr8ojfP6I+3Gfl2OE0g5kFY NNVwfEoR4SxRfF0W4Pn9xMU+bprinKTc+IugY4O+Nv0Vv1+yvzcxrLz3wSLOaYY2cJgaUgnlCq5 Dqm7J897OsNgjDjLQ/A== X-Proofpoint-ORIG-GUID: f4cu6j1h6sFu4XrA3S_q2nyX6cF-8qrm X-Authority-Analysis: v=2.4 cv=UMHt2ify c=1 sm=1 tr=0 ts=6a54e1aa cx=c_pps a=yymyAM/LQ7lj/HqAiIiKTw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=VwQbUJbxAAAA:8 a=zd2uoN0lAAAA:8 a=EUspDBNiAAAA:8 a=XeVHrwws4l7kqE2Ex6IA:9 a=QEXdDO2ut3YA:10 a=efpaJB4zofY2dbm2aIRb:22 X-Proofpoint-GUID: f4cu6j1h6sFu4XrA3S_q2nyX6cF-8qrm X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfXzteLMn0YNikp 0yTg4dVqTEjk9RaSYu3JFaz/QYJQ5bOBGSRTNbSmUSiXGXgczzi17B5vwDKLnzDlbglBH1iKjnR CgkOgilhUApxJ68mQw78QxfIzRJI5aA= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-13_03,2026-07-10_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 impostorscore=0 spamscore=0 clxscore=1015 adultscore=0 malwarescore=0 lowpriorityscore=0 phishscore=0 suspectscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130135 There's no reason for the instances of this struct to be modifiable. Constify the pointer in struct dma_async_tx_descriptor and all drivers currently using it. Reviewed-by: Manivannan Sadhasivam Reviewed-by: Radhey Shyam Pandey Signed-off-by: Bartosz Golaszewski --- drivers/dma/ti/k3-udma.c | 2 +- drivers/dma/xilinx/xilinx_dma.c | 2 +- include/linux/dmaengine.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c index 1cf158eb7bdb541c4e7f4f79f65ab70be4311fad..fb21e0df5ab7b20e4e16777b5ff= 7f61d2ae67b2b 100644 --- a/drivers/dma/ti/k3-udma.c +++ b/drivers/dma/ti/k3-udma.c @@ -3408,7 +3408,7 @@ static int udma_set_metadata_len(struct dma_async_tx_= descriptor *desc, return 0; } =20 -static struct dma_descriptor_metadata_ops metadata_ops =3D { +static const struct dma_descriptor_metadata_ops metadata_ops =3D { .attach =3D udma_attach_metadata, .get_ptr =3D udma_get_metadata_ptr, .set_len =3D udma_set_metadata_len, diff --git a/drivers/dma/xilinx/xilinx_dma.c b/drivers/dma/xilinx/xilinx_dm= a.c index 404235c1735384635597e88edc25c67c7d250647..165b11a7c776abc6a8d66d631e1= 9da669644577d 100644 --- a/drivers/dma/xilinx/xilinx_dma.c +++ b/drivers/dma/xilinx/xilinx_dma.c @@ -653,7 +653,7 @@ static void *xilinx_dma_get_metadata_ptr(struct dma_asy= nc_tx_descriptor *tx, return seg->hw.app; } =20 -static struct dma_descriptor_metadata_ops xilinx_dma_metadata_ops =3D { +static const struct dma_descriptor_metadata_ops xilinx_dma_metadata_ops = =3D { .get_ptr =3D xilinx_dma_get_metadata_ptr, }; =20 diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index b3d251c9734e95e1b75cf6763d4d2c3a1c6a9910..5244edb90e7e7510bf4460b6a74= ee2a7f91c1ccc 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h @@ -623,7 +623,7 @@ struct dma_async_tx_descriptor { void *callback_param; struct dmaengine_unmap_data *unmap; enum dma_desc_metadata_mode desc_metadata_mode; - struct dma_descriptor_metadata_ops *metadata_ops; + const struct dma_descriptor_metadata_ops *metadata_ops; #ifdef CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH struct dma_async_tx_descriptor *next; struct dma_async_tx_descriptor *parent; --=20 2.47.3 From nobody Sat Jul 25 21:21:07 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 0E59641325D for ; Mon, 13 Jul 2026 13:01:33 +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=1783947696; cv=none; b=fKxruXPgSEDxjCKYtx2Hm4/MM806ZrWnESJ4xpniwjTzA3UnMm4a1hZ18xcADDGneLYyOrMgtE+RFsJGhgF6YawwkVUr7mqUzIqb16/DL314RAd7U0H0bIRX/R4JoTZ6yI8YzRnD/8HDs1hAUVWmYyPDveanySi6IC5WjLOG5K0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783947696; c=relaxed/simple; bh=4nbFs/xg8cCMPYrFtHWE96AOtkhXxC7yUgPXEapSLFc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nhmwaLg/wYoqHsYQgjnuUJEWpnqHCUXgEWoXKpyAZmNtDNjSiWb/NB9/wU5X1jFiGk+b+DbQWPhlzhYRbQLIaZ6/Q9cPjBo/2sFF8rpnDhmDb56L3H5SQXc4YbPV4Zaq9ufkMy9Rc37fwxBgUeIfh1/6C7vJI9koCpauXKxm2JI= 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=BPMW7qvk; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=JWcLO6W+; 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="BPMW7qvk"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="JWcLO6W+" 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 66DCDlGe1398857 for ; Mon, 13 Jul 2026 13:01:33 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= /Vh6sT+8mC4wwsdE+AaqQfMuc9K2i5dAUjEpzQ2UVhY=; b=BPMW7qvk4rSt6hfp 63NVF49Uug/1J+UqZRmu13NNmzyySLm+WIuCm8InPagd22orXm3WJQHbabsezl3t SgzsHsBJXP/0IuzYU4ChVZJVUMzZ0cDk64sZzQ26MzDO1zJ1govoSOLqDumCAVww qHFJ3EbQac2wbxux3joUkrpJCYNDFVP9UOUzhb4abwFOmBknvlfA3DpccDzPY7UJ 2m6iWDMoHs6rBEXMZQuz1kfL0hIa4hNKxkCukX5Sd14MGIeI0rOgtSU+22xBvGbi OMMPGrWiJ+uCwVtrhMJFtMh5tq1WkgwY4jJQIYYewBeSjb6q3+x/HtPrbN7gcrwp KM59hQ== Received: from mail-oo1-f70.google.com (mail-oo1-f70.google.com [209.85.161.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fcwu4rmw6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 13 Jul 2026 13:01:32 +0000 (GMT) Received: by mail-oo1-f70.google.com with SMTP id 006d021491bc7-6a17ce8b08dso1623543eaf.3 for ; Mon, 13 Jul 2026 06:01:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783947692; x=1784552492; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=/Vh6sT+8mC4wwsdE+AaqQfMuc9K2i5dAUjEpzQ2UVhY=; b=JWcLO6W+5Qc6ie8sQXtgkO884bcTyYr8gZGdCpRZ0QUnPCpRgOFG6fuMAM4x+IYeMq CzSpE47uUEQdtdicB/AkDJ+bxDNcNmWDMGucYvMwwyvwkXpMRs0EaVt6R/0vwucQfOMT 7ogxnnr/K27rnvsq3wRGknd5i0b6dq0AZF3CDzWXbzOou4Iavjyh0flL+jDnkOP36AA3 zJAC8f4bkYFkUvsEBAextRE2GAxkFlYGYjW/xAkc3/qZtXN9IKO1NkpOPEnOlJpfSuTy OgKixHku8AukoLdAJSA3VcTI9nNYLZMwUDwObDku0rsjHY57ftkA6duJaO6Fa7HhlL5G ZtHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783947692; x=1784552492; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=/Vh6sT+8mC4wwsdE+AaqQfMuc9K2i5dAUjEpzQ2UVhY=; b=iqK64ohrnN5PjveG1X/AkbYxWqiCY9H+FhCCIDSdtkaVU+Ink68tgeQG1TyGnYnPYo uh/hK9633HVh2E0/4z8mS9WKCxVrEakvlVYMMWqdEUQUOsoYhSUpJbDM+nzSQil21CXQ rbup/ZU8CGi3fABDUYMxlVVrq659N4OKnaDjinhopXHaejL3mDrtqpOVbAlPtAfQ90ks uBJnvQNqXT8E7Kscicxr44E6byOW1iGzcvTGADfY/vx7luXAD/kv9JuEs8H0zyhBM0SH rwdDemdoTZfkvI4DVyDDe05lCEYzb3bYbu2otzwwcbp/dVOtv4qU3fnQ68qZBNTblcVU AUYQ== X-Forwarded-Encrypted: i=1; AFNElJ+SJlyG6UMAvfWW0bJ20MjVwKtNn4iXdW9yH4VDwFWMpb+FvufnxqknYdE5q4CW7ireB1uTYV7gif9Bsus=@vger.kernel.org X-Gm-Message-State: AOJu0Yx4/AFLHshV/hqvNd5bxpn1KQs6GcCN4BuqX10n4TbCg/Wmwkz9 Nn+ZHJlg94fQUgGvOYQcrU4Om7oWoWdtOCbd5hcczfbvd9O0UWdzmL3WAIrrvageyGae1w+1gnN BDQ8keou1hlmON/SGIi5KFa/kXCeS+5TUXYfFct6+QBsGJY5bIIApUHv8OgxsNfVwLhE= X-Gm-Gg: AfdE7ck45l0k/aALf/WufVNZlwRCLAYjCfdzvSjNRJA9ezMlPlDXUtslyoZ8WcYjV/x 0CSf27zXuxGYV2G3kytct+il7IyhmPts3Eaf6lwxrstOYgDIvYV+4ldrDpPZddkve2Av2zEjxFl fHsdMEeiyTligC8Rx5L9fzqJ4kcVh7R+J2YOInreHwHm8ZzbdyNl0GniPKKqv3UrlXsH415+9V+ zqNwJi02fP3DkVfBni0gV5W0cJB6KSnKz3JN5S67SzJGgLmMfCIosq24GgFJtIwiYp4VEq7Cl+N +NLoB1n+HK6UIRmBYbjZ5CxTWwJKhSH+O7KVKoOHASrj+xDq2EbzWGffZn/mnD2JF9YiqnI+/UE TmjTbWxCGzXX2HJ24DNx6NRmIsKhkx59kjVDE1MVe X-Received: by 2002:a05:6820:709a:20b0:6a1:87cb:c34e with SMTP id 006d021491bc7-6a39a8bc0cfmr3777050eaf.72.1783947692039; Mon, 13 Jul 2026 06:01:32 -0700 (PDT) X-Received: by 2002:a05:6820:709a:20b0:6a1:87cb:c34e with SMTP id 006d021491bc7-6a39a8bc0cfmr3777006eaf.72.1783947691457; Mon, 13 Jul 2026 06:01:31 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:8881:83b8:89fa:1a2a]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-493f2d97527sm306129725e9.2.2026.07.13.06.01.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jul 2026 06:01:30 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 13 Jul 2026 15:01:03 +0200 Subject: [PATCH v21 02/14] dmaengine: qcom: bam_dma: free interrupt before the clock in error path 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: <20260713-qcom-qce-cmd-descr-v21-2-bc2583e18475@oss.qualcomm.com> References: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> In-Reply-To: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Md Sadre Alam , Dmitry Baryshkov , Manivannan Sadhasivam , Stephan Gerhold , Bjorn Andersson , Peter Ujfalusi , Michal Simek , Frank Li , Andy Gross , Neil Armstrong Cc: dmaengine@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, brgl@kernel.org, Bartosz Golaszewski , Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2818; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=4nbFs/xg8cCMPYrFtHWE96AOtkhXxC7yUgPXEapSLFc=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqVOGW93v0sClC2ft1uCv5Hw3EHtNtjlSJJwq2r tE4EdQeEpKJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCalThlgAKCRAFnS7L/zaE w/uzD/4w7eNiuNpdXOL3t9tZlS5LdaL8UOWb9G3C8AYDPtr+fAN90n14n2NZg3uMrzojjmDpFUt 9Iksuw7xVCS8Q7h06Z+LOwUYoaNcF0Gc2xPMRwd195hnUU/A+s7yXeaIJBr5PUJj9SG+Tij0l0q 4bMuNqytBjFwaz08h6FCxbDKCbL9Ff2GWef6txBaonkpWuyrvUvT3V3h9z/lk3gLr1W3KH2dT2j POs49V+Qbj1NxYMoJW2YDLOhagEbVsSydQW2ipiXh4EsYKumCfShgSwuZAD8YWz01K4wF4o86YB Sj+m4+o3hUIbfnqo9ftCfyMDopd1O6fuaTMGO3yLaxOv1SEcoQIGNBpgHsaKsaj82CESkHpYOq0 4vzS/QnSmT/XNVCQ352PE2k5HJssuzCzUFiX21caaVJ9HegTqNjL+sO7XXyFHiHx+eyhevnboX6 zLdH9SIZuysid7hmCa6D6JwQJfiaJgT6naeB6YZiXeiqNpnlF5YdKB08eFK4Xy4U/0FnI1GIfaU MTQvGK1+c4PQOI/98pLZIEKZj/V6+LWNqt4LwDjhTBeQ8HFC6p0P2RqQfqpw1MnErtYQAC3D+Zz TUMi/XvI79oxiLqk9uhZMCGkVrz/zuI1f/T24vQF52gXfwhD71tnxmULJ2aTCOV5TxdY2AcfMnv qYTuv6HHSU9AEKg== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Authority-Analysis: v=2.4 cv=FMErAeos c=1 sm=1 tr=0 ts=6a54e1ac cx=c_pps a=lkkFf9KBb43tY3aOjL++dA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=c92rfblmAAAA:8 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=n8zAjjMAgf0wD31B80cA:9 a=QEXdDO2ut3YA:10 a=k4UEASGLJojhI9HsvVT1:22 a=GvGzcOZaWPEFPQC_NcjD:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfX6ebYmoEy7hb6 WXROvBJwdvKtg0ePJacHL2uxfViodx8j0oXOVsMuGlDnBBY9g4lRC3jhwuisktZ5T2lMD0KUbP7 z8IsicNMkE4t7KQsGk83dK/qoZ9OoRc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfX3MoRclM3RWHY e5oH26ux5pn7wbuMzoUPy5bBRVW+RLNF94UmI2Bw88ZB08M5t27QDHO2bCbJVz/f/x0a1ywd/Sc +Xi7fA/epaQW6kxCQS3XKpr0HjFdZdjyhDKI2o6182oM7oDQ6q5yLS9JQR+v2/1P2Z6UyzeabFV U1CzW+YvTNM4IVcYwbdRrBWk3u3CMDh0d5WHYAQicIOOtL+J9So+Jd8Pdr3n9TKWl+VGXWiZ+Z9 yA752D31E3t+Gtj9kMTKUi+VeJW/pEcdNSxWL7hPy3cSK2LWMSprVkTeqc5LeYR9l5FlKM0VQD1 2sbTDRfhLXLSrw13oAZKQxc/h7xXUexyhsmcM/wsLOQm7EKfrXzEhUXcBzQzhkbgFOgy5aGKREz UqIWv2XBgR7xoRErmwQLrNTP/gK33bGNBaFPdcnCQmlHJKmA2V2Vx4FX+r2GsqdULsdERSMPwLj ZSCSXg3RGGtJf+WX0Jg== X-Proofpoint-ORIG-GUID: ztCtLnynF_QYZ6UV-tlHcsVInnZ6IXdH X-Proofpoint-GUID: ztCtLnynF_QYZ6UV-tlHcsVInnZ6IXdH X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-13_03,2026-07-10_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 adultscore=0 bulkscore=0 malwarescore=0 impostorscore=0 suspectscore=0 priorityscore=1501 phishscore=0 spamscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130135 The BAM interrupt is requested with a devres helper and so on error it's freed after probe() returns. We disable the clock before freeing or masking it so it may still fire and we may end up reading BAM registers with clock disabled. Stop using devres for interrupts as we free it in remove() manually anyway. Add an appropriate label and free the interrupt before disabling the clock in error path and in remove(). Fixes: e7c0fe2a5c84 ("dmaengine: add Qualcomm BAM dma driver") Closes: https://sashiko.dev/#/patchset/20260427-qcom-qce-cmd-descr-v16-0-94= 5fd1cafbbc%40oss.qualcomm.com?part=3D2 Reviewed-by: Manivannan Sadhasivam Signed-off-by: Bartosz Golaszewski --- drivers/dma/qcom/bam_dma.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/dma/qcom/bam_dma.c b/drivers/dma/qcom/bam_dma.c index 1bb26af0405f3a16f97e0d4b86c945c252d97f57..fc155e0d1870cbb7e099a2c4280= f9f8fbdf6cf15 100644 --- a/drivers/dma/qcom/bam_dma.c +++ b/drivers/dma/qcom/bam_dma.c @@ -1332,8 +1332,7 @@ static int bam_dma_probe(struct platform_device *pdev) for (i =3D 0; i < bdev->num_channels; i++) bam_channel_init(bdev, &bdev->channels[i], i); =20 - ret =3D devm_request_irq(bdev->dev, bdev->irq, bam_dma_irq, - IRQF_TRIGGER_HIGH, "bam_dma", bdev); + ret =3D request_irq(bdev->irq, bam_dma_irq, IRQF_TRIGGER_HIGH, "bam_dma",= bdev); if (ret) goto err_bam_channel_exit; =20 @@ -1366,7 +1365,7 @@ static int bam_dma_probe(struct platform_device *pdev) ret =3D dma_async_device_register(&bdev->common); if (ret) { dev_err(bdev->dev, "failed to register dma async device\n"); - goto err_bam_channel_exit; + goto err_free_irq; } =20 ret =3D of_dma_controller_register(pdev->dev.of_node, bam_dma_xlate, @@ -1385,6 +1384,8 @@ static int bam_dma_probe(struct platform_device *pdev) =20 err_unregister_dma: dma_async_device_unregister(&bdev->common); +err_free_irq: + free_irq(bdev->irq, bdev); err_bam_channel_exit: for (i =3D 0; i < bdev->num_channels; i++) tasklet_kill(&bdev->channels[i].vc.task); @@ -1401,6 +1402,8 @@ static void bam_dma_remove(struct platform_device *pd= ev) struct bam_device *bdev =3D platform_get_drvdata(pdev); u32 i; =20 + free_irq(bdev->irq, bdev); + pm_runtime_force_suspend(&pdev->dev); =20 of_dma_controller_free(pdev->dev.of_node); @@ -1409,8 +1412,6 @@ static void bam_dma_remove(struct platform_device *pd= ev) /* mask all interrupts for this execution environment */ writel_relaxed(0, bam_addr(bdev, 0, BAM_IRQ_SRCS_MSK_EE)); =20 - devm_free_irq(bdev->dev, bdev->irq, bdev); - for (i =3D 0; i < bdev->num_channels; i++) { bam_dma_terminate_all(&bdev->channels[i].vc.chan); tasklet_kill(&bdev->channels[i].vc.task); --=20 2.47.3 From nobody Sat Jul 25 21:21:07 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 DFD6F416D16 for ; Mon, 13 Jul 2026 13:01:37 +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=1783947700; cv=none; b=kDoIB7R95v5pSjFGVmtCLKJ+g0PfYh77Z0BGZqdl+h9YcF/6WKY6dOCgWsBx/hDG9jKN1t1k9N5IO0OfSu3ynAMo2sPptWY/eFNPNVuJyTbLC1+Rc9H/zxC0d9+tQrTXK6R+Qkna9AFWptCQvyqDiiX68pbGIWpn/rkAK4XLu0U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783947700; c=relaxed/simple; bh=wCpLSEqzl6yoBDde9p+VABZfQUJK0dP0DnJmF5kRzKI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=A5CP5q/Wq8eKaw8mbGV8+l4Ntll8w0cJPze9CE0HMqsEIQO8R+3L0X0aItPeDv3gf3SNi5Rqlncs+Dv9xv+vCC1K0ldGlQzUGaUcxq38nENnuHpVbciz0QbVfkYH6ocaKhq98rgg98FOeUWdJdXx7bYUG/iO25O9yUwvu/rcmv0= 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=As319bkH; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=j9OevBXq; 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="As319bkH"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="j9OevBXq" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66DCDwvT1428343 for ; Mon, 13 Jul 2026 13:01:37 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= EisVJTTfRpbffhmQLHO5RqC6wDH0dg02BTw4k+UhwPA=; b=As319bkHmB2MPCD2 hVjsqzb/0oNnhssWoqFyIUeaZrYkdhwxn+OQ85KeMoE/K+8tSovvuYCrh/Jrrjo7 aQpJUhvTmDJsFFFCG+CL80mbt0+G0F+3OY0Ulf3Bq0izs/3L8GU/s1kIVGWjVkU/ xsOxCeLDTwyUqE8E5fEdEuVyb/6kWLeayDVkudLc1axFCx+dhXQnU9Nwfq0/HEcl Y8bUd9y0cXKCli1rBJbsIjdkA98Djd+R9eTNHFY9E2/hUFvlxzrvwp+FTFtQj2Rj T2Iv6tueOC/iAwkRoBLfrEa2VmYzy33vVuricBtYNx2GKBVUpfe8Xh4ugw6SROnm KwkwXA== Received: from mail-oo1-f69.google.com (mail-oo1-f69.google.com [209.85.161.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fcurn15k0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 13 Jul 2026 13:01:36 +0000 (GMT) Received: by mail-oo1-f69.google.com with SMTP id 006d021491bc7-6a18f3aba30so4371460eaf.1 for ; Mon, 13 Jul 2026 06:01:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783947696; x=1784552496; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=EisVJTTfRpbffhmQLHO5RqC6wDH0dg02BTw4k+UhwPA=; b=j9OevBXqCEPzEELW1yF6BR6QPIbOovqZ09VdoxPvr/868unUJw6twdG+Mj5i/g1LhZ ih9OFEStud4Yl4BZz0hTwXUk+u013kBwYatr9th3mL+dkf3od0IjfM2pPMHZELySVGs9 RmLRaAJtuZShw5XGZHp/U8oh/E2Zvhfs67tHOdAezi8XjEc+vwQtiq1xX5CpUBCiZY1V jR30QjV9UpdB9bd+2MbxSRDynmdYtW0EZYb5Em5r/tO957thipjQb1FrfUrcc2QA2Jrx 4mpwoMMHztFetNh9SZnjEgyizSrYlQ33p6jDl1OsdUQaBXFZUdzA43zxoosD5n34PVi3 7VWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783947696; x=1784552496; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=EisVJTTfRpbffhmQLHO5RqC6wDH0dg02BTw4k+UhwPA=; b=eADrs/5oOT7gyko49pchB/6zJjjWoOunjyb5USlOK5/7dMqFN5AwxykXoeDhKF3qcq aMvmKCrWtPzEPRUz5GcrgL+Q45A0QITgC/WgZUX3SUhgHr7fODMZbMuPXY7osoGoHbiF /VFq5iKdHGztdJ2OLhmNcOQHX4kOT5sBUsPUhcYoPbOcbju6mXYB+CnL4mFZp9a9am16 UZePucUwzp3AVhzH9mMIdCAFuL8QteveCk/1atCgepGp0V+JzIPCGoKDVTx8S4xdCHwh /vfSMlX4XAQwKhP5yqEh828kHHbXjvJmAEmShg/+SqlhbA0jHCmWZ1iF6oduxWgnpUqE ToUQ== X-Forwarded-Encrypted: i=1; AFNElJ87YE1sJ1D9qw7Gwf1PWfTcv5k1gd2PRdlk9hXodL6k9h6ejmdj2oYLTiSeSqc5I84phmesoubh9WcBxlc=@vger.kernel.org X-Gm-Message-State: AOJu0Yx8a+R6xPx/Pm6l0IoV3wrOImLDmgp2zPjelMdnK2930cxt4ZYP 7dQoQOuWuR3MejwDQbMzdd7uP3IyOODH7pYHWbxudaLcYVS04AvmfKIvVeGdMygCdFvcXb9Vku5 QE3bO8glus1/yZS9HCTkbJIqMOT8Y/dERkaWtKgF85LKlZzkC4S9FRMaKdLsvo+GPRtY= X-Gm-Gg: AfdE7ckIUWInZTBIp8SXcxNUS2zNxfblMmMj8fkj/YsTiqHBMcd9Wov1qRuVFuKvMYX lQjfwm3jbORdLcWGBRc/OgXE3f1Nkx6YBImXSmUXobceHB5U+dcTCgABt4v/HnZIB0Te1xpmBjc BDWJGuueSOq0f0O7qiA6CvNMj7yh21ZrQfwV2HWBnMGTKnO+QC0IFpWpjH5TCSoUYzaSKhVLuEt o4tdr9nLeLXfXzHmlHq/0729rb9Ym7I6vHtmSlPOPYOdh2L2JohZtni6eBqjaaQCnLD2fQk/Xyt 787cbeIfB+DDQebDmcBTHBacUpl9XvFic6x/NpKFPRjPTtc806I9datBjyISVBO6l5p6xqMUiP3 bbzWGM+I8yslJ/VdG8aUAwrJCcRaq8iVzNAoIO5zb X-Received: by 2002:a05:6820:2081:b0:6a3:955b:846e with SMTP id 006d021491bc7-6a39a6e469dmr5625846eaf.34.1783947695726; Mon, 13 Jul 2026 06:01:35 -0700 (PDT) X-Received: by 2002:a05:6820:2081:b0:6a3:955b:846e with SMTP id 006d021491bc7-6a39a6e469dmr5625784eaf.34.1783947695041; Mon, 13 Jul 2026 06:01:35 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:8881:83b8:89fa:1a2a]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-493f2d97527sm306129725e9.2.2026.07.13.06.01.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jul 2026 06:01:33 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 13 Jul 2026 15:01:04 +0200 Subject: [PATCH v21 03/14] dmaengine: qcom: bam_dma: convert tasklet to a BH workqueue 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: <20260713-qcom-qce-cmd-descr-v21-3-bc2583e18475@oss.qualcomm.com> References: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> In-Reply-To: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Md Sadre Alam , Dmitry Baryshkov , Manivannan Sadhasivam , Stephan Gerhold , Bjorn Andersson , Peter Ujfalusi , Michal Simek , Frank Li , Andy Gross , Neil Armstrong Cc: dmaengine@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, brgl@kernel.org, Bartosz Golaszewski , Bartosz Golaszewski , Dmitry Baryshkov X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4421; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=wCpLSEqzl6yoBDde9p+VABZfQUJK0dP0DnJmF5kRzKI=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqVOGX/Y8gCg+vNlb9b8QC+y2NfOdxPRPOTVCmq xAw/gdxeH6JAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCalThlwAKCRAFnS7L/zaE wxhED/4n1veWAxQWpeJS2JF4WMRXE7Qvtg/6vxq21gYhDGmSsHSQgS2lLYK0DMGm3oqm2Ft3zsf sZQtzaxhO1DLE79xiBvNcVoZ7R61pPwrxOisq7pviB95rRCoxwmUXppCWgpQTTnAdMQ3ubwLAKZ uGHGu0lUlsSPutnLVQEqCrF4Y3/j0wm9Bc4WCw3+YU5tYXUr8LYkxzF4lGwOqK1igDU9xGxC2vT nh5+aKVbKrDN7kOLGFRXwf5TnvqK7JsecA3krD/0SOuKTrV1sHI2tnDhm2/VEc/JeYBokhT3U9h Uph0Nh6JK6419lTFFTBt65ASG77FNh1NfPs8gIeCi4VGAZVtkJHOyGsafxbFWz5EJ6sZhGjmQWM A0ijR2UslRW8F8q65YwAggdfUKLCPnZBMmMBi9FgxpJvzccZvK7bwnbI/tEcGQOxu0xXOsny/o/ 62SJZxyiSKAJmZ0ki3ku+nmOKed2WhouprsvaIYUslRMsUj+BiD/JQ6lczGOyw/1PRYwqXFomlF gWxQnJMPfFwtGRssFRfGtlcopFYECP2rHBuYi9eqohJ6xvDzFD+h/M61zMmqIUdoLijMLLmFaeS XcNPtsA148e2Ij3mjmX/uC0Xf/wqcEjBdAzRs8VkI9Fgs6QXrOGA3JadnwSaX4B/r/ts3Xq/PMc Wz2+SMMC9BOM69Q== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-ORIG-GUID: dO8U7HmzM9fU4Aw3lFuTnTMmwB57kaMa X-Authority-Analysis: v=2.4 cv=IcK3n2qa c=1 sm=1 tr=0 ts=6a54e1b0 cx=c_pps a=lVi5GcDxkcJcfCmEjVJoaw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=KKAkSRfTAAAA:8 a=u-biHsxzOdRIXVMzAPsA:9 a=QEXdDO2ut3YA:10 a=rBiNkAWo9uy_4UTK5NWh:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfX9mLfmrmSWQOd TqXsXFW8UCdaqiRXac+DinwKjFG1tgDqu/+jnBlpxU98o+FL8/dFtjzMoUnxC9Uebjt2YguL5fY 5fs32PEDL4wCsQO+4vlHxvG7fQmCmms= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfX5Uyi/dSsQw/k 9C+uohX4+pVUn5cQD4ENSdILq99Rz1rFD3+IF6jdAnzNLyVIz7ACIC4jELeyC8rIbsyz01An3EP qCmiTX3HrSjC2BmRuqy85Hn4nkHgZgCwN1zCHvXVLEo+/u9R98LWBycQea3i9UYZyFvEp6enIJd H/dKzcigSTjN1JD0MC5tuhpb6/ydyjucp38+QkuFbWmFfHIxR9NIKJKeIQ/VNWQb0a41uQZIKss cw2RT7/d6ZGsn0gnvngSoM9dwkdD1nhThGVkOtJjpguf1BBWrjLbn3IzHXGyLv2328XG3Rx4cvf w+7BVRkOTUGrgHJn60D5MIg035AcQeiRoww4vmG1bk0aaPXa1BCZwhHkkX/8Jv4u5gIqAo+WsNz CE9zzV9b7LP2U/LyL2ReuBYJ/TZMHK47S4cG9eG/qthaK5e2WnAlexYIoGc8VdltLOa7IvoncFo YeGcr2kJeywUTXAJe8g== X-Proofpoint-GUID: dO8U7HmzM9fU4Aw3lFuTnTMmwB57kaMa X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-13_03,2026-07-10_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 lowpriorityscore=0 phishscore=0 bulkscore=0 clxscore=1015 impostorscore=0 suspectscore=0 malwarescore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130135 BH workqueues are a modern mechanism, aiming to replace legacy tasklets. Let's convert the BAM DMA driver to using the high-priority variant of the BH workqueue. [Vinod: suggested using the BG workqueue instead of the regular one running in process context] Suggested-by: Vinod Koul Reviewed-by: Dmitry Baryshkov Reviewed-by: Bjorn Andersson Signed-off-by: Bartosz Golaszewski Reviewed-by: Manivannan Sadhasivam Signed-off-by: Bartosz Golaszewski --- drivers/dma/qcom/bam_dma.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/drivers/dma/qcom/bam_dma.c b/drivers/dma/qcom/bam_dma.c index fc155e0d1870cbb7e099a2c4280f9f8fbdf6cf15..ea3df28e777f99c0532761b6aee= 6807ab23ab4ca 100644 --- a/drivers/dma/qcom/bam_dma.c +++ b/drivers/dma/qcom/bam_dma.c @@ -42,6 +42,7 @@ #include #include #include +#include =20 #include "../dmaengine.h" #include "../virt-dma.h" @@ -426,8 +427,8 @@ struct bam_device { struct clk *bamclk; int irq; =20 - /* dma start transaction tasklet */ - struct tasklet_struct task; + /* dma start transaction workqueue */ + struct work_struct work; }; =20 /** @@ -892,7 +893,7 @@ static u32 process_channel_irqs(struct bam_device *bdev) /* * if complete, process cookie. Otherwise * push back to front of desc_issued so that - * it gets restarted by the tasklet + * it gets restarted by the work queue. */ if (!async_desc->num_desc) { vchan_cookie_complete(&async_desc->vd); @@ -922,9 +923,9 @@ static irqreturn_t bam_dma_irq(int irq, void *data) =20 srcs |=3D process_channel_irqs(bdev); =20 - /* kick off tasklet to start next dma transfer */ + /* kick off the work queue to start next dma transfer */ if (srcs & P_IRQ) - tasklet_schedule(&bdev->task); + queue_work(system_bh_highpri_wq, &bdev->work); =20 ret =3D pm_runtime_get_sync(bdev->dev); if (ret < 0) @@ -1120,14 +1121,14 @@ static void bam_start_dma(struct bam_chan *bchan) } =20 /** - * dma_tasklet - DMA IRQ tasklet - * @t: tasklet argument (bam controller structure) + * bam_dma_work() - DMA interrupt work queue callback + * @work: work queue struct embedded in the BAM controller device struct * * Sets up next DMA operation and then processes all completed transactions */ -static void dma_tasklet(struct tasklet_struct *t) +static void bam_dma_work(struct work_struct *work) { - struct bam_device *bdev =3D from_tasklet(bdev, t, task); + struct bam_device *bdev =3D from_work(bdev, work, work); struct bam_chan *bchan; unsigned int i; =20 @@ -1140,14 +1141,13 @@ static void dma_tasklet(struct tasklet_struct *t) if (!list_empty(&bchan->vc.desc_issued) && !IS_BUSY(bchan)) bam_start_dma(bchan); } - } =20 /** * bam_issue_pending - starts pending transactions * @chan: dma channel * - * Calls tasklet directly which in turn starts any pending transactions + * Calls work queue directly which in turn starts any pending transactions */ static void bam_issue_pending(struct dma_chan *chan) { @@ -1316,14 +1316,14 @@ static int bam_dma_probe(struct platform_device *pd= ev) if (ret) goto err_disable_clk; =20 - tasklet_setup(&bdev->task, dma_tasklet); + INIT_WORK(&bdev->work, bam_dma_work); =20 bdev->channels =3D devm_kcalloc(bdev->dev, bdev->num_channels, sizeof(*bdev->channels), GFP_KERNEL); =20 if (!bdev->channels) { ret =3D -ENOMEM; - goto err_tasklet_kill; + goto err_workqueue_cancel; } =20 /* allocate and initialize channels */ @@ -1389,8 +1389,8 @@ static int bam_dma_probe(struct platform_device *pdev) err_bam_channel_exit: for (i =3D 0; i < bdev->num_channels; i++) tasklet_kill(&bdev->channels[i].vc.task); -err_tasklet_kill: - tasklet_kill(&bdev->task); +err_workqueue_cancel: + cancel_work_sync(&bdev->work); err_disable_clk: clk_disable_unprepare(bdev->bamclk); =20 @@ -1424,7 +1424,7 @@ static void bam_dma_remove(struct platform_device *pd= ev) bdev->channels[i].fifo_phys); } =20 - tasklet_kill(&bdev->task); + cancel_work_sync(&bdev->work); =20 clk_disable_unprepare(bdev->bamclk); } --=20 2.47.3 From nobody Sat Jul 25 21:21:07 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 0C740411692 for ; Mon, 13 Jul 2026 13:01:43 +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=1783947705; cv=none; b=TufsC7k7bYbhFP/+Qc7HLAhDLC9noAeQkakkT5F22APXrCF/m6pWg/0q1D7PkD5l28w2eMTuttIoutbE++GONRUeui/OICgg4JJgGK3pNMpLDUMp+pWD6HnGq2/1zd12WMxbs8G50R/CH1QjGwdphrf+N2dTD0riACWCbA/xZZs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783947705; c=relaxed/simple; bh=1Q+aPsoEc8W4PfEahFbzsFEdkzT9tiwxUCi1Nvr+Dts=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fSv6T8jCbZLFFgMraFKwg29GAaqisIpbxOrG1gENkYns7R6VU17LVjEhHCs0Y/DNr1h+aHT6tCjRIulDLRSLVpAHGPBV1v9c5lIcJWzcWaepgmtKZGEgc8Oie6tjdwEo3L9sr840S6Vd3gVmMFp+nCH/cxGCRQ2ldN/3yM4KlHU= 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=TR2Vbwha; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=aoHJ+quf; 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="TR2Vbwha"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="aoHJ+quf" 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 66DCFJr31506646 for ; Mon, 13 Jul 2026 13:01:43 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= 1SQ6fBG0Ah0G+Ee6NE98a2a6c+tVDqglySr17bUd1/A=; b=TR2VbwhaedtgsCjR Uc6c5F5h++logsbZPYpfV1Fh6PqmawOGcAHQ21iHQezcNdSzQJ/hH4I9NZYrOkqx lBLDY34/a6Mqh6J6TYfYnm5Nen5aVfGZURd12dK593ddK0mfSA0h7bDASCFnmosu wgZnL8grKitKP5SZYSqwqoJq8K1729eyWuqBzxz3jVAFEXnre0TkWWTyR7m0pTWY U5EtcCXUPZXtNmHR2JrUEIvV2wQBvJhkXrdhe5IGPrWD+zqHXj6+Q6M03pA53uqJ 3PHoHBl9zJgx7ynl8BYeN2NrfjpBZ7+Ix7q+5uw/mgvMSLX2Pd0pIcgpdduXTkbB CBTx3Q== Received: from mail-oa1-f70.google.com (mail-oa1-f70.google.com [209.85.160.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fcwda0rsp-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 13 Jul 2026 13:01:42 +0000 (GMT) Received: by mail-oa1-f70.google.com with SMTP id 586e51a60fabf-44aeefa1a30so6620498fac.3 for ; Mon, 13 Jul 2026 06:01:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783947702; x=1784552502; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=1SQ6fBG0Ah0G+Ee6NE98a2a6c+tVDqglySr17bUd1/A=; b=aoHJ+quf2N6U5HiJuHBnsLfwFyfdsvkVa+h4z1FzI4F3uYTjTuOPDEl6rxT9FIP55R 6bJFK03iktdynzUtjpihGn/yt8Pj+PKCaETR9U9VDSTWw71QBxLD/4D0hNip2ode2SM2 cabZrauGB/NUN72VAkTMW8jL5nc98S9bQTs1VJbVuFUrP1DfjkEAv6XEPWaFKAsEe/2u jD9WIgzl3P0HpDjMU2aKB9JSCw6if4+bCEP/rp1zY0PwbpV6MBCxHSTx+euMgWdwlvqd WjHnLUHEZVwiWu90B4ZiUn10xjfroIbDLKzLNjkgaRF2D/gpk/K9bLfYZQbtA218Lggp X1KA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783947702; x=1784552502; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=1SQ6fBG0Ah0G+Ee6NE98a2a6c+tVDqglySr17bUd1/A=; b=byzTMcKaWgwkxRgMZxuHyBu9/02p62UzVB5yd1vP13SSQHKAXl/Um0RHVdEMZNW12O pDsNVkyY+7GdJ7vfL1In1dH4k6XGhT37BP3QdA0uYcUwVFrhJkrZUC9QIJvY/AdwTL9z Cq4goKe5zsiHfXJiVaUs32DHrNDM3Th4cU0tj9L45omXWg90BKvngd3DGLtJ1xb7JNvy gbzn9NG9t7Lbi1FVN6sZn/vODUNR0RSQM35b2SJ7QHKc+N1nxO5AwqF+hEwvgbib345/ 10vBnT5BJp+8hY81DvpBBemGzA2ZzJFypLAtyDU5T/hsQEM/AsyuemEar7JRCZ5XdhWl NnSw== X-Forwarded-Encrypted: i=1; AFNElJ9m1t4nFedDAMD7kScMYz/Ejkr9DgDwsmODl+PbSDGLpLj5y7RfL5oyiiNh4E7UYmbKrDZg1Hks+H2cCaM=@vger.kernel.org X-Gm-Message-State: AOJu0Yw97fochJlHTMmxIosdJWuep2A5RN/MoFPtOApe/UQc63Xta2Be /eb4SZMB0ymXB08CghB5s8S5ZPJzqcD2Es2V8tQ0TNkDoO0bpCngQxhRnFjeqPTE3lpg3h8/HhJ kWKwhCXOFyZIf3qGTLRF8cyYOf2VeqvTd9flWTsZ+GBaRxB2noMxqgb1HpuVeKWT9M/Y= X-Gm-Gg: AfdE7cmFfnl+p5rraNgurp+ClEnenIHDiivjEbHfH+m/jA53TaP1TnHViI+TIBqjGrZ RlocKDeXnVDNJogRgcs19H3a5xdO2mAPQrbAHzYd+RK7Vro0ylWPEDkTBfaOTmF4sen7J+p/56y pOVluX+Q3Xrt8MCX0fJa9bfXDJuiwgnsb5cu/oJKC18xgeUzvPFcPbWhuIdiPgnkGqjWRxrb5+n vLkzh34V7Hkh6NNDu2ikkWVzmk4950Jk114UDULMljNP4p0ZhD+aAEj9F+vcPkQSNSIH72vyY9r hsHQplzH3iwUg6Zq8yVoSZzvTb+XIAW+kZ6KfcPaCD8HFOit174u0zNZnGIT9yXJKgUdwg7bJwl X6MZOrTdq6nVHBTc6bzlbvRP0EYIXHjZFlWtWq01J X-Received: by 2002:a05:6820:150f:b0:6a3:74c8:c055 with SMTP id 006d021491bc7-6a39a561d8dmr5636181eaf.11.1783947699739; Mon, 13 Jul 2026 06:01:39 -0700 (PDT) X-Received: by 2002:a05:6820:150f:b0:6a3:74c8:c055 with SMTP id 006d021491bc7-6a39a561d8dmr5636138eaf.11.1783947699138; Mon, 13 Jul 2026 06:01:39 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:8881:83b8:89fa:1a2a]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-493f2d97527sm306129725e9.2.2026.07.13.06.01.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jul 2026 06:01:36 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 13 Jul 2026 15:01:05 +0200 Subject: [PATCH v21 04/14] dmaengine: qcom: bam_dma: Extend the driver's device match data 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: <20260713-qcom-qce-cmd-descr-v21-4-bc2583e18475@oss.qualcomm.com> References: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> In-Reply-To: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Md Sadre Alam , Dmitry Baryshkov , Manivannan Sadhasivam , Stephan Gerhold , Bjorn Andersson , Peter Ujfalusi , Michal Simek , Frank Li , Andy Gross , Neil Armstrong Cc: dmaengine@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, brgl@kernel.org, Bartosz Golaszewski , Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4322; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=HGeQqzQf8+DrUa/4bzOvLohFWS/bDVC1MPHUwVaBFAE=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqVOGZvuGUYeChHOLC77HMfiNMIfVnN8AjQan6W BeS6asnms6JAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCalThmQAKCRAFnS7L/zaE wy1iEACsz3YnAAnaz1k8qigqPCxgYXXpAPo28WK2BGkIxJnWSpkVg114GyWtZa9CVovWwDf2FNY 5mPXTCu7d/cHhSoqNb2s+vD7NcQBdho/HyhKnh1tIToo54h1FbJ4ViWRQ+R8mflfyoCsz4yobXI XgbZFKJdPqtW+e0hYpbBF8nPlzP53vpRNpTu6kM4o3fdPUOtwL+sf4NpDz4J6gHcfxIPdStSGDP LF7rY6vs/mxVwPHuxytui86zaLzSz5BxthuE0QUgb9vqkibyJRvqUZpfONM1ZI4FQlN7gZcoaSb 6RMHbvWs1VNxS27/r/4LwU3hHF3RjudDc55Bj2skAEillw4YHRxBHIXhhTy5KsS/wjO1MoBmhx5 ttgqK7vp48MohSGVdH4GESxroODaknQWBMuIfeGmqxY9ymjvlPqdnCSxW/K3I2HmefMPPS8hSMe 1CZIgnVz60PtsyVz55b5kqyE3RIpcDqN6Rn+Rg7jDAiH745nA2r9f8ESiwNJR82qMwwvqiLnjIu /dPR4SMJKOqA2wafaxWf4kJLmYWCoawsh8EXqmQ30Rnkv9NVk/6Bk6snCJ4jVo+YpJPEFCotVH/ Ba80v9XTVKr3TKqVnlD3N/vpR3tp6SRRbPLqjndYlcmwY+P1qCQvBdLJBTR5TiIxFCvS0n6nT3E Y1DpNNcWZr2QC2g== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfX6FzSwZf05hVF VRnWNNm3QaqkUxPM1247sqVHziqZBgPItMQnYfVZgYFAGivtrgFeFn0ZpVtd2EFO9L3sUSlgcph Y5kuDz5EMb7k8SUmYPw+8TiFVFj6w+A= X-Authority-Analysis: v=2.4 cv=cNbQdFeN c=1 sm=1 tr=0 ts=6a54e1b6 cx=c_pps a=nSjmGuzVYOmhOUYzIAhsAg==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=KKAkSRfTAAAA:8 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=ioP1PY9e4_dTeLeN8ycA:9 a=QEXdDO2ut3YA:10 a=1zu1i0D7hVQfj8NKfPKu:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: FxS2A6nAK8UxVLIOOBSA4-Tw_mN_DamT X-Proofpoint-ORIG-GUID: FxS2A6nAK8UxVLIOOBSA4-Tw_mN_DamT X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfX513mZjNJpYrS QBLXS3byeb3zmSixxyMhKdf/hCuPKAlahQvQqSK8u6qfEK79b4R4iuNMnp6fUJoqKZQHqniJxTS 9GFMOrnb10BD7iMHoHxyNh+0DMuhwSSlYlWvEFdaXHSgCpCkRCoNaN3Nh22xbhTzTs7baCLiBUO hGwGCDetzBkdjN63EGjA6PJQAK44S3RjyFWk0RhX82kjuDWcTyDajWxesv7cXdnEEGC1ucJFYu3 zDla4x4g5Bo5xfvnSG8Z3SF1hvfn44jyEiUr9uEYk8aqPX5drOHdNhKv3WpbSahNYuSiHovLjOo t4lOiQlUIjkukieljBZT1Z24XuabNk7/jf8UrcYPidkFm0EupgTxjbdwtFwCswNnD6zMK5Y4H1N aRWHS3k7aK1evQsAwJnUWNLMim9xaSO1h7cu0HuEVxTC/1nP4EjfoR37QwAhgesemVuOGzRQGnH Dl5oGB4p54LF6qMDJLw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-13_03,2026-07-10_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 spamscore=0 suspectscore=0 impostorscore=0 phishscore=0 clxscore=1015 adultscore=0 malwarescore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130135 From: Bartosz Golaszewski In preparation for supporting the pipe locking feature flag, extend the amount of information we can carry in device match data: create a separate structure and make the register information one of its fields. This way, in subsequent patches, it will be just a matter of adding a new field to the device data. Reviewed-by: Dmitry Baryshkov Signed-off-by: Bartosz Golaszewski Reviewed-by: Manivannan Sadhasivam Signed-off-by: Bartosz Golaszewski --- drivers/dma/qcom/bam_dma.c | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/drivers/dma/qcom/bam_dma.c b/drivers/dma/qcom/bam_dma.c index ea3df28e777f99c0532761b6aee6807ab23ab4ca..8ce0fe085c5fea6cc614edd692b= 5cfd264b94d5a 100644 --- a/drivers/dma/qcom/bam_dma.c +++ b/drivers/dma/qcom/bam_dma.c @@ -113,6 +113,10 @@ struct reg_offset_data { unsigned int pipe_mult, evnt_mult, ee_mult; }; =20 +struct bam_device_data { + const struct reg_offset_data *reg_info; +}; + static const struct reg_offset_data bam_v1_3_reg_info[] =3D { [BAM_CTRL] =3D { 0x0F80, 0x00, 0x00, 0x00 }, [BAM_REVISION] =3D { 0x0F84, 0x00, 0x00, 0x00 }, @@ -142,6 +146,10 @@ static const struct reg_offset_data bam_v1_3_reg_info[= ] =3D { [BAM_P_FIFO_SIZES] =3D { 0x1020, 0x00, 0x40, 0x00 }, }; =20 +static const struct bam_device_data bam_v1_3_data =3D { + .reg_info =3D bam_v1_3_reg_info, +}; + static const struct reg_offset_data bam_v1_4_reg_info[] =3D { [BAM_CTRL] =3D { 0x0000, 0x00, 0x00, 0x00 }, [BAM_REVISION] =3D { 0x0004, 0x00, 0x00, 0x00 }, @@ -171,6 +179,10 @@ static const struct reg_offset_data bam_v1_4_reg_info[= ] =3D { [BAM_P_FIFO_SIZES] =3D { 0x1820, 0x00, 0x1000, 0x00 }, }; =20 +static const struct bam_device_data bam_v1_4_data =3D { + .reg_info =3D bam_v1_4_reg_info, +}; + static const struct reg_offset_data bam_v1_7_reg_info[] =3D { [BAM_CTRL] =3D { 0x00000, 0x00, 0x00, 0x00 }, [BAM_REVISION] =3D { 0x01000, 0x00, 0x00, 0x00 }, @@ -200,6 +212,10 @@ static const struct reg_offset_data bam_v1_7_reg_info[= ] =3D { [BAM_P_FIFO_SIZES] =3D { 0x13820, 0x00, 0x1000, 0x00 }, }; =20 +static const struct bam_device_data bam_v1_7_data =3D { + .reg_info =3D bam_v1_7_reg_info, +}; + static const struct reg_offset_data bam_v2_0_reg_info[] =3D { [BAM_CTRL] =3D { 0x0000, 0x00, 0x00, 0x00 }, [BAM_REVISION] =3D { 0x1000, 0x00, 0x00, 0x00 }, @@ -229,6 +245,10 @@ static const struct reg_offset_data bam_v2_0_reg_info[= ] =3D { [BAM_P_FIFO_SIZES] =3D { 0xC820, 0x00, 0x1000, 0x00 }, }; =20 +static const struct bam_device_data bam_v2_0_data =3D { + .reg_info =3D bam_v2_0_reg_info, +}; + /* BAM CTRL */ #define BAM_SW_RST BIT(0) #define BAM_EN BIT(1) @@ -422,7 +442,7 @@ struct bam_device { bool powered_remotely; u32 active_channels; =20 - const struct reg_offset_data *layout; + const struct bam_device_data *dev_data; =20 struct clk *bamclk; int irq; @@ -440,7 +460,7 @@ struct bam_device { static inline void __iomem *bam_addr(struct bam_device *bdev, u32 pipe, enum bam_reg reg) { - const struct reg_offset_data r =3D bdev->layout[reg]; + const struct reg_offset_data r =3D bdev->dev_data->reg_info[reg]; =20 return bdev->regs + r.base_offset + r.pipe_mult * pipe + @@ -1234,10 +1254,10 @@ static void bam_channel_init(struct bam_device *bde= v, struct bam_chan *bchan, } =20 static const struct of_device_id bam_of_match[] =3D { - { .compatible =3D "qcom,bam-v1.3.0", .data =3D &bam_v1_3_reg_info }, - { .compatible =3D "qcom,bam-v1.4.0", .data =3D &bam_v1_4_reg_info }, - { .compatible =3D "qcom,bam-v1.7.0", .data =3D &bam_v1_7_reg_info }, - { .compatible =3D "qcom,bam-v2.0.0", .data =3D &bam_v2_0_reg_info }, + { .compatible =3D "qcom,bam-v1.3.0", .data =3D &bam_v1_3_data }, + { .compatible =3D "qcom,bam-v1.4.0", .data =3D &bam_v1_4_data }, + { .compatible =3D "qcom,bam-v1.7.0", .data =3D &bam_v1_7_data }, + { .compatible =3D "qcom,bam-v2.0.0", .data =3D &bam_v2_0_data }, {} }; =20 @@ -1261,7 +1281,7 @@ static int bam_dma_probe(struct platform_device *pdev) return -ENODEV; } =20 - bdev->layout =3D match->data; + bdev->dev_data =3D match->data; =20 bdev->regs =3D devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(bdev->regs)) --=20 2.47.3 From nobody Sat Jul 25 21:21:07 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 B914D4189C7 for ; Mon, 13 Jul 2026 13:01:44 +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=1783947706; cv=none; b=aG4uKosFHGIsnXmd2M5MA2+gEwoJse4sdsedFlf5pZ99RpC4gNyeII22lkRL/CJXYqMOpdnN7PatH3UDwSsetT1DqRMBYrHTPeTQUzmCP6rYzLMYjNq0tue/2EvOE7iHkdZ3ICQZevqgpR0+crrVOGH7A1KYAoWCqcDvfhbD2Tg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783947706; c=relaxed/simple; bh=zHIuoWgA0JNzB45qmsTvX1DiRfFAkkbG2L0hbAcWpaw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=MS5Ui/EokATxgHIb8Bh8LCFVqHEzuEspTHf8cuSYe2k5qPq+CZ2JJeQS8yoSIEsASBkvGU4iP4Fkc8Sf1Y2HwdDTV0UjUhV3toQsaj9zBv1T+XALvjZGLA8UE9h2UpqYGg8wVc41DT8NEwr9Ggq1qFEJAVnSgtCBLuVgrRyLYrc= 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=Dr8id1fb; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=b056k211; 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="Dr8id1fb"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="b056k211" 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 66DCDlCL1453502 for ; Mon, 13 Jul 2026 13:01:43 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= d0wSBB0zdvgp8nv5/qOGe9s7Ri2Cp1uCk4+HjNdiilI=; b=Dr8id1fbqQe0mNys bDRxf66KIWEKPjeeJ8XwNjYo/t3irvtChuVaq0aNn/TsugRGyygYjTsdye7NCGZI bMaFovRNSLO9jG8rzE6+I0oYU0IbsKamMwKBWXfeb/hYK9OeXhaxJv6+EHCLi8u6 kxSZZ314+LXRlHtAng+nbCRofqcehn78SgHJoI7FJ9qpuAReKcnJ/jUyhAi2vz+g qWjE1qysPOhmjWDwtO+MGkR/F2tCGQbwVabZTcTnV72qOfYcOK5EQi3xOEa1dnL/ fuV70a/DSTdkpv91VrS2joaMOzdxdh4+QF1QIbAwobQ0nn+Uvdv0Lm+QGdpgjULq Lb9uLA== Received: from mail-oo1-f72.google.com (mail-oo1-f72.google.com [209.85.161.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fcuj019v0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 13 Jul 2026 13:01:43 +0000 (GMT) Received: by mail-oo1-f72.google.com with SMTP id 006d021491bc7-6a37fb394d5so3865873eaf.0 for ; Mon, 13 Jul 2026 06:01:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783947703; x=1784552503; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=d0wSBB0zdvgp8nv5/qOGe9s7Ri2Cp1uCk4+HjNdiilI=; b=b056k211bJDh/sprTk4KzyX1vt01GTYx+lXH0Hkx0uqOeTAfcTeznYE4ajbPliA9SZ Dd6AOprMvVHbwZLlye4w2Jhmt74E4Qi5jnX0u482dP2dzHYxcxWj0oD7BKrMk3kJ2hMP UVGjQzlnMAok4SGoQHsSE5UxYD6aXW+8+rriwABNSgB6izACLUNQzjs48C+mvWqjsGlo Dl0ip8/TGu3ki4w0kJAPAx/m8kNytD3z+IW91g/PKv/ywm4qa7/aiqrBFOfM+UJkt9G8 vQGVhXB6c5T2dawE4/rtpgbLdvS05qjpPaWKg0OyWeeOfn2RXxChangFgp03s0u2lLJd mq0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783947703; x=1784552503; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=d0wSBB0zdvgp8nv5/qOGe9s7Ri2Cp1uCk4+HjNdiilI=; b=Tu9QOIc0rGKcyLpoS8VXmpm5VqA2xAKn/7f5RZctBkJllma/7EXbK2WDDVj7KdWNIK qrCyHTiFT9Uf2LSbJ802H9Oq2XGHW73GMc+2wWEO9VC+eDtHn9vRYmZTtrkmo5Kq5rdt DQL7Aspg7/YJnE2IDEfdm9nlScKD3pMPaSvyLriPwt2/zYrAUQJJrvHxXSl1VY/4GWG/ O5q783NvrxwHFb+scnDsQuDMVHgIV9269ozjPwyNouZpVfY2M669vOREOPXRu3AAc5fF AimiTRUOJC8S0bbQc6jvA7frkhXQzJJ6Ifsvjh+FlD4IyjBQwxgMV2ELYodT0alE84Bl lDZg== X-Forwarded-Encrypted: i=1; AFNElJ9N5ftcciOu/S3Npx33pC4T+TY32rdV75pnEbxvGbWgtBxflvTpWM4uoQtm2Xub3A0evw1bEVHJJX6fm+Y=@vger.kernel.org X-Gm-Message-State: AOJu0YxDo146R7chD7iXx1c74lT4dlHqjksEG/5Xe8yMxVR2dEo1ZyOY a1TzZy/a5dmjwAPXFICu5tU3BOrh1gs7wZP3FNJR+dzwpszGxA0LW1+TJYEBQ52XqqH68k/KON8 n3OIclIOKp3vwWKW6u0xTjr5FBVb85lKtepowzaHLDgOIAPlga0jRRWDzBfxe1jVXbY02z6acTa I= X-Gm-Gg: AfdE7ckJhj31Ced8odHZuTCN7wwbLk6QLf3NTEG9vMC9f8/Bjs4OTc2SsBEfzGH9JJD +nl5u1IAhcm25Ma2+eTShGW+oFwXwAok29h1snMtMPwU+OIjKbFNegESLt3Jcz/BBwvxC4/lC8Q qV3mYc380v7+7lTVVTAZB2tQ5QwR4s0iMEyXhIQqa/KXZm6uaKXw2gl9SKmNX7OjkNIAJpywNhm OS6DVgHQXXnMts+Tux4gHT8n6TQitGdg/BtWYK8QQRN8I2cCXRzaBYPSo3peSc46E7Rxc86LvYm WnZWPlHP5jeHeQVdGfoAbC958es0THwvj7d+CVTIRIAUKoGrheRStV4ojMcqxxoNhy6D0tONDUz +mgj1gEDnwKU2ZLj13HNbBdWvdoyPRRh/hVpvTy74 X-Received: by 2002:a4a:ee84:0:b0:6a3:80b9:d7aa with SMTP id 006d021491bc7-6a39a6cd4d3mr5189790eaf.34.1783947703014; Mon, 13 Jul 2026 06:01:43 -0700 (PDT) X-Received: by 2002:a4a:ee84:0:b0:6a3:80b9:d7aa with SMTP id 006d021491bc7-6a39a6cd4d3mr5189750eaf.34.1783947702509; Mon, 13 Jul 2026 06:01:42 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:8881:83b8:89fa:1a2a]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-493f2d97527sm306129725e9.2.2026.07.13.06.01.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jul 2026 06:01:40 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 13 Jul 2026 15:01:06 +0200 Subject: [PATCH v21 05/14] dmaengine: qcom: bam_dma: Add pipe_lock_supported flag 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: <20260713-qcom-qce-cmd-descr-v21-5-bc2583e18475@oss.qualcomm.com> References: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> In-Reply-To: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Md Sadre Alam , Dmitry Baryshkov , Manivannan Sadhasivam , Stephan Gerhold , Bjorn Andersson , Peter Ujfalusi , Michal Simek , Frank Li , Andy Gross , Neil Armstrong Cc: dmaengine@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, brgl@kernel.org, Bartosz Golaszewski , Bartosz Golaszewski , Dmitry Baryshkov X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1807; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=8sCOVL39BX2AFiqeGpscXeG1puX7rtAOjEFEhJGJOUQ=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqVOGaPsc0Fa7oCOUveANJ60kMxtnneAWu+40XI sHiKYzzr1CJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCalThmgAKCRAFnS7L/zaE wzQ+D/4y8gxcLmowoTwpYu6/hbyBFcOrtC7x5BDbiLFBPjw8I/IW0TFnJ+GNhGJQX0rglPvFUGk E7Dt1oHIW+5lFWTJc5kgUdyCRZHTLY4Li23JVCxFj/cf1a1VF6fJC9rWpod3vmr3j0+pF+OFNMn boxzJHPB/pcJF+YiFEb2ZKmOG8LSPKhXnjWUTSyJI+D90cfyqLC8T8hTzIaNs7GUmeivuZaEIp8 ykxseEOkwZ5iV3LDhkInSNXDwoegrdxf8bBiJLMw2aasSx/8DZeVmulN+6EP2bQxmvwKMzIlaVV tbFGw8MmR6KCFFROM9Ew7a+aBNcDVklXTs4bwKjMtZuBO4fl96oTLWi685Kdpf4CTuRZMECeU9I RQxMk4Tn1+j7gtHSq2QkLcNUPHnSblikm/wl4n2QNgmREo/nTzIFDuiS/7qObgC8SdGmjNIpol4 DZ6m+yx/THlh/c0RMsfBev3a6ipc0zOXf0MDkqig/XW7SwFIickz0gL2foQAgrrv6bwIZLuI7iu p/cwEC0JBQN5OwY6R9R5KlY+Zv2esWxK0LI6V4Q8dm5APmI0vSAaidEczpSkeNQWzhWGDAYOtUp CO/n+FNteqnrNMOz+WTd0A3Hvvlkffb6siLl/Zl/hbBDnMRnNBDjRDTQMjUHsXXpwbZX+eHrORQ hP8dkSZdbgPBmBw== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfX0i+dMIjai6K+ DL+jjTwxn03KjOhHScdQ7JdLbwsfNtixDFFj8c10zV8n6MS+IzyDVX08EYnHEIkrxTTgZq6zNGj nIeDY/Pw83QjRmxZok4INB+5Pnvy2FM= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfX68r5g9QZMJZQ feSDi4qzEg48d4zafOjTgYoSMUIRFkQUDasg8DBEI3xCpapZoSO3LzwsHsEFaW1qBVmzX5dPkvB FBrVdNz/mTCvGJs830Cmhe65mKPdM3JxlvYHGhHS6K8zed+2CvFo7EDsBqEVIp9Os4xoLnWKnd9 1MqU8tJ/OdhZLKh9qfiQPRzX9uCDpCQKp43+7Kpz10zP5MscsfQiUuOi5whALEOoEMPU2G5YBOk A2Wt7Kroj9duxgbnM8JwlGlFSIdVPOZRrMIlVGwrBNoX/BJZhNISSWsalM8ZiID7Gz3CFP1xdJn zED4LpaKt4n0xhs3scvEl0ZiuStXGaciSiw32is4XqUuv4iEebOaDbUji93nxJaaQqHkjYC5eS6 3BIC8VsBL6gpx6HfvNuYFgoMqnFp7hhl9H5HsRpDhhyDhvUx1vxRrHHxzx7K4mNNo8DkkAOZtXV 5aanBrEdTbmDujTL3AQ== X-Proofpoint-ORIG-GUID: 0nUD5sw4a7VsRnQMICnKQ3s8PX-Ken1m X-Authority-Analysis: v=2.4 cv=DbcnbPtW c=1 sm=1 tr=0 ts=6a54e1b7 cx=c_pps a=wURt19dY5n+H4uQbQt9s7g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=ZSnkYuKn9ZpO9KHknGoA:9 a=QEXdDO2ut3YA:10 a=-UhsvdU3ccFDOXFxFb4l:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: 0nUD5sw4a7VsRnQMICnKQ3s8PX-Ken1m X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-13_03,2026-07-10_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 phishscore=0 suspectscore=0 bulkscore=0 adultscore=0 spamscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130135 From: Bartosz Golaszewski Extend the device match data with a flag indicating whether the IP supports the BAM lock/unlock feature. Set it to true on BAM IP versions 1.4.0 and above. Signed-off-by: Bartosz Golaszewski Reviewed-by: Dmitry Baryshkov Acked-by: Manivannan Sadhasivam Reviewed-by: Manivannan Sadhasivam Signed-off-by: Bartosz Golaszewski --- drivers/dma/qcom/bam_dma.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/dma/qcom/bam_dma.c b/drivers/dma/qcom/bam_dma.c index 8ce0fe085c5fea6cc614edd692b5cfd264b94d5a..f3e713a5259c2c7c24cfdcec094= 814eb1202971a 100644 --- a/drivers/dma/qcom/bam_dma.c +++ b/drivers/dma/qcom/bam_dma.c @@ -115,6 +115,7 @@ struct reg_offset_data { =20 struct bam_device_data { const struct reg_offset_data *reg_info; + bool pipe_lock_supported; }; =20 static const struct reg_offset_data bam_v1_3_reg_info[] =3D { @@ -181,6 +182,7 @@ static const struct reg_offset_data bam_v1_4_reg_info[]= =3D { =20 static const struct bam_device_data bam_v1_4_data =3D { .reg_info =3D bam_v1_4_reg_info, + .pipe_lock_supported =3D true, }; =20 static const struct reg_offset_data bam_v1_7_reg_info[] =3D { @@ -214,6 +216,7 @@ static const struct reg_offset_data bam_v1_7_reg_info[]= =3D { =20 static const struct bam_device_data bam_v1_7_data =3D { .reg_info =3D bam_v1_7_reg_info, + .pipe_lock_supported =3D true, }; =20 static const struct reg_offset_data bam_v2_0_reg_info[] =3D { @@ -247,6 +250,7 @@ static const struct reg_offset_data bam_v2_0_reg_info[]= =3D { =20 static const struct bam_device_data bam_v2_0_data =3D { .reg_info =3D bam_v2_0_reg_info, + .pipe_lock_supported =3D true, }; =20 /* BAM CTRL */ --=20 2.47.3 From nobody Sat Jul 25 21:21:07 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 2566E413D82 for ; Mon, 13 Jul 2026 13:01:48 +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=1783947711; cv=none; b=FCGD5V4bJ127AfIXYsWDQUE0jDXHU6IYSbVTDhXabcg/KvouG5TFTW+duXhtrJlZLREBtmaoaF0Qx9EKTsH5PR6+94YmdT/1jQ+6NxxzEA6j370FwMphzBNfasfTup7p2KUGyZWrT0NmTfMWkmrsvDi1NqH+YVpBbqLwXPsLKLo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783947711; c=relaxed/simple; bh=GeKEhMv4HL+sNdc1B6hwmj0prbP4JmlWYAcirsdO9/I=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Lswe7Lub+J08AoaNPe2nMs4D9vsY8V1ze2grxBk9f4rbqLafXNiz0HXzyYl4UbwQqb/c3mdo1HhxCyipL/DrAsUJlwYuG6C50tOSm1vIR8ssYPwnKBbWH+aWmnU296tGdCij5t3Fk8u0ClLEilT3yQ0FmQHOdM8K1RIM0y0sPd0= 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=Pars959n; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=C3g6WAIX; 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="Pars959n"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="C3g6WAIX" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66DCDve11494374 for ; Mon, 13 Jul 2026 13:01:48 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= 0TR9jzsb9FbctHJwwXbKkfyIam9oK9f3rZGLCUp0+E8=; b=Pars959nsXhoMm0h e8jdCTAMW5r5DuF3q0T3+pNl6gcPmMO7pOzjiH/H/FE+6EoljdNKLbcSwsZ8jgln 3Qhn6kibjQxC2L8cUaQEEIpGhTX6VEfPD9A8nRxj2EkdkPjrY/pRxHVZhtb375Kp BXPOZ+JD7qHJpRb/8CscQKIuucbfH8jNJDVvoOvE0pRfGQzDlYnr1kiPQ4npNEEO HTTqkqlKl4lLBWUJdl06urUN/F6flP3afeqhaurx4X27wNaGSHIG2QVp7udVluOf YstEZs5bcCtKI3sdNPRmpqukgAXFoXjer/SWUdFQfE/bXn5LQszxTYLcE+VgyfdY np/c5Q== Received: from mail-ot1-f69.google.com (mail-ot1-f69.google.com [209.85.210.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fcjnm2mjw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 13 Jul 2026 13:01:47 +0000 (GMT) Received: by mail-ot1-f69.google.com with SMTP id 46e09a7af769-7e6b59d85dcso4926421a34.3 for ; Mon, 13 Jul 2026 06:01:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783947707; x=1784552507; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=0TR9jzsb9FbctHJwwXbKkfyIam9oK9f3rZGLCUp0+E8=; b=C3g6WAIXBnNcZOWj3pxYAL6Uhc4QuOWWgSaWRVcdl2C0dZb+Au41LZvUNbaeEHT5gf hxYyiuQDd3iRjr/0r/89s2dU+7qWsRCkcqLv/jETOWIbSuILD/dhJqYViwWSHn7odEim 3vAmC3L9hoQN9h0Z4E4ronjJccqoNQoQzyNlkkz3/ir2oM5QKWeN0CBzr67DmpnHmlZC 6WwHCH1pr5Y1URoYfszgerws9lnCnjeTVXFaYiPcTg5HOdvsOip12L4/gBCTwJKtGRBk 1ExoBFjMhWZg2w3rjQbfXaZ8jsHSo7JZqISq/lwxPVI9FbDwhsVFj/fjLEFtS0t1W2S2 GZqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783947707; x=1784552507; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=0TR9jzsb9FbctHJwwXbKkfyIam9oK9f3rZGLCUp0+E8=; b=kBVEVZLvWr+4jwggkfon/afyFC745VBNgV+aM0fXiRBVgOKyNPAMR0UvPUI3g2WnxA FEk0PewrFppxiGyD+MQ8lq1ZUioQjFlYCOaOlW9piNCU6TWosB/OKQ8iz7yEpCr6c8Dq 9nA76TZ44FQ2AnnGqK6XcDSLDUlsIBPRGlQ7ze4dTxahi617lKmien8zp7GL1WMR0kJ6 vo+TYdPulbgq8mx51O/PjqH0l55dJCtGTAOZKOsp8xgHwhquMrVD9XIE71caaoAGTBQK lNcUZEozqZPmXs3co7jgC7bzVNCMNrKe/mQZBvqMaKuM+MIOoLbjO78IbLQPMpKj5T8y kl6g== X-Forwarded-Encrypted: i=1; AFNElJ+YO10ji77d75uhvE0SZ5Ss4sFtLvdd4/xeOfNyekVqNy88lSLuh++wqBGzQG9v2gYWJl0x6fDx5wmipHo=@vger.kernel.org X-Gm-Message-State: AOJu0YzxMkxCiNiGACzFv1PU/qwK/28s1T6yNkbkpdOSXBn1m5GvM7HY +FMPOGMBw/ae5y6/WHCXQGND1pjnfQUkRwemg6ZnZIDOc8lzLTj6N/HDxaJfJRW4WPTZQ0qb1BO SL1ZdilLo1NshWF4zbjetcp9+Q80oA8dIXb/kIELnrKWg+7Xwij8e4J+cQZx1cbgI4jE= X-Gm-Gg: AfdE7cnsmgOTo01zV7Q6UriYlz6z/CTMVlhXmqlCyrcTAqdzZOEQ0C1zyZhcDSNiCbR S28WyjvQPFDcOdZJaiRfV6Y5PVYIzMsB01x7IS4RhLi8oMGiPIzKoNvW4SY56mTjK8/H1zC5LoZ 3IUFMtv74+Ws63TMjUsA02yEwJVO8fCD03BMXESv8Uw8LBVOrsaJygXNXKsrRv8rTcAD36W9ftx Jx2l5SVwuk4mI7HoJt/C7Mw4O7NKv5tcuJrd4895Ju4/Q8BynC2kjMbYDvFONg3gre4F+MqeFfA ekGawm+wYcX9MlH3Ts9eXTmkOzmXUV9O4v2Omu0GIbLa6CragukzWnmOUFHlV89r1p+7LV8Maci ubt9LK9hznfj3CBgScCNeN8IwUcms/cIIMj8FFCBe X-Received: by 2002:a05:6820:829:b0:6a3:740f:bb4 with SMTP id 006d021491bc7-6a39a561da4mr5459446eaf.5.1783947706364; Mon, 13 Jul 2026 06:01:46 -0700 (PDT) X-Received: by 2002:a05:6820:829:b0:6a3:740f:bb4 with SMTP id 006d021491bc7-6a39a561da4mr5459387eaf.5.1783947705708; Mon, 13 Jul 2026 06:01:45 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:8881:83b8:89fa:1a2a]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-493f2d97527sm306129725e9.2.2026.07.13.06.01.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jul 2026 06:01:43 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 13 Jul 2026 15:01:07 +0200 Subject: [PATCH v21 06/14] dmaengine: qcom: bam_dma: add support for BAM locking 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: <20260713-qcom-qce-cmd-descr-v21-6-bc2583e18475@oss.qualcomm.com> References: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> In-Reply-To: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Md Sadre Alam , Dmitry Baryshkov , Manivannan Sadhasivam , Stephan Gerhold , Bjorn Andersson , Peter Ujfalusi , Michal Simek , Frank Li , Andy Gross , Neil Armstrong Cc: dmaengine@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, brgl@kernel.org, Bartosz Golaszewski , Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=12707; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=GeKEhMv4HL+sNdc1B6hwmj0prbP4JmlWYAcirsdO9/I=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqVOGbcUz/kvNU2CxvvdHFHWZU9lY1B7BhUlSf0 BC/U7RjJw2JAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCalThmwAKCRAFnS7L/zaE w7qeEACPtd6YgSMh0URGLnSv+kDUY0fAMUDwC6YnBP02pzdM9FqttSCnHT5TdG3qEO0LhZDPof4 z9j33utghPaQzjOnvYWqZTg5WYlGL0KN7ZuvXGUJX3ioC4qqgc8lvkU5GiWwllobjDgpvJOX/hM HBd69tdVc2xM9GMLE9vJL8HxYjz21cH4VPTHjRSXL1oSY0fC9pvc9JF8F6yrSRKmtJF6KedsSyU emq4rM51ExgUG3OM/hQg99KSi1omJ6o5DQArdbjoJKwmz2daxuDs3UiLCR1rEOWoa+R5vrIn2/6 yKOalIUmSQk7lK91jk6ykXuUhkCGe9d89PQi0XT9BOdNB2Tjhjx5ztGc/SwGD2tZ2xkmJmtnBUm Vak4BYeTUd54XnNOXUCgrFBXELUu/37edRrN2vLU5LdU+hsLpHMr0CULvkE3FJcPgAzLmjz+rhX bm1Vyw4FIJ08EaI+i0/BK+zTB8ebFDcK2e/Q95F2K/DXQtrXLn3O00tj0JErJWfFmr5DP+77LXh POUKBZweCMPlFYVFvmBYVN3DsvMt5HPr7riy6Mekhppz7eV/72Rn/qF542H9PRbMjFCkhZa3qpX UqSogL24VFsUPojW+FMInFS17keBgcJeKuslf3dk7qtRZJ5hSYFfvPArf+ifzjSpsQHJcVaEkg5 vVPwXTgjUS3PWFg== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-ORIG-GUID: pT08CXuj0lGrkwZUsolwOl1a1F9_notH X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfX/2wW+88nPrZ8 qVA8enudRVAfw82jstSbjoe2auJ3McGTEYcgGpr+qCz3yBBibc2XwIR4VvQZ3+W4/P98PqXSbgt jFVEosINVOqYKIB2cLM+1ntZI9RcC1L/SO14cfvyKN653Sttzhr1XEiG2Nhnaki2kYefZ1+PspK c046mKoZ5MigQfHZiOx5cOoGI6UlmfrWgcPZ4htcYINyJedrtdpLiTXe1qS6E+qgMOAw0+IFiTO 9GpXnNzkzMR4K5mJKh/fgH5VQNwuN3fd8Pk0uBNawfs+ETGC66vBrdKFzVd30HwV/oInOPwQ4B6 JrBBLHEvJ8yZPQpaDQN/5NQqTwulYY7b1/6takpvZnrmuq9rZKEkdeo9TcBaSlW/1vHhmHuT5O6 cMn8HcX4Ua/rw66TCX5eYIdwtL5aIJEo3pQgZq85Bqh4zJyQ2jBqBOUq9sLC0WcdHNpabr0D3Ic N3LvSeoChltvYbCc0xQ== X-Proofpoint-GUID: pT08CXuj0lGrkwZUsolwOl1a1F9_notH X-Authority-Analysis: v=2.4 cv=AfmB2XXG c=1 sm=1 tr=0 ts=6a54e1bb cx=c_pps a=z9lCQkyTxNhZyzAvolXo/A==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=oytoXMUlALCG7T_FErYA:9 a=QEXdDO2ut3YA:10 a=EyFUmsFV_t8cxB2kMr4A:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfX6WuLFnJ543Ga BwdSbRCstwBvaj8Rx0+tjINfrEFwc4rINy6Xejd1jf/gwJ9UeJo+XIhkSx2uHTyRpj+QrOZl8FI SdVENTJZnw6gqrL6sGGcOXgvSZJPn8k= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-13_03,2026-07-10_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 lowpriorityscore=0 phishscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 clxscore=1015 suspectscore=0 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130135 Add support for BAM pipe locking. To that end: when starting DMA on an RX channel - prepend the existing queue of issued descriptors with an additional "dummy" command descriptor with the LOCK bit set. Once the transaction is done (no more issued descriptors), issue one more dummy descriptor with the UNLOCK bit. We *must* wait until the transaction is signalled as done because we must not perform any writes into config registers while the engine is busy. The dummy writes must be issued into a scratchpad register of the client so provide a mechanism to communicate the right address via descriptor metadata. Reviewed-by: Manivannan Sadhasivam Signed-off-by: Bartosz Golaszewski --- drivers/dma/qcom/bam_dma.c | 191 +++++++++++++++++++++++++++++++++++= ++-- include/linux/dma/qcom_bam_dma.h | 14 +++ 2 files changed, 198 insertions(+), 7 deletions(-) diff --git a/drivers/dma/qcom/bam_dma.c b/drivers/dma/qcom/bam_dma.c index f3e713a5259c2c7c24cfdcec094814eb1202971a..f08549ee3872eece85884606d6e= e9e540ee688ca 100644 --- a/drivers/dma/qcom/bam_dma.c +++ b/drivers/dma/qcom/bam_dma.c @@ -28,11 +28,13 @@ #include #include #include +#include #include #include #include #include #include +#include #include #include #include @@ -60,6 +62,8 @@ struct bam_desc_hw { #define DESC_FLAG_EOB BIT(13) #define DESC_FLAG_NWD BIT(12) #define DESC_FLAG_CMD BIT(11) +#define DESC_FLAG_LOCK BIT(10) +#define DESC_FLAG_UNLOCK BIT(9) =20 struct bam_async_desc { struct virt_dma_desc vd; @@ -72,6 +76,11 @@ struct bam_async_desc { =20 struct bam_desc_hw *curr_desc; =20 + /* BAM locking infrastructure */ + bool is_lock_desc; + struct scatterlist lock_sg; + struct bam_cmd_element lock_ce; + /* list node for the desc in the bam_chan list of descriptors */ struct list_head desc_node; enum dma_transfer_direction dir; @@ -425,6 +434,11 @@ struct bam_chan { struct list_head desc_list; =20 struct list_head node; + + /* BAM locking infrastructure */ + phys_addr_t scratchpad_addr; + enum dma_transfer_direction direction; + bool bam_locked; }; =20 static inline struct bam_chan *to_bam_chan(struct dma_chan *common) @@ -638,8 +652,10 @@ static void bam_free_chan(struct dma_chan *chan) goto err; } =20 - scoped_guard(spinlock_irqsave, &bchan->vc.lock) + scoped_guard(spinlock_irqsave, &bchan->vc.lock) { bam_reset_channel(bchan); + bchan->bam_locked =3D false; + } =20 dma_free_wc(bdev->dev, BAM_DESC_FIFO_SIZE, bchan->fifo_virt, bchan->fifo_phys); @@ -686,6 +702,35 @@ static int bam_slave_config(struct dma_chan *chan, return 0; } =20 +static int bam_metadata_attach(struct dma_async_tx_descriptor *desc, void = *data, size_t len) +{ + struct bam_chan *bchan =3D to_bam_chan(desc->chan); + const struct bam_device_data *bdata =3D bchan->bdev->dev_data; + struct bam_desc_metadata *metadata =3D data; + + if (!data) + return -EINVAL; + + if (!bdata->pipe_lock_supported) + /* + * The client wants to use locking but this BAM version doesn't + * support it. Don't return an error here as this will stop the + * client from using DMA at all for no reason. + */ + return 0; + + guard(spinlock_irqsave)(&bchan->vc.lock); + + bchan->scratchpad_addr =3D metadata->scratchpad_addr; + bchan->direction =3D metadata->direction; + + return 0; +} + +static const struct dma_descriptor_metadata_ops bam_metadata_ops =3D { + .attach =3D bam_metadata_attach, +}; + /** * bam_prep_slave_sg - Prep slave sg transaction * @@ -702,6 +747,7 @@ static struct dma_async_tx_descriptor *bam_prep_slave_s= g(struct dma_chan *chan, void *context) { struct bam_chan *bchan =3D to_bam_chan(chan); + struct dma_async_tx_descriptor *tx_desc; struct bam_device *bdev =3D bchan->bdev; struct bam_async_desc *async_desc; struct scatterlist *sg; @@ -757,7 +803,10 @@ static struct dma_async_tx_descriptor *bam_prep_slave_= sg(struct dma_chan *chan, } while (remainder > 0); } =20 - return vchan_tx_prep(&bchan->vc, &async_desc->vd, flags); + tx_desc =3D vchan_tx_prep(&bchan->vc, &async_desc->vd, flags); + tx_desc->metadata_ops =3D &bam_metadata_ops; + + return tx_desc; } =20 /** @@ -802,6 +851,7 @@ static int bam_dma_terminate_all(struct dma_chan *chan) } =20 vchan_get_all_descriptors(&bchan->vc, &head); + bchan->bam_locked =3D false; } =20 vchan_dma_desc_free_list(&bchan->vc, &head); @@ -859,6 +909,15 @@ static int bam_resume(struct dma_chan *chan) return 0; } =20 +static void bam_dma_free_lock_desc(struct virt_dma_desc *vd) +{ + struct bam_async_desc *async_desc =3D container_of(vd, struct bam_async_d= esc, vd); + struct dma_chan *chan =3D vd->tx.chan; + + dma_unmap_sg(chan->slave, &async_desc->lock_sg, 1, DMA_TO_DEVICE); + kfree(async_desc); +} + /** * process_channel_irqs - processes the channel interrupts * @bdev: bam controller @@ -870,6 +929,7 @@ static u32 process_channel_irqs(struct bam_device *bdev) { u32 i, srcs, pipe_stts, offset, avail; struct bam_async_desc *async_desc, *tmp; + struct bam_desc_hw *hdesc; =20 srcs =3D readl_relaxed(bam_addr(bdev, 0, BAM_IRQ_SRCS_EE)); =20 @@ -919,13 +979,20 @@ static u32 process_channel_irqs(struct bam_device *bd= ev) * push back to front of desc_issued so that * it gets restarted by the work queue. */ + + list_del(&async_desc->desc_node); if (!async_desc->num_desc) { - vchan_cookie_complete(&async_desc->vd); + hdesc =3D async_desc->desc; + u16 flags =3D le16_to_cpu(hdesc->flags); + + if (async_desc->is_lock_desc) + bam_dma_free_lock_desc(&async_desc->vd); + else + vchan_cookie_complete(&async_desc->vd); } else { list_add(&async_desc->vd.node, &bchan->vc.desc_issued); } - list_del(&async_desc->desc_node); } } =20 @@ -1046,13 +1113,102 @@ static void bam_apply_new_config(struct bam_chan *= bchan, bchan->reconfigure =3D 0; } =20 +static struct bam_async_desc * +bam_make_lock_desc(struct bam_chan *bchan, unsigned long flag) +{ + struct dma_chan *chan =3D &bchan->vc.chan; + struct bam_async_desc *async_desc; + struct bam_desc_hw *desc; + struct virt_dma_desc *vd; + struct virt_dma_chan *vc; + unsigned int mapped; + + async_desc =3D kzalloc_flex(*async_desc, desc, 1, GFP_NOWAIT); + if (!async_desc) { + dev_err(bchan->bdev->dev, "failed to allocate the BAM lock descriptor\n"= ); + return ERR_PTR(-ENOMEM); + } + + sg_init_table(&async_desc->lock_sg, 1); + + async_desc->num_desc =3D 1; + async_desc->curr_desc =3D async_desc->desc; + async_desc->dir =3D DMA_MEM_TO_DEV; + async_desc->is_lock_desc =3D true; + + desc =3D async_desc->desc; + + bam_prep_ce_le32(&async_desc->lock_ce, bchan->scratchpad_addr, BAM_WRITE_= COMMAND, 0); + sg_set_buf(&async_desc->lock_sg, &async_desc->lock_ce, sizeof(async_desc-= >lock_ce)); + + mapped =3D dma_map_sg(chan->slave, &async_desc->lock_sg, 1, DMA_TO_DEVICE= ); + if (!mapped) { + kfree(async_desc); + return ERR_PTR(-ENOMEM); + } + + desc->flags |=3D cpu_to_le16(DESC_FLAG_CMD | flag); + desc->addr =3D sg_dma_address(&async_desc->lock_sg); + desc->size =3D cpu_to_le16(sizeof(struct bam_cmd_element)); + + vc =3D &bchan->vc; + vd =3D &async_desc->vd; + + dma_async_tx_descriptor_init(&vd->tx, &vc->chan); + vd->tx.flags =3D DMA_PREP_CMD; + vd->tx_result.result =3D DMA_TRANS_NOERROR; + vd->tx_result.residue =3D 0; + + return async_desc; +} + +static int bam_setup_pipe_lock(struct bam_chan *bchan) +{ + const struct bam_device_data *bdata =3D bchan->bdev->dev_data; + struct bam_async_desc *lock_desc, *unlock_desc; + + lockdep_assert_held(&bchan->vc.lock); + + if (!bdata->pipe_lock_supported || !bchan->scratchpad_addr || + bchan->direction !=3D DMA_MEM_TO_DEV) + return 0; + + /* + * Allocate both the LOCK and the UNLOCK descriptors up-front so the + * operation is all-or-nothing: if either allocation fails we free both + * and run the sequence unlocked rather than leave the pipe locked with + * no matching UNLOCK. + * + * Both are queued in-band around the currently issued work: the LOCK is + * prepended so it enters the FIFO first, the UNLOCK is appended so it is + * the last descriptor of the sequence. They are loaded together with the + * payload in a single operation so the engine executes LOCK, the work + * and UNLOCK as one ordered batch. + */ + lock_desc =3D bam_make_lock_desc(bchan, DESC_FLAG_LOCK); + if (IS_ERR(lock_desc)) + return PTR_ERR(lock_desc); + + unlock_desc =3D bam_make_lock_desc(bchan, DESC_FLAG_UNLOCK); + if (IS_ERR(unlock_desc)) { + bam_dma_free_lock_desc(&lock_desc->vd); + return PTR_ERR(unlock_desc); + } + + list_add(&lock_desc->vd.node, &bchan->vc.desc_issued); + list_add_tail(&unlock_desc->vd.node, &bchan->vc.desc_issued); + bchan->bam_locked =3D true; + + return 0; +} + /** * bam_start_dma - start next transaction * @bchan: bam dma channel */ static void bam_start_dma(struct bam_chan *bchan) { - struct virt_dma_desc *vd =3D vchan_next_desc(&bchan->vc); + struct virt_dma_desc *vd; struct bam_device *bdev =3D bchan->bdev; struct bam_async_desc *async_desc =3D NULL; struct bam_desc_hw *desc; @@ -1064,6 +1220,7 @@ static void bam_start_dma(struct bam_chan *bchan) =20 lockdep_assert_held(&bchan->vc.lock); =20 + vd =3D vchan_next_desc(&bchan->vc); if (!vd) return; =20 @@ -1072,6 +1229,18 @@ static void bam_start_dma(struct bam_chan *bchan) return; =20 while (vd && !IS_BUSY(bchan)) { + /* + * Open a LOCK/UNLOCK bracket around each fresh sequence. + * Sentinels inserted by bam_setup_pipe_lock() are skipped: they + * already have bam_locked set and must not trigger a second pair. + */ + if (!bchan->bam_locked && + !container_of(vd, struct bam_async_desc, vd)->is_lock_desc) { + ret =3D bam_setup_pipe_lock(bchan); + if (ret =3D=3D 0 && bchan->bam_locked) + vd =3D vchan_next_desc(&bchan->vc); + } + list_del(&vd->node); =20 async_desc =3D container_of(vd, struct bam_async_desc, vd); @@ -1133,6 +1302,10 @@ static void bam_start_dma(struct bam_chan *bchan) bchan->tail +=3D async_desc->xfer_len; bchan->tail %=3D MAX_DESCRIPTORS; list_add_tail(&async_desc->desc_node, &bchan->desc_list); + + if (async_desc->is_lock_desc && + (le16_to_cpu(async_desc->desc->flags) & DESC_FLAG_UNLOCK)) + bchan->bam_locked =3D false; } =20 /* ensure descriptor writes and dma start not reordered */ @@ -1191,8 +1364,11 @@ static void bam_issue_pending(struct dma_chan *chan) */ static void bam_dma_free_desc(struct virt_dma_desc *vd) { - struct bam_async_desc *async_desc =3D container_of(vd, - struct bam_async_desc, vd); + struct bam_async_desc *async_desc =3D container_of(vd, struct bam_async_d= esc, vd); + struct dma_chan *chan =3D vd->tx.chan; + + if (async_desc->is_lock_desc) + dma_unmap_sg(chan->slave, &async_desc->lock_sg, 1, DMA_TO_DEVICE); =20 kfree(async_desc); } @@ -1384,6 +1560,7 @@ static int bam_dma_probe(struct platform_device *pdev) bdev->common.device_terminate_all =3D bam_dma_terminate_all; bdev->common.device_issue_pending =3D bam_issue_pending; bdev->common.device_tx_status =3D bam_tx_status; + bdev->common.desc_metadata_modes =3D DESC_METADATA_CLIENT; bdev->common.dev =3D bdev->dev; =20 ret =3D dma_async_device_register(&bdev->common); diff --git a/include/linux/dma/qcom_bam_dma.h b/include/linux/dma/qcom_bam_= dma.h index 68fc0e643b1b97fe4520d5878daa322b81f4f559..a2594264b0f58c4b2b1c85e243c= ad0d5669c26dc 100644 --- a/include/linux/dma/qcom_bam_dma.h +++ b/include/linux/dma/qcom_bam_dma.h @@ -6,6 +6,8 @@ #ifndef _QCOM_BAM_DMA_H #define _QCOM_BAM_DMA_H =20 +#include + #include =20 /* @@ -34,6 +36,18 @@ enum bam_command_type { BAM_READ_COMMAND, }; =20 +/** + * struct bam_desc_metadata - DMA descriptor metadata specific to the BAM = driver. + * + * @scratchpad_addr: Physical address to use for dummy write operations wh= en + * queuing command descriptors with LOCK/UNLOCK bits set. + * @direction: Transfer direction of this channel. + */ +struct bam_desc_metadata { + phys_addr_t scratchpad_addr; + enum dma_transfer_direction direction; +}; + /* * prep_bam_ce_le32 - Wrapper function to prepare a single BAM command * element with the data already in le32 format. --=20 2.47.3 From nobody Sat Jul 25 21:21:07 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 A9C2940FDAF for ; Mon, 13 Jul 2026 13:01:51 +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=1783947713; cv=none; b=MdcyPUD2AreNemEfeTiwbE2VpzTreo1FbxGibsNfSj3J/4jZwtt66dtWxF4NChBv/LubOJUMNWdWoHKRTOwhErjFVOXsKwDE4DjN/2JoQTpwRhvH8q55V9jXB/12pv8m5cfaFQMvvqsKQqN1EYjBXoTWe+MogdpUvlfTgzCSTL8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783947713; c=relaxed/simple; bh=NNnz6awfeEqmEC/yqDO0GWP7yizfp6R665Mk39/3FRo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jWKB6Vtz3mJlC9mxf6axd2LALH8szNKZk6phcIZOeRMeQwC8MwDvMikwiFodnLAXac6a3BhqReixWHkUQVRktWZlUjgoTi51/zGz8a9t1NpNEm+do8iooIBiY52uDrreYxddPubtU4kEnnlI+OPE20U5ioeYU+YCMfYFKLYAC8k= 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=M65MNopO; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=jXLUbkBi; 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="M65MNopO"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="jXLUbkBi" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66DCE3MB1561381 for ; Mon, 13 Jul 2026 13:01:51 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= U1qOoj9SQUQgxQzB/fcCsnUQs1r8P8lLj6KzEKTr4FY=; b=M65MNopOV93GUyBp bGUu7yuKBO4aN3cADTUPCgFE7bxMQ4PD637A24sb5Qe/ZAqVyoQ7q7SgkHvOmAxa YiRejNlh4hBbi+bfuetDusp+OwSyIZAwdtS+aHQvY8mlhEWTkNynHTvyAgESCw6Y fcvoH6B2WNuwTGy4RYabcK5/W6N8AFy+ySotFo4uirWiaQBQjs/gJue7PavgkPV4 IlKhXjfBuPb5gukA38rgslHphDg08RuvjrQsrJngomgplXt2UwYa7lg8ih7DmRfo 4Sdi/T+UrPlh7y/thZhX0KP33e/eh1j0IwO4OdEfdub9X2R1HUykgvqpyTMpukri U5k6+Q== Received: from mail-oo1-f72.google.com (mail-oo1-f72.google.com [209.85.161.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fcjn3akh9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 13 Jul 2026 13:01:50 +0000 (GMT) Received: by mail-oo1-f72.google.com with SMTP id 006d021491bc7-6a3856a293fso4788524eaf.3 for ; Mon, 13 Jul 2026 06:01:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783947710; x=1784552510; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=U1qOoj9SQUQgxQzB/fcCsnUQs1r8P8lLj6KzEKTr4FY=; b=jXLUbkBiVJzqSyOoiZQM1xIzQMHn4pmxrygHtuFBqhRJ8VHUoIAELvYtLe8F7jAJEo QZJf3wYbzrCgqbWEta7hOx1PA/KfSomNDQE88cY9imb9d2SrePVtRXL/f8hDDgZcQP07 WFq0zxMZGfPAxxmAKDer26eJL0l1fxNyoB/MYbTZOtOIX4Ocus2sPhvnaERRN+CGBnjX lbzjA6LTEp94gvU8iLUjsLCxkme2nuR2sRtInf5+xAcxFCCf6iyr26W+pLCqhnEmqr/W WtnuNX80af0hg/+kHZ1F7ATy6by6YLesxLpDaV3GlxjitjScpgaGDcBfTTiNLun/ZOZv Sekw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783947710; x=1784552510; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=U1qOoj9SQUQgxQzB/fcCsnUQs1r8P8lLj6KzEKTr4FY=; b=j+ci7WLkJH0SeZsDrED/kp4Q+ZYLaX/IKBVgH0rpE3EKzjfKQAMPt2HPgDy6Bu5m9/ hjdVZolg5YMBl/wN0dtmqPiMFsnvVPWpVZ9DXNVDjams3sQFcsWD1iWUhdcfyHjCDs5D gGVP2FE03a2Cl0ko2YnExn2eXcyslEgvZiE+MuA8yo444Z/s+u9gcji8n3Ut7ouMiPZQ vAbfnKNji1HAkDfP8SInNQRz1FFBknXvS4Rcpfc1pXtCFQXPXoo3JgZS6FbxnmuNm8Fj gRA6HH22UKDdponLuhzTdezSa6Gvxs9tT5+V6Z6ySmfd5UNoXbrhhCuT0m6us50/Fqs4 lSCA== X-Forwarded-Encrypted: i=1; AFNElJ8bQKlNUBwTAZa0p0Jb1SDBACeU0wNC7zcxb8pMYQ8vjB8WnJwrR7v5JDr0sBu/LnGHojwjHNYmnimqQKw=@vger.kernel.org X-Gm-Message-State: AOJu0YxL6EcrfVssBlh81g+YY/pk5nSsFJTIfQNqnfJKfjKGBKNS+qWF 5Fwr3IezU3WBsB8/gOKW8kMF1W0QetOfPv8b1Gq9/64TigA4ID8jG1kiE1Yr9H/6GuSzlY2VvNX EYpIo4O3eTqsoI9MC30VmB5tHG9mmxNJjSusxgZxTN0R/6awAXDZjU7HW9Hg85W33L/M= X-Gm-Gg: AfdE7ck1NtCjLA7Aj4kH7ABSkuKiuZEYXPY4HbvCMpx7Z2TKidmN+v9DraNKrQfOaZ5 xK0Jyu+wd7BJSaLUuLPAE4+EQHMaDzqIFSDgQBtalXLJcXiRHR/40rvbZlL87zcfKNkGxFNW8K8 /jYsiIKZfFbMiiLtMJjt7s5mHNeAdeJbHNsd2UoiO49ZQl26ww03r+soqanTiPb83VaZcpI6AV0 T6MCUtlfcsE9LNkYO+ACzCdKyBN4mgX6Hv61edW0f4R5ppW6O22MSbhoeKvKkd35ggxBgKE1ksq hdSOZ5VdqNWAQt05Z45dNhvoc7otfb40ETSQalFOCFtNPhdNBHKvSPYeeKjFSJmILYSxJdG5sxK X2PHqUzd/w45sICc9PY85c6T0pORb0zqlNJu1O/B2 X-Received: by 2002:a05:6820:709a:20b0:6a3:7976:704f with SMTP id 006d021491bc7-6a39a5b9a15mr3798599eaf.26.1783947709015; Mon, 13 Jul 2026 06:01:49 -0700 (PDT) X-Received: by 2002:a05:6820:709a:20b0:6a3:7976:704f with SMTP id 006d021491bc7-6a39a5b9a15mr3798556eaf.26.1783947708525; Mon, 13 Jul 2026 06:01:48 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:8881:83b8:89fa:1a2a]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-493f2d97527sm306129725e9.2.2026.07.13.06.01.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jul 2026 06:01:47 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 13 Jul 2026 15:01:08 +0200 Subject: [PATCH v21 07/14] crypto: qce - Cancel work on device detach 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: <20260713-qcom-qce-cmd-descr-v21-7-bc2583e18475@oss.qualcomm.com> References: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> In-Reply-To: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Md Sadre Alam , Dmitry Baryshkov , Manivannan Sadhasivam , Stephan Gerhold , Bjorn Andersson , Peter Ujfalusi , Michal Simek , Frank Li , Andy Gross , Neil Armstrong Cc: dmaengine@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, brgl@kernel.org, Bartosz Golaszewski , Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2473; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=NNnz6awfeEqmEC/yqDO0GWP7yizfp6R665Mk39/3FRo=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqVOGcH5zXrPcNI+T6P+/gycikSb+qYVbQi1DQU r+MiQXQlcqJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCalThnAAKCRAFnS7L/zaE w0KCD/4yP5QoiE+i1I1Dzf1dFEqW7uoinT53GfY75/yhspqMCi7HzFWv3k/Fy/mD88OyK5AZGIS LRY6tDCfz1wOru9Bus5K67jEZgWlcWveAsPJrmsoaoRgJUP7sdCG1bkn5Bp7ODqCCHuW7zf14LW UmYMbCvmd5gySryeZUEocgI+sWvKLhBticmjTdanVKNNqsDh4jUxZn1NvcIkFMK171gLiVVEsIe QFsGfMP/AdcNcmSnlJy8bqbBXMTybZZ2+Mk5lZRmmYk1l4KBmHfyp6+s4McQCjip4ePxj8Itkh3 r3XyPBOWSJAwOtNKStvuLxNheCdjccFNBlEwdZIfK2AmLlEWFcQkUO+ebCalLbT287JVhSezgqN hqIKxzTQ07014Vey1JqC2KzYWDfqdJ+5OAS1KoVlU0Y3ADY/x8U7yI6rJ9rebE2Sg78yV1GekIh Bz/lLUY2E1azgPj/PBQOtb15m8o3Cs8aP7JcXEiPJideSbc35+4o/MYKG46lkTzU6ypjPKnyye1 Va6osQNaXPyKd2Royu6DliGPJWGT5Y3nBQWV76oM0IhRPKZBxFhAeuhi1cYJhHje92vDsgJPk6z 52nF14H/e1UWFsqdgf/vnQfEOHSc/a4qMXqJC93+tcISNNptsbnhkf4Cp7YUPw+wZ40a4uuAYI5 WCfSXCMXdhbo7FQ== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfX0JVCMGT5qJ9P IM9Jl6QxnCKaXnluhFmhEAGpw+sCCl6FTwVa4+aDdbcbIepkGGriTFjmNMoOlzZ1IVR4FPo69gC OLCLZWYLyh2aaA/ap+LD1A7zT3YxctBaWHJ4xBE7fwivrzR/XBfTVxFo9KrlPRqlyWzc4DnMdx9 ngJ9ogBusd9BgDXsUK8rNs2GewxLWStOjG/9jR7cruUHqDEdVXX0b1+TKW2bFY3iJPdgzgIjHw3 aC/Vu26wYVBLuq+BueYM7UeDn3hPXEn44NCKfewvfAOrAKdpos+7z9MA6A8VM6ZASO3e7f8TJkf Amxd2h/cC+eoZYu6N3F1GtpYSYuj88hkDoMJCVHY7goBju/Wnww0GVJoHDi47UUqu8xpiGtXwlw fDxzdrckgJ3YvgzBUIzJ+PlDj2hrlVQ428GhjrOZSeHZBi3Om9GQXrhukiqkqrDtNWoVbi3tnpH o03V17NGi58gk5amyqA== X-Proofpoint-ORIG-GUID: 3NNf3-XemwB84D8N3mK_SugyI_KBG_z- X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfXwgJGqaVNKVH7 ncTIg1hn+LgUE+U9q7ACrE3eDI4ZgmWLeDniQT+J0XFTBdZntppdwck40QlkuMzj0Zb8YrwSj6h jf4S78x4EJx4dc/pxNKoKKjDeU0YctU= X-Proofpoint-GUID: 3NNf3-XemwB84D8N3mK_SugyI_KBG_z- X-Authority-Analysis: v=2.4 cv=aaJRWxot c=1 sm=1 tr=0 ts=6a54e1be cx=c_pps a=wURt19dY5n+H4uQbQt9s7g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=c92rfblmAAAA:8 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=SDQHpg0AWQOuS8LWovAA:9 a=QEXdDO2ut3YA:10 a=-UhsvdU3ccFDOXFxFb4l:22 a=GvGzcOZaWPEFPQC_NcjD:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-13_03,2026-07-10_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 bulkscore=0 clxscore=1015 lowpriorityscore=0 adultscore=0 malwarescore=0 spamscore=0 suspectscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130135 The workqueue is setup in probe() but never cancelled on error or in remove(). Set up a devres action to clean it up. We need to move the initialization earlier as we don't want to cancel the work before any outstanding DMA transfer is terminated. Make sure we do terminate all transfers in qce_dma_release() devres action. Fixes: eb7986e5e14d ("crypto: qce - convert tasklet to workqueue") Closes: https://sashiko.dev/#/patchset/20260427-qcom-qce-cmd-descr-v16-0-94= 5fd1cafbbc%40oss.qualcomm.com?part=3D7 Reviewed-by: Manivannan Sadhasivam Signed-off-by: Bartosz Golaszewski --- drivers/crypto/qce/core.c | 13 ++++++++++++- drivers/crypto/qce/dma.c | 2 ++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/drivers/crypto/qce/core.c b/drivers/crypto/qce/core.c index ac74f69914d6175b39ccde43f16269570fbcf715..b52a26ffff5ee733adcf4e8cf8b= ef75018dfa63e 100644 --- a/drivers/crypto/qce/core.c +++ b/drivers/crypto/qce/core.c @@ -185,6 +185,13 @@ static int qce_check_version(struct qce_device *qce) return 0; } =20 +static void qce_cancel_work(void *data) +{ + struct work_struct *work =3D data; + + cancel_work_sync(work); +} + static int qce_crypto_probe(struct platform_device *pdev) { struct device *dev =3D &pdev->dev; @@ -226,6 +233,11 @@ static int qce_crypto_probe(struct platform_device *pd= ev) if (ret) return ret; =20 + INIT_WORK(&qce->done_work, qce_req_done_work); + ret =3D devm_add_action_or_reset(dev, qce_cancel_work, &qce->done_work); + if (ret) + return ret; + ret =3D devm_qce_dma_request(qce->dev, &qce->dma); if (ret) return ret; @@ -238,7 +250,6 @@ static int qce_crypto_probe(struct platform_device *pde= v) if (ret) return ret; =20 - INIT_WORK(&qce->done_work, qce_req_done_work); crypto_init_queue(&qce->queue, QCE_QUEUE_LENGTH); =20 qce->async_req_enqueue =3D qce_async_request_enqueue; diff --git a/drivers/crypto/qce/dma.c b/drivers/crypto/qce/dma.c index 68cafd4741ad3d91906d39e817fc7873b028d498..7ec9d72fd690fb17e03ade7efe3= cc522fb47e1ac 100644 --- a/drivers/crypto/qce/dma.c +++ b/drivers/crypto/qce/dma.c @@ -13,6 +13,8 @@ static void qce_dma_release(void *data) { struct qce_dma_data *dma =3D data; =20 + dmaengine_terminate_sync(dma->txchan); + dmaengine_terminate_sync(dma->rxchan); dma_release_channel(dma->txchan); dma_release_channel(dma->rxchan); kfree(dma->result_buf); --=20 2.47.3 From nobody Sat Jul 25 21:21:07 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 A188A41DEDD for ; Mon, 13 Jul 2026 13:01:53 +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=1783947715; cv=none; b=sQTtN5McNbQe2n7bW2LrVbn0SqCtE5Z2cY71ti2Jc1YCJAQIk9F3rYnD22qWyBw52PfDYpC7qALf0cnA7YmXmQGCjEdlh5Hn9MzDKDBmafMtn3C+i7olSwZoz4gokruT2YhRVEPHcPCUhjmYfCK6tmpwZzMnHr4JP36d0vlKj7g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783947715; c=relaxed/simple; bh=vuAef0aUBOeSio60r/pSKcTossm3V61GQJlAyMtLfKU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=dKyMr4OycQAhcvWgKAqLyf9oWBhelyG97bxExwsh0HfD/IABKsFlJSuV91Tkdgkz+lbgj7/YndJlC+VqUIb3FsIyNNuWH8jxl6zlYVTNuVpQmvRQgLjf+4AS4ScanXLuhA72xjJ+FtehbjuhxII7tbeloShXZAxUqUhBX6qP0hA= 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=C++bvYKo; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=d4yiO4Wb; 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="C++bvYKo"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="d4yiO4Wb" 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 66DCDlbO1398862 for ; Mon, 13 Jul 2026 13:01:52 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= ToTIYJiHy5tONa3lc6dWWbGZLTEc7JJCb/cDS7cr/tE=; b=C++bvYKoKA4PWl7z Fj9/BoSaXCBYnuw4KX+woJ/i+yg+v7xY+sKp+//LJvvMGIjjIxqwRDB6wqhSMZuo eLjIT97Gph/mHA6sWUtUhzbQU2W0NnUTG/jtz/CPXdh9v1y6UAj0IIPfzqK3r6ha Dml2jt6/TjwYUxG1S+gasWwylClH7hIkIhbIL7jJkMRQH0bDnsxBZH/8VUkq2NgZ XQ/I3TP2rSvZL0s2xLCC9XzKyG0MPv1icVvtjGaKC8RgTJlF5bb+MEIYcnUhs4s4 RZzMTzfGw9eES+jL/zP+neNSSsSdxErLHfIm8x3LeoYZ8uYJGhIpVunKCPXBheCR 8SHQDw== Received: from mail-oo1-f69.google.com (mail-oo1-f69.google.com [209.85.161.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fcwu4rmyb-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 13 Jul 2026 13:01:52 +0000 (GMT) Received: by mail-oo1-f69.google.com with SMTP id 006d021491bc7-6a38b9eb18dso2418058eaf.1 for ; Mon, 13 Jul 2026 06:01:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783947711; x=1784552511; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=ToTIYJiHy5tONa3lc6dWWbGZLTEc7JJCb/cDS7cr/tE=; b=d4yiO4Wb4YNGMwTTHxkjYj4AZJtSFrnttm07DrP42BU4mtHNXxxT4PCbSccDKRbSRw Bwnmn3QMAkaFTY3TTiEtHH72o80PPh22+gbAf54QZAllU3orYn+yNVUmC++ItP9Sor5C l++OVv9xnM/2en2a7Ltc6YvJ1uQiClasQ6BXeIBJ6P6HlRY0Ao+9YH9yCt7OzoD6qAke e3VjOJ6tsrobuRmL9chermHpUuoe37kkVYegmjYJ1Gw9v2lmuSml8myXCg77+/zh2IKc NbR4no0y9VBwKZgKQ3REHL44JdHIbDIhry6mHej2YYOwPbWvImoXR6nZ4eX0akgu0fss swkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783947711; x=1784552511; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=ToTIYJiHy5tONa3lc6dWWbGZLTEc7JJCb/cDS7cr/tE=; b=a44GfhC5o999lhCbzlCHw6ckXh7gw5+fPae9RikQFoLc+9uRmRXi4gFbi6X5lh702z PQa10rQTWCeSCh/dtqiEsp9csArlt7sW3GRiFruP/vD08j2x8CXjL/mYNvSxnjjHvJt4 0GliG499iudcDmHjLZ1a+l9iAwegvOnF/K5qddrmYDHhAZz2aCwSkmivQHcQHU9RxVbp F5tXxiy4xPcxIDr+IujtdhbpPhYtWutC2VqBVNgPPD5PIHHRG4R0fbhLwiha8cMtUX3Q avI054eDOvOlLxJlTvmVSGETZ5Ap/Vox+2uqdpXT4kct5PY6OvUUtCVEm3fmzgL/i5OB +fPg== X-Forwarded-Encrypted: i=1; AFNElJ/PLANDc4MfN+3VW779g6l+eMskOAnl6eRL5bjjqN40bQbs0GI08SPrOfKI/wXWxfI7s0leblb65uhBXk0=@vger.kernel.org X-Gm-Message-State: AOJu0YxAniEjEjzaUbSC4mFSHUPu34FqpN8HpUaHSi2aOFZ/BQ0wzzZk sTHpqiBy6OZL16+sEXDe6ZFHehwrZYjhqOqu4NO82dQmVLEUnPE75g2R+xB5PdTzRtEphbdk8fL rCooCoTb6MLy8dFgLqgfSmuc8ceWzvnJc9cJqWQtw5xeIHy3DgcN4j9onGS9lfrrpIfA= X-Gm-Gg: AfdE7cm96nwZlcJq8RStMHUVm96gMNMWsF6FzRS0j0ld0XOJsfYU4v2kReiWs95Tv4W 9Vs83tjHqMDEuLF2E6I1OpPD59orck2dZSI2OnbI3BDU5LL5il3swv0A28gYBHM2T8ysbjniIRC IXIpGYHrLCtMEaTofIySZW279uvTo+QLHC1foB2LcexDsIlVCn79wCW8ukSgDI/4731txvFOR1I soGonAdYzHnMfRUYPWcaNTFUPkJAIc62jnEqPSLIESbi/bbqURb9o385Qtlb/v7zmHGTbLzsogo D0nulsFpsD4TKxScxtRRdo3yr4RDpNPJXThp3/PxJ6rlqHObyJNgFilGXXbRkxgWvBXk3K+wqp0 HcBGpO47PrPsaqehojRfZpNcvg2HBUjr8E/+pBXfz X-Received: by 2002:a05:6820:1a0a:b0:6a3:7d5a:1ae0 with SMTP id 006d021491bc7-6a38b9f0c0cmr6902313eaf.29.1783947711588; Mon, 13 Jul 2026 06:01:51 -0700 (PDT) X-Received: by 2002:a05:6820:1a0a:b0:6a3:7d5a:1ae0 with SMTP id 006d021491bc7-6a38b9f0c0cmr6902275eaf.29.1783947711045; Mon, 13 Jul 2026 06:01:51 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:8881:83b8:89fa:1a2a]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-493f2d97527sm306129725e9.2.2026.07.13.06.01.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jul 2026 06:01:49 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 13 Jul 2026 15:01:09 +0200 Subject: [PATCH v21 08/14] crypto: qce - Include algapi.h in the core.h header 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: <20260713-qcom-qce-cmd-descr-v21-8-bc2583e18475@oss.qualcomm.com> References: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> In-Reply-To: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Md Sadre Alam , Dmitry Baryshkov , Manivannan Sadhasivam , Stephan Gerhold , Bjorn Andersson , Peter Ujfalusi , Michal Simek , Frank Li , Andy Gross , Neil Armstrong Cc: dmaengine@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, brgl@kernel.org, Bartosz Golaszewski , Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1305; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=CUp2WTmSuEfCdx1+Ds/evRL1UENxTV/cwxTY1f9GBAU=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqVOGdIJMZbD30Ir6MPnqFekcNPq0AjO4fvaXMy HuGbWZzdr6JAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCalThnQAKCRAFnS7L/zaE wxivD/93ThfidN7R0lxtpI59l//wvd89SN9EFKqvevdrZmeZUM2n9BNk+0V2zIQ/T75BQQ/4WoK 5ZMmrneskmHZk00O2+JYrEgdsKna+qpriKe/bGoKg8wPoAC2u/Q/bChbfeisnpJnJ+/bVi0PfiO ORlAvQ1g0DCmTfKYWa0t46jTTlivRLUqzZ6kHY5EbciCGV8omxWLlkQLvDOJZrhJDK0aRjRgGl6 iR7inEOFnjy2WbUB34Nu4NQj/aGtKNs/3gwtkmXqyEz+FlyzZ4niadDM8RcA/4Sz1QzS95SgX6C DkhSgZuZSA8ilJDdzP9fE/ZUYWAkJ7/UY5Q3E4n63UgGlRPZJqCVA7v0PZqchnWcn6d36C6tWRW jM9eJRbvimDuWPnpUZtp078615VgWGDjrD8W/4XbWARxrl1IYQWtR+ECB65+ekY9fctfEbF5avG WK1lvxeXw95NQvdHd118d8o1BLMucX0PHPjz7oj51Rv4c/ZhD9KcufolYQfQ8T4RuHHTjYF6Cuv Bx1DA2U+E0jeIpGnIRDte0bm9ou9JYRcNGMPkEO2jG/adpYdbMhf2Fh/V1sgHRp4teFYA+bi20n Fmk070j0OyWbe6NEIF33u7HjXVT7WO045hedaI6Ajug85whxWdL91I+PqIoA2DDCJ/JxhBYrE/7 UZBBDi+BCq4stKA== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Authority-Analysis: v=2.4 cv=FMErAeos c=1 sm=1 tr=0 ts=6a54e1c0 cx=c_pps a=lVi5GcDxkcJcfCmEjVJoaw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=KKAkSRfTAAAA:8 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=rvG61WhHFVBzVmnuldcA:9 a=QEXdDO2ut3YA:10 a=rBiNkAWo9uy_4UTK5NWh:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfX6ShqfraO//EI 0Ld4U7WWdR3iFbR68V82VsYgU2XcQHj6d2wnuKCQII8zMNo6Xueb3eye2/RV6eFeV6u8P2LmD1Q +jeXgfj7wq10j7IvUtD0qEm2YG48K54= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfX87ngi61nL0ED 5HV9Em1ZPALyXs/Wi+B2ffs+FupJ9ldEsQ4dfHa/r1FW2b5lzdf/sZJEhwCclTNrgrH9c6Hkyvb 5yQH2TrD3aMHfxOUKnVSc9xXgnCXk+K6wcRg+i8MamGqNgGUtEVrU2D+OtTLuwfv+hUfEerOssy 0h71/mk055zz+S5//qXC8MD45PF7Co1lt9NIJNOHSeAVQR/kjeVUiVB75d0CnHSZhAVSsb9gvYi 6jMz7z4gLvYijGxSsEX9ihJ96nvE7qmJw1HBmfoTzyPx+o8Cr0KIKkUvukFpQAnnAPvQHR67rPU HRPtZrRY2YvtqpS7CiromGjFMVoExDbJm3UoTHSfm0ckbaTqG2F+13MXJI/Xpe48QcbgBDowR8n c6xwntaeLFpW/6NuL3o73G40EEg10xapxOsuac+K3q1KEQ7jaNgKKnoHYKXnGYT6YuL9uDpIwFX OwN+CUjqnuKpSrEsi1A== X-Proofpoint-ORIG-GUID: OkKmHx-qU6DXjRWRvAOaSb9tSrxWEriz X-Proofpoint-GUID: OkKmHx-qU6DXjRWRvAOaSb9tSrxWEriz X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-13_03,2026-07-10_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 adultscore=0 bulkscore=0 malwarescore=0 impostorscore=0 suspectscore=0 priorityscore=1501 phishscore=0 spamscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130135 From: Bartosz Golaszewski The header defines a struct embedding struct crypto_queue whose size needs to be known and which is defined in crypto/algapi.h. Move the inclusion from core.c to core.h. Signed-off-by: Bartosz Golaszewski Reviewed-by: Manivannan Sadhasivam Signed-off-by: Bartosz Golaszewski --- drivers/crypto/qce/core.c | 1 - drivers/crypto/qce/core.h | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/crypto/qce/core.c b/drivers/crypto/qce/core.c index b52a26ffff5ee733adcf4e8cf8bef75018dfa63e..dd860435d2c47a608c82cc26865= 83a44ff96c889 100644 --- a/drivers/crypto/qce/core.c +++ b/drivers/crypto/qce/core.c @@ -12,7 +12,6 @@ #include #include #include -#include #include =20 #include "core.h" diff --git a/drivers/crypto/qce/core.h b/drivers/crypto/qce/core.h index eb6fa7a8b64a81daf9ad5304a3ae4e5e597a70b8..f092ce2d3b04a936a37805c20ac= 5ba78d8fdd2df 100644 --- a/drivers/crypto/qce/core.h +++ b/drivers/crypto/qce/core.h @@ -8,6 +8,7 @@ =20 #include #include +#include =20 #include "dma.h" =20 --=20 2.47.3 From nobody Sat Jul 25 21:21:07 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 78BB542252C for ; Mon, 13 Jul 2026 13:02: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=1783947724; cv=none; b=qgpec/QxpDXCqZBpGqfsqRFHEogSngKgEZG4HKVqIG3cSu3xCqjERsJFjmpuKJiBlVze3LQo59GhFm+I2Ou+B3AI+VEyYfclbtS+AhvwWmIIaWfcV/cWX45l4/D7nsJDZW28Od7VvB/+xNkO33+edYxzBJ/nQi0wsn0eQxp6R1Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783947724; c=relaxed/simple; bh=vpDVf/b6zHPEUgtVCAl2sRJELM4MLJc6gtP24/up104=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=V+1UBJ5lVAWHK2VSJZje6ovNSWoDj4vC3hYura0ER1HSwJAL+4y99catnEkkn06ALbikRV6LLw2dmOJBtggbHHmtZ9CtwcL9GLmSsQ+6B3E9RqxWZlLFvg/gs915pHmCWgTpnXuGwz9ZxWgXaEEpEi5LVuOOQ9JxBYrVtz08huk= 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=mtKQ6aQh; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=gMucHhW5; 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="mtKQ6aQh"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="gMucHhW5" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66DCDdVv1480702 for ; Mon, 13 Jul 2026 13:02:01 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= twry+rQD67k4KXlgASz4DIRuOCwVvltNp8BQTuA56nA=; b=mtKQ6aQhFyuDQE93 vLS0PLFWn+3ssts+aKobAO4Z3qGaqUVXI5gjuS1xu91JAaK0kAk/MFI1n9gRiUXK VZzGPSNz7Bp8q1PLeYXrHFP1zBkaHghZt20UDZxw9SVbih6HTBrYynh9ebRMxzq4 x7idrnW8SkVIPMMgND2OOJ9L5ZatDG6f1i0qL5BlTCGbRBX68aqkgW7qgO0zmXe1 exmg4REXsTFM0RWl+20r6ygIGPNOxnnFnAj7bIJimxGs7typmqwCVsb4VRF8/iPS 4TOkXNTH8GpUVAUlnxv++fl7mtAbYY+u2zDjZ7DLmFdVMOxrhx523pVll9J1dIRf 6wTqRg== Received: from mail-ot1-f70.google.com (mail-ot1-f70.google.com [209.85.210.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fcwavrsr4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 13 Jul 2026 13:02:01 +0000 (GMT) Received: by mail-ot1-f70.google.com with SMTP id 46e09a7af769-7e9fec69475so4469488a34.0 for ; Mon, 13 Jul 2026 06:02:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783947721; x=1784552521; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=twry+rQD67k4KXlgASz4DIRuOCwVvltNp8BQTuA56nA=; b=gMucHhW5BoPBwUwLCckmIDCpK9XTzFlSaeTKRwMaaObwObocfyrPgxjD9kFBfOCzUa VJ22R91f9t8JzE2Yj/eMCgjNDlkKVbud/NHTL2opSdEzYvlTaUIjTpeTHWx/ZEE92WXN BKCY9xqV2AHJ7DfqUO5Jovh2cci5xXZeaVuhmyjRXYG841aYGnTnjZ64reI34rFsHpVa Ls6EcYoq+fefvBmSg9+kkeIJTPkRj3g+zG1TwMKqJm02HQOM1k81hZGbyQzNylLCekNs /khNOx9bVg08oZsMW1R8cm6iS3JLUZA9WQrH0heKncB4BFOroa+bWVUrlPlceJzOFLzW ePBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783947721; x=1784552521; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=twry+rQD67k4KXlgASz4DIRuOCwVvltNp8BQTuA56nA=; b=Smj4JXJtL7ydCkUPW+xhdYFjBXsxmBqoA3YUNo9dOxSW/DCFITOH8BmpXv9X2y/GpM mPS6Ceu+NCFbRmpyPVMeomYYWp0933rO/U0268xGuQJSwCxOTr2BqNiLGzDxpjOtYaZl jQJFytghwDm9V9J4AQrDUkEu8W5RWxS9Ndj8Rkfb/u8PPXSUfyMkBtA8MtZ0dC6S8/c2 pr69PtU6IwJKV52J4TlkGDJHsMYEmblUrF47VkWq7LSkxRv/FXV09CNYc2Zm+tusqo0s rELX/VqWPBcmT9rGnmTsDLks2sTu1aDN9hYHAupJzt1ForGl4lroq/HKgYiz7r5yeoVD NtCA== X-Forwarded-Encrypted: i=1; AFNElJ8N+B4GNm+VzNuRn30FDpr5rox+txu8IbNUj/utL8jAzvf62g9iR86zuKfZk6T2b0slhQlWGEeD4iTZmY8=@vger.kernel.org X-Gm-Message-State: AOJu0Yywab/w3m3PQfIxqC0efJdrheUgluKdug5JhX6vFzxCjLba/arf oc7cNhZACckug8Pb7X3uu1WFo5seA85Noq0fT/IEWgAul7tC3U+Ls71nlNIuTaOmdeQabFzaf+N RoU4cYdVbDCAPP5eMqxrwTQKBeTYmm2f/w4cHnk07kh4I/j/ozTnA6ZolGSntGWhvI50= X-Gm-Gg: AfdE7clIIN+y8OplKpJ75+UcaLiR7k/qQPBpTomgkTFdG7fMM2V0DsSiYhP1KgWLex5 N7wHaQ+6IExSXqTjuJA204Fdki+dqPrGl6fo50JgWJjApKaHMDZL/l4qZXI+iTza6b65MFpgiWt sCu73MNPnSTdVjdQS/Lp2nrgUitVKAGy2BQi1SIMEVvXEhe+QHez4vPTIEkf+/067+UR+tk2/14 4W2awD+W5XWOexZO+kj/MczpCPhM56HPr8aSOy7IqB1b5nG0dCS2UlCj+mPyVLBrmjI0nMDYPDI 7hhIfYHHZaJGv0yEPt5qAi2CSga5ziF6MTG4dHdRi7VqXdDG6F+BB4EbE5XcaE7rJpjq9smqe2c w4U4rzUp1kJGVDJirT/Ju0lS/Lz2r7kODsbbjKGmR X-Received: by 2002:a05:6820:4cc1:b0:6a3:916a:1d26 with SMTP id 006d021491bc7-6a39a8561bemr5856219eaf.61.1783947720494; Mon, 13 Jul 2026 06:02:00 -0700 (PDT) X-Received: by 2002:a05:6820:4cc1:b0:6a3:916a:1d26 with SMTP id 006d021491bc7-6a39a8561bemr5855857eaf.61.1783947715189; Mon, 13 Jul 2026 06:01:55 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:8881:83b8:89fa:1a2a]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-493f2d97527sm306129725e9.2.2026.07.13.06.01.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jul 2026 06:01:52 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 13 Jul 2026 15:01:10 +0200 Subject: [PATCH v21 09/14] crypto: qce - Remove unused ignore_buf 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: <20260713-qcom-qce-cmd-descr-v21-9-bc2583e18475@oss.qualcomm.com> References: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> In-Reply-To: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Md Sadre Alam , Dmitry Baryshkov , Manivannan Sadhasivam , Stephan Gerhold , Bjorn Andersson , Peter Ujfalusi , Michal Simek , Frank Li , Andy Gross , Neil Armstrong Cc: dmaengine@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, brgl@kernel.org, Bartosz Golaszewski , Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2066; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=j6XY4tGbVrzzivRLNBnBuYRESnCKLFI7yXVP5haQkuk=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqVOGeHIeb8ttU8NMHmfvZe/dnHD8TlSqP+D4CC DKyl2r0VFyJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCalThngAKCRAFnS7L/zaE w3GID/9wtsZ7eG9siySdL9ECGYbUZMDbkEeFrIkn7nhWh+imlHfzg+aps1ekYXqrnnKoNpMAcYj s5S+a7t13UfMF0H4ezCA4SmKeySbw4Xza4+KOINoRrCvitkyhrOhRnOFTGtL5OYdsxUi8vBYxfA bhOYwwMqCw7xtvs39WG+W+ugZyCQMBrvMOVao1ZTs/QOVw5JdfTK7Enjn6CPI047t7+XtVbdcnR AO8b52ajf+00/8XS9y2hWNMhT5hPJq1QjkwjaCBTObA23ROM4Z7cGEXjrn0TNSwFOGdiBaI7voe FCJ9VyAiQ3yRc5198Eni4HMzXj5sqx9F5X+ZYs+sd8lJrvAld3W7gZMIZ3TJ9SZ8cpTzqmMqUqv pwheSNQn9xKZ2M+opu+1hy7/26q5i+Wk/hNPr8w/gYP29uPGH2/ZCBTwH3mHbK4Auw/w8oHI+aA q2aXjx9NPwmqdFBvo7EHkgNDmckjNdXVmbg+pmujnI8AeKsKpVqartHSq2sVSrE4NnFPbjGNlfJ GYyJNVtENy8vNNqtCs2rbm1CX4Cp2nNLnd4GPm257Yy/HS1E8BhMfwaVKgbqszK9Zx/smc3DJvT pOtMoWNgul11dbGF21pBRIe4dSyZoJ22b64Quq16v7iBe6XsVrKSjj3xPBP9JsDPEYNkrtYJ8vf 9BPGsifSF6T4yow== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-GUID: BgAveSB9RqYY_DNOC-sviQFauyeGX7AD X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfX/eVRB2sAL0LH 6zquztRKNpqCsq2N+gc1ZKGU4ZS4orWYlHwz+BUVJ2ZgLmQszzFxB7a8GrfrkiEcVFx8/h5pD6R NRBjQLIaXmN/P+JyVVwL1oHvTNrsUl6it/tg9eye1l3zzWCi3yY/07jDdv1pfQhAeJC/Plvybd1 m58MFUVXg2CXA3oOMyP4HCRPIq2GJB/9PeeYFvV2ZcHogoq3U/qyPrNRmzKBQELYY9iSkiB/X/p qt4mmNQjl/yyua9h3P8uKf4qMrLebj4aVorODblnTHE9UXr0HI73crXMxIHFVj4sosjKZuJkRIY Ucxb3dvNnFADkEJ8c5QEuV8LxzMbyAG7L9lDS661I7i6wNWuU3shAeJqVkO9gdEKxVKHoKy4mx4 GsIZUpslAQr+5BSlz+jyMQPoWVo9dy+F2FrLZbr6zW8sbOYH/D5QF/NpmMLxJmWJT+wax2kpXiz jtEsiU2F0XGYRUJJ0lw== X-Proofpoint-ORIG-GUID: BgAveSB9RqYY_DNOC-sviQFauyeGX7AD X-Authority-Analysis: v=2.4 cv=dZSwG3Xe c=1 sm=1 tr=0 ts=6a54e1c9 cx=c_pps a=7uPEO8VhqeOX8vTJ3z8K6Q==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=KKAkSRfTAAAA:8 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=tWRRbWwrKX-5tUpmLDIA:9 a=QEXdDO2ut3YA:10 a=EXS-LbY8YePsIyqnH6vw:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfX28VydIErcyY4 lk66uizklf6emSujeXU3N7LnQgu4SMSdTPSPGR4NAh52P7t7m+GV5a0pQxAsNmea03xFFcITfpa 3R/WFAUX2rWJSXD3BOWtJjsznuIfOtc= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-13_03,2026-07-10_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 adultscore=0 malwarescore=0 spamscore=0 phishscore=0 impostorscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130135 From: Bartosz Golaszewski It's unclear what the purpose of this field is. It has been here since the initial commit but without any explanation. The driver works fine without it. We still keep allocating more space in the result buffer, we just don't need to store its address. While at it: move the QCE_IGNORE_BUF_SZ definition into dma.c as it's not used outside of this compilation unit. Signed-off-by: Bartosz Golaszewski Reviewed-by: Manivannan Sadhasivam Signed-off-by: Bartosz Golaszewski --- drivers/crypto/qce/dma.c | 4 ++-- drivers/crypto/qce/dma.h | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/crypto/qce/dma.c b/drivers/crypto/qce/dma.c index 7ec9d72fd690fb17e03ade7efe3cc522fb47e1ac..d1daa229361aa74da5d3d7bfe1b= c8ab189761e38 100644 --- a/drivers/crypto/qce/dma.c +++ b/drivers/crypto/qce/dma.c @@ -9,6 +9,8 @@ =20 #include "dma.h" =20 +#define QCE_IGNORE_BUF_SZ (2 * QCE_BAM_BURST_SIZE) + static void qce_dma_release(void *data) { struct qce_dma_data *dma =3D data; @@ -43,8 +45,6 @@ int devm_qce_dma_request(struct device *dev, struct qce_d= ma_data *dma) goto error_nomem; } =20 - dma->ignore_buf =3D dma->result_buf + QCE_RESULT_BUF_SZ; - return devm_add_action_or_reset(dev, qce_dma_release, dma); =20 error_nomem: diff --git a/drivers/crypto/qce/dma.h b/drivers/crypto/qce/dma.h index 31629185000e12242fa07c2cc08b95fcbd5d4b8c..fc337c435cd14917bdfb99febcf= 9119275afdeba 100644 --- a/drivers/crypto/qce/dma.h +++ b/drivers/crypto/qce/dma.h @@ -23,7 +23,6 @@ struct qce_result_dump { u32 status2; }; =20 -#define QCE_IGNORE_BUF_SZ (2 * QCE_BAM_BURST_SIZE) #define QCE_RESULT_BUF_SZ \ ALIGN(sizeof(struct qce_result_dump), QCE_BAM_BURST_SIZE) =20 @@ -31,7 +30,6 @@ struct qce_dma_data { struct dma_chan *txchan; struct dma_chan *rxchan; struct qce_result_dump *result_buf; - void *ignore_buf; }; =20 int devm_qce_dma_request(struct device *dev, struct qce_dma_data *dma); --=20 2.47.3 From nobody Sat Jul 25 21:21:07 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 E7B74417341 for ; Mon, 13 Jul 2026 13:02:01 +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=1783947723; cv=none; b=npF2/S4QEZVRQfdoZctTe/OL9DlIP5Iek12chw0z7js7GD2SSDDCPGyLXVGo8aGC1cgGIqY91peUHq6X97RtGgQhHl+3TIyyF6fnfy2E+jm9Qv6qsX4uxXmlkhusz4CACERqr+AaLwjuEkWJSIu0EIzuAkqp1At/kHA3eMnsCFQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783947723; c=relaxed/simple; bh=/3Q5BLE2qswUURgRMp8Md6+CmS+GMHS0PuiKEz36BBw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gUWW6L2zjIUHSVjYrb2+fFR93Y12C0wR7CgeSTydqpJ8vPAT/nS8+nUYCieYhC/Vbxth6NL4gG4eTTeetU60dx+vbt1r3OfIWGJZKPXBAxY+LcLI4G5Up4MYVab1C7NUPx52fbfjZ2FCkjVM1gm5a6/6ISOp/70spKm1bRLvnI0= 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=YqmcbfQW; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=XJHYsRUJ; 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="YqmcbfQW"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="XJHYsRUJ" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66DCDeEp1480748 for ; Mon, 13 Jul 2026 13:02:01 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= I65WEZ9oqgYF8KlnrmzqEJMBV2oN2r3NUJBwbhZLtgQ=; b=YqmcbfQWyFimoHqy hTBs1MZbNm3SnxRLjRNQ/3iGwHDx7cdV6hRdap6aJLHbCp0KnDZTWain2cD/yTH7 6c+jmCNZ/lI+ReAH4xtBGzF19kJzM01ws3kYh1iQ9St5Cbj5GnQatB6pjhrZNxXc gzDCmV/Ph3lBZsLerwrUsTkdlGELQeu7nHQNIgeg5fo/XjCvz54VAfBPeOBcc7ps qvoAFnR07kKU+JNSI1eZw7ScSD3DxYtAcPw6U0URd2t7rlNulhBQOtYQ9dinfpOQ BKhzUUWld1vqgfVhlvup/eVKzFJnES/jgk6Sin5kmHS77bepwnnjbkYLNuhMG4KZ +ftuLg== Received: from mail-ot1-f70.google.com (mail-ot1-f70.google.com [209.85.210.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fcwavrsr0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 13 Jul 2026 13:02:00 +0000 (GMT) Received: by mail-ot1-f70.google.com with SMTP id 46e09a7af769-7e9ee20bde0so2171084a34.2 for ; Mon, 13 Jul 2026 06:02:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783947720; x=1784552520; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=I65WEZ9oqgYF8KlnrmzqEJMBV2oN2r3NUJBwbhZLtgQ=; b=XJHYsRUJ7jxmK2mWmFI2oPqJXxLmIWgBRiHlYVNsUzMXyfMvk9D4tTbknl0IlN1fRk AgJ6b5yexjtnwrpeLF3kivyyasX2kkQQPgyLRmIZqgLjrt6tB/gHTMf9bfOBxlsntigP +EDclRHaKKzdiUSeNWy0sC+XqDCVALKYkXSOUFWjsPBAx0uUfuWa3SKeY23Hy8DIc2+O Bxa7RYPFI1bnSGQ7PTS7nLa0sGMO4UMEaqiwwI6/Mv7EMmo6QaROR7UTvETyHXQ+MVUx 4V5yMd6m3rMNyRtGxcpKUkrYuvdi3Ch+cMKcKwwnfUkpDB++GMnzIYHyeYBNE1ZuTHoK Yp3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783947720; x=1784552520; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=I65WEZ9oqgYF8KlnrmzqEJMBV2oN2r3NUJBwbhZLtgQ=; b=myRAM+nrd/nVbBaJEZn0MnnzfAiVxeZleJVk0uFvK03zPM/SwNcu5tDrrnmRMem7UR LfbyJegXFK++ulBczPlj+Ibnjv8VD3s2YRk5rvhb05eB2dtWzIyUdF6eVCzRxa7pJHtT RU/uaz73so1rMCskfGsy2C+4Osn4usMNSUAItU2VUVmcmyNygm504eN89XN3bvfPTIba gmvD2AyBYnjvuo/ynds8AdRoKHcSbLW1LMbYv9sdo3K8DTDGM6rwMqCL18hdz440UML1 1Qu3CaSovJAC/rKlXAjN5AKQZ+ZQChritHjjw546iwVnZhmOxMHw4mq+KqhggMkb6+WS A5qw== X-Forwarded-Encrypted: i=1; AFNElJ/H3rMJccGHC3C3MEKHL05QmxcvLSsFrJSNbdPkyF5UR8mr6ti12kPOH4FoZil3+vGG0KaHOyWursevF8Y=@vger.kernel.org X-Gm-Message-State: AOJu0Ywt3l0hajrIWpXM4XTfIjAk2hUJJYX58lW5PRzesEeEhVvzUkBS /3sk5dfbq8XIkkj7l0XHlNfIs1iPw5eAYE56O8VdpDLhHm4gpepcopOdVnI3EELYSQND+fycR/I dXO96nOzO77mUSpyLFfhKablUL5ZAXfqNkYsYgPnGlbXiuW27isCyDlsEeb0WhPhmbIw= X-Gm-Gg: AfdE7cn7/Is/Pi0frffEyjx/+NRWVMdhSQxlVgVTljWon2028AjAOQae7oLgpwJGjaU 4yclPMEX09TPIr+X/phHw7YH3SkjAX/4ETR+eWCZr9x1x2toV454C+/YlmA31n/hp0XzXzKTMY9 4zNJj2BORFz5FQi1IVGwg5DSX6+nImdTw5WEK5aMzy9w4MhRae8nKzIu5ouCj7ODkx4EHeI9Tez RKLlMy3VLW/u2iO5inCjxGAGFLTKDDswC90yzPY7urUxkOiBYS2dZ1LwGj43QuvacZ6ibPoB++4 aPUHBCXi8EGidfBR2uH64VNazvhvbROvMrI81HhC2hV10BH6tMo5S62cQxx3cQOWNqwiVX5PjEZ 5TTFAJEaM X-Received: by 2002:a05:6820:2220:b0:6a3:2de8:797a with SMTP id 006d021491bc7-6a39a55bfa3mr5264855eaf.11.1783947719703; Mon, 13 Jul 2026 06:01:59 -0700 (PDT) X-Received: by 2002:a05:6820:2220:b0:6a3:2de8:797a with SMTP id 006d021491bc7-6a39a55bfa3mr5264804eaf.11.1783947718791; Mon, 13 Jul 2026 06:01:58 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:8881:83b8:89fa:1a2a]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-493f2d97527sm306129725e9.2.2026.07.13.06.01.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jul 2026 06:01:56 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 13 Jul 2026 15:01:11 +0200 Subject: [PATCH v21 10/14] crypto: qce - Simplify arguments of devm_qce_dma_request() 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: <20260713-qcom-qce-cmd-descr-v21-10-bc2583e18475@oss.qualcomm.com> References: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> In-Reply-To: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Md Sadre Alam , Dmitry Baryshkov , Manivannan Sadhasivam , Stephan Gerhold , Bjorn Andersson , Peter Ujfalusi , Michal Simek , Frank Li , Andy Gross , Neil Armstrong Cc: dmaengine@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, brgl@kernel.org, Bartosz Golaszewski , Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2674; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=34ButmP/zHfg7ujor83QeeFN6rzFB4sOTC9ae7ymGro=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqVOGfuyASyenMkoXWOhJgZ00qytHI++2nO2fsz 8TkfCIEhOqJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCalThnwAKCRAFnS7L/zaE w33VD/4rDhltcSAEuGqwmCDJE+p6NI3I7To90AxBT9EjTdXDOmQAXXyyoRUCS7QE2RaoZhWaYLa nrvWzWyLMm6SuZi36hJjvs4a1X5cxgUzc39f/m16shf7v9PmFTtg4WWrtEyg7u9sxtw7r14WKdo Q+M5H3YlRG0TvrVH3IDdBaue7HxeJ4lgGNhH3bRdSZnlvlU0KhZyq49gZjVQOsiiCt9jvbh6ZRq 2L4Y2+FQ/xMWhiOZA8kifB4l18XmoacEaVOis1e1CMF9OBPzp4mRicU+3OWhJkxZO+UuRLDOf5V tsuw1VuyXBYRuWqAwFD/B1G/jsDNi9pMQ98vJ2fFEpIHJN6sX2/DfczE09bNz6+3Y8oHXCjl9Gc pUwuC8LezSx3PGEswV/DFsmWs0USYxG0WTXDCLctElR45wnT7/hCSpN1cSOXEzrigDgNSmgraTT bVJUaydalw0ScF7XTLQXrO7JS+18IkOSEw3mpk3Q1apkddV1Mlr01gKdJknJBaN/3AIULDVfFX1 4SN0oxTWYqHaL8k7iE1SD04j+x32Up/D13O0SC9ZWXOxGP09OIsVALrHAPw55l/Y0kGJwPcfR7I L+v3ZUxQsYa8GAct/qpNhql4ZEbX1Y4mut0n+N1UCfAGyOdTM/fVofa94puMrkopl2CPPPEKFdu QUVPNik9+ylXWIQ== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-GUID: 2gja0yKUp0UcMFTK0tZXfe_geJDG6Cwa X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfX8pel/Pi5dD4Y 85WQsO9eKpf/SVujjY6+eHymzIIjbNp092xcwZol7QJ3uKE34dq8XPFTvFUt8LzqKjlIhEhkEMk DO30XZahq7prYjFLwT4SUIttTew62+TxFbY098eH/TFlNH9PBo73/+r1O1J0VHVhQHfPL5pFcVV oMTBjkIB+NMxWJPg1pVrrQcNK4UaDKyv8oVzqD8GCd1O54qsjLvu4BxqQzglX/IqgDtK7lnBhf0 NLuTdJ6jZmk23ESIwpM/UrCgWI+t71d2ndjDrrCjMHnLRU0wbfn5ZtV95xyhTGcxZY+0SfhZHyu jEMLZKsnwrDxl7+hKgWdFLuNGk5Zo3dfvRkwX5tyrAtxErksMQ5dzZhRBeluxMnNhCYqqOTH/Cr xmOYELREzIZlRi5wp6+g0e+2yTmKqANZIXE+gybjwTUNeHJ5UBWastMEG4TAi0M/BUWpOXCjvZw POTRtzxaX3VMkxtKZNQ== X-Proofpoint-ORIG-GUID: 2gja0yKUp0UcMFTK0tZXfe_geJDG6Cwa X-Authority-Analysis: v=2.4 cv=dZSwG3Xe c=1 sm=1 tr=0 ts=6a54e1c8 cx=c_pps a=7uPEO8VhqeOX8vTJ3z8K6Q==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=KKAkSRfTAAAA:8 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=lH6k5GM5CfRwGFUYfCYA:9 a=QEXdDO2ut3YA:10 a=EXS-LbY8YePsIyqnH6vw:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfX5m+UlCCLeE6X MRUnZikUzs5FSpW9XX38F/Ck1syUOKMjcA6iSMVXucRB4vKxr+VD5caPjlEx0qMlgj6K+tfk90W hZTAutvowz25DPbopuFpOQlg7Y+TZD0= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-13_03,2026-07-10_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 adultscore=0 malwarescore=0 spamscore=0 phishscore=0 impostorscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130135 From: Bartosz Golaszewski This function can extract all the information it needs from struct qce_device alone so simplify its arguments. This is done in preparation for adding support for register I/O over DMA which will require accessing even more fields from struct qce_device. Signed-off-by: Bartosz Golaszewski Reviewed-by: Manivannan Sadhasivam Signed-off-by: Bartosz Golaszewski --- drivers/crypto/qce/core.c | 2 +- drivers/crypto/qce/dma.c | 5 ++++- drivers/crypto/qce/dma.h | 4 +++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/crypto/qce/core.c b/drivers/crypto/qce/core.c index dd860435d2c47a608c82cc2686583a44ff96c889..aa4a0b17749081f1ad653424bc2= 65ee81e348e15 100644 --- a/drivers/crypto/qce/core.c +++ b/drivers/crypto/qce/core.c @@ -237,7 +237,7 @@ static int qce_crypto_probe(struct platform_device *pde= v) if (ret) return ret; =20 - ret =3D devm_qce_dma_request(qce->dev, &qce->dma); + ret =3D devm_qce_dma_request(qce); if (ret) return ret; =20 diff --git a/drivers/crypto/qce/dma.c b/drivers/crypto/qce/dma.c index d1daa229361aa74da5d3d7bfe1bc8ab189761e38..d60efb5c26d88f8b0259b1dccc8= 724d0f75571c6 100644 --- a/drivers/crypto/qce/dma.c +++ b/drivers/crypto/qce/dma.c @@ -7,6 +7,7 @@ #include #include =20 +#include "core.h" #include "dma.h" =20 #define QCE_IGNORE_BUF_SZ (2 * QCE_BAM_BURST_SIZE) @@ -22,8 +23,10 @@ static void qce_dma_release(void *data) kfree(dma->result_buf); } =20 -int devm_qce_dma_request(struct device *dev, struct qce_dma_data *dma) +int devm_qce_dma_request(struct qce_device *qce) { + struct qce_dma_data *dma =3D &qce->dma; + struct device *dev =3D qce->dev; int ret; =20 dma->txchan =3D dma_request_chan(dev, "tx"); diff --git a/drivers/crypto/qce/dma.h b/drivers/crypto/qce/dma.h index fc337c435cd14917bdfb99febcf9119275afdeba..483789d9fa98e79d1283de8297b= f2fc2a773f3a7 100644 --- a/drivers/crypto/qce/dma.h +++ b/drivers/crypto/qce/dma.h @@ -8,6 +8,8 @@ =20 #include =20 +struct qce_device; + /* maximum data transfer block size between BAM and CE */ #define QCE_BAM_BURST_SIZE 64 =20 @@ -32,7 +34,7 @@ struct qce_dma_data { struct qce_result_dump *result_buf; }; =20 -int devm_qce_dma_request(struct device *dev, struct qce_dma_data *dma); +int devm_qce_dma_request(struct qce_device *qce); int qce_dma_prep_sgs(struct qce_dma_data *dma, struct scatterlist *sg_in, int in_ents, struct scatterlist *sg_out, int out_ents, dma_async_tx_callback cb, void *cb_param); --=20 2.47.3 From nobody Sat Jul 25 21:21:07 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 00CEE412267 for ; Mon, 13 Jul 2026 13:02:04 +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=1783947726; cv=none; b=T+hIQE24aa6G3SzmTANIQaJuhKRL1ZVJ6HqKwrb+DI90eLfv3xrsSGi3HZP/A74SXQclMWcJrCPzn5NzzPkf0Atq3+smP2d8ybxY1H66O3eFHvS8YOt+YeINxOOo13oxe/XC5XwptaPChTav31tiiXyUanjvlneeBepHjVRoC/w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783947726; c=relaxed/simple; bh=czoxItsxxVvFFRsK/bUJo7zI9PxP/5bmJEdhhzZ9wNU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Oc5xAkd++3aV3l9uxe/i+VcqxKKTnfiAd1886PQI/ANPx+v8rxQDa5XDSsKkarZx8APznKSPid14gfV7ZYNW1cUpC9LiRg/KVrlTSQuNXky4xuH7EFL2RCjtsFYSVSHIgRSmVyR17m3wMouzNJQNjR8klUQMpvTqK2M1/GI1Rzo= 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=TKwMSV98; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=DUujr7+u; 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="TKwMSV98"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="DUujr7+u" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66DCDdVw1480702 for ; Mon, 13 Jul 2026 13:02:04 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= eLuzW4UoyjLIBOHVkT1M1Bap2xQlYADrM6wCNEKkohQ=; b=TKwMSV98S9Pnsx26 KkuLfaI756DKEf7K1DTY7r6ZVk4EjqvMmE1y4JlOlD4eWyOR0e3avJ93fOj+eHNb 4eSS0OQpeKKYUFCztUyDKx680FFfmOK1KtDpFUnMa2n1Itgu+WF5IVvrk19D+rvx k2ftv0WNM1S9fOy8odZoQ8no7SfZDgdfyCFkLVY58Dowjr0Clpb/R+cfIK5nAtD5 BY/acZZKQ96GzYHEdk9FljFslVNeFGOdHkYlsihZ+ho0b0BtgJxeB3TzUvpLWgbT uq8l6kIxUFBiyXwOEwJOGiyD/BLmQ7A4OIDAJXtM6bbE3NJugJAjmMbPVT7AN1ow CYNBoA== Received: from mail-oo1-f70.google.com (mail-oo1-f70.google.com [209.85.161.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fcwavrsre-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 13 Jul 2026 13:02:04 +0000 (GMT) Received: by mail-oo1-f70.google.com with SMTP id 006d021491bc7-6a18e349abfso3974920eaf.0 for ; Mon, 13 Jul 2026 06:02:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783947723; x=1784552523; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=eLuzW4UoyjLIBOHVkT1M1Bap2xQlYADrM6wCNEKkohQ=; b=DUujr7+uvqgkN6RbtmY2tBKf6zJbzj3f5I1b+AamqWswLMWMZYuWdRXnGfGquvf4Oq o5h3EplRIt4f3x80WWSqfLYKwflTJQog88EaaE3L1naJ6DjPmln8VAsSh3L3RYmwpqj0 tbArESBGjmiUXKR5yHqGUTRNtlSrblHAgDRiPN3VHAIlRfyCfsAkYAoiUGWVWrYZbf3l zYT251Cy99itiPRUQN1Ba+p1mWhjVpjPh/EmS9wPXKNo4qBIECe05PTSoz8ldR5bMnB8 nPWk2+qW5OJH5ge/utkLOd1NscV0UuSBEAtjjsCGXwUR1TyBQCoT09FLvPFjKxflNuGd txvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783947723; x=1784552523; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=eLuzW4UoyjLIBOHVkT1M1Bap2xQlYADrM6wCNEKkohQ=; b=B6cB5FdfJtGtJ89dczNu31XJRqsRR7nnDm2XZvoFb88++Hd7iBNOf/w/+Ftu9RKu5k EObQgacx8zkG7pNsB9oi9N10hdQw8y4/RZUeS7c4NPHRgyFmzm6Oi7r3hcjNJ1llvdT5 EHAcfRDNjJ2ogVh/3GnV1Wi3hTi/iKDT87aT9swnklXO78MiUKLcE6uMNVsx8QetYtNk 6+Xmbioo8JnF2l8fcFRSNn236SyF81PjqR2WcEbI1yWNgBfjw9VMFxLFfr43YbQuOtfO ++wFUpYJkRzM1nxfXVwo9OPsofOhslh0gPUb92M+nz57B8IKbT4RpJlt22qdp0MBSoRg n4/w== X-Forwarded-Encrypted: i=1; AFNElJ914Gh9yVTgzOgPIOo43YH1esAyhW5x2JlkZg8RHC1w1Xs+s+UX58BuJ89Nz1FcSZ+4rEdG5pWHPoSm58U=@vger.kernel.org X-Gm-Message-State: AOJu0YyvG7oE9IGTUk1KKAEQSshjSJtH1Uf0pQrRTowvM03zimUimEIL 07CCw0bVCMkwUch8yBEyWrfypeB7BKl+lG6dyQltv9Q2Z3LCGJUO9+dKcrO+lreBD7B29mZVDbu 0KvgjqnvM/iQ8uf5WIf3BM/sVCihH7PNAybS5UMOR/QOYunlfxVx2XCJmtsoCVP+jA18= X-Gm-Gg: AfdE7cnhsbJ8Z9EpxrI+cwK8s9pipEjGdsFHiE4/fjBbmF6gPav134cCvR4V0HDY44U LTpFfmbLSdiMSYL35OudlBksozvNHCfuAqRkS2/mpqTZQYzvWeLB5H1gRNC59XYQGKGa1Kvs00P 3j1EHVfLqkUcNj17xfb7gSFm7EcfTE4dlC2b2XugYOoy1n0egwbz/HgnKwBnsaOYcsjnS1TCutk iFYfihKpOND1e9Jg5AOjWoJLJL7enZ2hKaL2Q0SoKgfWrWRtFT1tzmLZs+dbsAxmEHN9emw2/1I ephf5FcjHYnRAh4fCQNFZ7vsWjU31BpnlFogkyWWjBKvS2+Q144D5tr7bPQCIZUz5Boc2q1Ipi7 Frn+B6ohGcmkrOTYaNRJcMpAwy7iqTkvzqDy16iUK X-Received: by 2002:a05:6820:f00e:b0:69e:5e9b:a47d with SMTP id 006d021491bc7-6a38b887ca9mr6712890eaf.5.1783947723280; Mon, 13 Jul 2026 06:02:03 -0700 (PDT) X-Received: by 2002:a05:6820:f00e:b0:69e:5e9b:a47d with SMTP id 006d021491bc7-6a38b887ca9mr6712811eaf.5.1783947722306; Mon, 13 Jul 2026 06:02:02 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:8881:83b8:89fa:1a2a]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-493f2d97527sm306129725e9.2.2026.07.13.06.01.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jul 2026 06:02:00 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 13 Jul 2026 15:01:12 +0200 Subject: [PATCH v21 11/14] crypto: qce - Use existing devres APIs in devm_qce_dma_request() 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: <20260713-qcom-qce-cmd-descr-v21-11-bc2583e18475@oss.qualcomm.com> References: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> In-Reply-To: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Md Sadre Alam , Dmitry Baryshkov , Manivannan Sadhasivam , Stephan Gerhold , Bjorn Andersson , Peter Ujfalusi , Michal Simek , Frank Li , Andy Gross , Neil Armstrong Cc: dmaengine@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, brgl@kernel.org, Bartosz Golaszewski , Bartosz Golaszewski , Konrad Dybcio X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2502; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=9GKLcUmlCf8HlWjhhByBBy4VvPdK7WbPpBpBdYahW+0=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqVOGfa3qCCvUSTBUNBBBq4Lg8R9jvA1p2051gH Jtq7nsynmiJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCalThnwAKCRAFnS7L/zaE w4/WD/4hgXQX2CSj/PnOZODDHnT6Q80RgU+fJzQ+FnT+fJXkgjxpy6MXvm21TuAboGFwGrZupza 9Vk7rAIcG4P1wb96wFHFQkbF+hYoYaMldGMV3zRdObffQgZK7Z3ZUkZoAkLU8q8U8LjGnGSaR1g KP4n1EWkH6CMar358JbT3NP781GXxlUxl4lgqlulMJZp6b9Kt+0W4pRtZvCzlDUP06p63W3pL5C 2XejF+uAhdaGj2IcGhvB/tPsUfmxWQZX3I2qNLdIehPMkt4tBwTaWcvQSTOPD/3IIOixtzuO4A+ oHZAmSP0RHRWw14tqZQkjxjkbC8Vi1StCibKANBELkTRxu+xyDELWC5wDENgq+u/TAkXjEwUNxb pQ1TLhJM+5FRqqDB2jJXdbZz6b2/qyxUDPZgzIuKDmN9+YDX0jRdn71ai9nT2q6K4cyw0j69Iwq 2Mt4ydFuvKnpW7l3RW5+GPTkiQNQ5Vv4l+iAuO/Z1+yJx+YGQWWFRG5q+Y5mJUPslYyn6T9n5s9 Y29vSuDdbRCeKwOvXopztBB2TMXk3ddWjVz2nvYg7LwNw2YZSpAffYEtmo40DIutQX7o5SMNUX6 2KRuEJuMdGW/TkJA6Hs1aOckqLpgY1UdsFZ3E9Rsx5+BIpKbr6RtQlOespje+u2xmNsRyQQR54M AHNiypLa8FuVBRg== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-GUID: 2MVyXkPX9lrDQhD0GClaOtgA9ZXH5pVm X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfX9ssxvy1ZUL55 mupG1B5Eqh1KEmRVxR0dn0Q/32kVvg2OzXd1L1De6huS7v1acU65f0ZLjohl8ZfbvWZDWzqtWYD /yBRTmn2ei57BPssuJYrmVEnb6SOmpt9A9uwO3cYMSdzlZPaTbr3dP2g2e4gZPQJ22R57U04G+V pCTdXHu/Vg3ykz++1IZeq9op+wHEpXGkiGci5abWNP03jRDISRY5J3A9+a/kQeR9V8x3/yMTCM2 5jpMCjSfPtBxVlBiMPxvkTNRAMLbobj46n9UK+FmQZ5QK6xNxl+Z+qbspm8kk5kfIn1cB4rbF6q vfSHfgnTB9WHVnVJT0v+unRgbUqUG8oix26beStN/+cYcJHLzDb8Ug+XmsVryhOCpoUpB7BodB9 NbqRTt6vmTW3seVoz6Gq6a1WZn56l76B2RsbvahDIgDdV0j++BH1lXLy+QPET8ureAy1ODblbZS +1JnKGZJ0gJmcGwajRQ== X-Proofpoint-ORIG-GUID: 2MVyXkPX9lrDQhD0GClaOtgA9ZXH5pVm X-Authority-Analysis: v=2.4 cv=dZSwG3Xe c=1 sm=1 tr=0 ts=6a54e1cc cx=c_pps a=lkkFf9KBb43tY3aOjL++dA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=rzIBUVXPi645tD0pnwUA:9 a=QEXdDO2ut3YA:10 a=k4UEASGLJojhI9HsvVT1:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfXx2obFzV9K63Q utINV8G5u8qubHeWuXmJgN/hBMtye6Yazm+wk9xEBr2O8jJHOr6i6d/QzawBIUy5oXvf8p2r6zd XTtgyd2mJfcfexRila+TF/AYvbYEP4w= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-13_03,2026-07-10_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 adultscore=0 malwarescore=0 spamscore=0 phishscore=0 impostorscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130135 From: Bartosz Golaszewski Switch to devm_kmalloc() and devm_dma_alloc_chan() in devm_qce_dma_request(). This allows us to drop two labels and shrink the function. Signed-off-by: Bartosz Golaszewski Reviewed-by: Konrad Dybcio Reviewed-by: Manivannan Sadhasivam Signed-off-by: Bartosz Golaszewski --- drivers/crypto/qce/dma.c | 37 +++++++++++-------------------------- 1 file changed, 11 insertions(+), 26 deletions(-) diff --git a/drivers/crypto/qce/dma.c b/drivers/crypto/qce/dma.c index d60efb5c26d88f8b0259b1dccc8724d0f75571c6..26347e9fc078adede712722107e= 74958538accdf 100644 --- a/drivers/crypto/qce/dma.c +++ b/drivers/crypto/qce/dma.c @@ -12,49 +12,34 @@ =20 #define QCE_IGNORE_BUF_SZ (2 * QCE_BAM_BURST_SIZE) =20 -static void qce_dma_release(void *data) +static void qce_dma_terminate(void *data) { struct qce_dma_data *dma =3D data; =20 dmaengine_terminate_sync(dma->txchan); dmaengine_terminate_sync(dma->rxchan); - dma_release_channel(dma->txchan); - dma_release_channel(dma->rxchan); - kfree(dma->result_buf); } =20 int devm_qce_dma_request(struct qce_device *qce) { struct qce_dma_data *dma =3D &qce->dma; struct device *dev =3D qce->dev; - int ret; =20 - dma->txchan =3D dma_request_chan(dev, "tx"); + dma->result_buf =3D devm_kmalloc(dev, QCE_RESULT_BUF_SZ + QCE_IGNORE_BUF_= SZ, GFP_KERNEL); + if (!dma->result_buf) + return -ENOMEM; + + dma->txchan =3D devm_dma_request_chan(dev, "tx"); if (IS_ERR(dma->txchan)) return dev_err_probe(dev, PTR_ERR(dma->txchan), "Failed to get TX DMA channel\n"); =20 - dma->rxchan =3D dma_request_chan(dev, "rx"); - if (IS_ERR(dma->rxchan)) { - ret =3D dev_err_probe(dev, PTR_ERR(dma->rxchan), - "Failed to get RX DMA channel\n"); - goto error_rx; - } - - dma->result_buf =3D kmalloc(QCE_RESULT_BUF_SZ + QCE_IGNORE_BUF_SZ, - GFP_KERNEL); - if (!dma->result_buf) { - ret =3D -ENOMEM; - goto error_nomem; - } - - return devm_add_action_or_reset(dev, qce_dma_release, dma); + dma->rxchan =3D devm_dma_request_chan(dev, "rx"); + if (IS_ERR(dma->rxchan)) + return dev_err_probe(dev, PTR_ERR(dma->rxchan), + "Failed to get RX DMA channel\n"); =20 -error_nomem: - dma_release_channel(dma->rxchan); -error_rx: - dma_release_channel(dma->txchan); - return ret; + return devm_add_action_or_reset(dev, qce_dma_terminate, dma); } =20 struct scatterlist * --=20 2.47.3 From nobody Sat Jul 25 21:21:07 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 84398414DF8 for ; Mon, 13 Jul 2026 13:02:09 +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=1783947731; cv=none; b=k73hYOsqBcYt7ZPYQXHghqD1z27S/1ViUsvyIke/NpBgUEaOtSbU6l1GZwOmX9sXSSHl6ZgVjoENqUumSTuzNNl4dLN9U/16ZNROvhsTT/85YScRO+6eT3UTm9OB9eEIT4TmVw1aJpPMfmksakjCjgPGNslG4KWLz4DQAuY4Q0g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783947731; c=relaxed/simple; bh=I6qozPBGCCC+qW2tSIhDtPr1pqACnLdSRJYO6Q/jVhw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=TzLTGqKxxEoTQ6vItB7AXf8zB0dON1xSElJRNu7PE5hoJJ68vEHpuIHOp2299wd9OHI+G5RflbDlb/q35/+g18vCN6xXP3Z6BXVMISsUkCLkhDt5LPIZbJOnCeH3YoqcP6+DNYD97EgpTOS3PgLkXsubCmp+j4wRJYFoBjh6E6s= 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=Apz6KNtL; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Z8DHo/ol; 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="Apz6KNtL"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Z8DHo/ol" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66DCE3l21561428 for ; Mon, 13 Jul 2026 13:02:08 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= /ulYiF5q27l0HtYTWxPl+5HbnGbtV3QzEBY0v8bm+NY=; b=Apz6KNtLUUkpqBFy wbJooXmdHavqxiRK9SRzxQjoh8jddyAeXVAfsJpAzPeqX3uQsj9GYNrCY0Jgz2XL lkeLmgJ5TxKKIRVU+Y9MuMV0wpz5qK7WK52jor38TezZRpjWvWK7Ot3S8JUrGbNg bFUzJ4gSEwNEexhEqdPYcTz3Gj13GmvNFLz+It/VmXb1a5E/6u/yldFoH11GIdpl PMXmVU6TOcLz85SJrmdIGwxrD8mzI0nEnXU7v4vzRpPjOnbPjXxuXfmQkdFE3Jos R3tpBnCXyHgOL8rnbhx1WQ40Gozgg94BPS+fDJygUHKIprItcm4bSqJ7dTY4z3lw +MCO6Q== Received: from mail-oo1-f71.google.com (mail-oo1-f71.google.com [209.85.161.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fcjn3akka-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 13 Jul 2026 13:02:08 +0000 (GMT) Received: by mail-oo1-f71.google.com with SMTP id 006d021491bc7-6a38164d9d5so2311285eaf.2 for ; Mon, 13 Jul 2026 06:02:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783947728; x=1784552528; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=/ulYiF5q27l0HtYTWxPl+5HbnGbtV3QzEBY0v8bm+NY=; b=Z8DHo/ol0Iagd7pmZQw3RFwST3uMgoTC30QuHK00pT6O1490yQSwCWSXspAKc5NDGO ZjkxelpYSyhPNoxrTKnB6tUv4GQ4GcLugSuucJ9i/EskITXoMdX1/8DfbqzpMmzd969X f9jkX4ufQPsvR8tCEmsxMEbX7k4ubdl/YuIScy6f3vPLjCz28DVX0sad2vAIkLYURRE+ BBl/z5+Mqjq4ujDHYM9PDA5NNoDtyR9alVMy21Vu0vooKVlEs0AB9Kx0lcT62wQ5bWFq x90TC78CYSDHiNc8vAsaIGsUdaNjmxMWKBY59n0novkcXNFHFCTv44d7Hg1GRTIq0XA3 3XEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783947728; x=1784552528; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=/ulYiF5q27l0HtYTWxPl+5HbnGbtV3QzEBY0v8bm+NY=; b=GDCQFZnChdkMApWNsW76kgyouXCXwtMBko80n/RlSVwG7vAZ/+21Yb7ViasiSnYZx2 nwHMACOkK49Vk/iLho+TC+tK/njigCBTJmtjao08lvyMu9wxCqInfk7MDCeH8rmGLHMW OHcx3X5sb8uBm+dXYDGypMb/tlaovyUr3lxmQYqumeEawrRfr/aGGRsNQb880Jt7e216 yFA7AFB4jvuw6w84lpTQ0DWnS4gELthmbbpfcW8aPHIm9pTUG+Gk//1OnXy64Dxeq4fJ ujkkinFUimGQypD/dXuEQ9DcwOkX5nalGXN3K6Rm/Uf5Ebm0pqRS7vtVj6dBQmiWdkhy cxhg== X-Forwarded-Encrypted: i=1; AFNElJ8FGGd+rslyt/5J0HzLTDHiCmF9m3x25YI/rhoeaFD3s6BVV2DFCXLpUczGlaMX8/r2mHkBOqH0VQ2v1KI=@vger.kernel.org X-Gm-Message-State: AOJu0YyZF5xcfmeuVs/ns5bC1LZCzbz55n+5XhztzpieDcOVuU4J/xzQ yfsTtdK942wMp/4WWn0N1ttnFwVqK6kns0LcypYb9JnNE/ngZaZuW+7l0l9yDmZ1cRCT0lPehCn WIEwViCjzC8G98G7PUsouIi/hm0EeVf2VvBcg1GfBTChhvMHIN/5sI4fQK0b3VP03zCg= X-Gm-Gg: AfdE7cm/9EHhCeUKq2kEiOBVvEvpdlCvKjn0MX2/n0MoEojykEpqd/wClSv91CBlOyY xn+Nw/857ifqphIZZ/GlYCf+dcRbt+iHtnMTac1vRCfu62523XMwy3w8/DbbpcfM/+mBtqGi5Wu jGZUFwx2+cEYWBylFJNc7/+H7GA0jVutk7uqMIts5+Dk9HeL8mzD/gC1yPdw76FbGqPP94BtCvf p29qPTJ/qP2q1yhQ0g8tA5jJfdHPlNkP3HLZ3voGcbZn3mBZtNtFHl3333GHm/cgYauzakzHEjO 0dTUDk2jeW8FBQgK/V6VIYIDVVNWXzJnSMlbdwtKiEXEl9Fqj+KXX+yTntTooMPLZ96tLpCL/SG a83bOIwqm X-Received: by 2002:a4a:e90a:0:b0:69e:3c9e:5e82 with SMTP id 006d021491bc7-6a39a6e0605mr5301033eaf.42.1783947727359; Mon, 13 Jul 2026 06:02:07 -0700 (PDT) X-Received: by 2002:a4a:e90a:0:b0:69e:3c9e:5e82 with SMTP id 006d021491bc7-6a39a6e0605mr5300958eaf.42.1783947726554; Mon, 13 Jul 2026 06:02:06 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:8881:83b8:89fa:1a2a]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-493f2d97527sm306129725e9.2.2026.07.13.06.02.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jul 2026 06:02:04 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 13 Jul 2026 15:01:13 +0200 Subject: [PATCH v21 12/14] crypto: qce - Map crypto memory for DMA 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: <20260713-qcom-qce-cmd-descr-v21-12-bc2583e18475@oss.qualcomm.com> References: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> In-Reply-To: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Md Sadre Alam , Dmitry Baryshkov , Manivannan Sadhasivam , Stephan Gerhold , Bjorn Andersson , Peter Ujfalusi , Michal Simek , Frank Li , Andy Gross , Neil Armstrong Cc: dmaengine@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, brgl@kernel.org, Bartosz Golaszewski , Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3111; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=zV1OR5DiqlcnDzl6TeLEQ0wLAWkLclKWK2ow4Gd4Hb0=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqVOGg2k4Aqdj6ExXfrGYi33qNB2cF3TtdSmBxG ZEWkJ3G2I6JAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCalThoAAKCRAFnS7L/zaE w83CD/9adnWfXDogBIuVxqsFAK0DlbB+A8nFLQfV7/YceIQyAioQNgoRNTzD9KdUS6Belq9lDMB JiHASqWZlwv1Vq8vH1IIPhN4y9XkIHPJlQ2bm3wpIQYURD8QnlWRS4DWPWy8+J/nMJzHrd8xjW3 rdoT9t8ATGSYLtYUCS2rJb9S5NTihi/e3AFGH2uCWgI/2VvHspDZEP6MwNeqrAt1It1AvNP4hyR e1lhSUNlAviaKAzRFOgtXZfd/TTsuDkAS5CZIuSTF1RKMP80YA6Z6Z9TMVJ+eti37tJg9p1YGyt 4cXWOfxgVQz3wVaTaQQAd2mbR35B5jlt9wYR+g8hdH7CkOCj9+dSFYYftu6bmoH+kAhoGx3d9fV 1BjqKYPJyp+ysTK3HlmGWhLddnAw1rpipDBfD6+rcs1tjSTKU7U43Hn9Gw3uBpISSd9lvwbIAp8 bHrmffTHYd51PVA+50Amcmd4VbFhfSsf0jKvACSdewmtmg1r/Aub3HZ7fWkDniExLIh1u4I2uqO 8iT4g0LSaZMgPBw87KUt/kymxHHjembekUq8KVN/FJgniWx+qUvEyQNLlm4XW97RSlRkxC+jhBK 4SE7efnWclviV9PmijiUX3dkn/mXjyX0MJfAhr5V+oGpJ3FcjXlv0AJFWBvshQzPxIlZIcYiWsm /Y6B4Il3X+fkQ3Q== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfX0eXSkQfGCoJb OsH0lswgA0djcfuKfncyQ7qSNuOdhwo/NdKXMY5DwBmHsYZZ4QkNbwlwbj61poGo0fT5atXNstq nlwBQZeDAca/eDZZLa1nr27OuTjZkPOGeY3DJnCPz4MhkuUa6+1m8Cbs4lMjNCn8/Mc8fANDmtO GGdC8U9mWXqrBfiJSVoRacGUqR1+nheAUZ2ntFg9P1OfBgXPizpjR01V3pT+YCayvf/PRKkKTlg NP7WFXRYFjy3X0m8wb7+KE6ZmEVvMIiOTDWHMdQWnsu1RyvvwTwmpKCy4ayRIFx6M7Qh50Col5l zC9q6JsL7rtNNfctUEskgEVYLymYM3Ri6tr5C5LEPUMYgwRoMK0B9ab8n1Sk0LsjKR6jPKf37UL gwX077t7QRpk7HyTmrdbfCGu9UKSTmI7YqycdINevPLbiPbqh95LtkqYOJVmdRBErEF8OzwZ8wv jfFmV7XluYE9oSRvAXw== X-Proofpoint-ORIG-GUID: zZeX0NsJSvL8bPsNw8LeG_X4QnhUHxR3 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfX05rPCdalOiDg NNpL45J0oxvLsHlUl+tmHpmUV1KYfjqMbwFCEaUf3nKw1oowa+rfLosdSHwWGI1aVZsoM3V7tHk r0iWA1BoXTrO6+YSvp2HGfs1wDq3QsU= X-Proofpoint-GUID: zZeX0NsJSvL8bPsNw8LeG_X4QnhUHxR3 X-Authority-Analysis: v=2.4 cv=aaJRWxot c=1 sm=1 tr=0 ts=6a54e1d0 cx=c_pps a=V4L7fE8DliODT/OoDI2WOg==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=KKAkSRfTAAAA:8 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=9tNk7rGwWxUH_P3zroIA:9 a=QEXdDO2ut3YA:10 a=WZGXeFmKUf7gPmL3hEjn:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-13_03,2026-07-10_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 bulkscore=0 clxscore=1015 lowpriorityscore=0 adultscore=0 malwarescore=0 spamscore=0 suspectscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130135 From: Bartosz Golaszewski As the first step in converting the driver to using DMA for register I/O, let's map the crypto memory range. Signed-off-by: Bartosz Golaszewski Reviewed-by: Manivannan Sadhasivam Signed-off-by: Bartosz Golaszewski --- drivers/crypto/qce/core.c | 23 ++++++++++++++++++++++- drivers/crypto/qce/core.h | 6 ++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/drivers/crypto/qce/core.c b/drivers/crypto/qce/core.c index aa4a0b17749081f1ad653424bc265ee81e348e15..4031b4516d6519fc5024bbbcc43= 9500a7b3314b2 100644 --- a/drivers/crypto/qce/core.c +++ b/drivers/crypto/qce/core.c @@ -191,10 +191,19 @@ static void qce_cancel_work(void *data) cancel_work_sync(work); } =20 +static void qce_crypto_unmap_dma(void *data) +{ + struct qce_device *qce =3D data; + + dma_unmap_resource(qce->dev, qce->base_dma, qce->dma_size, + DMA_BIDIRECTIONAL, 0); +} + static int qce_crypto_probe(struct platform_device *pdev) { struct device *dev =3D &pdev->dev; struct qce_device *qce; + struct resource *res; int ret; =20 qce =3D devm_kzalloc(dev, sizeof(*qce), GFP_KERNEL); @@ -204,7 +213,7 @@ static int qce_crypto_probe(struct platform_device *pde= v) qce->dev =3D dev; platform_set_drvdata(pdev, qce); =20 - qce->base =3D devm_platform_ioremap_resource(pdev, 0); + qce->base =3D devm_platform_get_and_ioremap_resource(pdev, 0, &res); if (IS_ERR(qce->base)) return PTR_ERR(qce->base); =20 @@ -254,6 +263,18 @@ static int qce_crypto_probe(struct platform_device *pd= ev) qce->async_req_enqueue =3D qce_async_request_enqueue; qce->async_req_done =3D qce_async_request_done; =20 + qce->dma_size =3D resource_size(res); + qce->base_dma =3D dma_map_resource(dev, res->start, qce->dma_size, + DMA_BIDIRECTIONAL, 0); + qce->base_phys =3D res->start; + ret =3D dma_mapping_error(dev, qce->base_dma); + if (ret) + return ret; + + ret =3D devm_add_action_or_reset(qce->dev, qce_crypto_unmap_dma, qce); + if (ret) + return ret; + return devm_qce_register_algs(qce); } =20 diff --git a/drivers/crypto/qce/core.h b/drivers/crypto/qce/core.h index f092ce2d3b04a936a37805c20ac5ba78d8fdd2df..a80e12eac6c87e5321cce16c56a= 4bf5003474ef0 100644 --- a/drivers/crypto/qce/core.h +++ b/drivers/crypto/qce/core.h @@ -27,6 +27,9 @@ * @dma: pointer to dma data * @burst_size: the crypto burst size * @pipe_pair_id: which pipe pair id the device using + * @base_dma: base DMA address + * @base_phys: base physical address + * @dma_size: size of memory mapped for DMA * @async_req_enqueue: invoked by every algorithm to enqueue a request * @async_req_done: invoked by every algorithm to finish its request */ @@ -43,6 +46,9 @@ struct qce_device { struct qce_dma_data dma; int burst_size; unsigned int pipe_pair_id; + dma_addr_t base_dma; + phys_addr_t base_phys; + size_t dma_size; int (*async_req_enqueue)(struct qce_device *qce, struct crypto_async_request *req); void (*async_req_done)(struct qce_device *qce, int ret); --=20 2.47.3 From nobody Sat Jul 25 21:21:07 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 728334252CB for ; Mon, 13 Jul 2026 13:02:12 +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=1783947734; cv=none; b=ZcZ0j4AajG4QNFmd+XPgKnGQvl7aJY4MDuFDKfPmfExNZ6mi4FT0iWQDlBom2p98jv0CmxwaEsMJGoqKFs1UI/Yhq/F0Ca61kkAG897SAwXCyvabMF4XrdfDdw0jEl27HhQUes1ZU+woqbMQ5GIliHDbfPhWDaXVUya8aFwIbIk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783947734; c=relaxed/simple; bh=VQHAX1G84baxshq3WqrBZPKRZeijaEqpoldL4HXopL0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=iTHXKxMuF5zBYTnjUdVj5EIrONtxEfYQGB8APgIuRTrzuwQiCSzOT6otrIzH/T2a19kRefcAn7vYdrqlhJEfka9gIyJRxvb/jEtSbNj8dfIokCY5cJRqpnFWcRdiPIp9pFnlIVTaq1UZOGUGtWLxmPwEMhRQPLGf2/5fLmnnhKk= 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=N8zCl/PU; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=IStqU9kf; 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="N8zCl/PU"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="IStqU9kf" 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 66DCDisx1453169 for ; Mon, 13 Jul 2026 13:02:11 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= rLIsh2asCxbkEm4SbDao1DOiKCXs3e9ywBMJ1RIdngw=; b=N8zCl/PUWgyQCHoE 37nQ0p81jTxCjXV4BMTPj749ctZn1tWWlSXEmMb808hnGJTjXviLOeqRyr4sTpis 3f5EBdO+1BWS7FPy/zvfHDUxywBqNWW+a8Co2RcMOM2UeAXbFuTQTD7xbq0b8xz2 MOUQZZeV/+WF/1BGkKJJ0aeAx+ukqTQ8ACuLTBI+1nPDiCaQZsaugiUOYOdCuUXZ 3fPk788tayfxif0wyHq6CLD0xUymXBJU7/JpFub0mi6BT+kyooXHQAUeBkDDzQn2 p47qQ+ulaUJDv1i89iNlRyS3GMv6ztlTRKwQGWNAL2RfxmREId52Bi1JqYpm4aHK hPrEnQ== Received: from mail-ot1-f70.google.com (mail-ot1-f70.google.com [209.85.210.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fcuj019y6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 13 Jul 2026 13:02:11 +0000 (GMT) Received: by mail-ot1-f70.google.com with SMTP id 46e09a7af769-7eb6a8c61deso2446402a34.3 for ; Mon, 13 Jul 2026 06:02:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783947731; x=1784552531; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=rLIsh2asCxbkEm4SbDao1DOiKCXs3e9ywBMJ1RIdngw=; b=IStqU9kfwHH5GRbcPz61nFF6QXBgKE1jYYtxTGnzYTkwimLAyUb4I6K7VpY71FTEMO T8yXsMpO5d0jW6DSqZ40YY2SIX3+TikoMbvoFg23GO6hXB8n4Jqr/3lBR7tUFtyUZbb6 OkUx/VJuPqI/8degPXmkfWe+u9Je++ffMgFAxYU0cyqOk3Yt0MugZdQTT9USMSisJ5pJ fzoZfwNqSP28cyd4O/KViD0LPT+KR7nsaRM9XpYg7K9PfV9fsRm6kj+xYRunTcnzByJ5 yd/64ADr6Ax8Q38l6v/bmN9edX160Yb+Zf5zn8O82g1Sz7FSAmGelGJQ/RvSN2O+yl9t dVJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783947731; x=1784552531; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=rLIsh2asCxbkEm4SbDao1DOiKCXs3e9ywBMJ1RIdngw=; b=f5aMVcqtrw3IovchIQvrAX8ExQwHmeLAqOww+/zYXDG0Tldrb9/WwJdIrwQ8ZP8NfO sZc86qlLN0Z/7fGznl0EsuIvfB4hbqqvxP63DrnQhONLuMXkgLoWznnSE0ZMDeokFcbv jqqPjtX05ikfOucYJcbqpzS4hrsRb/31eLnZfbwKndbYyk6+RKYsRHCnguSujC+tZAzD 6dtTVf5bgFlOae6IBtH8UryM8WyaTEnZ3YRPL5iTBdIgHR6h04FWzR1hnXTsUqJmKRqe 14OX1HQY7jJjaWIqb462gVnn/nQ7OeU05KWc0xzVo5OqY1/B004TpJN77kxD9X99daj/ 2FjQ== X-Forwarded-Encrypted: i=1; AFNElJ+5DPoN+rx/pLT3sEODOpU9GJFtswIw0lGKg60D55HiS1tbz8VnvNL8nS+xAGGgH94I83z43cvm+i0hrVY=@vger.kernel.org X-Gm-Message-State: AOJu0YyZG2GcicrF2+PjZb4hgEPRtd6sOEaDV+UJiRL4NRK2k4kBKV60 F3fx8WCEN/YPVAklSN1CwJRYLqp1USin2ws47TsSkWLYzarn3m2OLTL3hq2DTSHlUubQfLJ7d65 Jis5VxXvWrqSdrJIna6NSvvhos4Edu6Rqyv3SyowmjzKmveMkPedVrThHbo1Osgl2GjA= X-Gm-Gg: AfdE7cl7mcKNWVshMeGoUst9J4Erh6JTTmyg3Q84gUuA016QlvaIVH4fck1NSj5of8c 3b9oMRwgrny1SIMW82NYwLE2RlVTK8P4ltjSzpWvRk5C7PK4S8F8qCZWkZohU5p1TBL/isc7dPx A8M4tXCsEjW22zmDsDC+xtdYei5tqlFsFmPSHqZnI7MO75AnAsxpJ793RPziQg54sy6XYCyxv81 u/f1K7XD1VikHl2cLyn3bM3cLsmbJ/S/QsuNQp4EN4CnHslU7ZlS39e0Z466arJ7dY9Bb/bX5GS lXcpnlQs0Kj28/rL1nmIzfKhTjBvQn6mPcK0vooi6tOv71IDTqhtN0+MpOSmbRLTtYUxbK2fRrG 8hTOGViIEoPKGwthJcJXqMIJr8Z50g7UqqKXSFLGi X-Received: by 2002:a05:6830:82f5:b0:7e6:f31c:47bd with SMTP id 46e09a7af769-7ec09617f33mr5311082a34.3.1783947730265; Mon, 13 Jul 2026 06:02:10 -0700 (PDT) X-Received: by 2002:a05:6830:82f5:b0:7e6:f31c:47bd with SMTP id 46e09a7af769-7ec09617f33mr5311011a34.3.1783947729552; Mon, 13 Jul 2026 06:02:09 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:8881:83b8:89fa:1a2a]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-493f2d97527sm306129725e9.2.2026.07.13.06.02.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jul 2026 06:02:07 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 13 Jul 2026 15:01:14 +0200 Subject: [PATCH v21 13/14] crypto: qce - Add BAM DMA support for crypto register I/O 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: <20260713-qcom-qce-cmd-descr-v21-13-bc2583e18475@oss.qualcomm.com> References: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> In-Reply-To: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Md Sadre Alam , Dmitry Baryshkov , Manivannan Sadhasivam , Stephan Gerhold , Bjorn Andersson , Peter Ujfalusi , Michal Simek , Frank Li , Andy Gross , Neil Armstrong Cc: dmaengine@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, brgl@kernel.org, Bartosz Golaszewski , Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=11801; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=tla5lBu6A81WqnRgcnBWPnlZeQIudfmnkvRuRmbuaQw=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqVOGg2yETJrElldWibFB09RAElgyXDdM7eHTs1 Ag64uFwogqJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCalThoAAKCRAFnS7L/zaE w/doD/sE52bJ5ZJyJOqwmA9TNHSkw5gVrZ5QlaGS895m1tFdoh8ugL6N/3eY9op8xAGuZL9rIgA V3+uTuS2AdXezAIRgSmdQwxB871fb+tuL/dGElqIKWhVna+/VATf1mlowfwDI/CGMHHu6aZDvye kVoxhia+7EDJbTmQiKjRwop1H9xH3BkBqd71F2KZ1QI4TYMrKFuExL4BYsksPbLFHwten8s74+7 Ip8OJc7dwQpx3Ucj51SLECSgMzSaxlDRmtXGiyFJ3A4jtfG5ZCS8GTOb0/+OR7fVjUxp5r9eCwP Y+5IqiA5T5i7MFCtZEBFcljhRGD7Q/CLmwPsqamdB9z71Z+KMA4P8SVb2gJgHyww/xphmIon1A6 cWR4eZUNaIbytP+Zoi80skJu6QrYEUdwZWdwUAwR50sbOGAW+f9GRFvvkBFqDgRmFS4ZBGtIv/m 2kcqSdNgdktLbtvMwfCEkp5zMXrzn8+kZreUSo/9wfSPzFguJJTSjY/M1M/HkW2c2MbVNirtW92 uwAvXYCDhGJS0sFdxI9bPFbgcQjis/DZBPEygxOcPmIac2whTHbDCMeD2zsqtfVn8b4bZUocE/r VDHKoa2JB3BCBw6HGLcF+yjHOncnNG/RxHy+KG1FzdajHlcVUsaTKGkmhA8yg6FpUCswQJzvLJv BA6I46DLJ1irhzQ== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfXyWLtrN0Ob7bH Wr0TMHF8EgjMz2GFyP0hq2L29qME7ClrjWHVJ1YTLEoA/6qxcgFKYoGyZ2KazXuqABARKEV33QC 4h2V90wpeE76j31fqLkCXxkmJR0jymg= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfX5BRsO6SHe5mU l4hPh8k0U68rDud5U4dKZnh9d4sbcc0za91qVpYPXBwswimTE2agrPgn7VIZC4gPW3FoSiVLh7X 2YxTk1Hfp88DjrCdZ+Sth19qAf+455yoyIK+JqeMa6budhGSjlO5u7f57AVCKhD5Ta0OcmhH7XC TcO/f4VW0f24dXcq+CQND34U41NEOy4EI0zcDN1AclrGJ8jTYW8oqLvsQY1PG9frDWFIwbBi38W xK1jWsVwEaE2JF6tGcfsAo+hLLFF5lSoq9HSaE4NGRWwTjl8MVppAtm8jaVNEK99SeUfopr2O9c qSAdsBxqly25bBKORlpRuHU7K7XOFh8QBWda3Rncd1yFbmlRl1h8KgeY8wQEKkjsDFICOiq2Ydm JlHxiwCsjH/s//pnOH1dQxHohX0e8MRhR9t3RwTvg2eI+qv/kUXw8mqCRIlfv+oiDPgpix0otKn /AMsiwXUJxzYSaWoN2A== X-Proofpoint-ORIG-GUID: mkUKkXCaZi66XYrn6ZTaPvNGd45o8EvN X-Authority-Analysis: v=2.4 cv=DbcnbPtW c=1 sm=1 tr=0 ts=6a54e1d3 cx=c_pps a=7uPEO8VhqeOX8vTJ3z8K6Q==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=KKAkSRfTAAAA:8 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=oAuzKfsFwOPfSl_VwCQA:9 a=QEXdDO2ut3YA:10 a=EXS-LbY8YePsIyqnH6vw:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: mkUKkXCaZi66XYrn6ZTaPvNGd45o8EvN X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-13_03,2026-07-10_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 phishscore=0 suspectscore=0 bulkscore=0 adultscore=0 spamscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130135 From: Bartosz Golaszewski Switch to using BAM DMA for register I/O in addition to passing data. To that end: provide the necessary infrastructure in the driver, modify the ordering of operations as required and replace all direct register writes with wrappers queueing DMA command descriptors. Signed-off-by: Bartosz Golaszewski Reviewed-by: Manivannan Sadhasivam Signed-off-by: Bartosz Golaszewski --- drivers/crypto/qce/aead.c | 10 ++-- drivers/crypto/qce/common.c | 20 ++++--- drivers/crypto/qce/dma.c | 120 ++++++++++++++++++++++++++++++++++++++= ++-- drivers/crypto/qce/dma.h | 5 ++ drivers/crypto/qce/sha.c | 10 ++-- drivers/crypto/qce/skcipher.c | 10 ++-- 6 files changed, 144 insertions(+), 31 deletions(-) diff --git a/drivers/crypto/qce/aead.c b/drivers/crypto/qce/aead.c index 1461a08e6c58b00e60aa35515f3392c096726f6a..544a3cf8709248a5f3eb2b669e3= 0b09183d3a69d 100644 --- a/drivers/crypto/qce/aead.c +++ b/drivers/crypto/qce/aead.c @@ -463,17 +463,17 @@ qce_aead_async_req_handle(struct crypto_async_request= *async_req) src_nents =3D dst_nents - 1; } =20 - ret =3D qce_dma_prep_sgs(&qce->dma, rctx->src_sg, src_nents, rctx->dst_sg= , dst_nents, - qce_aead_done, async_req); + ret =3D qce_start(async_req, tmpl->crypto_alg_type); if (ret) goto error_unmap_src; =20 - qce_dma_issue_pending(&qce->dma); - - ret =3D qce_start(async_req, tmpl->crypto_alg_type); + ret =3D qce_dma_prep_sgs(&qce->dma, rctx->src_sg, src_nents, rctx->dst_sg= , dst_nents, + qce_aead_done, async_req); if (ret) goto error_terminate; =20 + qce_dma_issue_pending(&qce->dma); + return 0; =20 error_terminate: diff --git a/drivers/crypto/qce/common.c b/drivers/crypto/qce/common.c index 54a78a57f63028f01870a3edeb8e390f523bb190..37bb6f03244d317a887aeb0aa10= cefe327b4ce05 100644 --- a/drivers/crypto/qce/common.c +++ b/drivers/crypto/qce/common.c @@ -25,7 +25,7 @@ static inline u32 qce_read(struct qce_device *qce, u32 of= fset) =20 static inline void qce_write(struct qce_device *qce, u32 offset, u32 val) { - writel(val, qce->base + offset); + qce_write_dma(qce, offset, val); } =20 static inline void qce_write_array(struct qce_device *qce, u32 offset, @@ -82,6 +82,8 @@ static void qce_setup_config(struct qce_device *qce) { u32 config; =20 + qce_clear_bam_transaction(qce); + /* get big endianness */ config =3D qce_config_reg(qce, 0); =20 @@ -90,12 +92,14 @@ static void qce_setup_config(struct qce_device *qce) qce_write(qce, REG_CONFIG, config); } =20 -static inline void qce_crypto_go(struct qce_device *qce, bool result_dump) +static inline int qce_crypto_go(struct qce_device *qce, bool result_dump) { if (result_dump) qce_write(qce, REG_GOPROC, BIT(GO_SHIFT) | BIT(RESULTS_DUMP_SHIFT)); else qce_write(qce, REG_GOPROC, BIT(GO_SHIFT)); + + return qce_submit_cmd_desc(qce); } =20 #if defined(CONFIG_CRYPTO_DEV_QCE_SHA) || defined(CONFIG_CRYPTO_DEV_QCE_AE= AD) @@ -223,9 +227,7 @@ static int qce_setup_regs_ahash(struct crypto_async_req= uest *async_req) config =3D qce_config_reg(qce, 1); qce_write(qce, REG_CONFIG, config); =20 - qce_crypto_go(qce, true); - - return 0; + return qce_crypto_go(qce, true); } #endif =20 @@ -386,9 +388,7 @@ static int qce_setup_regs_skcipher(struct crypto_async_= request *async_req) config =3D qce_config_reg(qce, 1); qce_write(qce, REG_CONFIG, config); =20 - qce_crypto_go(qce, true); - - return 0; + return qce_crypto_go(qce, true); } #endif =20 @@ -535,9 +535,7 @@ static int qce_setup_regs_aead(struct crypto_async_requ= est *async_req) qce_write(qce, REG_CONFIG, config); =20 /* Start the process */ - qce_crypto_go(qce, !IS_CCM(flags)); - - return 0; + return qce_crypto_go(qce, !IS_CCM(flags)); } #endif =20 diff --git a/drivers/crypto/qce/dma.c b/drivers/crypto/qce/dma.c index 26347e9fc078adede712722107e74958538accdf..1b43c56503334154be4b8000e5a= 9330b2005cb64 100644 --- a/drivers/crypto/qce/dma.c +++ b/drivers/crypto/qce/dma.c @@ -4,6 +4,8 @@ */ =20 #include +#include +#include #include #include =20 @@ -11,6 +13,96 @@ #include "dma.h" =20 #define QCE_IGNORE_BUF_SZ (2 * QCE_BAM_BURST_SIZE) +#define QCE_BAM_CMD_SGL_SIZE 128 +#define QCE_BAM_CMD_ELEMENT_SIZE 128 + +struct qce_desc_info { + struct dma_async_tx_descriptor *dma_desc; + enum dma_data_direction dir; +}; + +struct qce_bam_transaction { + struct bam_cmd_element bam_ce[QCE_BAM_CMD_ELEMENT_SIZE]; + struct scatterlist wr_sgl[QCE_BAM_CMD_SGL_SIZE]; + struct qce_desc_info *desc; + u32 bam_ce_idx; + u32 pre_bam_ce_idx; + u32 wr_sgl_cnt; +}; + +void qce_clear_bam_transaction(struct qce_device *qce) +{ + struct qce_bam_transaction *bam_txn =3D qce->dma.bam_txn; + + bam_txn->bam_ce_idx =3D 0; + bam_txn->wr_sgl_cnt =3D 0; + bam_txn->pre_bam_ce_idx =3D 0; +} + +int qce_submit_cmd_desc(struct qce_device *qce) +{ + struct qce_desc_info *qce_desc =3D qce->dma.bam_txn->desc; + struct qce_bam_transaction *bam_txn =3D qce->dma.bam_txn; + struct dma_async_tx_descriptor *dma_desc; + struct dma_chan *chan =3D qce->dma.rxchan; + unsigned long attrs =3D DMA_PREP_CMD; + dma_cookie_t cookie; + unsigned int mapped; + int ret; + + mapped =3D dma_map_sg(qce->dev, bam_txn->wr_sgl, bam_txn->wr_sgl_cnt, DMA= _TO_DEVICE); + if (!mapped) + return -ENOMEM; + + dma_desc =3D dmaengine_prep_slave_sg(chan, bam_txn->wr_sgl, mapped, DMA_M= EM_TO_DEV, attrs); + if (!dma_desc) { + ret =3D -ENOMEM; + goto err_unmap_sg; + } + + qce_desc->dma_desc =3D dma_desc; + cookie =3D dmaengine_submit(qce_desc->dma_desc); + + ret =3D dma_submit_error(cookie); + if (ret) + goto err_unmap_sg; + + return 0; + +err_unmap_sg: + dma_unmap_sg(qce->dev, bam_txn->wr_sgl, bam_txn->wr_sgl_cnt, DMA_TO_DEVIC= E); + return ret; +} + +static void qce_prep_dma_cmd_desc(struct qce_device *qce, struct qce_dma_d= ata *dma, + unsigned int addr, void *buf) +{ + struct qce_bam_transaction *bam_txn =3D dma->bam_txn; + struct bam_cmd_element *bam_ce_buf; + int bam_ce_size, cnt, idx; + + idx =3D bam_txn->bam_ce_idx; + bam_ce_buf =3D &bam_txn->bam_ce[idx]; + bam_prep_ce_le32(bam_ce_buf, addr, BAM_WRITE_COMMAND, *((__le32 *)buf)); + + bam_ce_buf =3D &bam_txn->bam_ce[bam_txn->pre_bam_ce_idx]; + bam_txn->bam_ce_idx++; + bam_ce_size =3D (bam_txn->bam_ce_idx - bam_txn->pre_bam_ce_idx) * sizeof(= *bam_ce_buf); + + cnt =3D bam_txn->wr_sgl_cnt; + + sg_set_buf(&bam_txn->wr_sgl[cnt], bam_ce_buf, bam_ce_size); + + ++bam_txn->wr_sgl_cnt; + bam_txn->pre_bam_ce_idx =3D bam_txn->bam_ce_idx; +} + +void qce_write_dma(struct qce_device *qce, unsigned int offset, u32 val) +{ + unsigned int reg_addr =3D ((unsigned int)(qce->base_phys) + offset); + + qce_prep_dma_cmd_desc(qce, &qce->dma, reg_addr, &val); +} =20 static void qce_dma_terminate(void *data) { @@ -39,6 +131,16 @@ int devm_qce_dma_request(struct qce_device *qce) return dev_err_probe(dev, PTR_ERR(dma->rxchan), "Failed to get RX DMA channel\n"); =20 + dma->bam_txn =3D devm_kzalloc(dev, sizeof(*dma->bam_txn), GFP_KERNEL); + if (!dma->bam_txn) + return -ENOMEM; + + dma->bam_txn->desc =3D devm_kzalloc(dev, sizeof(*dma->bam_txn->desc), GFP= _KERNEL); + if (!dma->bam_txn->desc) + return -ENOMEM; + + sg_init_table(dma->bam_txn->wr_sgl, QCE_BAM_CMD_SGL_SIZE); + return devm_add_action_or_reset(dev, qce_dma_terminate, dma); } =20 @@ -98,28 +200,36 @@ int qce_dma_prep_sgs(struct qce_dma_data *dma, struct = scatterlist *rx_sg, { struct dma_chan *rxchan =3D dma->rxchan; struct dma_chan *txchan =3D dma->txchan; - unsigned long flags =3D DMA_PREP_INTERRUPT | DMA_CTRL_ACK; + unsigned long txflags =3D DMA_PREP_INTERRUPT | DMA_CTRL_ACK; + unsigned long rxflags =3D txflags | DMA_PREP_FENCE; int ret; =20 - ret =3D qce_dma_prep_sg(rxchan, rx_sg, rx_nents, flags, DMA_MEM_TO_DEV, + ret =3D qce_dma_prep_sg(rxchan, rx_sg, rx_nents, rxflags, DMA_MEM_TO_DEV, NULL, NULL); if (ret) return ret; =20 - return qce_dma_prep_sg(txchan, tx_sg, tx_nents, flags, DMA_DEV_TO_MEM, + return qce_dma_prep_sg(txchan, tx_sg, tx_nents, txflags, DMA_DEV_TO_MEM, cb, cb_param); } =20 void qce_dma_issue_pending(struct qce_dma_data *dma) { - dma_async_issue_pending(dma->rxchan); dma_async_issue_pending(dma->txchan); + dma_async_issue_pending(dma->rxchan); } =20 int qce_dma_terminate_all(struct qce_dma_data *dma) { + struct qce_device *qce =3D container_of(dma, struct qce_device, dma); + struct qce_bam_transaction *bam_txn =3D dma->bam_txn; int ret; =20 ret =3D dmaengine_terminate_all(dma->rxchan); - return ret ?: dmaengine_terminate_all(dma->txchan); + if (ret) + return ret; + + dma_unmap_sg(qce->dev, bam_txn->wr_sgl, bam_txn->wr_sgl_cnt, DMA_TO_DEVIC= E); + + return dmaengine_terminate_all(dma->txchan); } diff --git a/drivers/crypto/qce/dma.h b/drivers/crypto/qce/dma.h index 483789d9fa98e79d1283de8297bf2fc2a773f3a7..f05dfa9e6b25bd60e32f45079a8= bc7e6a4cf81f9 100644 --- a/drivers/crypto/qce/dma.h +++ b/drivers/crypto/qce/dma.h @@ -8,6 +8,7 @@ =20 #include =20 +struct qce_bam_transaction; struct qce_device; =20 /* maximum data transfer block size between BAM and CE */ @@ -32,6 +33,7 @@ struct qce_dma_data { struct dma_chan *txchan; struct dma_chan *rxchan; struct qce_result_dump *result_buf; + struct qce_bam_transaction *bam_txn; }; =20 int devm_qce_dma_request(struct qce_device *qce); @@ -43,5 +45,8 @@ int qce_dma_terminate_all(struct qce_dma_data *dma); struct scatterlist * qce_sgtable_add(struct sg_table *sgt, struct scatterlist *sg_add, unsigned int max_len); +void qce_write_dma(struct qce_device *qce, unsigned int offset, u32 val); +int qce_submit_cmd_desc(struct qce_device *qce); +void qce_clear_bam_transaction(struct qce_device *qce); =20 #endif /* _DMA_H_ */ diff --git a/drivers/crypto/qce/sha.c b/drivers/crypto/qce/sha.c index 5476d4d30fae7eb72bbcbcdd7d8be7a76f6732c2..5cfd769a59a791a79da42e2a5b0= 554ad974f7631 100644 --- a/drivers/crypto/qce/sha.c +++ b/drivers/crypto/qce/sha.c @@ -109,17 +109,17 @@ static int qce_ahash_async_req_handle(struct crypto_a= sync_request *async_req) goto error_unmap_src; } =20 - ret =3D qce_dma_prep_sgs(&qce->dma, req->src, rctx->src_nents, - &rctx->result_sg, 1, qce_ahash_done, async_req); + ret =3D qce_start(async_req, tmpl->crypto_alg_type); if (ret) goto error_unmap_dst; =20 - qce_dma_issue_pending(&qce->dma); - - ret =3D qce_start(async_req, tmpl->crypto_alg_type); + ret =3D qce_dma_prep_sgs(&qce->dma, req->src, rctx->src_nents, + &rctx->result_sg, 1, qce_ahash_done, async_req); if (ret) goto error_terminate; =20 + qce_dma_issue_pending(&qce->dma); + return 0; =20 error_terminate: diff --git a/drivers/crypto/qce/skcipher.c b/drivers/crypto/qce/skcipher.c index a9b59e68df4b6837805d45391f5a5fe43fd47709..b4ef3748fbb4dde542b0307f32d= 4c871b7c33ac2 100644 --- a/drivers/crypto/qce/skcipher.c +++ b/drivers/crypto/qce/skcipher.c @@ -142,18 +142,18 @@ qce_skcipher_async_req_handle(struct crypto_async_req= uest *async_req) src_nents =3D dst_nents - 1; } =20 + ret =3D qce_start(async_req, tmpl->crypto_alg_type); + if (ret) + goto error_unmap_src; + ret =3D qce_dma_prep_sgs(&qce->dma, rctx->src_sg, src_nents, rctx->dst_sg, dst_nents, qce_skcipher_done, async_req); if (ret) - goto error_unmap_src; + goto error_terminate; =20 qce_dma_issue_pending(&qce->dma); =20 - ret =3D qce_start(async_req, tmpl->crypto_alg_type); - if (ret) - goto error_terminate; - return 0; =20 error_terminate: --=20 2.47.3 From nobody Sat Jul 25 21:21:07 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 D7365426410 for ; Mon, 13 Jul 2026 13:02:14 +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=1783947736; cv=none; b=GArLIRIdbGcpWSRnrFyABATNyQjH0G44WXMplty2LTcobVn394tY11UEhspRmIXzdD+jQXdX5izmCMRTXeWvunlWSkWg/tXNPRmj1URE8Du6V/cJkkJ2qsekFuvXU+3pICaga/ELbvdZrJ/F0gmFKUbPLPxtOplpUjA5S11v/4M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783947736; c=relaxed/simple; bh=xewtmBe7Tjse/Oov1uLM7I+VZpNX0SB8ljw+4HhCUeA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=cwHwQCrNafjjm9ojuRn/JVNqUl3Qv6PQGfPH/HvKER7VmtLuQeaCRyt4yxO3R6plObhpQcHoXH2j5k9ZrS7uKG3D3Um2/FvqwbEFpvHd01Jf02wuXNW6gU7EZp0kF1xgHccfsjR6AFBn9QSDZRntYZf+tly5xYmTlpdzx9wwoD0= 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=NMRute2v; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=E/o7DbTO; 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="NMRute2v"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="E/o7DbTO" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66DCDvYD1494356 for ; Mon, 13 Jul 2026 13:02:14 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= MsWDKH/w5P6MtO/VNux/FoMTI22L7P5oBEgCNW8qbYk=; b=NMRute2vZku5bVXS QiIvvm9xeyBMm/mv+rlCvBNNpOJnef8oU//tA05q5vNoSvGUNyDoVoWq3zayf/CK 3ETL9z0O6xPQigL1KSvDFL3eSHcGikuV7BYFggUtg/EmVIGsWmQEM1OXkcRF1ume GpWWL8fwdDsPbMhEZnhzXqzC5nPGTuYXO1/EOAH9GMxVqowSnwiui4BIRbwz1BHS eUnRZKYWDBKPV1vnR2qjg5RhJ8PQ+GSenAxYMvpON1z09vPt1KwjpTdyI9WaDtVd qtAQw3oO8PlvylR0t8935vWJNIEuJQTyCo+9fiU0dv23l5ONSnApGHKyVVKEGR9B lvu26Q== Received: from mail-oo1-f69.google.com (mail-oo1-f69.google.com [209.85.161.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fcjnm2mnu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 13 Jul 2026 13:02:14 +0000 (GMT) Received: by mail-oo1-f69.google.com with SMTP id 006d021491bc7-6a0c02365c7so5384772eaf.2 for ; Mon, 13 Jul 2026 06:02:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1783947733; x=1784552533; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=MsWDKH/w5P6MtO/VNux/FoMTI22L7P5oBEgCNW8qbYk=; b=E/o7DbTOOVfBovhcypRhgR++kaTjc7AVZU7VE1aIv1SnZ92fx3qwTygIT58GJpjUmq EWM1qInGYG7MVvLTB4NalOghhcWFqZL26hAhJscOu3htqViGaWRpQAX8xLwHZWUi2fp3 hmbVuP4/XdXwc/EXx8kyMueGvB95H0LQnCxlWqUUklnuoiLYzVS+oj+HhsJkArtX82kb /YVT2nhgw3imCSKG7PXHT+ASBx5TDiwSfR17XuHyRCVCtrR2BYFZgQbuxfYx1QYHAJi/ 12wZfG4moPRuSOxiM+0KfSxedd4Am40iqxFFRVqM05VJ4N/UZd0prggyvcH3D7ww5GqL xitw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783947733; x=1784552533; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=MsWDKH/w5P6MtO/VNux/FoMTI22L7P5oBEgCNW8qbYk=; b=AfXEyTYngXoTF7owDlZGAnhqYDLtJWZMbziZ5dA2a2cp+Qr8uAU76h/LvGuc3cQVQd WjwrvuWQezCBTcQMutM3LGREcrWJ4ilAow71ntTBuMBZsNUbGE48JhKbRn8bJniamJRX EANAab3z2V1W+bqurMj4V4M0fH9Gj1xS7AXb90jCza3Uo0CLKb3EqBeVUfqSvubATRVH CPACIwEU2qVFoZyTFHPKS2coRU3HWi98FsGYw6n/OjY6j00XfD4nY3i1vHSuR4tP/ypD f3kfFQ+1jjUIDFx+tMBaTOzL6EStQgkk5UJ0d44dFYMsZpsSM64QYg1Wwl0xw+FunJCB Gg4A== X-Forwarded-Encrypted: i=1; AFNElJ/1A8mVNkuGsJwh8OoxQcSvJ68oCKzHxsdX8e0T/BTscAuDLIdJW4HkxiF2aPkcQrHZMVTBYJtKs6oHe7E=@vger.kernel.org X-Gm-Message-State: AOJu0YwXZSsi1aN3AnDIcMMrbDGRxLdgRStwZCB25bJJMd13pBIgGhpv XZ4PKvOhzdUNFpbRqB+2rqAh2csfedP9xj3hVy+wu3Iq4/5nM5+VyRCK0cHfxSowBjmKt+xC9ha 2aYQUD1KjScCRoUFUx486tr3BcDb8f5CsN8LcqCs7X/3WAI/l73LgooBuv9zAVZPejsg= X-Gm-Gg: AfdE7cm+bW1/6U/2X0DX2S+FvbSSwFxmDD02In0boX9fArPlrzmtZZSWNibzijMulj7 DNV7P7QTCimatfkFPdrF1aWS/dNLU697A8xFEHNhAbvUDT8Bv7gpVVWk0KLOBu2lJY0gYq7Brpq Emvh4fWP/O9FSf7ugf80d1pT16Ji9SGQ1w8CQfPxBCM4t4TJgqmbZhDQprGrDowvCWLOmvMv/q0 9X7ch5XlpLQNNWtQ5UARplFF5+1u8xoOOAcMQzRgyk7GCpkOBdNDatZN0wlTuol+CNkGhOoVfqJ x3fRpdX3sQSShpX8BlvQNe54bZ4SsXjEXXxMARf4BmUg8+GhwOKJO/RAb3d3So1dOiCDblnt+Lh LW4QgHojSuJT/ccdsMBqa/3FqB9HexRFTLk1/E3if X-Received: by 2002:a05:6820:200d:b0:6a3:94bc:bdcf with SMTP id 006d021491bc7-6a39a72fb8amr5197017eaf.57.1783947733026; Mon, 13 Jul 2026 06:02:13 -0700 (PDT) X-Received: by 2002:a05:6820:200d:b0:6a3:94bc:bdcf with SMTP id 006d021491bc7-6a39a72fb8amr5196960eaf.57.1783947732495; Mon, 13 Jul 2026 06:02:12 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:8881:83b8:89fa:1a2a]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-493f2d97527sm306129725e9.2.2026.07.13.06.02.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jul 2026 06:02:10 -0700 (PDT) From: Bartosz Golaszewski Date: Mon, 13 Jul 2026 15:01:15 +0200 Subject: [PATCH v21 14/14] crypto: qce - Communicate the base physical address to the dmaengine 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: <20260713-qcom-qce-cmd-descr-v21-14-bc2583e18475@oss.qualcomm.com> References: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> In-Reply-To: <20260713-qcom-qce-cmd-descr-v21-0-bc2583e18475@oss.qualcomm.com> To: Vinod Koul , Jonathan Corbet , Thara Gopinath , Herbert Xu , "David S. Miller" , Udit Tiwari , Md Sadre Alam , Dmitry Baryshkov , Manivannan Sadhasivam , Stephan Gerhold , Bjorn Andersson , Peter Ujfalusi , Michal Simek , Frank Li , Andy Gross , Neil Armstrong Cc: dmaengine@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, brgl@kernel.org, Bartosz Golaszewski , Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1859; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=xewtmBe7Tjse/Oov1uLM7I+VZpNX0SB8ljw+4HhCUeA=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqVOGhfrH2NKXSF17KSmqZSYmJCy4/yZakaynWt vvKhTmcPlCJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCalThoQAKCRAFnS7L/zaE w4OvEAC6nTAxezYrhc+HKbKJEUbU9SmhCNsd6nEk+cW/LBcJ4dP7CB7TvqbWxccqG/JN/L7HKcZ BSIWDFlfruG4HGl4gtYo0dE7OeePRr1k+klnQp4lQkg8aPtlC93WmZOAR0xYFfRgKsEJ9VJkjW8 tNP7UB6Y4uls2OHbjBWziBzTIqB/ooWP1jYM3oS2scHsjnHbx1p00LOdVUta7jH51XAUeKKamfq KYeB+s7GkLJ5cVFjlocnjkOuvcalhZbZhfBugjGCzJQ+g+bH7HwAOwqonKJLYtXo5780qe0fed6 68A2iXZTVurWhhxp+JS1OOZxO+NahMqrzCR2mrLsHwt26rR3qnTfgoak1ZBHtiuy2uKxuOHXj4i cgA4nlJxxHJ96b+RLkQ1zKiZoOuN4gXp2Bj3tbkl9+x4Z+BgV1tv+8aJwaJ4OXErmZ/MdemXkAN UqTvYK3VKHsq+8I0AN3t6vm0b/+a78X6IpxTSP0B+GLupECFXVO57OeHO9tRI5BC/S2C/+5Tq9+ O2KGMVfcN1RUAKPYXu4ndc+2tfbpGkk7wqWVf4vUqXP5iqWLIsj3fldX8ZbErizdigVTaTqILbB SpZEtBHelPypXOfqmyKM8eQec40XcEesHJlo+o8wYxXoU+WO6deS3cwQKOV649qF+vIVVx9QtTZ zhP7w75muXabpzw== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-ORIG-GUID: MrpWfxivufUv7vfw4d_B1t4N1WS8uozG X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfX6JHcrKg0jkh+ HJMbHxPR3eCOFC4GEJiSPBq/6tM8fbt+qNii4+QIhPPJllWzgnsq93DCj/AH83ha4MxasbWGbW0 qgIsJx+52JoeH5G3p0UrftrDnEY3k6XWexMDvIj1XOZEZW4O7lPAHl3LyXFN1nLlIW2tsS3gnFD WodnGrzJm6lIBWjih0NnycQHsvREJvC88+zyU9qRy93SAw+f5BxzGfabMunQFuUb6FWkQxkb0h3 bJxasvwAa8EQ0+ycaqzZ27a5Woi09zhBYvF2eNl9YYdKtvxjzPbG//96DF1EXqGJBG9WD0vvFsv TA35NQ3yy/nJhq/vEb86LHjmMW9fxCekLOQQhgRgs3jPdfXzfrxISJmCzwkWABfVCrq+/qBPLRF C/6t/BBPF6mUBePyrGge60+l/CjLm+K3RY0Mgjiz3G5kQkZGZaaeECXQ4xhPS4nvZIKkyHsZmQz dR1TSa20uhTSLcOoNfQ== X-Proofpoint-GUID: MrpWfxivufUv7vfw4d_B1t4N1WS8uozG X-Authority-Analysis: v=2.4 cv=AfmB2XXG c=1 sm=1 tr=0 ts=6a54e1d6 cx=c_pps a=lVi5GcDxkcJcfCmEjVJoaw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=TFgmKHP77OfOvYwKDSoA:9 a=QEXdDO2ut3YA:10 a=rBiNkAWo9uy_4UTK5NWh:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzEzMDEzNSBTYWx0ZWRfX+olDftP1XxVy DtNmRIsFDIIM0QZUcagRoBSXGX/gEfmMTVecUndJqpFYZs4Gx2xduPLfKBD7sbRgp/NUffc1P8S cmxtZdFs9ISaRPRMdxrjVnzgDsKmlJk= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-13_03,2026-07-10_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 lowpriorityscore=0 phishscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 clxscore=1015 suspectscore=0 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607130135 In order to communicate to the BAM DMA engine which address should be used as a scratchpad for dummy writes related to BAM pipe locking, fill out and attach the provided metadata struct to the descriptor. Reviewed-by: Manivannan Sadhasivam Signed-off-by: Bartosz Golaszewski --- drivers/crypto/qce/dma.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/crypto/qce/dma.c b/drivers/crypto/qce/dma.c index 1b43c56503334154be4b8000e5a9330b2005cb64..6410f8dc5bcf517223c768a3e8f= 87af245076c84 100644 --- a/drivers/crypto/qce/dma.c +++ b/drivers/crypto/qce/dma.c @@ -11,6 +11,7 @@ =20 #include "core.h" #include "dma.h" +#include "regs-v5.h" =20 #define QCE_IGNORE_BUF_SZ (2 * QCE_BAM_BURST_SIZE) #define QCE_BAM_CMD_SGL_SIZE 128 @@ -41,6 +42,10 @@ void qce_clear_bam_transaction(struct qce_device *qce) =20 int qce_submit_cmd_desc(struct qce_device *qce) { + struct bam_desc_metadata meta =3D { + .scratchpad_addr =3D qce->base_phys + REG_VERSION, + .direction =3D DMA_MEM_TO_DEV, + }; struct qce_desc_info *qce_desc =3D qce->dma.bam_txn->desc; struct qce_bam_transaction *bam_txn =3D qce->dma.bam_txn; struct dma_async_tx_descriptor *dma_desc; @@ -60,15 +65,21 @@ int qce_submit_cmd_desc(struct qce_device *qce) goto err_unmap_sg; } =20 + ret =3D dmaengine_desc_attach_metadata(dma_desc, &meta, sizeof(meta)); + if (ret) + goto err_free_desc; + qce_desc->dma_desc =3D dma_desc; cookie =3D dmaengine_submit(qce_desc->dma_desc); =20 ret =3D dma_submit_error(cookie); if (ret) - goto err_unmap_sg; + goto err_free_desc; =20 return 0; =20 +err_free_desc: + dmaengine_desc_free(dma_desc); err_unmap_sg: dma_unmap_sg(qce->dev, bam_txn->wr_sgl, bam_txn->wr_sgl_cnt, DMA_TO_DEVIC= E); return ret; --=20 2.47.3