From nobody Thu Sep 24 13:42:07 2026 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010033.outbound.protection.outlook.com [52.101.84.33]) (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 8C1AD4CCDEB; Wed, 23 Sep 2026 16:19:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.33 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790180391; cv=fail; b=jeKvxSULcV37kkqg7c/brjdAJLuZm6lk934uukSiAlx13wkERhH8WSJTDmufnyWzlVR2XrQaqJ5SZFZIKQ2PvbVcG0lYDp7H3AgVYKmLQz3Ir+bh2aQQxBmC9hOTB64b2dbSbCY+Ga/p31BwWOY9SDs3CV3mGj72eVqW1p3Alvw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790180391; c=relaxed/simple; bh=sgx23NLzxLdKrRKfBDseFoji6Zfl7o/qGs0UQi+GwTA=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Ep+JUO2HKdOtyNfOcpuggwkg1Q/rzQJgnqDblyep+1Ts4R+Puyz/t4+DTSsmlKndfqYLVdaF80rvxLE+k41QI+CCNOw4Rjlay8vzEGXjXdsfrdZR7t59ST13Ldf0kjgP4ZeNrnvSppBjlWP6KI1pNfEeOWtmR3HISGBbyFm/YEU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=h0rBUg3r; arc=fail smtp.client-ip=52.101.84.33 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="h0rBUg3r" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HLtTfzE3BjIqmtWvqAwOLtsKSllWuamcsWW9tPvIDecp0j/XdxGGfW9vWdH/ZSVera/sYdCxc41eq1mL/BCy0V1xc6rQQH7XJ9LZhpuW1bOfK7DewDsxb3qu0FIbjchamGaTCyWHdRpVjgUEWHFddQqeFYXwk7xi2gtCDUInum0b7NZ24KZgtVBFd3oKAq10czyNrBv1YdkcXaC56vmXB8HbaivmZLeLTxB4jtLHbODuU1ijuyiEQAjGo64qpXyC25t90Ipe95Ewyin9CaUQp3oFiQvFHR8Foj+9EcXN7E1teZAyOXya5w62IH+1N3/6UBCsFbaelS3UaLcfhHOb6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=5/lB/RyNPF7QjZj9yrtf5lhU0ZLLR9PHY3fvAO7Ypno=; b=uWjVzKn1BLRZrp7F55wTkqvVaTK8OiR9/IXTFSGDPppu5LWo6FjHHJ8kIM5pXSxneUKSliO6atDz8TMBtXy8mZJcFS7Sl4OerJRktuqdv2rzOREqmORk54r862YzeIwUQ72eP1puyPTEesU4vZX+AK3vALfLjDwl/iW+HCfkYe500dZSOzMMbZqAQYHZscvqoTwOBNzahfScKfPF8ntkzISBl7Akympzd4uxr4rgnpp6+Wnr8PNuW4zxBQf/TtIWn3Bt1UjkWCWGHmYM9HAi+W/R4wC0B0WqyVYKmju2r0mS+tv1+vXodw3slSHbG40bOe2nj28zqmQKmrsfOWwswg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5/lB/RyNPF7QjZj9yrtf5lhU0ZLLR9PHY3fvAO7Ypno=; b=h0rBUg3rVnBYNdwY0t53TSFmTTXsert4b2nPV6fuNKj9ff09dJW4lfVMqOvxkBg+6pNWole+LHJsvQjkIWqHcfaelErfi9bP5tQmS9LfJPPnITQVRudmiRSTpbNYfMr/0IqtK+WF8txEsDyvMUXkmMieHWU1P6jrEgWaJ4AfUvNc/jXCXQdmLr0sKGmebCBbg2xpOgeUXMVC+ru18T5KAdeZypauCRqaLHKTVp3rYp+M6aF1rVR+mra42lHtuRHwBh31bdsqjQH2G5gxJxjWh20siVOjmHwM7uN8IeBfAHsLngsmILl4eLzEo9YVwaCd2pdqY3hLiyVYOuRv/nzuoA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) by MIWPR04MB961718.eurprd04.prod.outlook.com (2603:10a6:290:e4::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.14; Wed, 23 Sep 2026 16:19:46 +0000 Received: from GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c]) by GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c%7]) with mapi id 15.21.0428.015; Wed, 23 Sep 2026 16:19:46 +0000 From: Frank.Li@oss.nxp.com Date: Wed, 23 Sep 2026 12:19:30 -0400 Subject: [PATCH v2 01/12] async_tx: replace direct ->device_prep*() calls with standard DMA engine API Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260923-dmaengine_prep_dma_pq-v2-1-32ed65b8a9b4@nxp.com> References: <20260923-dmaengine_prep_dma_pq-v2-0-32ed65b8a9b4@nxp.com> In-Reply-To: <20260923-dmaengine_prep_dma_pq-v2-0-32ed65b8a9b4@nxp.com> To: Vinod Koul , Frank Li , Dan Williams , Herbert Xu , "David S. Miller" , Jon Mason , Dave Jiang , Allen Hubbe Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-crypto@vger.kernel.org, imx@lists.linux.dev, Frank Li , ntb@lists.linux.dev X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1790180375; l=2415; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=WBG3/DpswlyQH0OnlhwZNMwqNHquMeYdzsgXwnCd/04=; b=0Oqwq8QpAsw0N0+yHB/ABHSxh3E7gCpW6WmFwdRSnlrKIf7MwBKjeNhBFlPvwCFJxYO2yq4rW JTUt3k2O+4mD9KI8nC0Dhs8Pu2Uxfcg42N3NRaSGHNwJgi8p43ysL1Z X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: CY5PR15CA0218.namprd15.prod.outlook.com (2603:10b6:930:88::21) To GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB11799:EE_|MIWPR04MB961718:EE_ X-MS-Office365-Filtering-Correlation-Id: 26d6d9a8-34a7-45e0-6ab2-08df198e7bba X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|23010399003|19092799006|1800799024|6133799003|11063799006|10067099003|56012099006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: Vgzbnh5xBUibdrv8gfEmH091Q2llGuocvfr/S35nlhZv4BD5xHVQdAJHJKhjhOwUS4FSFL9YIEHjbtlFDgm6J5FPUyBE60b43XIL9B/cNDg3hflBtqaxMi+6xO5MJCnYHlacYCtBt8rP0pWFaMMpNwcMLuh8Yws0uGizx3+DNLGLpmY1qaCCeZDsAyF6CZzbqlnJDMPIWuWhv2jSlr1mV9YxQBu0DOlS0QRc1sCTwYhxuIb7xz78bS2uBzmL8Lcq8gpZQFXUTVvRES9PY8ztmk6x0HekcTWAAadBzpspChzts0PmqlMXKtD45xD1BQtqaPmnWotVm2cfXM52Du+YcGiw0ev8tWeaXB1+r8hTn1wmE7sLzL1SRLZJ6Fnsm4MQNTcSn4ZlQs0xv/ywQVWRU3BmcLAaox79ZKx6Ikko7hU17txnIw19NbEN0aockbAuGIue9pGPw+g2vD1ior5EmF+hdLNaTlJRPugaewytr3cXBguQuR4ApLDTZ0wP1Qvh78A0YspgGj7l4froP5v8iRmd27942snYadhqYKwo7EXEmSGVhAvim18tBbjPzvg6oM3xda9aKJzr5637ATjzIMCS+9z/Vz2Em6ZGqz1CXriNdnvHMG6+4SS/ysAAHww4C8Tfu8X24z25vFKK9OudMVxgRd/uu4ccTXuCT5Tow0Q= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB11799.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(23010399003)(19092799006)(1800799024)(6133799003)(11063799006)(10067099003)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cU9VN0dmZERRMmpwdjZ0ZEY4RGd6SmJSckk5TElxWVczQWtoMWVnUVpoWlZi?= =?utf-8?B?VmxlUjlwV2lsV1Y2VDlrL3ZuVHlBT3ZNWW9zdHNRWEEyTVg2MWZONEp2cGE4?= =?utf-8?B?SE5NM2xPRzZkV1lReEZ4amtQYi9XYk9yQ0gxNnRtMkZlTTRDcVF6c3hIVzlE?= =?utf-8?B?NFVrVzExOElla0tmM21qRFhycUhTakhpT0IxdG94OUdYL2srbzVVSFIvWUE5?= =?utf-8?B?Uk9aSlBMbldydDlab3A0c1M5b0hVazRyQlB1TzhKTUR5U0pkZzJFZzhqZ25W?= =?utf-8?B?TVk1QzQyY1pDd1dVVDZkSm1qV0hiVGI1WWFxMnhoQTR6ZVBWNjRoOWFBcnFE?= =?utf-8?B?ZzBlSFE3alRDcml0dmJoZHNtc1ZDODFKWWlOQ2w4aEVZbUxZMlFNMGVFNEl3?= =?utf-8?B?dTI0THIzM2VJNmRlYy9TMGk0bGRxUS9neExOMXJqdmhCUWJOT3JHQzJiZWpU?= =?utf-8?B?ajJIMFRudkhzNENBQmNJeUpsVFpNbjUrSmFoOTRKc3g4WmZ3QXdUL0hYRXl3?= =?utf-8?B?cFlLdlNMZTBPYnQrR2tHelovYzVNMjBydWdLV3ZERkVZYW5OYmI4Y1IxNFFQ?= =?utf-8?B?T0FvOXUyY2Erc3JPM04weURKdTRaanpxVzZCTkEzWVBzTWpNc0JBenlTdzlJ?= =?utf-8?B?NW9uNXhCTzdUR1J4T1FGd2xlWEJ5cUJuck11OVdqRXkzQ0lSR1RURnh3V3B0?= =?utf-8?B?eXI0c2RDR1dTRGtQbXlCVUpkdmVxby9Dc0NUK0VQMnI0b0xpNm1mMXZGOFJP?= =?utf-8?B?Q2sxS1BKTFdJTEp6bnRRVllvT1hpZDdVTHBVa3RIWkxYNzE0VVF5dW4wZkxq?= =?utf-8?B?TkxBbzJialEvcWlCNURSTnYrcGVFSDIxcWlDdDRBSDZyL2o0Y1F4S0VHMHN3?= =?utf-8?B?bHQ1eW5GejVObFlSaU9GNDRHQ2p6bzRoakJHdVZMSGYxcldIaHd3VHpmSUtO?= =?utf-8?B?dFo3KzQwWmk5ZnFkT28yQTVrbUVFbnBFaDZGbXZYZW5HOExyWEt3R2pZZ0ZM?= =?utf-8?B?M1lOVW0wVnF6S0pNSjZ4emQ3Sjg5UE1SYkdsUE5PWVJDT2NTZUhWWjN0NmVu?= =?utf-8?B?M1NIMHdOWnNhUW1ROGhXT25WZE5KNmllUjV3Y0c5cE5CdVVabmlJUkRzemhp?= =?utf-8?B?OEV3VFBTNy9FUlBzUFk3YU1MR1Axd3lVZ24xWTQvZkxBTXBuUncrRzVRaEhL?= =?utf-8?B?UktpY2hPK0pOYjExa2pUQjIrU0VRWVVBbzJsZHk3YnZHV21IOWwvNFV5dHc3?= =?utf-8?B?NEFpM1IxNTB5TzBsU0ptNHNhTEFwZUxoZTlBV1NPWHJ4U29SNVZmaGp3c1BF?= =?utf-8?B?ZXkrLzZ2ek4zZFBVS1JHSHZlTlBXUXQyZkQ0bWxYVUlPUDNESVVRRFRKVGFa?= =?utf-8?B?YmFwQkk3YXZzQmNvTjhJOWZYckl3dTEwaFhMQXVTVFoxSktqYUQ4bUpOZzky?= =?utf-8?B?QVg2QUpYYW42dDBWREdPTlpSL2M0Q2I3cGNyYUZ2NDBqS05rdFdjVnY0Z2RK?= =?utf-8?B?THJFMkhVQUJ3Q3Q1S1kxd2xHZmNxYlVNTmx1OWx4eVJGMTFLbGNoSWNLUkhO?= =?utf-8?B?SCs5RVEybFBYaGtRMnI0WUJ3bmp6V0NSTFlMenNNanRhbG5yVURibE1WRDVH?= =?utf-8?B?NjVrT1o2eU1rT3N2Uk5oM285YnhPV1ZHWmZVN0Q5SGl5Z1BOUERYTFJURy9L?= =?utf-8?B?aFZzKzdSTzhTd1hoQi9IRVA1Rm9JY3dEaCtEeGswbUVEbzRWL2h5RVBUM0FJ?= =?utf-8?B?UDVDYzRnbktFd3VZdVVYcU5ERDhzZ05ueDlsNWg3Ym5jWDE1NnJKZi9IbkNw?= =?utf-8?B?a1NVVEgydE5kbjkzSjNENkhKZXliUzFDa1FhOWI1UURlUUxlbE9lNmlXZG02?= =?utf-8?B?TW1FeTJqL0xWZncyd1djYlVZWEVrOUQ2R3hyeFVrUnZFMTRDTWxlR3MvTXF5?= =?utf-8?B?cTVWQk14Y2drNm9pbE1TeE1VRjc4WXFnQkV3TkRBUjE3TFhHUFJBelNoOEN1?= =?utf-8?B?emhQcVJ3bDdwc0VwaXBmREVwckxaa0thd25IdFNDUTdjajNSOVVHdjVLT2to?= =?utf-8?B?T1ZpSC9qTmlVcmlGb1ZwSTdjNVcxREg3RjFpaGYzM1BwOXNHMk9hR2NrVyt2?= =?utf-8?B?bG81ekhVMm5QU3NOMmxJUFlibCtETXNJWU50QUZiUzVPNDlaVDBMMVlVRTBH?= =?utf-8?B?NzVZUEEwSWs3V2cxQit1S0o5VG9taE1Odm1KMjgydWZnU016OVBDeDJ1Rkxo?= =?utf-8?B?b1BycHZPTTNXZVpXbGQ0dDhDRTlzc21aUy9xbG05cFBLNkFDckpwN0tQUS9V?= =?utf-8?B?SjZIeFd6cjljazg2YnlYZFJyY2ZnS2o1WkFmTmxnYkdiMktqbWZpQkFxc0Rw?= =?utf-8?Q?hYc1dR5wA8KU5oyH0W1BXVkPpU/7nPqbwuufU?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 26d6d9a8-34a7-45e0-6ab2-08df198e7bba X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB11799.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2026 16:19:46.3605 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: +f+Zkq1d41Fb1gjASVTF22DQ+6afy5wNbLZxmsHOUKKHXEIEmkbzfFuJQJFPTzdjZZrrjWygkf9siAt1weRlT42+4wt2Dm5BCoTkE5Np4Yqm2UhZ6rALoXctHkksUSS1 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MIWPR04MB961718 From: Frank Li DMA engine consumers must not call the channel's device_prep_*() function pointers directly. Use the standard dmaengine wrapper APIs instead. Assisted-by: LLM Signed-off-by: Frank Li --- crypto/async_tx/async_memcpy.c | 6 +++--- crypto/async_tx/async_tx.c | 4 ++-- include/linux/async_tx.h | 8 ++------ 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/crypto/async_tx/async_memcpy.c b/crypto/async_tx/async_memcpy.c index c538e30e99094..627b6ad9313e0 100644 --- a/crypto/async_tx/async_memcpy.c +++ b/crypto/async_tx/async_memcpy.c @@ -58,9 +58,9 @@ async_memcpy(struct page *dest, struct page *src, unsigne= d int dest_offset, DMA_FROM_DEVICE); unmap->len =3D len; =20 - tx =3D device->device_prep_dma_memcpy(chan, unmap->addr[1], - unmap->addr[0], len, - dma_prep_flags); + tx =3D dmaengine_prep_dma_memcpy(chan, unmap->addr[1], + unmap->addr[0], len, + dma_prep_flags); } =20 if (tx) { diff --git a/crypto/async_tx/async_tx.c b/crypto/async_tx/async_tx.c index ad72057a5e0d7..01ef830675574 100644 --- a/crypto/async_tx/async_tx.c +++ b/crypto/async_tx/async_tx.c @@ -79,7 +79,7 @@ async_tx_channel_switch(struct dma_async_tx_descriptor *d= epend_tx, =20 /* attached dependency, flush the parent channel */ if (!intr_tx) { - device->device_issue_pending(chan); + dma_async_issue_pending(chan); return; } =20 @@ -113,7 +113,7 @@ async_tx_channel_switch(struct dma_async_tx_descriptor = *depend_tx, intr_tx->tx_submit(intr_tx); async_tx_ack(intr_tx); } - device->device_issue_pending(chan); + dma_async_issue_pending(chan); } else { if (dma_wait_for_async_tx(depend_tx) !=3D DMA_COMPLETE) panic("%s: DMA error waiting for depend_tx\n", diff --git a/include/linux/async_tx.h b/include/linux/async_tx.h index 1ca9f9e05f4f1..9f7fef19f2142 100644 --- a/include/linux/async_tx.h +++ b/include/linux/async_tx.h @@ -87,12 +87,8 @@ struct async_submit_ctl { */ static inline void async_tx_issue_pending(struct dma_async_tx_descriptor *= tx) { - if (likely(tx)) { - struct dma_chan *chan =3D tx->chan; - struct dma_device *dma =3D chan->device; - - dma->device_issue_pending(chan); - } + if (likely(tx)) + dma_async_issue_pending(tx->chan); } #ifdef CONFIG_ARCH_HAS_ASYNC_TX_FIND_CHANNEL #include --=20 2.43.0 From nobody Thu Sep 24 13:42:07 2026 Received: from GVXPR05CU001.outbound.protection.outlook.com (mail-swedencentralazon11013001.outbound.protection.outlook.com [52.101.83.1]) (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 B4E22542EC8; Wed, 23 Sep 2026 16:19:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.83.1 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790180397; cv=fail; b=R3mwmCOrEkQST4tZ5IOI1+TabjDraAHc9LI4FF/WjVFPdhnCwIDv3LZYgoPosgBCofKoGYPSHa0I0IV7Gv0ApiLQNLpkCVe1+gCczTFQ6QojDPCowUOugAYkflTXaODSd8oBCvkulAPpObtq3bT5CGNd+Sy/CS44YZGzfupUXnQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790180397; c=relaxed/simple; bh=P6c1RUpXT4+RoUCl1VJ1lnGbFJop9LZTyBWi3pfu5t0=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=UZtcU+cH1hBKKCd6UepqJuxdRWhFpxc4ambYhTOj3gb7t2QDNvDwVMD4z5jmiz7bG/Jv+/bYy1eueCmRN8kKfIPD3iLzDfbcaEacESYbODr+Qc0QZbhwb3mQCyRgOPfUPjYtSg5C2hDy3TLdT+9QjJml0dQfMuMQOmVG3d6SkfY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=XmmqrCo8; arc=fail smtp.client-ip=52.101.83.1 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="XmmqrCo8" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UbbUkHuD8zicDpqTUdkmIDbQJlJwxTWCxTqJSmtzCJHj9U/fqXtwFYW6bJT6/8nEw0j4VhyDSZ6b09TZsHKoHGmIpgVqOVsu9QuT4mIacx1jNo7K4iwu5XdvhKIc6RBrAAFXfNeftLP/ihmEK6nDfgsme9McfrnOQdMLIBIT1tPr4ZLxu7YUxLcOr6o2FhGPbwp7XAHX8jaXKMXa638Rxxd6YPecWh3Snp/4D10BDhCUw+MZ5tweacx55VfhSZySXcCB71/VdoEvti9YnaEgmWAI0QKSje68bt/4eHJ+vIHVSYGjHJGbmX+Mt4UHDDW7PkOkJsstJ4yII44EB4xktg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=d8B1wOvohocoreNSrxw5SbrOsU8puxLVizxVdqHrxe4=; b=RkuX6c8Q3ehb3CAsBVjoYJ5MUCoA7cI0MEeFlhK1H+tB3QDj4ynQ0mmHXHDwHZgnI4qVrS7VNBEhyQO7HXF2YPDYBYPwDnWQekSd6JcIRkoaWFb61dCJexOPMqva7hArRbQdeizzNv+lZAEFyDwOw4fC7B8L/18ITTm6Vgo64rWGohdyZ0vP68ZY2tYU466Xaz291V68DYdTJ6U8RjFQhBaLXVN1q8KTUckxIolyImQAbhTHGVjCOoaSMq2vil2WBugqFwusUq30XZMOyvuow0wJEuByUmiwWD6EucK820SkCISxgD5ywbnmBsjqn5uojt43o+l/ysA6ZLq+Qb69dg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=d8B1wOvohocoreNSrxw5SbrOsU8puxLVizxVdqHrxe4=; b=XmmqrCo85JnSsuzXJ4TjHhyp8+YPd/F7fvzOY2kPmSBRCIdb9sB2Toar96rNWLuuDMyappjZxj+g75vOwqDpjuAlewcU1z4/BvkQFQwD1nb003+gaoy5CuoYuf8+vhy73cuCsC8Uvl/IBwly7evu3fTiIUlalA3Ah3FLir95/U+9eltJQ6fMv//IGtGdsL+ezQDOBH5z8yUHFzCU9wTIB/Jw35mdUwnfh0/H/L4Gg/oDYzwZMyCAjt4+f64gIbW5Ji0m1tOR5RSUjW6lTMlvnGsNGViuUgAazR+6/0ySuVRW2N5bj2cgFHMM1ha7WABDft9vx6ZzoV3YpcogZsqzog== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) by MIWPR04MB961718.eurprd04.prod.outlook.com (2603:10a6:290:e4::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.14; Wed, 23 Sep 2026 16:19:51 +0000 Received: from GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c]) by GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c%7]) with mapi id 15.21.0428.015; Wed, 23 Sep 2026 16:19:51 +0000 From: Frank.Li@oss.nxp.com Date: Wed, 23 Sep 2026 12:19:31 -0400 Subject: [PATCH v2 02/12] async_tx: use dmaengine_get_dma_device() instead of chan->device->dev Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260923-dmaengine_prep_dma_pq-v2-2-32ed65b8a9b4@nxp.com> References: <20260923-dmaengine_prep_dma_pq-v2-0-32ed65b8a9b4@nxp.com> In-Reply-To: <20260923-dmaengine_prep_dma_pq-v2-0-32ed65b8a9b4@nxp.com> To: Vinod Koul , Frank Li , Dan Williams , Herbert Xu , "David S. Miller" , Jon Mason , Dave Jiang , Allen Hubbe Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-crypto@vger.kernel.org, imx@lists.linux.dev, Frank Li , ntb@lists.linux.dev X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1790180375; l=6656; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=eyHFKVxdxpq/RkaKnR8lc3wr9tdpIQnJTylaOSZ/O9U=; b=BNNf8HwFXSt5iqS9sZCj0HKOPAtihbgqcrCrpSuqXQTEmfjyJh/kPJTtNYMMSgpVG26YXvuvu 0wg160sHnxFDJmofrNvEtdeY2a19EiO6S+v4kyZo2G0xJHY+Olfm+2B X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: CYXP220CA0003.NAMP220.PROD.OUTLOOK.COM (2603:10b6:930:ee::11) To GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB11799:EE_|MIWPR04MB961718:EE_ X-MS-Office365-Filtering-Correlation-Id: 17410700-fa13-4ecc-3b88-08df198e7eb4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|23010399003|19092799006|1800799024|11063799006|10067099003|56012099006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: BnlxlZHAO0PS/W7FqxG4lZK7o1BF3CeyobEfwJbynvVWaeeU1ybB+4SdKcGEpZOJShVlh+vnoD/0xpByhKtxZgUpwdd7NvVDhv/IXZxE3QGsIjOImKsR7uw22pckdz1kcHpwRGnaxEC4RRzj3uisTyVPNN2II1SaLVQSpgGx9Wj2Y1ku5quNINUBV4CuN5vdxhgBmfyI7yT44RrAki7LbdX8c4odKnjEkzlR7Varq6nexshK2lKW6lYdIl2R59szV2nzR/BfaAk//cnhp2d7pkiwIe1tfz8vtpv0WotmMOji4wuE6GS14+ZQEIHDahzmTeHNd9kRzGYewTUloPQvbOS0eeOtYsaaBOdM6jc0vBkKOnVGwicmcI/RPEtnL6w3A6ixGPCzHKmYNCZADwvrO5CVu3gZkBCx1ddPeN0MtXXbDvhyC1Tw/RSLa/U+Qo0d3Lp3BgR1sg7EZ0qBQBwIdoScaPAM0iCuULXWlNDT5Vih8sX4hLeS7+wt0ebd588Np3K64DrH+leMqN+/zzOSfHlSXObKvqznBfgOztQpjz+0A8ZTefH63FJkRPq7zAzmHwVyg/3NmYHBF4tM1eP0zikyUoCACTYrv5xiwb0lTarGHU4S5poRHO8aZeGUyPEZPFDIX3EYtqEkGuF25+PZvhJK7YkqGOCvL7Jd8rgNOh4= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB11799.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(23010399003)(19092799006)(1800799024)(11063799006)(10067099003)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Y0JTYmhrMjVIS0N6Um1pdUhSZnJQZjVRNnZWOXlTdFN0aEFJOTNnL0s3OHM5?= =?utf-8?B?R05CVTFqTHRCYW96cFNwdXB6Rk5vbVN1QUxQSW5kUmFla3JjQzNUYUJtNkRS?= =?utf-8?B?Rm1CcUl4eUl0OSs2bWw3dUJzTkZiajlNNlBjY3dydDVRemtRNUliUjN6Qi9n?= =?utf-8?B?bEJ4djFxeDBkT2R0MFBRTnNjYmdacVNObDlwS0p0UG02VFhWcVJlM0xQVUZa?= =?utf-8?B?cDloQVhRUFg2cjBKZk05VURlcTcyVVpqVGJ6anNkaVd1UisyQmpwR0V0TlJz?= =?utf-8?B?ZElwNU1aY05wbHJMUGx3VE9kMHZLMkl4SnBKNnJzRnlHY2JiRzg4aFdPbnA5?= =?utf-8?B?RVlYdGZ6R1cvNmtZU2ZHTnF4TG5TN2tCY21XYjQ2NXpod1diWEp1cUlYbDl0?= =?utf-8?B?dHlZU2xqYWhLWjJQTXA4dGNTem5NUmhXeXQrV2poVm5qN0xxVXJ4M0ZBSnpn?= =?utf-8?B?SWlaekx3YUtva2Y2WDZlclBZT01XbjJudlhoNHJUTVlPZzR1V3M5NmlMZlQ5?= =?utf-8?B?NGJET0ZteXl6dmFXU1l0Q0pZVnlSeG9xUlgydjV5d2wvaUNjbGJMTmRDdXNZ?= =?utf-8?B?cFZVbXR0M1NkeUo3SVB0K1VBcnpkY05kQnJVbm9Cb1BpUytPRXRjOWhoOHdT?= =?utf-8?B?OFB2NURta2ZSU3RDK3pjd0xTZkJxTExyYStQU3h1eUhZd2Z1eW1LaktGV0pj?= =?utf-8?B?eldUR0FNMHQ0NWV4SHpua3cxYWowbUMyWHVuZlFQb0F2bldVMzRiR2FUVURi?= =?utf-8?B?aEVqWURVcVVWNTNWeWVsL3FWNm1lUGpydXJUdVBMTm9KNW9SZGxOWWIvc1lS?= =?utf-8?B?ZVBlUzRPd0NRbi9aK093N2JicXRkSERvSFltSTlWay9KTlc0Q2pHWHg3WlNL?= =?utf-8?B?YjczbkcwSWxmQlloMnRnUmNkSzJWVzkxZDZpa0lMQ3pmTTJ0UWo2eURUbkpC?= =?utf-8?B?b3d4a250aTJFZTgrWlBKRFVqN3RkdXRlUXJyV3dxZm5NcDN4T1FWQ1dTTFRT?= =?utf-8?B?TGN3ZndIMytWUkRpK0lLeFZTbWU3dnFRck1LcmdIYlBIQjB3c1FQNWFIZkpq?= =?utf-8?B?aVA4enJxTDFQMGlabkVkT1V1aENyVG9iMVd1SnBHU0FQYlRTVmxZbHZFZS96?= =?utf-8?B?K2NZYURQSDBCSVlzbm1vWnVFN0dkNU9iT0N0L0NUcGczYjY4OTV4c2trdm9i?= =?utf-8?B?Nk03R2xXTU5LVnlwcllaQ21LUmZMZGxmM003TE9aQ3pmeU45dytwRW9STVpu?= =?utf-8?B?ZjlBcEJQV0tNTFJPVEpsNlJkbHFBdmdlZHU1Y3BjY2lGbkRLRmVYUGRHa0pJ?= =?utf-8?B?OUVnanZ2ZGNIc2ROVUZkNXlac3IyU0tkS0VQalcrbUJOZ29Ba3NaWU0zTXpT?= =?utf-8?B?aHhHQ3RjN29HZm4xQUJZQmcxci9jcVJkRzdtKzlyalpyOE9KajNCZlZQWTRI?= =?utf-8?B?K1lPcWxHVmFlQ0cyNnVPTlpCenlrNmlJVk1DczhTWkNnM0h2QTFyZ0xGQUhY?= =?utf-8?B?OVhYM1ZoUzZLdkVuOXlXMUxXaEJ4UlBueDhuMlJNMWViV1RiSXNtTm9IdTRq?= =?utf-8?B?QS9rMG9aOFJGeElsUzJtUGZjWDMzNnRCL0l5bzNFM3lCRlVUeGxnajZGL3BC?= =?utf-8?B?NEd0NU5xTnpsMkorblRDOTYzSEhZNlRsYkViendUWWRVUlI5b1Z0cnkxdFBD?= =?utf-8?B?WFJ1d2xaWGd0TmMrUUkvMU5ieUpteDRYSFVpRnFXb0Y3cW81RzJrampoSkpv?= =?utf-8?B?bmJjbDhjYzFmMEYvdDRyVEpDOEdRYXVyVEh2R1BTdENCZjZYL05NOVMwZDdk?= =?utf-8?B?YVhqWFVCLzcyWUJrcXhPWnFlQkhsT0VDQVByYmNDa0cvUXc3aG1qU1R4UnFN?= =?utf-8?B?dE5uNmNyVVVlZnRrTHY4dm5SeFluckQyUm8vek8rV0s2SkJLRC9oR1lQTUoy?= =?utf-8?B?RzNDdzZTS2lLTURneU9BV3QvRmV5OGVSWEVkVW55SElpcUhZZzJGQjZmUEZQ?= =?utf-8?B?NVdpaWJybXd0SkhjQkg5MUlhOW9XcitVWEErOHgrTlNnNXhpNDFEbTZaRVhp?= =?utf-8?B?anBHeDRKK0VZTTJjOGVRZEhpM3Y5L01jTFkydFpwQWtLNC9sdktVWEw2cmdP?= =?utf-8?B?cFN0SDBMalFvRHJQQVB5bHZMVEpDY2FaT1l1MFFQY1pwRXBDNmVhbzJKNFF2?= =?utf-8?B?UHZLd0pnTkV1d2JxeGo3Wm93TFFjOUlXc3MvczREazdOZWdkek01N0wvSUM3?= =?utf-8?B?dTdDNjFVL0NveG9KQWFqa0R3bk9XWWhXSnAzbVcxYUVpaTdrVkdWK0VraXpO?= =?utf-8?B?MVFSU0J2MG1QSnM5dFJxSE9aY0IzOHJDVUtNb2xrM0tDRklnWmlzOUN5UERp?= =?utf-8?Q?xrBimZMekozFWQMqdqwgS56xycyDVrF3YiI9j?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 17410700-fa13-4ecc-3b88-08df198e7eb4 X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB11799.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2026 16:19:51.3605 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: jwsauGwnGkpi7x5yl2rxv3a9Ghsrz6/2DzhCZXpKTMXQeANZsCXxqwi9uOOlb1nxdaqNiUk6MF7zfZ12FeeE3lnu3LDFDCBC+N4TF2+/EEJIP85hhlbsMATxtAAtdE9w X-MS-Exchange-Transport-CrossTenantHeadersStamped: MIWPR04MB961718 From: Frank Li Replace direct dma_chan::device::dev access with the proper dmaengine_get_dma_device() for consumer API. chan->device->dev is not always the device used for DMA mapping. Some DMA engines support per-channel IOMMU mappings, so different channels may use different DMA devices. dmaengine_get_dma_device() returns the correct device for each channel. Prepare for making the DMA engine provider data structures private. DMA consumers should not access DMA engine internals directly. Signed-off-by: Frank Li --- crypto/async_tx/async_memcpy.c | 5 +++-- crypto/async_tx/async_pq.c | 9 +++++---- crypto/async_tx/async_raid6_recov.c | 4 ++-- crypto/async_tx/async_xor.c | 8 +++++--- 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/crypto/async_tx/async_memcpy.c b/crypto/async_tx/async_memcpy.c index 627b6ad9313e0..53277271f063a 100644 --- a/crypto/async_tx/async_memcpy.c +++ b/crypto/async_tx/async_memcpy.c @@ -44,6 +44,7 @@ async_memcpy(struct page *dest, struct page *src, unsigne= d int dest_offset, =20 if (unmap && is_dma_copy_aligned(device, src_offset, dest_offset, len)) { unsigned long dma_prep_flags =3D 0; + struct device *dma_dev =3D dmaengine_get_dma_device(chan); =20 if (submit->cb_fn) dma_prep_flags |=3D DMA_PREP_INTERRUPT; @@ -51,10 +52,10 @@ async_memcpy(struct page *dest, struct page *src, unsig= ned int dest_offset, dma_prep_flags |=3D DMA_PREP_FENCE; =20 unmap->to_cnt =3D 1; - unmap->addr[0] =3D dma_map_page(device->dev, src, src_offset, len, + unmap->addr[0] =3D dma_map_page(dma_dev, src, src_offset, len, DMA_TO_DEVICE); unmap->from_cnt =3D 1; - unmap->addr[1] =3D dma_map_page(device->dev, dest, dest_offset, len, + unmap->addr[1] =3D dma_map_page(dma_dev, dest, dest_offset, len, DMA_FROM_DEVICE); unmap->len =3D len; =20 diff --git a/crypto/async_tx/async_pq.c b/crypto/async_tx/async_pq.c index 27f99349e310b..3a7fd90556501 100644 --- a/crypto/async_tx/async_pq.c +++ b/crypto/async_tx/async_pq.c @@ -196,6 +196,7 @@ async_gen_syndrome(struct page **blocks, unsigned int *= offsets, int disks, dma_maxpq(device, DMA_PREP_CONTINUE) > 0) && is_dma_pq_aligned_offs(device, offsets, disks, len)) { struct dma_async_tx_descriptor *tx; + struct device *dma_dev =3D dmaengine_get_dma_device(chan); enum dma_ctrl_flags dma_flags =3D 0; unsigned char coefs[MAX_DISKS]; int i, j; @@ -211,7 +212,7 @@ async_gen_syndrome(struct page **blocks, unsigned int *= offsets, int disks, for (i =3D 0, j =3D 0; i < src_cnt; i++) { if (blocks[i] =3D=3D NULL) continue; - unmap->addr[j] =3D dma_map_page(device->dev, blocks[i], + unmap->addr[j] =3D dma_map_page(dma_dev, blocks[i], offsets[i], len, DMA_TO_DEVICE); coefs[j] =3D raid6_gfexp[i]; unmap->to_cnt++; @@ -224,7 +225,7 @@ async_gen_syndrome(struct page **blocks, unsigned int *= offsets, int disks, */ unmap->bidi_cnt++; if (P(blocks, disks)) - unmap->addr[j++] =3D dma_map_page(device->dev, P(blocks, disks), + unmap->addr[j++] =3D dma_map_page(dma_dev, P(blocks, disks), P(offsets, disks), len, DMA_BIDIRECTIONAL); else { @@ -234,7 +235,7 @@ async_gen_syndrome(struct page **blocks, unsigned int *= offsets, int disks, =20 unmap->bidi_cnt++; if (Q(blocks, disks)) - unmap->addr[j++] =3D dma_map_page(device->dev, Q(blocks, disks), + unmap->addr[j++] =3D dma_map_page(dma_dev, Q(blocks, disks), Q(offsets, disks), len, DMA_BIDIRECTIONAL); else { @@ -314,7 +315,7 @@ async_syndrome_val(struct page **blocks, unsigned int *= offsets, int disks, =20 if (unmap && disks <=3D dma_maxpq(device, 0) && is_dma_pq_aligned_offs(device, offsets, disks, len)) { - struct device *dev =3D device->dev; + struct device *dev =3D dmaengine_get_dma_device(chan); dma_addr_t pq[2]; int i, j =3D 0, src_cnt =3D 0; =20 diff --git a/crypto/async_tx/async_raid6_recov.c b/crypto/async_tx/async_ra= id6_recov.c index e53870d84bc55..ed5c5eb126990 100644 --- a/crypto/async_tx/async_raid6_recov.c +++ b/crypto/async_tx/async_raid6_recov.c @@ -32,7 +32,7 @@ async_sum_product(struct page *dest, unsigned int d_off, unmap =3D dmaengine_get_unmap_data(dma->dev, 3, GFP_NOWAIT); =20 if (unmap) { - struct device *dev =3D dma->dev; + struct device *dev =3D dmaengine_get_dma_device(chan); dma_addr_t pq[2]; struct dma_async_tx_descriptor *tx; enum dma_ctrl_flags dma_flags =3D DMA_PREP_PQ_DISABLE_P; @@ -101,7 +101,7 @@ async_mult(struct page *dest, unsigned int d_off, struc= t page *src, =20 if (unmap) { dma_addr_t dma_dest[2]; - struct device *dev =3D dma->dev; + struct device *dev =3D dmaengine_get_dma_device(chan); struct dma_async_tx_descriptor *tx; enum dma_ctrl_flags dma_flags =3D DMA_PREP_PQ_DISABLE_P; =20 diff --git a/crypto/async_tx/async_xor.c b/crypto/async_tx/async_xor.c index 84458375b202b..06c48e8cce834 100644 --- a/crypto/async_tx/async_xor.c +++ b/crypto/async_tx/async_xor.c @@ -183,6 +183,7 @@ async_xor_offs(struct page *dest, unsigned int offset, =20 if (unmap && dma_xor_aligned_offsets(device, offset, src_offs, src_cnt, len)) { + struct device *dma_dev =3D dmaengine_get_dma_device(chan); struct dma_async_tx_descriptor *tx; int i, j; =20 @@ -194,13 +195,13 @@ async_xor_offs(struct page *dest, unsigned int offset, if (!src_list[i]) continue; unmap->to_cnt++; - unmap->addr[j++] =3D dma_map_page(device->dev, src_list[i], + unmap->addr[j++] =3D dma_map_page(dma_dev, src_list[i], src_offs ? src_offs[i] : offset, len, DMA_TO_DEVICE); } =20 /* map it bidirectional as it may be re-used as a source */ - unmap->addr[j] =3D dma_map_page(device->dev, dest, offset, len, + unmap->addr[j] =3D dma_map_page(dma_dev, dest, offset, len, DMA_BIDIRECTIONAL); unmap->bidi_cnt =3D 1; =20 @@ -316,6 +317,7 @@ async_xor_val_offs(struct page *dest, unsigned int offs= et, if (unmap && src_cnt <=3D device->max_xor && dma_xor_aligned_offsets(device, offset, src_offs, src_cnt, len)) { unsigned long dma_prep_flags =3D 0; + struct device *dma_dev =3D dmaengine_get_dma_device(chan); int i; =20 pr_debug("%s: (async) len: %zu\n", __func__, len); @@ -326,7 +328,7 @@ async_xor_val_offs(struct page *dest, unsigned int offs= et, dma_prep_flags |=3D DMA_PREP_FENCE; =20 for (i =3D 0; i < src_cnt; i++) { - unmap->addr[i] =3D dma_map_page(device->dev, src_list[i], + unmap->addr[i] =3D dma_map_page(dma_dev, src_list[i], src_offs ? src_offs[i] : offset, len, DMA_TO_DEVICE); unmap->to_cnt++; --=20 2.43.0 From nobody Thu Sep 24 13:42:07 2026 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011002.outbound.protection.outlook.com [52.101.70.2]) (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 BF9DF46C85E; Wed, 23 Sep 2026 16:20:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.2 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790180406; cv=fail; b=Sg9ANzcigxVDAL53NOSPnIMz/UY3rZ23h0Q8ZcksXc6J2L+q9jVIzf6LVpp5HwmnwPmsP+c5IygF5ZwfkNxgUWhJc0eU0AHKefyj9FxVECvP+Lqc9d26BWxScZls1SQ5zBKHAFSIzmZKYJ1C3DPYO/A0r+P2cVtzghWe6q2mxME= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790180406; c=relaxed/simple; bh=XXDZa0fldTMEp8iAUiTVQReaO9dGN2dBP5eLRD3rdTY=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=nIr7RQ75lEuzbukubwsVCndn94gmDWo4vsyQvCvEljVXHdvB6sS0/0WRqUg8MXyc7taiWDE90E+u7XzNrAZIpg2ZwmDemfjuhxX15MpmcGA1YGc9wwMozilFyncvU+fZPfBOVj1njTWIrbUmCH7+oMl0JoC4CX5oJJcZ6bgnMCI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=SWcDBPV6; arc=fail smtp.client-ip=52.101.70.2 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="SWcDBPV6" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=A/MoU2z9r3+YwzLg7DpGAE4svGiVeZ/deuAfa2E71mYsFE7QRoYELXc3NMAZg4AmLZML1sD3hhqiHohY45q61JHZAGdP+yPlIo8qEkX712SYGIFIDhpYZpDBNgo2WJbqUltuGdqzlCGA7+yyfk9ArRcYf1ANhkfQZ2zqF5+NWG4xOc8R7UEDXSSxhHSEkjmGCfm2OD3pQgrDzAUff7WYoiV3PhjDVheahYjgz9XJfUlef4J3IACgDnJ3qQm1aMDFcsueVyKyWU4Oaub7+i997gN4bwWE9IWXt8bnWOx37l5D04V1Mm5PklTZeS6dx4Lkt7Gdb6428yhs+3TGeg9ehg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=BR469c5W90ajpdexETWSfN2htmkBoa6khGx4l5kN+D8=; b=PXF+tCvD7hFlTK3Zo5qO9zgwAvbTTWCuRq56BPLWkR3kH/UKyh7OOP8DEMtM+i7lFs1PAJ0wv5B8EQvDjjMZ4HrsT+WFtaxACQIHbR7HvSUFFbtFyHZJkOGD2+X3maOrrlXwoVGaiVWp8E78Yzd2jaZMeyxoh9T84eJQT7U9N4cFHHBZEzNwpfXLO8tKWMDhXO00ZQg4lU32X334hrU79H2U0g7pFlVpK9/dFTAy7XvENCtLNybD8vuxm4pHKXzUSeUajhYrl2Pg36bUEXNaNw/EpFYX9rySyx1tC0/ykiPlIfypcKQr3axndI91pPUzRpFPIigvFkg/WtYDSpCD0g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BR469c5W90ajpdexETWSfN2htmkBoa6khGx4l5kN+D8=; b=SWcDBPV6jkcPSHnjaGihLrh2hIu3kAJ/zgvaSUGenrXdl9h4fj+WeeEv6npk9CvjhXADXfReBPFdsW2yGCM/qnFdYLa4HqxBcCEemSys2NoIQzmxjEqTXQ4Mkrs3BCk61YBCVysc8FzSIcUyeu0UGWEFF9H4mCSN8oHp9MNICacXvuxTnzI+1mfvSd7Mt8zx1VYiPEKyPo7t3qvwm3Orson5dXXVo2mKgs+0NyqOoutwd9PDZO9ah2PDyRA27DAhw1/wnYgCtGmk4EQvIfEjSvGhSWjvEC1/Lkxj58gllPXHvp7QEDtS48R3CgqVDQS+lRo9xNTKqj2QpTWsWjr23A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) by DU4PR04MB10433.eurprd04.prod.outlook.com (2603:10a6:10:55f::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.17; Wed, 23 Sep 2026 16:19:56 +0000 Received: from GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c]) by GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c%7]) with mapi id 15.21.0428.015; Wed, 23 Sep 2026 16:19:56 +0000 From: Frank.Li@oss.nxp.com Date: Wed, 23 Sep 2026 12:19:32 -0400 Subject: [PATCH v2 03/12] dmaengine: add dmaengine_prep_dma_(pq|pq_val|interrupt|xor)() API Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260923-dmaengine_prep_dma_pq-v2-3-32ed65b8a9b4@nxp.com> References: <20260923-dmaengine_prep_dma_pq-v2-0-32ed65b8a9b4@nxp.com> In-Reply-To: <20260923-dmaengine_prep_dma_pq-v2-0-32ed65b8a9b4@nxp.com> To: Vinod Koul , Frank Li , Dan Williams , Herbert Xu , "David S. Miller" , Jon Mason , Dave Jiang , Allen Hubbe Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-crypto@vger.kernel.org, imx@lists.linux.dev, Frank Li , ntb@lists.linux.dev X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1790180375; l=6855; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=prNdM7OARrJ6YMH29f3XHgl7NJH+49TuwBrbB5M3cLs=; b=HOxfwVi37xqDrVDQ4pKbEJAlxVv9KkynCcGLpbTZpKnCAXpVcugSVEki+TN+GLBCM+17QfedJ yAdIOiuGfrABDlXvFtBHM7U8D121+tbVA8YSQWkr+O7EecP1V9NS4a0 X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: CY5PR15CA0104.namprd15.prod.outlook.com (2603:10b6:930:7::27) To GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB11799:EE_|DU4PR04MB10433:EE_ X-MS-Office365-Filtering-Correlation-Id: abaef52f-ca9f-4a73-d7c4-08df198e816a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014|19092799006|23010399003|18002099003|22082099003|3023799007|56012099006|11063799006|10067099003; X-Microsoft-Antispam-Message-Info: AJqzXyQeAbrb7VI5XgFPdrxYC56F4Ky3vMAns8XYcSx73lOPpihEteoshN2nQtKKe0bzXgh/otJf+y85vUEUov5zpLGAvJepFCz9EX+EjvPvRMKqy/kqGGU2VyDxY3ZSuUsQHT7aTQp9I8amrXLIYYGc+u0Izs3XXXLRtoVZR9NS752DWiAgUuhxOS1bqVTSGF96XolHzS/OFHx2woEcl5hUmiwn79a8r6VuAPBtWOUPA15eyzWrJEjNY9McAfCLemMbE59Y788/hZHV89SnHO+Q6cXdbRqORFjFiUq2fdJornlTPjwap4CopQCsID9MDI4+WVHcimJWnpNgoSdkQLd0ytCe/2AiRTdjcYs1Qfhe1p+2Mf3r3zrLKbdq7Sk37PYxmLN+NQRIk6fqgsBMjMzDKuI2hg/lzyQMtUKyXkCqbqwd3sSwv1t7iy/s3QYj3tBRN7wjX3Lbm7QQMvSvw/9nUFxPK6slWI6rruUCSULKRc3PKVus/7Pz4R3qe6kDQIppTfSSzO5Ik/kc6RDpMqLgTJ5DMA2zb7azL8+V24KUxOcM3QfYDKzW2ad7jfz4j0ZEyaKjbPnWtugkbccFL9KXaFHfBp+nSUhGprASx/0WAKJ4krVhRiYlVWLtxv3BHciw9FcvkXh+yjky8ukSdIUUyocGAdx4Js+5ESSxRA8= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB11799.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(19092799006)(23010399003)(18002099003)(22082099003)(3023799007)(56012099006)(11063799006)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WXdhaXdwb0RVSUQ0TFkvSnhoWXRBMWxTUUozcS9YRkFhcEdnOWZnVEJUb2lQ?= =?utf-8?B?MTRCZmpuVDBpMm1jUVlmbUpPQ0NHU29VL3JnVjlTYzhtZ0dYL2JhUGxQODVk?= =?utf-8?B?Z1RXQTJrbk5POHkwZ2VJSmd2N09IZ1BIeVB2Mys0N3dmSml5VW9oTkFGc2V6?= =?utf-8?B?bHdNMFkxZ05Xa2JicWcwTGxBNmd6bXlWLzVXQmZUUGVxU1EyOU4xTVFqY0F1?= =?utf-8?B?T1BDaDlRcGlBajU4cHNjZVdqMVFHcVV3Uys2UW9oZEFuY2dlRjBuL3BFNDU5?= =?utf-8?B?SjdRck9pOVhXaEZTVVhNSjhNTkJXWmY5ZURFdzIyMnpDQlZVbTJBdUVlV2o1?= =?utf-8?B?REMxdFQwU1pFMFN1SWN0N2ZpWHNIREdqb2w1d2VLYjU2UDlnODJFVnZnN05l?= =?utf-8?B?Q2dFbDM0emNWSDAwMGc0cFg5dWZSNHNtUUFEVWtoTVpwb0JMV0E3azZYbUlx?= =?utf-8?B?ZFRsQW0zZHZ5eVQzS2QrSEdnRWxqN2dDb05HUFhnTGZLenBxZG4xWFlOSElI?= =?utf-8?B?L2Z4Qnk1bnZtcldrODZlVDVVOVRoaFNQa08xem1aQWNmRVFpcEZIendrd25N?= =?utf-8?B?ZFVWZ2EwRUdYd0VBZFBvZTk2SVVMMHlUdVVGSG1wWVZCYkdJLzJDME1FdjdD?= =?utf-8?B?U04rM05qVHJJNXVTV1pyQ2tZN0tSYTRjTzZKcHJuOGRiaVp6Qk5zTTZHVHVN?= =?utf-8?B?N3lhcFVtQjdjc1p6TmFNZXZKc3lWSTFZT21IZ0dYR3JjK1Z3cGNSWWYrcWo3?= =?utf-8?B?TGx3OVBiV3ZObWlVTE0zb1ZxZ2RmV0kwUm5ScWFIMDd4UWhDMzRQV0R3TStp?= =?utf-8?B?Sld0UU5UeWV3Y3MrV1NkZC9jN1ltcDlDYjFTRVBMYVhwTWwwdHNuL1prM0o3?= =?utf-8?B?Tm5ZejZsRnZUMFJWUGtPZGpmSEl2ZVFWL0lFSHphRlpuVExXVHljWUNWWjhx?= =?utf-8?B?TFF0TzkyQllsbVdsbW9BTHZYWUY2MmF5RnRhdmRncWc2OWwrQWt0UlhMeTZh?= =?utf-8?B?emNkaHhmcGt6L01mN3ozK3lhUkoyZmhOWTZIcmlvTGw1OEc1c1djb2FvMy9s?= =?utf-8?B?YkV0RVpmK1pqWEpJbnlDaEF1eXJ4SkZnRUVreDlRSmthNDRYa1VqK3FUZjlp?= =?utf-8?B?b2VqYW1zeG9tSTk0MVVmVjg1d0JxbkUzSEpnTmJWZFpGTy9VTlU3MHBudHIy?= =?utf-8?B?bjQrNElSODNQUmswcFR0Rld3OWJYTFRaRldqZ3hVY3FsQldnVDk4NDV3MlhT?= =?utf-8?B?OUVhWVNJalRsK1ZpUWpONkhXYm9RcERQWVVJQTc3OEVjMG81eU1rTml3aVQz?= =?utf-8?B?REtOZWpmQmEzdkxRL2tzeG8vd2xwTXNXdzlFbTY3YVJPNmVKUFdnMzZGVmRD?= =?utf-8?B?YWVoZUNZemZ3M1ExSTVCVXNJOEF4MTlJVlNzeGlBQlFxTmIyVm9PT1pCZUtp?= =?utf-8?B?Q3dwL1pIdm4yNXBndUkwSzduTE1vSkF6WHZLZkh2VGdpTDlCVTVQU1Z1ak83?= =?utf-8?B?UUxwZ0d5aU9hUXQzcXZMbDhlK1hiVzFHSlQ4ZWVlOVpGT0FvWlhYQXl5dytV?= =?utf-8?B?RjIzTDB6SGNNajRFTjN5TS9JL1FNeUMzOTljR2U1YVo1NUs0bGFzN2NLMUVo?= =?utf-8?B?L0l3WnlheVVYc0RZeWtTRStVVjVGS2dmUjlhbnVUcFFjZFhCKzloUjlVQzRu?= =?utf-8?B?MkEvbnJCZ2xZeXFVZWRzaVR2SFZib21RY3l3bzZqemUxbHJKTVg4eDh4Qk10?= =?utf-8?B?M3JVS25KYlRJSTFQQ3FFK2hYUHJGOWVaSlVxYW5hQUUyUGxqcWNaK1dKTG16?= =?utf-8?B?VUVZcXR4eFFWM1hheGxZaERoUElxeFcwNzU2cHREdTRiZTZzeml4RU50Tldh?= =?utf-8?B?aEhpTWUvM0pNMmZGbGprVEhqRnFtVHU1MlptYVowWU1Fb2dESDEyaE5MWXRm?= =?utf-8?B?ZVpKanlpVWdNenZNdmdNZWIzeVlrcmN2cGZFbjVqRFYrUzVOT1FTWS9HckF6?= =?utf-8?B?TlR4bCtDQmlLWkF6dzZBcnpwYzNMajIwQlo3djJuMTRFWFV1ZVoxNHBvMjEz?= =?utf-8?B?K2ErV09DaW1tVm9CUlBORXlKbDk1MDJDM29KVWdHR1gvRm45d3NuekpHVSti?= =?utf-8?B?YThxQ0d0YWJYV3crTkVBVUgyVHd4cW1xL2J3VmF4cWo1enE1WHRFdEl5Qmh6?= =?utf-8?B?MEhMUTBZQkxNeUF5YnU2RExqWVVsOTBPNDA5ZVJKVnlxcnVxUFFEa3hhK1BG?= =?utf-8?B?K3RlVDk1eXdiRGhNWWJJVWViUkhIdEJMaktxWWZ1RVZ5Y0ZxQVBxQ1JxQkx0?= =?utf-8?B?Qm80RDhBS2h1U2swMFR6UUZTZ1JSb0JHTjBuVVlhcWRsc0orZHN5RklydEhH?= =?utf-8?Q?82ENVa5EnwjoqBh3SKdk/mz8xm4WTc0UatNfj?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: abaef52f-ca9f-4a73-d7c4-08df198e816a X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB11799.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2026 16:19:55.9185 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: kQv3PSWopCSy2dBSrKcj/j2wrhzIqrrKdUZNqDcHjlPkhoPWj3WsOXckK7TaV6U7q8RaHZ5gbdzAVPGkEBMyqJYSIvPHdQQ21trqX1WDG7mInq70NRP/RvsPNxBxx5FR X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR04MB10433 From: Frank Li Add dmaengine_prep_dma_(pq|pq_val|interrupt|xor)() as an inline wrapper around the device_prep_dma_(pq|pq_val|interrupt|xor)() callback, consistent with how other dmaengine prep helpers like dmaengine_prep_dma_memcpy() are structured. Provide a clean public API that hides the direct callback access and add proper NULL-checks on chan, chan->device, and the callback pointer. Assisted-by: LLM Signed-off-by: Frank Li --- include/linux/dmaengine.h | 134 ++++++++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 134 insertions(+) diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index c3a49a33307c6..6a187136f9493 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h @@ -1232,6 +1232,122 @@ static inline struct dma_async_tx_descriptor *dmaen= gine_prep_dma_memcpy( len, flags); } =20 +/** + * dmaengine_prep_dma_xor - prepare a DMA XOR operation + * @chan: the channel to use for this operation + * @dst: destination buffer address + * @src: array of source buffer addresses + * @src_cnt: number of source buffers + * @len: length in bytes of each source and destination buffer + * @flags: DMA engine flags (e.g. DMA_PREP_INTERRUPT) + * + * Prepare an XOR parity generation transaction. The engine computes: + * dst =3D src[0] XOR src[1] XOR ... XOR src[src_cnt - 1] + * + * Returns a descriptor on success, or NULL if the channel does not support + * this operation or the request could not be queued. + */ +static inline struct dma_async_tx_descriptor * +dmaengine_prep_dma_xor(struct dma_chan *chan, dma_addr_t dst, dma_addr_t *= src, + unsigned int src_cnt, size_t len, unsigned long flags) +{ + if (!chan || !chan->device || !chan->device->device_prep_dma_xor) + return NULL; + + return chan->device->device_prep_dma_xor(chan, dst, src, + src_cnt, len, flags); +} + +/** + * dmaengine_prep_dma_xor_val - prepare a DMA XOR zero-sum validation oper= ation + * @chan: the channel to use for this operation + * @src: array of source buffer addresses + * @src_cnt: number of source buffers + * @len: length in bytes of each source buffer + * @result: output flag set to SUM_CHECK_P_RESULT if the XOR of all sources + * is non-zero (i.e. parity error), cleared otherwise + * @flags: DMA engine flags (e.g. DMA_PREP_INTERRUPT) + * + * Prepare an XOR zero-sum validation transaction. The engine XORs all + * source buffers and checks whether the result is zero. The outcome is + * written to @result on completion. + * + * Returns a descriptor on success, or NULL if the channel does not support + * this operation or the request could not be queued. + */ +static inline struct dma_async_tx_descriptor * +dmaengine_prep_dma_xor_val(struct dma_chan *chan, dma_addr_t *src, + unsigned int src_cnt, size_t len, + enum sum_check_flags *result, unsigned long flags) +{ + if (!chan || !chan->device || !chan->device->device_prep_dma_xor_val) + return NULL; + + return chan->device->device_prep_dma_xor_val(chan, src, src_cnt, + len, result, flags); +} + +/** + * dmaengine_prep_dma_pq - prepare a DMA PQ (RAID-6 P+Q) operation + * @chan: the channel to use for this operation + * @dst: array of two destination addresses: dst[0] for P, dst[1] for Q + * @src: array of source buffer addresses + * @src_cnt: number of source buffers + * @scf: array of scaling coefficients, one per source buffer + * @len: length in bytes of each source and destination buffer + * @flags: DMA engine flags (e.g. DMA_PREP_INTERRUPT) + * + * Prepare a P+Q parity generation transaction. The engine computes: + * P =3D XOR of all source buffers + * Q =3D Galois field sum of (scf[i] * src[i]) over all sources + * + * Returns a descriptor on success, or NULL if the channel does not support + * this operation or the request could not be queued. + */ +static inline struct dma_async_tx_descriptor * +dmaengine_prep_dma_pq(struct dma_chan *chan, dma_addr_t *dst, dma_addr_t *= src, + unsigned int src_cnt, const unsigned char *scf, + size_t len, unsigned long flags) +{ + if (!chan || !chan->device || !chan->device->device_prep_dma_pq) + return NULL; + + return chan->device->device_prep_dma_pq(chan, dst, src, + src_cnt, scf, len, flags); +} + +/** + * dmaengine_prep_dma_pq_val - prepare a DMA PQ validation operation + * @chan: the channel to use for this operation + * @pq: array of two addresses holding existing P and Q parity buffers + * @src: array of source buffer addresses + * @src_cnt: number of source buffers + * @scf: array of scaling coefficients, one per source buffer + * @len: length in bytes of each buffer + * @pqres: output flags indicating P and/or Q check results (SUM_CHECK_P_V= ALID, + * SUM_CHECK_Q_VALID) + * @flags: DMA engine flags (e.g. DMA_PREP_INTERRUPT) + * + * Prepare a PQ validation transaction. The engine recomputes P and Q fro= m the + * source buffers and compares them against the existing parity stored at = @pq. + * The result of each comparison is reported through @pqres. + * + * Returns a descriptor on success, or NULL if the channel does not support + * this operation or the request could not be queued. + */ +static inline struct dma_async_tx_descriptor * +dmaengine_prep_dma_pq_val(struct dma_chan *chan, dma_addr_t *pq, dma_addr_= t *src, + unsigned int src_cnt, const unsigned char *scf, + size_t len, enum sum_check_flags *pqres, unsigned long flags) +{ + if (!chan || !chan->device || !chan->device->device_prep_dma_pq_val) + return NULL; + + return chan->device->device_prep_dma_pq_val(chan, pq, src, + src_cnt, scf, len, + pqres, flags); +} + static inline bool dmaengine_is_metadata_mode_supported(struct dma_chan *c= han, enum dma_desc_metadata_mode mode) { @@ -1585,6 +1701,24 @@ __dma_has_cap(enum dma_transaction_type tx_type, dma= _cap_mask_t *srcp) #define for_each_dma_cap_mask(cap, mask) \ for_each_set_bit(cap, mask.bits, DMA_TX_TYPE_END) =20 +/** + * dmaengine_prep_dma_interrupt() - Prepare a DMA interrupt descriptor. + * @chan: The channel to be used for this descriptor + * @flags: DMA engine flags + * + * Returns a descriptor for an interrupt transaction, or NULL if the + * channel does not support DMA_INTERRUPT. + */ +static inline struct dma_async_tx_descriptor * +dmaengine_prep_dma_interrupt(struct dma_chan *chan, unsigned long flags) +{ + if (!chan || !chan->device || !chan->device->device_prep_dma_interrupt || + !dma_has_cap(DMA_INTERRUPT, chan->device->cap_mask)) + return NULL; + + return chan->device->device_prep_dma_interrupt(chan, flags); +} + /** * dma_async_issue_pending - flush pending transactions to HW * @chan: target DMA channel --=20 2.43.0 From nobody Thu Sep 24 13:42:07 2026 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011002.outbound.protection.outlook.com [52.101.70.2]) (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 16F7B538D92; Wed, 23 Sep 2026 16:20:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.2 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790180409; cv=fail; b=TcKDzaianNG9HdB1lp3Uekq1r/phrLG/lKAQSq8x31r+46/86UozsbcOc2wyC3bWotiarBGln8h1tQ/5g6EySwGdr8+ja6j1dWk++XKOhknJrsleQ1EgVOVgSwKEAloLRNDfw0siU39mXznGqUR6VkLNaAnGryqDeaep2AdCxKk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790180409; c=relaxed/simple; bh=yPjcKmIAfAQsHIpprPTVTIFweOIkApZP0n/mTuTRRj4=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=nshejHhK4OnFqmnJMPGb0zgb2k2VIfoT18IFOrGpBvOyrQjQ2UdjAHr2/gIWfweo5YTxA5cEE8d3/kKDKUA7Nkkvx2N0Ti6h782auMdgeRGEXVIM9niOTFgmXDg8EBPGh7WsjbaY99BXEyvEl0nW+WsbB732hb0IL2WesOAgv+g= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=WB8MEOBz; arc=fail smtp.client-ip=52.101.70.2 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="WB8MEOBz" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LU0IqF3MD7sMb7a6zPhrLQIiPTD8xPYoxR88jp+EpPJMtdOPRQj1OKBY/GCmUFfUvNXNADKDmATXuNrl5NUjVTF4l72c0hHjbMv4D8naE4Q444/4qpJgbB++fXrT6kWub00BnqDUE9mtIqQdA0acHmm7wHE4AI6dmWztkL1TGOIYLL0VUvJpkwyPTYgZoeQVegbqKtzdQIdejlSWCGLdFtzHPmE6m4wk9Y0jS/ZQ+Kxdbw7tDAB+nnxtKgl5+moOGX8py6pKrUGGmWNfBF9+UZHJyKerM1nRn3fSb1/bfEPLL95614K61ZF8jA1Edt0clZwilE2/y0XFtBrnhzwQPQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=qFcdyzJnZBjBVqjPmcCSwYmPD9G8DqgVLR/EWom7g8o=; b=xZbq8tzfMVF8BZi/BYBUEqr/34UHSBJ5zEJyE91tuDlEP14u/sKcb1h7ekauU/uEZMohuJs8hERn+h0008XEE1KQpaIrii4Vz7Xp+npg0KxwJ+0sh8mR27uT5gd013nPMl7X1UJHTVOkkcf9H53d2YrTc/2Xqm0pqut0CtXxu9sDw+nKkdYe7Bw1HQjKolXZjDnOAf8EaV/fPZ+wkNSJlMHTGdP6CEd2tEOVIap+v20WSii9g/tWWrCpyjpvm79sIBvtJjvJ+IpvNSNjSWABc/thf/V4OVe0XO+xslORg3TAyF5vrGiY2Gq5xAP6rYMg0a7BBuLNnMMYt5nZnsK1Rg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qFcdyzJnZBjBVqjPmcCSwYmPD9G8DqgVLR/EWom7g8o=; b=WB8MEOBzfpl0q2l2WGkrRAIdpvtSgv+eNUQkkCyGt2hV5zCTafBLU97OdpA9I6X1Svk9DbTSojaBnbzYetZLM4/Kd1O4BSFcCfGfCr78voTSA3T3MdLc5KaGWm0WeaFxCeJXB4qytQFdYTFC78jBArvrnx1V9crEbwQn5C2R4ssG6Dqa0nAmBPXZHzo3XEW4b+gBtFdovkffY2yR25sbg6VzFMn7/DU6HvvaanDjJr1ZVw2MrT77zZlEmuHozMu1Gh9y79hfGO5fdYmuuVSRMsTaSSayFKCKae2/+oI4e3lauvUN/5zICK05KNN1zr+HzyzEpB5ZlaYpqadLqDEwvw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) by DU4PR04MB10433.eurprd04.prod.outlook.com (2603:10a6:10:55f::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.17; Wed, 23 Sep 2026 16:20:01 +0000 Received: from GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c]) by GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c%7]) with mapi id 15.21.0428.015; Wed, 23 Sep 2026 16:20:01 +0000 From: Frank.Li@oss.nxp.com Date: Wed, 23 Sep 2026 12:19:33 -0400 Subject: [PATCH v2 04/12] dmaengine: add dmaengine_is_*_aligned() helpers for DMA consumers Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260923-dmaengine_prep_dma_pq-v2-4-32ed65b8a9b4@nxp.com> References: <20260923-dmaengine_prep_dma_pq-v2-0-32ed65b8a9b4@nxp.com> In-Reply-To: <20260923-dmaengine_prep_dma_pq-v2-0-32ed65b8a9b4@nxp.com> To: Vinod Koul , Frank Li , Dan Williams , Herbert Xu , "David S. Miller" , Jon Mason , Dave Jiang , Allen Hubbe Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-crypto@vger.kernel.org, imx@lists.linux.dev, Frank Li , ntb@lists.linux.dev X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1790180376; l=3167; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=KCTGjzRUC82WfCM01zzXaIcdRgIJEvbFP+94q9Ozdvk=; b=L715oChAPuPJw25fXrwJPDFqA15Y8t4v+H8MRrV6dPle8NlCYTL/6PZNlCCNPgx7xfWIMNIwf FC2BuZCkJ4VD7zBXtxUzLfr9FQNTlUZGhrFbDCEQazDQ96gAO78MMfh X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: CYXP220CA0002.NAMP220.PROD.OUTLOOK.COM (2603:10b6:930:ee::12) To GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB11799:EE_|DU4PR04MB10433:EE_ X-MS-Office365-Filtering-Correlation-Id: 5bde5f91-a665-4956-4161-08df198e846f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014|19092799006|23010399003|18002099003|22082099003|56012099006|11063799006|10067099003; X-Microsoft-Antispam-Message-Info: Axj3ckWAsIyJ/VyuupTUWDSZL1//fDcnbAfaAOe/mPD/vJpwdzjUl60Yhjx+08oMBAm8uo9ko5gRRuvoIVDb2ctFmeZEtHs3VMFgVM0qfOhbz2/jP5SKtDwH4fF3kEq1UwhWWezdIQyyvcFMgCWLrnHXFvX/PPj+VFXZ/tJP4rx1ULvyjjbXmm12LmYmyIZlItLcDEeWv21PQhPMRKgdMhw14Sr2SiKdqi5zBQdba/lAsEgW+kkT1pe7CjF+Zh+kgmHrAE8wFq5cl5oPKtHzXU00yfojteVKYqDowxOOIARU5guUOjcm5vgKN1J7hqwf2CMUGgqMAqnhyaXVaG5RQuTIQnYF0bq2EJjv7VaoqBnIcWsCdAiQ01Lb6Ri1tI22rawuHmZzLQ8HkNomrjjtZg7pbW+HuysOAhtaOp60wYS+qYHAefHQEjICOUcGrcaEFLMSSwILgbYAOuvn9MZkYlcE2kHkWgRot/CXCzwnWb2IQx1VLUYFUskU2s3Mq2hDrMI2vuOrLHR2VQSG8UGo/JuDbW2zxC30FFvlxdmERKjP/ZyRrnZ7USmzvsGn7nZjVIGcOlQiEhOTBkVzQRPOamQdBnO8QezwuvWeMpe5oBZ6jTg+3VLeJGZT3XuWd5U7cWCLJjm91bSoUnSoTA0R/Oe0qQ3JcCpY7P/vmUQHs9Q= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB11799.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(19092799006)(23010399003)(18002099003)(22082099003)(56012099006)(11063799006)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YU9IWENRSVNzY1BBZkdEblR0aS9NNElSVU5vbnh5RHAxc0RReW9EbTdVZ3lq?= =?utf-8?B?eENvcldXbjVuWXVDbUhMQ2tQcUxiQjdGS3hzMDZCOFQvQ3pGMXgwa0I0OUQx?= =?utf-8?B?U3ZKRGNhSHlUZUhrYlNUL0E3elNBZDVUU3BZcU9idTBIK0FyaHZGM2M5Q2xM?= =?utf-8?B?TW5ueXpUS1I5RW1iblphQVQwZGc1aC85V0JIRXNtNVBBSGptbVV0Y0pzMEt3?= =?utf-8?B?TUt2aGgyaXY5R3BXbjlQN3NreXRHQTJLUTZBdWtEN2U0b0JhWU45RU1ITU9x?= =?utf-8?B?UU5SeVVaNnZEZkkzOWl5Ky80TEZJRFVOeExZWU82dGFFNDRrS3Q1NUhuMzNt?= =?utf-8?B?cGFpcDBNalQvZGRzbDBHSElsYWZZaXgrTmhYRzNHZ1BxTHRjSGo1MnA5Um8v?= =?utf-8?B?ZE5LbmdSL0J3QXoyRWJMYVlrRnArcTQ5cjlrUzV0b0RWdTZEOFZFZjRlTURW?= =?utf-8?B?OGNZMzhzN1JlZGRkSGdOejh2VVRIT1YzTyt5akdvRUx5Mk5yYTFyNU9VVWZQ?= =?utf-8?B?aStiYkZlbUNrd1h3R1hpZWwvTzVoWmFJVGpJNVFMZ1BNTFZHWC8wQXhINndp?= =?utf-8?B?Y1BKQkdoZkh5YmdFa1ViTWU2NHFsTlF2Nlp6ZUJzMjdZVWVZMDU5YXR3M2Uz?= =?utf-8?B?VmFKMzE5RXVHMm9mZlRRbzYzazdJL0w5YXRScEo2UGZ4ZU1ZN21Tc2I1WnEw?= =?utf-8?B?ZXdRbHp6NUxSSzRTczZsVkt0SWlnb2ZzbEhGTWEvNjVrdmhINEVuOUhLREtr?= =?utf-8?B?WUJGdEdwdU4zZllwYUhla29HaFY5VTk2eXVoelcwYlNSa1ZIeEd6QkljZ3JD?= =?utf-8?B?djd6U3JETGZFU1A1UTRuWlQ4R0JxTlVVeEhqRE9mdDdvUzVVM2hBK3J2VVp0?= =?utf-8?B?OU0zRlR4aDRIZFVNN1pIMVJIenJuSnhMb3YveW90dEk5Sy80M1VHSVVJamJI?= =?utf-8?B?ZzA0QlloMktYNSsyYStUaXpOMjltNDY4N1J3cEpTVTNDSEFZNmNyM0RkWlR5?= =?utf-8?B?WlJvc01EemZvOTdXOUNzeHA4Q0JtSjdFNGsxelZRNE14dGJDN2laeE5ySnBs?= =?utf-8?B?NnN5R0Y3SC9nckQxU1lOcnJIcmdlZnRKYlpwTzdML1RCNGxxZEZkU29Lc0Ev?= =?utf-8?B?eDh3Z3FmdFVQb2hiN3pBUEFGSEZsdjdtd2JnMmgzdG42RHNraVY0MG14MDV5?= =?utf-8?B?K25paTl5dkM5SmRsU3BwbnJ0aHI0cm1BTmU3c29xdWNIdENIeGtMWHNIMlV2?= =?utf-8?B?YTZXZFU0S2ZQY2RYV0s4NHlFUUVMRWh3c0dSdkNBM2x1bkVSZXR5UFRoUEEw?= =?utf-8?B?aHcrc2xucC9Yakp1U01VK3U0Ync1bmwxV1R5NkRDakl6b2JJRDd4eDMrcDQ0?= =?utf-8?B?ZEZtSE1EeWY3N2FJU1FkQjZvQ0oxc2NGbXZ6aU84d3l2U2hxREFGeDlWRTRq?= =?utf-8?B?dmY1TjYxTVd4Vk9ENStyMGFjMzFOTkRsWnB0d09uWk5ZZFJNVmpwMi96clZ0?= =?utf-8?B?Mlk3MHZBUXhWUnFJQlo0T2g4eTlKL3V4TUUyZkVpaC8rV09ySW5lc2RXZGl1?= =?utf-8?B?MmxWekJBQkYra2VQRFJlbjB1dnlVcXZtSy8vV0dQdnB6VWxkbTQ3Mzl6RXl5?= =?utf-8?B?NXVWeVNndDM2c3U5ZE9xb0lsQkRRbzRTdEtvRHR1ekloa3VkYVlCbFNTQXIy?= =?utf-8?B?bWxWLzhITlE2RmRYcndpcmt4MERFVHNBMmhIZkZNekxrUDhCQ2toWi9aY3Z2?= =?utf-8?B?RFZ5RHZMUmwxaUVSc3pKaWY5YzBXRXRzUVQxcTdQV01POHRNTnZPU0ZDV2dv?= =?utf-8?B?Y0hjRGd4RnZwOFB6d1dVL0tNUmF6N2drcUJtUmpCVFhZTlQzeGJQWG43cE1S?= =?utf-8?B?emkvSXk5T3pqc0Z3OE5VTzNQbXo2L1JjdDNhMVhwNENSRWlMcG5vd0NpaUJv?= =?utf-8?B?eHFhVk5UT3EyRkV2N2JNM1pwUkVJVVRVOGd3OUdPK2kwZExkaW1mc25ySnJq?= =?utf-8?B?bEFUTEZNTEN2MWxPWVRMc2lERHBYeGZyR2dic1NmZ0wxRS9nbldTSE1hVjVi?= =?utf-8?B?a2c5UTV2aEdoRVcyMlZITE5nOWt4cjZmZHB2MjVtTXJJVG1KZDcyaUVLMWQx?= =?utf-8?B?dG90dnRtbDQ4b1hyMDRMa0NHYStLSFpqT08xalB6MytmL2YyNU5SMnowNjBP?= =?utf-8?B?WGxEdHB0bEJqL3BvL3hVSDlPR1FENGtQUDlUWmtBUTlxYmtVbG9uMUt0bXlP?= =?utf-8?B?a3JlVzMwOXc0M1A2bjFTSzlXTDBiRzJzME5Bd0hlMTBlalgrT2dXUm5wQWhC?= =?utf-8?B?MWxqZXdjWGRRM1dPSXBlOCsrb2pScHZ6ZXA2aXlrS1R5bGhnQTFqY0FtRzdz?= =?utf-8?Q?xQMibY0eECUTjdAWndswxMqTgcPtyS3DqtlYi?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5bde5f91-a665-4956-4161-08df198e846f X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB11799.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2026 16:20:00.9359 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: zwtQAFY/Ye4PF5M1ymKsfNg+owQPTKuMb/qCu6aRgnWc5bq3D3aTW0tNAVMRX+zA5NJOo+ERx8Bkmq3r4L+BgKcyjDi7hoVCpYCmKmRN8nMwg6HIq5mIBAN4a6h1juZm X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR04MB10433 From: Frank Li DMA engine consumers typically hold a struct dma_chan pointer and should not need to reach into struct dma_device directly to check alignment requirements. Add dmaengine_is_copy_aligned(), dmaengine_is_xor_aligned(), dmaengine_is_pq_aligned() and dmaengine_is_fill_aligned() as channel-based counterparts to the existing is_dma_*_aligned() family. Each wrapper calls dmaengine_check_align() directly with the alignment value from chan->device, keeping struct dma_device opaque to consumers. Signed-off-by: Frank Li --- include/linux/dmaengine.h | 64 +++++++++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 64 insertions(+) diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index 6a187136f9493..1efb04e137673 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h @@ -1537,6 +1537,70 @@ static inline bool is_dma_fill_aligned(struct dma_de= vice *dev, size_t off1, return dmaengine_check_align(dev->fill_align, off1, off2, len); } =20 +/** + * dmaengine_is_copy_aligned - test copy alignment + * @chan: DMA channel + * @off1: first buffer offset + * @off2: second buffer offset + * @len: transfer length + * + * Return true if off1, off2 and len satisfy the copy alignment requiremen= t of + * the DMA channel, false otherwise. + */ +static inline bool dmaengine_is_copy_aligned(struct dma_chan *chan, size_t= off1, + size_t off2, size_t len) +{ + return dmaengine_check_align(chan->device->copy_align, off1, off2, len); +} + +/** + * dmaengine_is_xor_aligned - test xor alignment + * @chan: DMA channel + * @off1: first buffer offset + * @off2: second buffer offset + * @len: transfer length + * + * Return true if off1, off2 and len satisfy the xor alignment requirement= of + * the DMA channel, false otherwise. + */ +static inline bool dmaengine_is_xor_aligned(struct dma_chan *chan, size_t = off1, + size_t off2, size_t len) +{ + return dmaengine_check_align(chan->device->xor_align, off1, off2, len); +} + +/** + * dmaengine_is_pq_aligned - test pq alignment + * @chan: DMA channel + * @off1: first buffer offset + * @off2: second buffer offset + * @len: transfer length + * + * Return true if off1, off2 and len satisfy the pq alignment requirement = of + * the DMA channel, false otherwise. + */ +static inline bool dmaengine_is_pq_aligned(struct dma_chan *chan, size_t o= ff1, + size_t off2, size_t len) +{ + return dmaengine_check_align(chan->device->pq_align, off1, off2, len); +} + +/** + * dmaengine_is_fill_aligned - test fill alignment + * @chan: DMA channel + * @off1: first buffer offset + * @off2: second buffer offset + * @len: transfer length + * + * Return true if off1, off2 and len satisfy the fill alignment requiremen= t of + * the DMA channel, false otherwise. + */ +static inline bool dmaengine_is_fill_aligned(struct dma_chan *chan, size_t= off1, + size_t off2, size_t len) +{ + return dmaengine_check_align(chan->device->fill_align, off1, off2, len); +} + static inline void dma_set_maxpq(struct dma_device *dma, int maxpq, int has_pq_continue) { --=20 2.43.0 From nobody Thu Sep 24 13:42:07 2026 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011002.outbound.protection.outlook.com [52.101.70.2]) (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 99061544D63; Wed, 23 Sep 2026 16:20:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.2 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790180411; cv=fail; b=X+FkyPTtN+kwk0Aakhhv7vltEcZWm1zbT3i8+RM0ij8Hs9Fl2D4yOQ3o0xiOBRQAgLtzPIpVaNgauB9PZxvCsDFKzPAuFr7ybyBu6W7asO3DYtPLhFPPQSAIr/M+utK0V5WCkW4pdBEQ3Ec8RMAyYGPIvlPfr8BN7zxyEyTJF/U= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790180411; c=relaxed/simple; bh=SQLNuFHw/zpAETUGpHSpY6G3pmWUvsgc4Uzlxk0XO0U=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=XCHcb1Tfjx5B6DJepQ1sjI1J86KUuSzsegVHT9pKmhJHvK/V6DWrcN2584DDIqLhLUndE3ZM7yoClR/hAvs8OQ88jUGD32JGcYyJOLSpPO4Unt/G7Z81bIvlqiDWOU/CVfiAMbnF0XdudHX5JIbFdSpYxv2SBCXdOyT4GAorjyY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=pyR97giH; arc=fail smtp.client-ip=52.101.70.2 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="pyR97giH" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EyakZkW+h3ocJyZPtzEtcBSnPDEi8DnJiaNkD8NNJ0W8+aFGr6AyjWe8cA+Sle9tkceIpnaaGRgp7mP0VdR2ZaAGmnbIys9GL0xuBvXbiSvVaiQ02IKWBrAtgJKQcutAlOtwxJkTU8CxeGuZf6SZiQKTNA0zcEnMHOgubVltm7hPLsXQn2lItZdnFURJ6L8nGBSigA3vMMwty/hx8eURhziFfz3s29cfywcaBtGE5LPTWJzB3kE7LziS7+VC46nax1Y1NgxrS2Ws70QNEGX4KqQQbwy7/4SAe/7HuGiBHQCcGJRhTUa2Sjc22ImYhUdEDhIGwSrha1iT4I89/JP8QA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=6Zs+A3N+H4OIvo1dDhBdyyEbjtuWQj/VrfEajEwtm1k=; b=eOsTGzjNSR4tvH1lEc+G1IqVudkpNEU6d69z4iGTvspqtIFGdggAIvsq1sUInLNYyzGOxbw7k9Kq8jxpL7q+YkZZ5lC5Rr4/suPfMExJ/BruQJYAjhWA3EK6C+H9fD1oc73d3d9BXyXPxQ2khtZkjEA0z3B2XVXR9flqqHwCwac/ELgg+6M+PSh4ohaT9bljVKZsPFZFxOGXF8DEl3P8Z/ACCeMExMsIHbsPy4Ny6VIlodiKLhuF3bjIWq4DQseRzUHKBwemUoipSRc/skQdWwqMUpv/HOVjL/HzVlwNiNWk4xhlcs61FA1fxkJPU6bQXegdLLhVIOBhZQ3LJmJffg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6Zs+A3N+H4OIvo1dDhBdyyEbjtuWQj/VrfEajEwtm1k=; b=pyR97giHDUIXKltWGfxVTXbavglmplUTq30Gs+eP3zh8TTYrfilEg9Ar7xpENtUjZMCBZZ4BrLpnJapgYfBXdTA0lA30tM50cL8rzY+n4WU9TRh3i0GHsSAbcRou51/ok9EkFxJVMQ2D0TVJofV76Oku5UBR/6DWsXc+KEkjl3lIFjdaKK3JQYk87dVHSUhsj90gRRCnmmf0LU3XPU6XzhhPD6/hKq9qvzpSYFR3GJ4ydYY7dafhuHuXIUXhi/BYS9L1ydhQSxlRGh9+smG2cZK2oLopwjri3rdA7pG5sH04uwK3dQ+rvMH3UN5JOQ+TWP9kUd0irXI3KWPwo/7VUw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) by DU4PR04MB10433.eurprd04.prod.outlook.com (2603:10a6:10:55f::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.17; Wed, 23 Sep 2026 16:20:06 +0000 Received: from GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c]) by GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c%7]) with mapi id 15.21.0428.015; Wed, 23 Sep 2026 16:20:06 +0000 From: Frank.Li@oss.nxp.com Date: Wed, 23 Sep 2026 12:19:34 -0400 Subject: [PATCH v2 05/12] dmaengine: add dmaengine_get_copy_align() and related alignment getter helpers Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260923-dmaengine_prep_dma_pq-v2-5-32ed65b8a9b4@nxp.com> References: <20260923-dmaengine_prep_dma_pq-v2-0-32ed65b8a9b4@nxp.com> In-Reply-To: <20260923-dmaengine_prep_dma_pq-v2-0-32ed65b8a9b4@nxp.com> To: Vinod Koul , Frank Li , Dan Williams , Herbert Xu , "David S. Miller" , Jon Mason , Dave Jiang , Allen Hubbe Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-crypto@vger.kernel.org, imx@lists.linux.dev, Frank Li , ntb@lists.linux.dev X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1790180376; l=2372; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=lXp5Ebsxc0CGIQcgDZ0XzZpIYG7TQxy9TOdVgUs//Ko=; b=49heUt1pcyZxpalPPddc9ilC2L+biGmpOVRd4wq6JiFEkXXkolkVK8Iz99dJEPl8wbKuGKfMi eHBO2Wdz2l1B0uIwf5AceN6JldrX9uLyNRSRLzcKkGg+uKlZ/Pbzs9b X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: CYZPR10CA0003.namprd10.prod.outlook.com (2603:10b6:930:8a::15) To GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB11799:EE_|DU4PR04MB10433:EE_ X-MS-Office365-Filtering-Correlation-Id: bef30e0e-9132-4042-bec6-08df198e877d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014|19092799006|23010399003|18002099003|22082099003|3023799007|56012099006|11063799006|10067099003; X-Microsoft-Antispam-Message-Info: DP6OFtXCHovIIO3Fnlv7jNwtlKYrBxqEPxB1Ejv3UlqZe+ZdA2tn3cPj5/OQfJLj58ahBxQ1c99DpO7u3T76PL8Vh0JyuHJwEVEFmh8zr5U0fntFjg5UO28ksRv1arSi1/B4XhrNBK9fdiSVzGialEEErQQubandFxW85O7tKGBsG7uTgb3ewzPbPw1XhZT8K7jcERt4V8st+AdImqGzNErN8BU6Cyn46n4U2biRi73xB3cWHWmIjyr5HVlTxckRNOQzG1zVJSys+HYaFkZtjtVs6vfki/Tt2GYUI4rQXijcx2YSFLZ6IxmMwZGDlbeDoRfqHaHCcdv74kOBz+Lr+8b14dsCsi3QsZBXhcy8ckFMCHgKEduAWFVaLgZx55W7LYi3WgeVm625/A80zKmAWxyIOcGF0T7KaLYToX5Afz0XYikQchszCxmVTQcN64tyNwAw4dmpXO+zlKARIcd8pH8yqogOovO7pCvArq2r4rnuzH0HUmuXmDOCAYKmvlS0Tpj997+XJSiuQTVZQu45YG41lSwHPaLUe8uskl2FGQEj27vWU0ap1LevPnjjRacDoppVgmlFnso0jyZIF2nZrWqr7lfteWH/MVlZsDCanjNSXTiMmvaJarWZmn1jmpZNfOZs1Mqc/qWdY0JXvPGAtHxW1QuIZhXbVQmduem6+Bk= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB11799.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(19092799006)(23010399003)(18002099003)(22082099003)(3023799007)(56012099006)(11063799006)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?d0IzcnlvSXRrU1c1MC9INTBiZ2R3NlIrZmRFcXpmZGxzdVFodzUvak9TRWx6?= =?utf-8?B?V2t2Q3RqK2NydDQ4OW0zcjhYWUpJd1EwUjZTZHFlL3I1UEdqY2luS0ZNQVlh?= =?utf-8?B?R0Z2d0JURm5sb1FSa2hkWUcyQU5IS0NzOWtWeTBFc0pIRVVzUzdpbU56eWRi?= =?utf-8?B?UGd2ZU5ESVdUYlJhd1NrTUJrak1SRHFXL2VjWlovNThRb3VGVXFVRDhhemEx?= =?utf-8?B?d04xZkxwaVJhMXRodWNwQUtkSy9EMU1QSTJIMGJPUWVjL25FR1FMSTBBSWNH?= =?utf-8?B?ZU56Q1JPcjdpQit6MXNCMTlwQXl3NHZ0b3IvMUdoWGxhR2RPZ25yaUxjVFNt?= =?utf-8?B?TXVQMHkrM0VpWDMwbUxmRVYyUTBaVWFvS3oyNjljU1JmU3hVOUo1dXBHaVV0?= =?utf-8?B?M2c5MWF6aEYvSDVSSnBnK1BnUThWQjkyYlEycHphNW0vTVJlZllmbHRKYmU1?= =?utf-8?B?bSt0c2tYa2J2U09RYThacXQ0T1VOMmZBcW9UNUxDbG5PdEhkUFFRSndaek1t?= =?utf-8?B?Zms5d2R1L1pFbnZEekpOZUxpNXRyNFI3T2drZU1WY3BUT2tpem1MMjloV1pX?= =?utf-8?B?OFlQaUxQR2FEMUhvOTFJemhVSmd3L00wVGNVYjY3N1ZDL0k1OC9ncm56YVk2?= =?utf-8?B?ZkVQSkY2MWJjb1diaXUrWkgzR0pSMWh6Y09PYTNPeDBCZGJsMlVIUnNTd01i?= =?utf-8?B?WENETU5jd1JndU1IeVpGZHlQSnV0aG5XQitZYjkrQ2VPdS9Cdi9KSHIwNXh1?= =?utf-8?B?YmpnQ0h4VXJYVWlhb3NhVGRqWVNGZjk1OXhtWEFPd1NOdVgrOWpDbE4xQkhH?= =?utf-8?B?NCtkdi96V0NrcDh1OUR2RHArTzkvL1FXcVFiZGJpUXdLTFY1Y3JuQ2ZzUGNP?= =?utf-8?B?bGlzaEFHVjJheUYwM0c2WWVYdE4zRGJDVEU5U1FicXcwR2M4K21HYVpBUWlX?= =?utf-8?B?cEU0NmVPbi9SNGlOQzhxWTVNQzBsWWg3M1JBU0hKWFBUa2N2NEVubTU4YSty?= =?utf-8?B?NkxyTkh3YTNKSjBiUnB5RHR5LzNqNlRtVmhjS20vQitnOWRTTFprVnBiTXlM?= =?utf-8?B?V255ZEFsT0xSY3VONHJCdWRIVVFQZk9EOFVNZXNoQVBGVS84WXk4Nm15V2Rh?= =?utf-8?B?MWkzQ2JjL2tKbFZqNUkxSm11VEJtMk12VGlILysxMUlWdEo1L2hkQXp6dUt6?= =?utf-8?B?bmlUN3UrTXU3VW1nYk8rK3VEMk9vRjlRZlVJRVpzT0xUZHBBUkYwQnM4cU9P?= =?utf-8?B?ZDkvam5rUCs4ZFRZcDR1SmpCU3lBdTVRVktDc3dJM1pESTlKbG53OVBYOWNQ?= =?utf-8?B?aEVKbjVhQ0pJNU5DOXEzYkJ2clVDV3VHOVpvcnh2TVlWcWVnM1hUWUhFSWF3?= =?utf-8?B?N2E3SUFLWkxYTFI1M00xblF4S25XS1F4ZEx1NWFtcWJwK2tXRjRPRGJXa1Aw?= =?utf-8?B?TzAxZGZNWUg5NEptOEQ1eUlzbGNSVUVsQzllaUJtdzhyN3Fobk5ZUHpTZ2M2?= =?utf-8?B?dlc2MXhXZGY3UVByaE9nOHdtNFJLSTNjajdnREZUeG5ydmZWcHp0VzM0OHdO?= =?utf-8?B?V2xDZHduR244VjFISTlRNGFvd24weVVHUU9UUUhib29QOUFKaUtLODR6TElz?= =?utf-8?B?aEFuV0RBdXllMm94SDRPU2JMd3haWDR2MzJzNno4MndYTVZhbW5QejVUZWdP?= =?utf-8?B?cjhTdlY5ZFJTaUNKU2pKVU1Lc2QxKytRMlNnK1VRK0EwMWNQMG5ySTNCaDdD?= =?utf-8?B?TEw3L1RUcmV3TlIrS3BwM04rdkp1ZndXTURrWmI3VjNtRFFld3pzZlB3Yk15?= =?utf-8?B?aXlQMXNtTkh2dXpSTFk0TmNzUThpZFlnclFqcm8xOGJaOW8yOVJ1NHBUTjVu?= =?utf-8?B?UG1IaUQ3UVdISUtnbUhpR2NobUlFL1N2bUMxVjR4ZlRmekZmeC80UGhqL1RB?= =?utf-8?B?ZC8rZzgrcjRQWWxjV3hoWUZpOGN6N2J1eXlIVkg0RUVQQ3dMV1RmU1N0cDVY?= =?utf-8?B?dWJjQ2hQVTAvanA1ZVJUcEZqQ3NqRzJlTW40eGVvYUUvUUFocWVUZFI1TUJo?= =?utf-8?B?Y004UU05cEc2cHQ5cFc1YnJoVTVJTEJhWWZjZU9DRHhlbFVZVkdoRDdPMUs5?= =?utf-8?B?bmhVTEVGY3lMQVZ2YjE0aGxUWE03YWVzZE01Uk5va1Irc1lESVArNFc2UFBa?= =?utf-8?B?eVh0TEltMUc1Q3o3Zk9GTnVjVy9IbFFKdTFBT1QrQVdHVUM3UzhtY2lOb3pJ?= =?utf-8?B?THJVQk9USFhQOW5BYWVFLzA1eTdMaVd0V1lucElQdU9rS2o1VHgxdjdYdm80?= =?utf-8?B?Uk0rc1ppT3ZLcW5vUnpvU0NtWWNFbzdaY2NiNEl0MFA1bXpDU3Qra2ZZbnM1?= =?utf-8?Q?oxZympUXgF9tWYTC8leKN7OsWEjQzbvztp6n5?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: bef30e0e-9132-4042-bec6-08df198e877d X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB11799.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2026 16:20:06.1001 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: JEKFjnH1K+faUz+MatVpsy1fCKl4cj++hw0ybx+ekW3d0RaBygIOwGEsC9RixD2ingTUnoev1g1mx12PyEQAzZD5vwSsHJK/o7wIMs2yNRuUAUvljKlIPQm+QXIJou5/ X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR04MB10433 From: Frank Li Add dmaengine_get_copy_align(), dmaengine_get_xor_align(), dmaengine_get_pq_align(), and dmaengine_get_fill_align() inline helpers to retrieve the alignment requirement of a DMA channel as a power-of-2 exponent. These complement the existing dmaengine_is_*_aligned() test helpers by providing direct access to the alignment value, which is useful when callers need to propagate or compare alignment constraints. Signed-off-by: Frank Li --- include/linux/dmaengine.h | 48 +++++++++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 48 insertions(+) diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index 1efb04e137673..615eeb708dcda 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h @@ -1537,6 +1537,54 @@ static inline bool is_dma_fill_aligned(struct dma_de= vice *dev, size_t off1, return dmaengine_check_align(dev->fill_align, off1, off2, len); } =20 +/** + * dmaengine_get_copy_align - get copy alignment requirement of a DMA chan= nel + * @chan: DMA channel + * + * Return the copy alignment requirement of @chan as a power-of-2 exponent. + */ +static inline enum dmaengine_alignment +dmaengine_get_copy_align(struct dma_chan *chan) +{ + return chan->device->copy_align; +} + +/** + * dmaengine_get_xor_align - get xor alignment requirement of a DMA channel + * @chan: DMA channel + * + * Return the xor alignment requirement of @chan as a power-of-2 exponent. + */ +static inline enum dmaengine_alignment +dmaengine_get_xor_align(struct dma_chan *chan) +{ + return chan->device->xor_align; +} + +/** + * dmaengine_get_pq_align - get pq alignment requirement of a DMA channel + * @chan: DMA channel + * + * Return the pq alignment requirement of @chan as a power-of-2 exponent. + */ +static inline enum dmaengine_alignment +dmaengine_get_pq_align(struct dma_chan *chan) +{ + return chan->device->pq_align; +} + +/** + * dmaengine_get_fill_align - get fill alignment requirement of a DMA chan= nel + * @chan: DMA channel + * + * Return the fill alignment requirement of @chan as a power-of-2 exponent. + */ +static inline enum dmaengine_alignment +dmaengine_get_fill_align(struct dma_chan *chan) +{ + return chan->device->fill_align; +} + /** * dmaengine_is_copy_aligned - test copy alignment * @chan: DMA channel --=20 2.43.0 From nobody Thu Sep 24 13:42:07 2026 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011037.outbound.protection.outlook.com [52.101.65.37]) (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 8E969542EF6; Wed, 23 Sep 2026 16:20:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.37 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790180416; cv=fail; b=gCLhjs4/ai3duZ6rya3p6r6mzRUAm2UcL37zAg9g0zx4rLN6Yv11TSbddVEfSFb1ZLDbxDIOIP/fa0dS8tBO2uP0SxYx6nsamPZr+4T92l4gL67XZ3yDmq+kqi60dhh+5dCeWO6zP6Vn4zFsG0/ExF4bA8T5fJeNLQKzBg1k/7s= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790180416; c=relaxed/simple; bh=a0xue6OoCIO8/zIzQAMwwkWyuYPmfqtxyYqP25yquLQ=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=tex1rvZa6viwTNMv2NcVWYLrxhVZe4PKccBv9uzU4ZMskUX4y+6lk19oGf9SDKPpRqZWJr+lCeEjM4u/0aoJ2fjQ9NYsfB5+VdNG3sDH/4XHM/CgB8/6gIbQg0IROowftXs15XXAVQo0Z57xgG2AuM8hLRY3NEvTQ2RPrQx5mQ4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=GGD/9gqa; arc=fail smtp.client-ip=52.101.65.37 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="GGD/9gqa" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Sb33sAQ28vX+fGCqJJAGBrrVxpkIfqXFvWAAW2JefUmAXrNPwLTkbHjQWrrmpThY7unQ193iU/nYEhoNYz/fEPpHFe1U1dpNd0dVmBX0cCqHsUtDR3Tev2pSnw9TAxVNsUnhrxTwWNkWu6KBwtBsPpKZReaL19D5tcMBPRK2xdTRNkBsBB9CTgxRhv5GaKC3xEXnn92LfLTtS9lH23iNp1AChghr0nWp7EuxK/jhuAkKl/Kxvdk1a4u96cH2zFNxwR2RKvP096fePxsfjJsbXVwG3Q579+9oPDAnaxwnpT1NU+UsKTegtZZS9cCMYgkqc76Z19hJtMADLEMn3iQcRQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=qgQkaR7thcFRVfki6O6oLICs7w6DcVT8prsTtcWgnS0=; b=hVzFCAbEaD9REen3RkHv4DedU3Cdh5XCB86JkKybf7hdHhGM4UXL7rH/ZwXf/rx5diAtyC6xKBGBdEiqHeDCythsZj9/SM8uGtcQxDpVZ54stTLaZ0cz0IFBRRRPL5oL0ff5SJwHhODMH8JyPjlP9z99JwKFMFo+fLBdY9QuyVMfn8An1n4xP5eG7XKJxDEE4ISywg338qwmVcuOhk5NMP/vOu5puiaeOUHAp37ZtcUMQjghwKa1lRoNY948MHvY+nku8v4hpMTXQFXh10xai5JaHhkrtDANlnszVqvYeR3swLgdVEHggyRXFl9F7iIxm0EcSqSWgmHPDXhonJ/mbQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qgQkaR7thcFRVfki6O6oLICs7w6DcVT8prsTtcWgnS0=; b=GGD/9gqaeyVtDSFPZAjulLTF3MjZMLtmEoJswhNx9iXHuphWHMGQrzPVl29K796fPi2Q6haPy9DVQVQ+fuXCwkyLVz58ueuXrpCo9PtlZTjw9j7qzfn3DE2pTeetbaiIsQ7+hKmlH/SE43mME8g1QamqnwqgTI0m5mrdaf1Q75w60sEWOEYRbnIbJ3VqbjeCXuSvUpFedcXK14gWjKwxSizJkkIbmw4mygDB9TWgDZMff024a/2+xBlwEOX3b4jTWvceMCWFKn+2immN+MiDnu4kE13ZDxfYGQWPW/Q5Oe7mndCVxvoNAGXNx9yyBvITLOXIYm99gXkCKkuh15+bqg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) by DU4PR04MB10433.eurprd04.prod.outlook.com (2603:10a6:10:55f::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.17; Wed, 23 Sep 2026 16:20:10 +0000 Received: from GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c]) by GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c%7]) with mapi id 15.21.0428.015; Wed, 23 Sep 2026 16:20:10 +0000 From: Frank.Li@oss.nxp.com Date: Wed, 23 Sep 2026 12:19:35 -0400 Subject: [PATCH v2 06/12] dmaengine: add dmaengine_get_cap_mask() and dmaengine_has_cap() helpers Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260923-dmaengine_prep_dma_pq-v2-6-32ed65b8a9b4@nxp.com> References: <20260923-dmaengine_prep_dma_pq-v2-0-32ed65b8a9b4@nxp.com> In-Reply-To: <20260923-dmaengine_prep_dma_pq-v2-0-32ed65b8a9b4@nxp.com> To: Vinod Koul , Frank Li , Dan Williams , Herbert Xu , "David S. Miller" , Jon Mason , Dave Jiang , Allen Hubbe Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-crypto@vger.kernel.org, imx@lists.linux.dev, Frank Li , ntb@lists.linux.dev X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1790180376; l=1948; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=LbTWPRWs0wkYYm3bvRVBKMHG0+6GV/m6lMVJZtyllFY=; b=MD1wOZuiz35P3kOZwXGcedRfkICTHDIKLpOgBV4pqfisaua0o292+ecm7yIpgx/+L0XNqlXtt vXhBZudl7iZBhble1xtdIMMWOZd10D9xo1E2hnmK5zkRzWvys/iaA4S X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: CY5PR22CA0042.namprd22.prod.outlook.com (2603:10b6:930:1d::35) To GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB11799:EE_|DU4PR04MB10433:EE_ X-MS-Office365-Filtering-Correlation-Id: 46b473ee-9094-49a4-09e0-08df198e8a48 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014|19092799006|23010399003|6133799003|18002099003|22082099003|56012099006|11063799006|10067099003; X-Microsoft-Antispam-Message-Info: Krhixxl/xNlii+YkOo4jjKIt7dkUW+W46nIyPvbPIvAAt+hFu5JH1IAWQfNQ/Ea60nIVjpbyxXomBXJmiN6EA3RmQVLR7FZGz5KUuyusYjyErqSqciBgScfJnYTrpTliHaDL5ThTBM41maxpDsGYzrepEIAhUm1O371ymNtvF54Sa6aGwa05qSdR4lTdiu1eYxhbtDqPP76mTduX/lcVOv5BKtaZ+6SvEwmCTDHg2+cJfw9OJKnu1CCoBPQopIG42qQ35U6SoDOSc/6UO7LkfH/ntdDD1Qa8irYYrYFmVGW+EbYUuMs44hibIQCW/hUSb4eUq2vZZHzJEHXUxXQ/4OXUNkVpc0ISGUVacJ0v1EvPQUWNcbAi8YMf2EwlKEf/DlX3AkY5//F24vn8cblyBQ1uF3NyfrFa0FF9U92G8/4I2580uiZR5ZqlEWOFarPXvJpV3S0ykE7u/C1Mx1ze2+35QCffyRwMcJsl9TYDeifDX1eMQHUs+E5Z27jtDKvaATvChZWr+FbqQORD6lhw7c/4svo5H+14sUx7Q7vHjodcRNhj97pjRTSFxvylqn4N3m+jr6gFR3L3SAcs2OmuDHe53JPRf8LocxTjLEPqwe7FHoCx0wlUKbNPWyJOdshxRm6PF/u+k2xgGbh5FTMiAkxJCUGtOxZDPMxz1Ne9n3Q= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB11799.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(19092799006)(23010399003)(6133799003)(18002099003)(22082099003)(56012099006)(11063799006)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?N1IwQkpMa3dWOEtmaTlFTWhndE15a21BanlRTFdtWjcxTExCbmJtM1VLdFJH?= =?utf-8?B?cEwzZVV4UlhIaFVJZHI0RitkZEs4bmFrQnFMQUFqbytVSlpSWTRmWlNURFVi?= =?utf-8?B?TzZwQkhRUXhmcHF6S3RhcHJoOWVHOGhyMW10c1VLTUlaY0o0VkEwYUkwMGtF?= =?utf-8?B?UVlyREFLUHowRlFXSGk0aHlyKzYwT2t2eEJKZFJFNm9pcTlpZkpkejVaVGMz?= =?utf-8?B?djNPaXZxcklpbTlNNFMweExQYlo4Q044YlF4ZkxrWGJUUXZFOXZDRWpMdEQx?= =?utf-8?B?VFlRNUNwYkhKUzdNa1BydE1nVUxTZGNvUVFjbHVnSk1Ua1kyeHVOYzhtN1p5?= =?utf-8?B?YW1ZUTROR1ozaEM0VVVhb0w0Um9lVDZoSzIycXl0VHUwR0pQdDJiVU9oQTBv?= =?utf-8?B?eWkyekQ4RWVBdEx1NlhMZzNlN3lOQ000Rmh1Wkp0bXRwdGN5c2o5dzcwK3Y4?= =?utf-8?B?YllaOGF0bDFYbW1QclpjL2xyUkdkMmdzZ0FuUzFYelVTcU9mMm5raXFhcGpL?= =?utf-8?B?dkdma2gxYXNlMzh1a3ZiQzdqbDl6emx3NytJMFpsbzgrQW85d2JHRDYwNkwv?= =?utf-8?B?NXErY1hBY1B0bDBCdUUvcTdYd1o4czBlck9vVFdJcVRTNjZaWkpidDdoQjNv?= =?utf-8?B?L0IvZTRJYkxhajk2UWlFWHQ1NDdpamozUXdTQ2gvMFFqWjRnazNmMDBpT1Nk?= =?utf-8?B?WlJWK2FXaVhLUUovc2w4ckVJQkgxQjlHNURrOWhNb2VBTytxbzV5dThxclVB?= =?utf-8?B?L3Q4ZDZCRWtEbWZFVnQxbFJIclhSOTd2QUlsSlpWVXkyS0padFMwams5N0ZM?= =?utf-8?B?TmcwSHZDa0tuRFpMKzcvYTJpcUNBMDNQUlBDci9vNC80bGVUamdNNHFpL0Ix?= =?utf-8?B?VkMvRW15OWh5NEtPRk1VS3FhbTlnaW5OTXgxbXNKVFBjNzRTUE92NytNQkpn?= =?utf-8?B?WVdJVmI2ZVQvVE9QaVQvV1RrVGRHd1VucmlCRm9JRVRERGxJMVJCVFB2MzMx?= =?utf-8?B?dW5NZDBxd1FVNnhrUVBNNU45c0hoTU9JR0dib091QUQ1RUdUdm8wMDRISVNn?= =?utf-8?B?L0ZCOGVJaDgvaG5KWmlNc0VGbjNldWg5K1cva2JnZERHeFd3U2ttOWlhM1RN?= =?utf-8?B?SGxmVGd4U2xLM2NaZW4vREExZFhPcTJtRHc5aldXZWdOd0NJNmZXKzhYaEph?= =?utf-8?B?clJKVWd0WTNBRk9wQkJmVERBbjluZHRaWURLTjdJRVhJV05lOXM4RzZmc2xs?= =?utf-8?B?RG1SeWZzTkdwN2VJSTUxcTlNdEh2ckdUY2tJajdmRWZxalZWeVE5cXRaTlk2?= =?utf-8?B?MnoxbVIzY1VodXdFWkp2T0ZBYzhzQkJiWjRxMjhiRjRWSTZxSTUySHR3TkZU?= =?utf-8?B?MEIwRFpJa0VZLzI5TlFmM1krYWFqK0hKb1RaampzaHZPM0FaSkxoWWRvb3lD?= =?utf-8?B?UHZnU1pSSmQ4K052dVV1VHp1TXVablp4ZTkyT0daZ3hHckV0ckpZc0NqWHow?= =?utf-8?B?aUltOTNaTFJ1SG1HZWNLZjdjdzBPemRGRWFiVHNBYVg0ak5iOE1SWmVFakNa?= =?utf-8?B?M2REL0VteWJVa1NPKzNRTnhJMXh6VjdXT2piNFE3NllCY1dEYmlzMG95dmZ3?= =?utf-8?B?aDVDemNoeE9HNjI4V2NlRkMzNXpmSVE3a3VPZkordktUM0NXa25MUVg4RDdB?= =?utf-8?B?MHlZRy8rUVczNnVkZXFVcHBLVkNBN0Y3OVZubGQyQ3ZCUHBESUIrNktzNTNT?= =?utf-8?B?QXVjWEU0bTBDci9OemdGRk8xN0FUVWNiSnB2VzlVSmRreUVQVnpWLzhqaDBU?= =?utf-8?B?OFA4YVEyZCtYc0UvT0dyTjVkVmhSQmgxQW5QMDZ5UVdQd3BwbElaRmkxSTFY?= =?utf-8?B?cnA2RXF0eUhCU0djQjNFbVN3L0krS2lDWExid2dvMFZnc0FzWndZU2NvRjVX?= =?utf-8?B?WlZST1UxNmIzTDBKLzYvallGWVBMb200a3M5bTNYNWd6bTA5WFJQQ2NJWDdw?= =?utf-8?B?YTBPcEVNN20zNElrWDg4VGxRLzVnMVNGUlEyNXFqcmVuSkhEWWdqVmx4cmhr?= =?utf-8?B?cE9LdGY3cnc5dkhlNUtHTTdtL1NNNEU1bi9SUExGclpSY1F5M3VaTy82aWFY?= =?utf-8?B?akYwZDVPTS9QWWE5TFpvaVVwZThlNXdDWEp1SHc3UUxUdGovb0s4VURYRzc2?= =?utf-8?B?aDlneXBwdUpoaE1oWUZRM29pQXFyK0JZRVFMelJJNUpIWWxMZERQUzRhZEpt?= =?utf-8?B?U29MVzI4aVdXemFIV0t3Zy93dGZmOEdzcVNnbVB4ZFBFcnRnUUwwQndCTWxs?= =?utf-8?B?S3Y0SE95QVo5T2VpUS9RTXZxdjluMUNWQkRJSnZ6YW1hWVIrKzRoQmxOa0o2?= =?utf-8?Q?7+OOmuSY0xWUmmNFfyQr6GrPA3dJ/JsFGnlaW?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 46b473ee-9094-49a4-09e0-08df198e8a48 X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB11799.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2026 16:20:10.7509 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 59l1n6ML9fBP/DunaWpY4mlStMVaKaUMOnrBk/RSBcK1yOEq7tBxqqcZ4cTb2X6Nu5zDWVcCiFOgb3WGvlA0QV5+kcgKnPn8ELxskfy+Nr/zyMSoj6iGty53Do0PC94x X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR04MB10433 From: Frank Li Add two new inline helpers to query DMA channel capabilities without directly accessing the internal dma_device pointer: dmaengine_get_cap_mask(chan) - returns a const pointer to the capability mask of the DMA device backing the channel. dmaengine_has_cap(chan, tx_type) - returns true if the channel supports the given transaction type. These complement the existing dma_has_cap() macro which operates on a dma_cap_mask_t directly. Signed-off-by: Frank Li --- include/linux/dmaengine.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index 615eeb708dcda..7fce44bd7c049 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h @@ -1585,6 +1585,18 @@ dmaengine_get_fill_align(struct dma_chan *chan) return chan->device->fill_align; } =20 +/** + * dmaengine_get_cap_mask - get capability mask of a DMA channel + * @chan: DMA channel + * + * Return a pointer to the capability mask of the DMA device backing @chan. + */ +static inline const dma_cap_mask_t * +dmaengine_get_cap_mask(struct dma_chan *chan) +{ + return &chan->device->cap_mask; +} + /** * dmaengine_is_copy_aligned - test copy alignment * @chan: DMA channel @@ -1810,6 +1822,19 @@ __dma_has_cap(enum dma_transaction_type tx_type, dma= _cap_mask_t *srcp) return test_bit(tx_type, srcp->bits); } =20 +/** + * dmaengine_has_cap - test whether a DMA channel supports a transaction t= ype + * @chan: DMA channel + * @tx_type: transaction type to test + * + * Return true if @chan supports @tx_type, false otherwise. + */ +static inline bool +dmaengine_has_cap(struct dma_chan *chan, enum dma_transaction_type tx_type) +{ + return dma_has_cap(tx_type, chan->device->cap_mask); +} + #define for_each_dma_cap_mask(cap, mask) \ for_each_set_bit(cap, mask.bits, DMA_TX_TYPE_END) =20 --=20 2.43.0 From nobody Thu Sep 24 13:42:07 2026 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011029.outbound.protection.outlook.com [52.101.65.29]) (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 8965854CF5B; Wed, 23 Sep 2026 16:20:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.29 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790180420; cv=fail; b=jX6WhZ8i70+SN+OCDtDoCLiWIvQFX8/VBoBHP7RfI3PDTgUMGbDLJoQs+o5srFKLXqCW0YzA0oy/osG+Fmwlt8L+hTDU7zs5ayqkavfJL9PoEuveBM+66OT/jJj56L3X35vcQ5zrQ+12/IeHbBoE3juX71iGl/2GIu5bUvSOxEI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790180420; c=relaxed/simple; bh=ZS5U/4k6NodneT+wW5hlcRXa7c+RqecOtxGstNYglJE=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=dts8lZtnar34SQdEUMPPINcI+gmT0kF39Y1liLjNruFI/jZbb1mDDqyENZt9V6GJitzlV9NGqpe9I8C6e17+k01W9ah0PWT7iT4d1JnaJ8CMHH1DOi36ZsJ0RDJ7k6pFsdy7Y55ggndPtChnLCwH+wDL3jTyW0Im8YZWfpDY5CU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=fKRPg7Oy; arc=fail smtp.client-ip=52.101.65.29 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="fKRPg7Oy" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dSAxLCuCeETuS/cr961ta34F8hIP+66bq5Yci+pbaMqs0ht7jkENK2VUl1EZVAD76qcFnV/OOwVMs5rv7ggIicdodAjnOM64HUrAsgjhTNEG6Jwbt/YtZBCHjNVPU5KMzSh5wRaNhHSiv+6YyX3b3QkE/13Mm2Oh4dgrCNHaay9sG3lNf3hEamwStq40pIbEDX9F0yOWBgPfCCCk+UBMyEjTFCdyetxo5H/jgdWqNPU8Mz2mNFR/sf8KdTxYiuZibdaddLtDuKOW81k2lkM6ytoqSzrAnDb48uzDqddOABBfjmU6cOF8vRG6uHxHAax5+arKgwd61u8+rGqHnMMmtw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=F+9xfVgONIsZjfEJTqGA2HL3WCL+KQlLCpYmqvNdR3s=; b=kONAUKNN4+A7NYru0p3EC/EffBWUckVqY+qvBYDw5S/jj+XozO5eO3yAad/TMZLtUhLsXCCpsBIa/stLG+IaIphugJ6YTUd69Toalpr7KZqjZHd1YClV+9eRpdZPrMlbqkzzsyA4Pkm+cJv7Y92x6ex5mMLqSlPe1SBTs9i+jszCt8oo+v7fJZb7+d0y1R8wf4IJ4ciBcvl5xRKhzODnHfMQGBYYw4rfilX+tsNFsgMhJOnDVBDGwRnJWrQOwb1KnOZBbFyKTwShtZ2Oaxtq8JTMJDoIbZEHmkaleiKhupLIF3QW3WTop23Fc752r3YAxSJXrwYpsEdjxoIK6rwMZA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=F+9xfVgONIsZjfEJTqGA2HL3WCL+KQlLCpYmqvNdR3s=; b=fKRPg7Oyq8geCQuImQmSfJBJ1oczmdbl73vZiqihaJ5ERxKz3GfinRU2oF1bcrZWSVx4SmSfuT7Exlu7IyP3Xgvt5tidm1Lanvz9qmWfwNKYcMNqsa1iIMWn41r5oW0Wx1BOF9gRwdRnh/9ALb08KXvtXD4DUetZCtOILG7RTWMkrUdCHZ4NnBV3eK54whw9KUYvBiGuPbKNp14AomWsWnoywbAc0kQWf53N/c6scnpQcEEOQxFqE6I35xV1O4XexwfJugMAChGZxS4L4BI+450kBA5pS9f8mw++toBrH2Z9/WidC7mf8XvfadXJ8Sf/qNj80r2fC40uQGnezpUwlg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) by DU4PR04MB10433.eurprd04.prod.outlook.com (2603:10a6:10:55f::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.17; Wed, 23 Sep 2026 16:20:15 +0000 Received: from GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c]) by GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c%7]) with mapi id 15.21.0428.015; Wed, 23 Sep 2026 16:20:15 +0000 From: Frank.Li@oss.nxp.com Date: Wed, 23 Sep 2026 12:19:36 -0400 Subject: [PATCH v2 07/12] dmaengine: add dmaengine_get_max_xor() helper Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260923-dmaengine_prep_dma_pq-v2-7-32ed65b8a9b4@nxp.com> References: <20260923-dmaengine_prep_dma_pq-v2-0-32ed65b8a9b4@nxp.com> In-Reply-To: <20260923-dmaengine_prep_dma_pq-v2-0-32ed65b8a9b4@nxp.com> To: Vinod Koul , Frank Li , Dan Williams , Herbert Xu , "David S. Miller" , Jon Mason , Dave Jiang , Allen Hubbe Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-crypto@vger.kernel.org, imx@lists.linux.dev, Frank Li , ntb@lists.linux.dev X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1790180376; l=1223; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=LNNV7Bgrn+0vp2g6IdYTuXEoC8S9OlxLNLCMVkkCNmI=; b=iWGtDm0JSPjY7qnT3h+AY50RGFV1unM7mUMHfQgYMBKTjfEWX/iMK21g+5Vn/H6jQloUGI6qS e8eSj/ZtoJ3DPXPyLnh9b0R8KXsANZEcBXzKL1y+vkuFq9rHRJlF7ai X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: CY5PR15CA0229.namprd15.prod.outlook.com (2603:10b6:930:88::20) To GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB11799:EE_|DU4PR04MB10433:EE_ X-MS-Office365-Filtering-Correlation-Id: 1b96dfd8-f511-44fa-8010-08df198e8d38 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014|19092799006|23010399003|18002099003|22082099003|56012099006|11063799006|10067099003; X-Microsoft-Antispam-Message-Info: IIjHxpKIeiiGktcsz3Q4ioQAhPz6E9jqIVXFGxeTmPnXFer7fF2EMHcXMlOcGeKD4+HLh8I2oxl9kgr9cfi8PJVSMuLMji0YonNX8XGd4B4qmfJUAtZotF8tHYbv/7TOfWb22AVXKH/u9dULx0sS9oFw7YJOhMtYB6m4fFxfK+fP8n9HrMq67oI0zvdcO1XLIJbipadU8Ip+0BOMtt9Dzmpigv7rpHWkaSc7dXfye6h8r5hWMsedIVLBDfvBI0RoIo7eQF6z2o+FLTbOu4a61Ig2dmGF+eHcHEh8zsbVjEJODqDgKM2SJA8CzA22vCdRCYQivDK5uc7UuByRmz3L+T/EzYamyXHpctJZqBQoyG3CIt54EeHlSUOSY5FJR6ftO37s098873lrADH6WC/6YOVMYx+ou2jcdicGGW36h4FuNFgB2gYWCUd94slgauMmZFnA1B5Zrr81vfPuHXDfbJ/AdDrUKDeSBbop4PcXXqc3o+Oa4OZXWg1CooCyr9GuVk9lnSBqYx3odrIJgMzLRaT7Ny9crRJM8FSFxI6pcuLajuynH2obvanL8Kk5aTtu4DliYl8P6CNMCMSIyRYJ7Wq60S/RwmsXxpf9grfTHYTycT7iQPJoxojgS/DhI8gv4DuM1gZ8PGRKCP6qdCM7BBS0P9fG2a2upVU8JoVBTuo= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB11799.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(19092799006)(23010399003)(18002099003)(22082099003)(56012099006)(11063799006)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TE5CNHE4cDYybGxCQnlTTFk3MGNyVXRXdkZmSzc0a1lpNGx0RzJhRkx6SFBF?= =?utf-8?B?SjE3c2JwbXQ3MCt4Vjh2NElEVUtZdE5LZXZMQ2ozVUdqaCtRZHY3VEJsbkpQ?= =?utf-8?B?TWNBL1ptK1VVTXh2eU9zZ3h5Y3FNTnZyTHdrMEprQjlpOGI0azFYdzZVSzAw?= =?utf-8?B?QzVjTld6bUJCdlRqb1J2cFFKK3VMTTBaeHBrWEUrQlV1YU41KzJtUUpKMWFW?= =?utf-8?B?RnJMUSt3aHZBREFJVm84YnhjYUhsMUlicUlGd2x0SE9WVCtuYkE0cityVjgw?= =?utf-8?B?SitKUCt1clNxc3IyaUtnanlFVXFmTzNiMGRwY2kxbWRuL2ZtZWdqUitNbkNJ?= =?utf-8?B?dVNNb1F0dWlVVFRqbGFQWWdWc0dTRmJtanlxSHNJRFBvTkp3UUEweGpoUnk1?= =?utf-8?B?cnZ5aXZqWXhyS1NIdE1BUWtIbTUxMkZ0enpGdWt6Ty9VTy9RcENXMUJKNVM2?= =?utf-8?B?UFhQMzVwcFl2M1dWZXVxSkh1bm9sUFkvcHZMR3lmdWZrR3NWSVA3QVhBQlM5?= =?utf-8?B?ZFdHTUl1dGxHQUZVQXFhc1R0b3VaL1J3UXpiVW02bThhZHlFZkhlSVpqUjRr?= =?utf-8?B?ekVnV1ZhTUpWUjY3Vnc1YkJmbXo0VzdHVmJXUElXd2NwMWVEMm5EOGtWL1ZN?= =?utf-8?B?Y1ZLd3dPa1lVOUVmSzZxWWFaS1Z3SDBMaXN2U2NLRXZXRHpONkYxcVAzL3R4?= =?utf-8?B?TWpYOUpnRzNvcTNGM01STXZnMDJQVVh3MVo3V0s1eXVoRmJZVmVlRFNTM3Rn?= =?utf-8?B?OGhRR0NDT0xoL01zQWxTaE9MSCtnRHhVc2FGcFJZZXU0QWcySmlEQkMzcmdH?= =?utf-8?B?QlloVm9ZZlplK0dCNWF5Ni9pc1dJcWlQMmFPazVzdUlXUTNCdXlzcEZjdTQ4?= =?utf-8?B?Z1Z0RURVNGpDNGZxMkhEWFo3NHk5d0tCY2Q5TlViQ1FxQ21wLy94MElZMDlI?= =?utf-8?B?T1FKbnVaOVRlTnd6OE5KUFBaRVVzb3dIU3dWaUp2b0xPL3c1ZEtHMzdrWFJD?= =?utf-8?B?S2EyZnFMNU92b0Y2SUsvK0lYS3Nta21ZYk9iZy92a0JBV00yN2RXU3hjcW9k?= =?utf-8?B?dFBsRXlwbWgxSzlIOXBxTjVKVFF4SnowUUJLTzhST3czVmdRV2ozNGJNaVNJ?= =?utf-8?B?MjFxakFzVGpNV3hjN0xsajkyT1JkRWV4VEJ0bXROUER1VEl0SXlrYTlhRHFE?= =?utf-8?B?dnlmUm1aZGM4R3JXZUFkQjJFeVFBTGtKbTNFUVlmZzI3YW5ielJlZFJLN0dp?= =?utf-8?B?SXd3VDJPZWxMakRiblFMVlhDZlMrMEE1a1dPYTRGelUrVE5kMEdBUERXaE5n?= =?utf-8?B?djJHdmhNZmlYM0VVbVlRbW9LWnRmekRhc3lIWDlrN0hxUHRqK1VTT3JuOWor?= =?utf-8?B?Wnp6QzRZYjJQcnBHTDZDUUxMQWdXaVRqazFSYlFkOFNRSlJhdWdJZDRBQlNr?= =?utf-8?B?WHFoRmg2OFRHY2ZXQkd6bytObC8zb1dEZnloUHhDZWIzdllhY2t3K1dEak5a?= =?utf-8?B?K0xHUk5aQXJHVTZCais5RWdhNHNkdDdvTVE3MFhiRjc1ZlBSc3VXNm1kb0VI?= =?utf-8?B?c1RUUzFzTzUvWEJ5NllXTUxIQ3VRMmtJdFZLdUNQVTc2Q2dqcEcrMDNIeVVW?= =?utf-8?B?WnlmbmFFVGlvVGxtNm96Nis1Qk9WTUM3WHEzNHA5akhzeVZHZXAzWUhFb1FF?= =?utf-8?B?WjhsRjVMUURtSnkwWXpFRUtwWW9acmMwbjFzaFdDUFBNN3JJVU5DbkRRQ2Ix?= =?utf-8?B?bHExc2hYWjVaZXc0bTArTzVVNnBHUXk2V0hQRDcxSC8xSVdsb29zeis2TGFh?= =?utf-8?B?MGhWUENPNjhvbUNYVWtPbVA0V1V2a3pFeEp5bnNjTjROU3UweTdGaHI5S0xl?= =?utf-8?B?VkdmaFg4a0tnTEQxNzFudXBlcXhHOWlRNFlnWldCZTJSQWl0OEVmRXZESGk4?= =?utf-8?B?d3BGN0VLR3lnemM4WTJoWWxVYU4zMkZuK1Vud2ZocmFIN2ppVEFLU1J0d0V5?= =?utf-8?B?M2R1aXN6TGdxRCs0R1Q3K2Y2UFJkRVRzUnhrcktqTHJVOEgydEhTK2NiZVFv?= =?utf-8?B?ck9EMFg5VG1adFIzTlJZN29oU1E3dW8yeWJ3Z3RwdXZNLy9RWklvVnZsQTJw?= =?utf-8?B?WjJTeHJmblhNU21IMHByNXU1dEx2dmdJV0J2Y0JKK01teHZXVUZFcmpjUE9Q?= =?utf-8?B?YzNXZy85LzFFemxqVkpmS0tBWnZkRVd2Y21ST0pGVkZHSnJJRC9HdlQwSFY2?= =?utf-8?B?eS8ybytZMW9kR3Y4WnV5c0RuZWxXemlUbjRpVkpubE9ud096UUQvUkdhR0Jr?= =?utf-8?B?eW8xSFZQSmlRTnBMSzY0MmczSnlma2NKenZLUUgrVUlJSTIvVlgxRHo3Znd6?= =?utf-8?Q?mEa5L/XktTrgiOgYZtN59RAmJ+4B8b/ECXu86?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1b96dfd8-f511-44fa-8010-08df198e8d38 X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB11799.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2026 16:20:15.6808 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: xWo1QjS8mrWVL/vG2WDzY1KWFwNTtKFPIls4GK5Gu/bLEBxjbSNqwaDHsJBNi7DAvi8nRWNCcePNWtj9dZMzGf9n1mY1JD7AAvIARDpBGyp+aYil9JmDjBMZNSxa0lDm X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR04MB10433 From: Frank Li Add a new inline helper dmaengine_get_max_xor() that returns the maximum number of XOR source buffers supported by the DMA channel's device. Returns 0 if the channel is NULL or does not support XOR operations. Signed-off-by: Frank Li --- include/linux/dmaengine.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index 7fce44bd7c049..a4c9eef369cb4 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h @@ -1232,6 +1232,21 @@ static inline struct dma_async_tx_descriptor *dmaeng= ine_prep_dma_memcpy( len, flags); } =20 +/** + * dmaengine_get_max_xor - get the maximum number of XOR sources for a cha= nnel + * @chan: DMA channel + * + * Returns the maximum number of source buffers supported by the XOR engine + * behind @chan, or 0 if the channel does not support XOR operations. + */ +static inline unsigned int dmaengine_get_max_xor(struct dma_chan *chan) +{ + if (!chan || !chan->device) + return 0; + + return chan->device->max_xor; +} + /** * dmaengine_prep_dma_xor - prepare a DMA XOR operation * @chan: the channel to use for this operation --=20 2.43.0 From nobody Thu Sep 24 13:42:07 2026 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011048.outbound.protection.outlook.com [52.101.65.48]) (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 BBAC324468C; Wed, 23 Sep 2026 16:20:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.48 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790180426; cv=fail; b=aNvJveZV3/s6tkt1n3kcJRecMdh4gK89p+2gyB6lgikvG05a7zi6Nb/FKp/bQWC367yPwwoEDAuFanQkYqIHrOJPmBgX6bJE97Cz1c5Qw/jpT5c0bNen7d+KaB2WQjH0ysWGAl6ZgkONrleZ+9K+ZHnQN5I5mT0lo7b+57vmWCk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790180426; c=relaxed/simple; bh=+oG4cvy8b1liucyyY5sVexOeTvzgE4qX32ozTkX/vsA=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=C/XfVCwoaDSPVdDEzI3dDMbG9TS4V5ELQH+uJXltmEafmCS30I5L7zmikU/8CQkhxv5rZ8aZZ2/c2uQVC435BF+t9LYMtfozDhKaURDtez6WCw8toRz0wSoFNOYO0ccbzLFKeFGqZESrKHdw8x9SB01kV0gwYXvdnQqMHgGkaUs= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=WkRWTmUI; arc=fail smtp.client-ip=52.101.65.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="WkRWTmUI" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XFMtqj/jrNU3jba745am8GgPBGJno1UXd9rWNyZO0YIYAvG9sJd5Hoqj43HBslx2cn0mdO9j5lZLiJvXorkSKTlP65ekz8GM6BKospk585h7fDf7NIdGRCdWLzrjc8p4QdRtiF4dSI2BW9w207tMnGADMktqp/j1Xny21iEMVT1NngmJmZmIPqV7PzuXowYnarTrOYV+IYTMO24JmwinUrl/ls9/KcpY2ugalu0u2yY6YqTYdzBMwK4FbX95ZE7xJW3hMlC2LCFON0BvW2y0GBOzjZkjXR8A8XPE66H0aq8x9fiKKofJL4shV4UMkmPxOBLobU+Dhg+byfpNhmS+aw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7WcmjIwTO2Lr14eR8Q9YwpWPDSklhnTJzPvrSRgt6BQ=; b=SW7TuXl39Vr5oQcCI7mjcaBHCmOn1vS2OL53ClDIBBpbOloMRblKdvqUemCOPE3AdYZVSZE6ydaq4Y3TRNNkZ0Aq81t0SMXBmsOLTT5QTcaMFu/lpmBB904tN/n2wiSxQPZKHqH5q0RwZzGkMmKGBghC2UtuWeTldTo1UbO8inJl8bdM3ZJmuBjx9SYbDBtq3WLJIgV0F9DiA1u/EW3wQQ2PjChlD3s1tJw7KNiN7hZtoAW1fLUuRNJk4uYSJ8mK4b0rL9fgGx581gq+4XCUd8e4pZvbagKTD/XxlwbhaZDMG5Xuvz548pC3jE21lFThEp6vGkWURgJjmeKWgFJ2Yw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7WcmjIwTO2Lr14eR8Q9YwpWPDSklhnTJzPvrSRgt6BQ=; b=WkRWTmUIfqGpacfc3/LQLXhyEtaTdksPW6sDn7OQaJyzp5V60gJm4t1zbGWBPIep6ouJobc2Qo1HLJAtkhe9JLMVq4QL3yI6gpiGK8ioLCbYcNdakFG9MdF554++GAU2siplcHYol0Oen0vBLO84jK4dWeGKj2oHkVk2R8K5d5FWxZjCNf7mI7nggsN2yNnagvEMQfv2Ygimu8ZbouPNkw0JLv2sMc3Mnwc/C457JttdLySxy2emkBMus+PLJElVUeBfh+TalWkV1yww4VXkGktt0ws+9mjYAjYSQbpt1ht50f9JPtHhLk7fD3clSduvc35lm9ktjcVghdwNVqNlVg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) by DU4PR04MB10433.eurprd04.prod.outlook.com (2603:10a6:10:55f::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.17; Wed, 23 Sep 2026 16:20:20 +0000 Received: from GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c]) by GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c%7]) with mapi id 15.21.0428.015; Wed, 23 Sep 2026 16:20:20 +0000 From: Frank.Li@oss.nxp.com Date: Wed, 23 Sep 2026 12:19:37 -0400 Subject: [PATCH v2 08/12] dmaengine: change dmaengine_get_unmap_data() first arg to dma_chan Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260923-dmaengine_prep_dma_pq-v2-8-32ed65b8a9b4@nxp.com> References: <20260923-dmaengine_prep_dma_pq-v2-0-32ed65b8a9b4@nxp.com> In-Reply-To: <20260923-dmaengine_prep_dma_pq-v2-0-32ed65b8a9b4@nxp.com> To: Vinod Koul , Frank Li , Dan Williams , Herbert Xu , "David S. Miller" , Jon Mason , Dave Jiang , Allen Hubbe Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-crypto@vger.kernel.org, imx@lists.linux.dev, Frank Li , ntb@lists.linux.dev X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1790180376; l=8898; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=fRO/zAbN0HV4i2hgLUM9a6WbjcLqW1TTykcDIsJLio0=; b=r89fRIZej7kdUbIiTrWKVf173SfOv80yMxCAC4hmNxofKscnqtffIvaIxYrPkA9urfJ3xnmni Y4ywiabPnNfC9zXVV58few7NrVA7qcIRuiHhow5tO5cYrPdbUz4P9vT X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: CY5PR15CA0243.namprd15.prod.outlook.com (2603:10b6:930:66::14) To GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB11799:EE_|DU4PR04MB10433:EE_ X-MS-Office365-Filtering-Correlation-Id: c0e4cefe-d1cb-4e29-d953-08df198e902e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014|19092799006|23010399003|18002099003|22082099003|56012099006|11063799006|10067099003; X-Microsoft-Antispam-Message-Info: IrzBxKaFLNNgLs0Dt5I9re238xeoU9lc/wijBMgy/VtJMPKCtWcCC76+CKk9SnsDBCSqKJSr3B4QNwoCCvMnmP66V/Ldaxrrxi1r3EAfLxJtX11TL2LeJrdngJ9e6pNCPToCCfhaIWBHb0aZQvjZ9tVYM2b7uaiV1RVk8EydOKwsMu29NywNZXhhekOTumEvEetSGxwzkaxTUnbe8nGpwiP2erNjTFhRPLY4SsGXmwQyaystnxcJA43PIOpDfeaO4MwYvwgEHvAFzT52K7giPhU+GHXLWovfwoaQz9kLoYjZ+ajpXzTEhmA2e8ACzClvxeyiPtV7Km6PdTV/z3JPLmLW7qpy9D1TPkkhZwcVEL9a6ibeRAQFv34Q/wWE4DWjIox3coZAQEkTk6wyin8o0VMqVVcao8Eu/ohjhEro/+NjgXm7mzI689hTYMas1ID3PLfSq/8QE4oBXsK5KwzE8oVUPRVzny/CzbOeOkBoTZlqZfa+hukWgJQBLgsLJkq98vy5CmYjG0kNl43BeF6UD68cksyGqSDdpJJCs7CM4xjAEVd9eBUgHscVzqFJpgZUkKrIb23XSptJVuXwYLFpecQVg4eEzMarf0gVQapBY0aUhR1MG8L/8aOFFf/4TMxg X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB11799.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(19092799006)(23010399003)(18002099003)(22082099003)(56012099006)(11063799006)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OCtZenVOVkYrZTluSUVDZXRURVkwY0pURVNwcjVjazJMRnhmSlJGSXBab253?= =?utf-8?B?UDlZRGk5MnYzTEViNEQ5d3FuL3dxdEJJSTQrcXV2T05tbmg0UTJhWFpCU2cv?= =?utf-8?B?VnpDeDk2R0d5TUlEblFGSXRxTlNqQ2x5N1N3SnE4amxtQ0xhaitpWU1tVFhX?= =?utf-8?B?YnVBSkx3NUcvS3FLaHhDNmMzUTRYSS9GS0JqY1R2NGU3MjJEUGNVd3lhTWF6?= =?utf-8?B?dmkyVk9sVHFYUFNuZVNROE9Sc3d1elpmWkNVL3M2ZDBHeUtjMm00QThJVlc5?= =?utf-8?B?cFBkZTNOUEVzd3NQc0JHVTBFbEhiU1dwRTNYWVFVZzRueDJFeDZrTFMxTHhD?= =?utf-8?B?SXd0NlhhK2tqS2lRMmN5SHN2TkEvbXFCa0thNE02YzArbDV5SFNKTW10L3Bk?= =?utf-8?B?aFA0Z0h3UUJma3dYN3hINGZ5MllldWI3Qllidnl0SlU0bmJKVThPYis5WXps?= =?utf-8?B?dEVMUHRWb0RPSkpiR1lxVEd2YzczbVJWZUxQM3BFOTRrak8xTm1TRFhOdTR4?= =?utf-8?B?dHhVNllEdTJ4VSt5d2ZpREg3NElta2paM0QxL0tmTGt3cTBBUjgva2ljWW8z?= =?utf-8?B?NWVWeXVKNVF5MDNpSzlpUmxWNW1sOUxtbTdvQTNWTE5NWVVJVFo5aWVJTDZk?= =?utf-8?B?bENKRUg2eGUyampTNTFpZ01pd29Nekc2cXgzSVBMUkZrcDhUTlJlSUVOYnhQ?= =?utf-8?B?Rm9zL1hNMDZmNnJMVzU0bFBMTmJ4cGJXWUdLMWJvZHlzcGdteDZrQjlhank5?= =?utf-8?B?Ni9aZTlPaEVwUm5EckMwN1VjU0RJWEtmMDE5U2kyMHFLOHFhVDVHbWxvSEx4?= =?utf-8?B?R0k1eVk1UDZBanljK1ZaS296NjRkeDZRRmVTV1RNQUt4QUEwTW1FQzB1VUxV?= =?utf-8?B?WUpQVzQ2U29UUXRSVGNXV1gxKzgwbnY2RHNUWVhrMmRRL3EvcVgzU1orclBZ?= =?utf-8?B?b1lRNzBsZjVKQzhtd05sNWFGWS96S2xLdFZ4Mnh3Um5FNjFUVXVJQkQralNO?= =?utf-8?B?MUVQTUNhRVJ6RTZDeFF6TDE3V2xOeUtrMHh6MlpmYXZ6N3UrRVBxRUZSVm9Z?= =?utf-8?B?NHZvanVsMEZQcUpaQU1TN0IzWFdIWkx2Ymlac0t2WUtiQjN3dlM4Q3gxQnBw?= =?utf-8?B?U0NyM0xuTTlWK04zamh3bjR5b2U3NXdhL2cvTzZYZkhKNDJTWFhoby9uL2ZE?= =?utf-8?B?YmZURkFORXJsMHJQbGR4ZXhEU2JTNk1SdEU0V016aThZSUlOT0xrT05Dei9S?= =?utf-8?B?enFEY2MrQnVHbkJCd2IxY250REdXSFdUbVlDVmw1cU44YzBkZHpud05rSXNl?= =?utf-8?B?Um1LSFJQeTY2Y1pSNUxrRi80dGtxM2hxeWlHOGxURlB5V05oTkpoOWdDK3Aw?= =?utf-8?B?a0RYa2pTMWtodTEwTlkwd3pHcTg1NmJsc2xkbnZ0Sy9jdmtqR3JFVzEzRzI4?= =?utf-8?B?QzBGbkhiWDU5enA0YXBwbDF6eGlFb3BsZ1dyTGlDcEdMTzEwck93SGk2eGpq?= =?utf-8?B?V012L3QwV1JLS2RXNldReisyTzJxYWdMSEExSncrTUNpVTRIbWlSUVA1NVV4?= =?utf-8?B?clpXZjRYZTlNK3pmenVRZnpySVAwNk83UFFQYlFPZ24wbTQ2Z05lbjlnNGRZ?= =?utf-8?B?NjBMNkFoRStQdnBGYXg3dnY2a2RVQ3FrMTQyQjFIM2QvZ3lTM1FUdDNNM0k2?= =?utf-8?B?dnBzb0E0aDVmVjdrRUlOeDBBWUtsZE5SRmZDK2Y3a0JaeENXU1JlaEk3bUIr?= =?utf-8?B?OE52U0VpV1RMOXJ5RGhqN3ZZTVRhbWwwRWF4OXBHaHhFc3c2dUZXSzI0VUV4?= =?utf-8?B?Sk9ZOGFFZ2cwWWFwV05IMVJZZkRCSDBDUS9ydU1lOWlVOEFhaTRDN3lobEll?= =?utf-8?B?Ly82YVFkOVdwWVFaUnJpL0gyd292SkJ6MnNKVml5VmV1OXhWd1Q4eTJjSDZh?= =?utf-8?B?d3RSUGNFQk4rVjQyUGlUaU45MmpiNksvSmJQYmxpd2d0ZGoybUdrM1NyTkpC?= =?utf-8?B?aS9qVGNNRHhnSFdsVXlrc2FFa2MwVTl1c2x4cXQ0ZDkzQW5QZmdoakM3TTU4?= =?utf-8?B?ZFBBOXlCazNiK1JSZ1puWU1LYmRWM3E5VlFFK1BJcFM3MmI5YWNXaVlKekxR?= =?utf-8?B?SGYrVDVWVlJSRXNITnpwTDRwcjBIejA0QVprVnZiUnBhbnFnSldZampOQS9r?= =?utf-8?B?ZnBUbGlkc1pCZUhuNS9UaU5SWjlmUHp4Y2pubmVxQkhnSUNKV0NkYzBrNjB6?= =?utf-8?B?T3lobkExSGhUYUIrS3NzTk5KcXByeFNLcUhQSDlxaWt2R2hJZ21NVmhqWVhG?= =?utf-8?B?dklhKzVKUkl1ZEMwNUxadDFNWkJBOWtaZEFUUnpQK0dSdVRPekY5R2JSV1Ri?= =?utf-8?Q?/8e+gPYRBdgBQTTbeeXGGGJPq1cu6VxRt7mvG?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: c0e4cefe-d1cb-4e29-d953-08df198e902e X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB11799.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2026 16:20:20.7644 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: cvtMthAJEFIJ2h4v/7ZVIULVHBXTBcwnCfHOO1lMiuMZkYiUbcBoUCoOZvyZTlrLVGWaPE4jYvUhhmK+/gnwpTZMXgb7et/kBV9P2Flqv9siUzgVTDOq1QF5nHwrtD1h X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR04MB10433 From: Frank Li Replace the struct device *dev argument with struct dma_chan *chan so callers do not need to reach into the dma_device internals to obtain the device pointer. The implementation now derives the device via dmaengine_get_dma_device(chan), which correctly handles the per-channel IOMMU mapping case. Prepare to make dma_device private and make dmaengine API consistent. Acked-by: Dave Jiang Signed-off-by: Frank Li --- V2 change collect Dave Jiang ack tags v1 version at https://lore.kernel.org/imx/b40fa0d7-fbd0-4ee8-b99c-781d08c18838@intel.com/= T/#t --- crypto/async_tx/async_memcpy.c | 4 ++-- crypto/async_tx/async_pq.c | 8 ++++---- crypto/async_tx/async_raid6_recov.c | 8 ++++---- crypto/async_tx/async_xor.c | 8 ++++---- drivers/dma/dmaengine.c | 4 ++-- drivers/dma/dmatest.c | 2 +- drivers/dma/mv_xor.c | 4 ++-- drivers/ntb/ntb_transport.c | 4 ++-- drivers/ntb/test/ntb_perf.c | 2 +- include/linux/dmaengine.h | 4 ++-- 10 files changed, 24 insertions(+), 24 deletions(-) diff --git a/crypto/async_tx/async_memcpy.c b/crypto/async_tx/async_memcpy.c index 53277271f063a..49ee66759c7e9 100644 --- a/crypto/async_tx/async_memcpy.c +++ b/crypto/async_tx/async_memcpy.c @@ -39,8 +39,8 @@ async_memcpy(struct page *dest, struct page *src, unsigne= d int dest_offset, struct dma_async_tx_descriptor *tx =3D NULL; struct dmaengine_unmap_data *unmap =3D NULL; =20 - if (device) - unmap =3D dmaengine_get_unmap_data(device->dev, 2, GFP_NOWAIT); + if (chan) + unmap =3D dmaengine_get_unmap_data(chan, 2, GFP_NOWAIT); =20 if (unmap && is_dma_copy_aligned(device, src_offset, dest_offset, len)) { unsigned long dma_prep_flags =3D 0; diff --git a/crypto/async_tx/async_pq.c b/crypto/async_tx/async_pq.c index 3a7fd90556501..580936eecba1b 100644 --- a/crypto/async_tx/async_pq.c +++ b/crypto/async_tx/async_pq.c @@ -187,8 +187,8 @@ async_gen_syndrome(struct page **blocks, unsigned int *= offsets, int disks, =20 BUG_ON(disks > MAX_DISKS || !(P(blocks, disks) || Q(blocks, disks))); =20 - if (device) - unmap =3D dmaengine_get_unmap_data(device->dev, disks, GFP_NOWAIT); + if (chan) + unmap =3D dmaengine_get_unmap_data(chan, disks, GFP_NOWAIT); =20 /* XORing P/Q is only implemented in software */ if (unmap && !(submit->flags & ASYNC_TX_PQ_XOR_DST) && @@ -310,8 +310,8 @@ async_syndrome_val(struct page **blocks, unsigned int *= offsets, int disks, =20 BUG_ON(disks < 4 || disks > MAX_DISKS); =20 - if (device) - unmap =3D dmaengine_get_unmap_data(device->dev, disks, GFP_NOWAIT); + if (chan) + unmap =3D dmaengine_get_unmap_data(chan, disks, GFP_NOWAIT); =20 if (unmap && disks <=3D dma_maxpq(device, 0) && is_dma_pq_aligned_offs(device, offsets, disks, len)) { diff --git a/crypto/async_tx/async_raid6_recov.c b/crypto/async_tx/async_ra= id6_recov.c index ed5c5eb126990..4f223fa36c706 100644 --- a/crypto/async_tx/async_raid6_recov.c +++ b/crypto/async_tx/async_raid6_recov.c @@ -28,8 +28,8 @@ async_sum_product(struct page *dest, unsigned int d_off, u8 ax, bx; u8 *a, *b, *c; =20 - if (dma) - unmap =3D dmaengine_get_unmap_data(dma->dev, 3, GFP_NOWAIT); + if (chan) + unmap =3D dmaengine_get_unmap_data(chan, 3, GFP_NOWAIT); =20 if (unmap) { struct device *dev =3D dmaengine_get_dma_device(chan); @@ -96,8 +96,8 @@ async_mult(struct page *dest, unsigned int d_off, struct = page *src, const u8 *qmul; /* Q multiplier table */ u8 *d, *s; =20 - if (dma) - unmap =3D dmaengine_get_unmap_data(dma->dev, 3, GFP_NOWAIT); + if (chan) + unmap =3D dmaengine_get_unmap_data(chan, 3, GFP_NOWAIT); =20 if (unmap) { dma_addr_t dma_dest[2]; diff --git a/crypto/async_tx/async_xor.c b/crypto/async_tx/async_xor.c index 06c48e8cce834..0fb29da2235cd 100644 --- a/crypto/async_tx/async_xor.c +++ b/crypto/async_tx/async_xor.c @@ -178,8 +178,8 @@ async_xor_offs(struct page *dest, unsigned int offset, =20 BUG_ON(src_cnt <=3D 1); =20 - if (device) - unmap =3D dmaengine_get_unmap_data(device->dev, src_cnt+1, GFP_NOWAIT); + if (chan) + unmap =3D dmaengine_get_unmap_data(chan, src_cnt + 1, GFP_NOWAIT); =20 if (unmap && dma_xor_aligned_offsets(device, offset, src_offs, src_cnt, len)) { @@ -311,8 +311,8 @@ async_xor_val_offs(struct page *dest, unsigned int offs= et, =20 BUG_ON(src_cnt <=3D 1); =20 - if (device) - unmap =3D dmaengine_get_unmap_data(device->dev, src_cnt, GFP_NOWAIT); + if (chan) + unmap =3D dmaengine_get_unmap_data(chan, src_cnt, GFP_NOWAIT); =20 if (unmap && src_cnt <=3D device->max_xor && dma_xor_aligned_offsets(device, offset, src_offs, src_cnt, len)) { diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c index cc1c0a7c9f33d..4585ebcd2e8cd 100644 --- a/drivers/dma/dmaengine.c +++ b/drivers/dma/dmaengine.c @@ -1474,7 +1474,7 @@ static int __init dmaengine_init_unmap_pool(void) } =20 struct dmaengine_unmap_data * -dmaengine_get_unmap_data(struct device *dev, int nr, gfp_t flags) +dmaengine_get_unmap_data(struct dma_chan *chan, int nr, gfp_t flags) { struct dmaengine_unmap_data *unmap; =20 @@ -1484,7 +1484,7 @@ dmaengine_get_unmap_data(struct device *dev, int nr, = gfp_t flags) =20 memset(unmap, 0, sizeof(*unmap)); kref_init(&unmap->kref); - unmap->dev =3D dev; + unmap->dev =3D dmaengine_get_dma_device(chan); unmap->map_cnt =3D nr; =20 return unmap; diff --git a/drivers/dma/dmatest.c b/drivers/dma/dmatest.c index 2ae3469397f37..043bb065dd68a 100644 --- a/drivers/dma/dmatest.c +++ b/drivers/dma/dmatest.c @@ -748,7 +748,7 @@ static int dmatest_func(void *data) filltime =3D ktime_add(filltime, diff); } =20 - um =3D dmaengine_get_unmap_data(dma_dev, src->cnt + dst->cnt, + um =3D dmaengine_get_unmap_data(chan, src->cnt + dst->cnt, GFP_KERNEL); if (!um) { failed_tests++; diff --git a/drivers/dma/mv_xor.c b/drivers/dma/mv_xor.c index c4e0dce3ca64e..dec01b6264d7a 100644 --- a/drivers/dma/mv_xor.c +++ b/drivers/dma/mv_xor.c @@ -794,7 +794,7 @@ static int mv_chan_memcpy_self_test(struct mv_xor_chan = *mv_chan) goto out; } =20 - unmap =3D dmaengine_get_unmap_data(dma_chan->device->dev, 2, GFP_KERNEL); + unmap =3D dmaengine_get_unmap_data(dma_chan, 2, GFP_KERNEL); if (!unmap) { err =3D -ENOMEM; goto free_resources; @@ -927,7 +927,7 @@ mv_chan_xor_self_test(struct mv_xor_chan *mv_chan) goto out; } =20 - unmap =3D dmaengine_get_unmap_data(dma_chan->device->dev, src_count + 1, + unmap =3D dmaengine_get_unmap_data(dma_chan, src_count + 1, GFP_KERNEL); if (!unmap) { err =3D -ENOMEM; diff --git a/drivers/ntb/ntb_transport.c b/drivers/ntb/ntb_transport.c index f9caa1a653c5b..e1cb55890d72b 100644 --- a/drivers/ntb/ntb_transport.c +++ b/drivers/ntb/ntb_transport.c @@ -1532,7 +1532,7 @@ static int ntb_async_rx_submit(struct ntb_queue_entry= *entry, void *offset) if (!is_dma_copy_aligned(device, pay_off, buff_off, len)) goto err; =20 - unmap =3D dmaengine_get_unmap_data(device->dev, 2, GFP_NOWAIT); + unmap =3D dmaengine_get_unmap_data(chan, 2, GFP_NOWAIT); if (!unmap) goto err; =20 @@ -1872,7 +1872,7 @@ static int ntb_async_tx_submit(struct ntb_transport_q= p *qp, if (!is_dma_copy_aligned(device, buff_off, dest_off, len)) goto err; =20 - unmap =3D dmaengine_get_unmap_data(device->dev, 1, GFP_NOWAIT); + unmap =3D dmaengine_get_unmap_data(chan, 1, GFP_NOWAIT); if (!unmap) goto err; =20 diff --git a/drivers/ntb/test/ntb_perf.c b/drivers/ntb/test/ntb_perf.c index dfd175f79e8f0..5fea36432ba92 100644 --- a/drivers/ntb/test/ntb_perf.c +++ b/drivers/ntb/test/ntb_perf.c @@ -809,7 +809,7 @@ static int perf_copy_chunk(struct perf_thread *pthr, dst_vaddr =3D dst; dst_dma_addr =3D peer->dma_dst_addr + (dst_vaddr - vbase); =20 - unmap =3D dmaengine_get_unmap_data(dma_dev, 1, GFP_NOWAIT); + unmap =3D dmaengine_get_unmap_data(pthr->dma_chan, 1, GFP_NOWAIT); if (!unmap) return -ENOMEM; =20 diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index a4c9eef369cb4..63f40b8fd3009 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h @@ -656,7 +656,7 @@ static inline void dma_set_unmap(struct dma_async_tx_de= scriptor *tx, } =20 struct dmaengine_unmap_data * -dmaengine_get_unmap_data(struct device *dev, int nr, gfp_t flags); +dmaengine_get_unmap_data(struct dma_chan *chan, int nr, gfp_t flags); void dmaengine_unmap_put(struct dmaengine_unmap_data *unmap); #else static inline void dma_set_unmap(struct dma_async_tx_descriptor *tx, @@ -664,7 +664,7 @@ static inline void dma_set_unmap(struct dma_async_tx_de= scriptor *tx, { } static inline struct dmaengine_unmap_data * -dmaengine_get_unmap_data(struct device *dev, int nr, gfp_t flags) +dmaengine_get_unmap_data(struct dma_chan *chan, int nr, gfp_t flags) { return NULL; } --=20 2.43.0 From nobody Thu Sep 24 13:42:07 2026 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011060.outbound.protection.outlook.com [52.101.65.60]) (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 C244E5519AA; Wed, 23 Sep 2026 16:20:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.60 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790180436; cv=fail; b=D+/+3del/AZ8HW8NV55iMvd1+7P6YqnpBAw3GaCAmLUpt38Rke+S3nWMxgXvsAcGukgZnBUJEwFthKw5wdxCNe691VyDMHTG2l6Ec6KWxhzU07DAYUB2EQv5SW64XcehrbC8ja+vKALQf1CpTjdWzO5S1+Jhk5PWnxjzE6yWk1s= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790180436; c=relaxed/simple; bh=dW5G7JLnP8MSPRjMRmILRvlC6OEYUNLhFv/RNFRR9l0=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=jy77zS3aFbTaoaaghvY9YgSZbcU250SxHgw7I66F3kJ50p8fBgxZb1Fvhqnwb9BMPsOyvTENGUAwuoLJVF7vVecYC+pS7t9FI5BFBYPZ1HHhosUR6wXNDGp0MXdBqPfxtpW/fLmgzxMFukluYXQ+gKSrQnnaK+OLn6r9oOOEgn4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=ftT4WKsf; arc=fail smtp.client-ip=52.101.65.60 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="ftT4WKsf" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VtCRFfbmj418EqUYP9StwLaTjlHushLyoGtPSMMptcEVzoUexWKU0kdBa3eiupCMo2n+fn07LZbpoBmktOqkYm9J+uQI6M8Pbv9yfrb12Y0ZsLy7/pXMq40zBNaMXvVJy4EHudXYarMaYHsorAGiCTNGoQiz6I055rlFEX6oIQp9ZZ4+ehWtxUQPOOFBNXTWFPzsi1vJDllvCZjT77Wkk//f4Oem2Kc+i5bUrsKHDysgUNTWV4pMhJNkNRirHFT13W1OQ6z053WeFLmZcl+Ai2H076js0AyikETgB20ve9VS7f98xgzh1otQsCBkGvR4rkikCSdLWtVZJLfvfUz28Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=bN61GqsN8eQsc5ClI3D7DCETdJGRuIO+uATScPR7rZw=; b=HaAWG0tOMKxrnhovGnw5A95i+0ngP3Bjx15C4EQYaOnxYB2qeMktfnuTzSDWMye4mm4O8/pfi2gkVziH5NaPyjYQ53aCai9UUqDsD/sNwCk6CiOznbA+e91PJI08sfAVBSepq0GHfD9iy1KZH7hCjlmerUFDDH+x/fDThj7U4uFlgww2B9ZF6GUmlour2Dy9AwT6Qs1BFXQn0djCE9V9J4TxqapaG56KhX29A/v6ag+AexNZyAEATtHy+DehwVVqdHX3lECcyYTYMQ9Q1aig5CEnejIiMoAXYwL8QwV4H0/awTFbK0s0QME6E5kWGMc+tein6IxGmtJK7jOimoUXEQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bN61GqsN8eQsc5ClI3D7DCETdJGRuIO+uATScPR7rZw=; b=ftT4WKsfzuLlIR8eMxPcLnXZHj22GBkrEfLX79APeGSpExgIf0bkYi8Br0+rGpmM3un+2hA2o8N/fDZCTfDSF+9oR5dkTw9q/kj6YqFmJZDyjZGpwzoNbvzckOaPrTm6LWtLg9GbWZa55n6H134qqC2BX3CNfHfuVmbFNrss+Kn8bprUE6qA2/Ngk2o5PacHSK83hxzJlqxWb66kNaBdq8AletVBC/ZRe9wm22AzGx6QGEwEdMWEXV5BAUHsMeF3qMX07NiIrVKPZJ+9sBgVvaI5GdE/DfDG1ebN0lBFdZKrHPnJ4PtL8k/pRTT47pYPSKmldR2FFlzPfefhmZh01g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) by DU4PR04MB10433.eurprd04.prod.outlook.com (2603:10a6:10:55f::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.17; Wed, 23 Sep 2026 16:20:27 +0000 Received: from GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c]) by GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c%7]) with mapi id 15.21.0428.015; Wed, 23 Sep 2026 16:20:27 +0000 From: Frank.Li@oss.nxp.com Date: Wed, 23 Sep 2026 12:19:38 -0400 Subject: [PATCH v2 09/12] dmaengine: replace dma_maxqp() with dmaengine_maxpq() taking struct dma_chan * Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260923-dmaengine_prep_dma_pq-v2-9-32ed65b8a9b4@nxp.com> References: <20260923-dmaengine_prep_dma_pq-v2-0-32ed65b8a9b4@nxp.com> In-Reply-To: <20260923-dmaengine_prep_dma_pq-v2-0-32ed65b8a9b4@nxp.com> To: Vinod Koul , Frank Li , Dan Williams , Herbert Xu , "David S. Miller" , Jon Mason , Dave Jiang , Allen Hubbe Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-crypto@vger.kernel.org, imx@lists.linux.dev, Frank Li , ntb@lists.linux.dev X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1790180376; l=3731; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=cI5h8Begg6H36N7sShE+QWEKUwgV9+nHvjiiqBgXLWU=; b=w/gsQLsZ1423vq4fhv9o/LhhmPVpDNTLvfUCT8g2zaOAKY1uh6f1hp311y9Zf85UTszURmppd X/u+Lx0ZyL/BuPXx7H2cwEThDZPKzjW+GaCGOxPamkeS6o0gJJ8G3CW X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: CY5PR15CA0248.namprd15.prod.outlook.com (2603:10b6:930:66::15) To GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB11799:EE_|DU4PR04MB10433:EE_ X-MS-Office365-Filtering-Correlation-Id: 0622f8aa-a810-40b6-0ef0-08df198e93fa X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014|19092799006|23010399003|18002099003|22082099003|3023799007|56012099006|11063799006|10067099003; X-Microsoft-Antispam-Message-Info: do6GGM23in+pidfsbBv9RJ5UrINidBjIIS1UoH9xkmvbzD5RehIB1csh789kSGY8DSsWD2gmrMdmmZi5LuNR+hJpI+eQPOK51jIlx5lNhbQSyDYxKxHqF4V5h7b2/Lz2pNMMKe4MV0uhk/yVSgrT+hW8X0Zsg5AjXeYoBYbMhjtCxBxkNA5v44bqZxJDDD/RpYplecyxMVKfVplf/R4qDAoFj1IXX9zQgW+RhEOEVbDnb9Fy5K4tDh/i5XlWGfXCrllaKAyiC/WvvefXcf1dT4nHhEQH2j1x7dAv2+8pyDh84j4GaKYrfkwnYCthk0k1UIK8p28LlCOqVYtMGKH/TpcK0fg8rzbnrhRlVZmpOsYsBW2H1pJlhM/XysZCCyjDUvXxOW8J7AIB1rmdP2hP7c+WQIEwLdHnKR5R6KPzWKkc5UztYXmusA7tPydrVwBKXXa9rzMk+78ZiAImTzBP/Kk9bkmuGvps1QWfCaLpoVikT2/PoBFLhZKP44pogXx+7hT+P2ZwukQ+EBjqYVQya5w2aHFtygJ07V2k195VLpbWKEA4q5o/z2oofm4EBop0st8RkP3PLs3Va4AbYYxzWhwoBwmeNr2cWUi7s3JPQ5yxbf3Yj5RfZL5qyBGm2cosPu5JXv/I9gOK7mrRmFj9B6TWa0hBsutKg47OTYI6v8s= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB11799.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(19092799006)(23010399003)(18002099003)(22082099003)(3023799007)(56012099006)(11063799006)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YkR3UEc5UXF2ZEs2QUNXYzZ0c05DSnpJYlNISVFxaFh2Y1BrZkhuYi82K0R3?= =?utf-8?B?TWhjRWJoc2Z2RmtRTkM5SkQxTWtQRzZzMnROMmppZElLZjNlQkFpTk1aRGVm?= =?utf-8?B?NjRBR1ZIV1hiWGJxV3BmQ05kTVRBa3p4NTVTVTVXOVI5cC9mbVZLZWpvTEww?= =?utf-8?B?VnVhNWlFZzVoUHZsMkFYemg0Y3JSSnJPQ0NaLzVVdGtZWnpTbS96WHVpVS9Y?= =?utf-8?B?bWhqUXBJcTlQaCtRSEJaMmhRUkJiOFFmc1VSSmVUenZTTnJhUzhuV3JGaDNZ?= =?utf-8?B?R0ZjNEJJL1RGMXZLLzhVQ2xaeG5xdVZIZWc4eWwwT0F2bUxHeW8zVUxGSmo0?= =?utf-8?B?V1E4WVZkd09OMWdHN3BrUHpuZ3dRdnNDSnpaK3RkRW0yVkM0TWp4S1A5SWto?= =?utf-8?B?bFpvWkEzUms0YitUY2drMG9rUlhHaDBXenQ1Z3NUMlVXblUybXd3NWRMb2hz?= =?utf-8?B?d2pNdXlVWUpucStRYlYyVmNmZEZseEt4M3g1V0N3dm1NYitScDJzcmNTSlhi?= =?utf-8?B?QUpJbTRFM0pYSWdpc1F1ak1ZY2oxb1VoRTZMSDE2aTlxKzZlaGtCNk1NbUpk?= =?utf-8?B?SUsxVE94dlZGR2hmUjFqME8wK2RMV09uVWwrUEp4WC9Lc0lYSWoxSXZDL2d6?= =?utf-8?B?OHA2bTN3eHhHUFBCV1VRWXcwMUJ6RkI1Z1NjcVF3OW5mS2hqdTBBQWl1M1k4?= =?utf-8?B?a0s5Yk5xdWVuSy9TdmhVOUFZVkxKRW5OaWhEdGFRampMTHVBYWNGekladHVY?= =?utf-8?B?ZkFndytBQzlkQUFZM0ZpZXg0NkpxWTVYQnhpRC9kNngxcUt3U01aMmRzNzZT?= =?utf-8?B?VnZQS3NOaVVBM09pa3ZVL3N2YkxDRU45S3p3SjcyRzd6UThUR29TNXpwNWFY?= =?utf-8?B?cEh3NUFLVzlwc1NkeUpaRnNHZ2ZPSTJtT2FjYmEyalZiZk51TGl2dDBYYzN1?= =?utf-8?B?YmlSRmh6d0xYU0JKdkNUR2liQWNQS3U1TEpqK0lqUnBscXNaMExUZkVIYWFw?= =?utf-8?B?MmNpR2NnY1lEa2gxL1ZIL0hwZjZXcTVHOXFUeEZsYThNRVpFZm1xakRzUDdW?= =?utf-8?B?N3pudTFWbC9UYXJEeFZaL1JJME5LdUJKWkNpTHBrKzY0Q3RZd0RlZTRlOWRW?= =?utf-8?B?WGVKZkxUMmIzZWFDMXJaRDh3VTRPaHNUWC9oRkJOY2l0a0FpVExFa2gwQjFC?= =?utf-8?B?MTNpZndFKy9QL0dleFJtN1dLcTJ5eURCa0lWajcrVHpBUzErV2tYdFVmN1Fo?= =?utf-8?B?UEJwbk9zUkJEVmR6V254ZFBaejF5OUpXNzlBR3RuVlgzRVl4RWJ4NTF3RnQ2?= =?utf-8?B?ZTFnYmpINm1RZkxqSENlVDJyMFZLNUdKRU90TlkyRndZWlIxcHNieWcvcVVD?= =?utf-8?B?Zjl5NEtkZmg1WTVKUU9YWVduSDRmSXpDOEZ4RWhmcVprSDJPbDR5UkZCT2Jp?= =?utf-8?B?WUZhbGhTUUpheFpWNEZLZGVXdk5WZDlRRHNmaEdJbWI0WHEwOGJlRFJDYnpw?= =?utf-8?B?RGpwdmJOenNOL2dQUTVTWFpKTkRKUnUwbGJaTFltYWltZ3VDVjJBU3BCRHdL?= =?utf-8?B?TysxaFpWa3c0M2I3dWdrZUtBNkkwUjZ5d0pWTUVsTnozTUpwbTBnRi93YlBL?= =?utf-8?B?bWc3SndQM1g4d0hsYjVPUk1wQ2pXZU1UYVpLZThLaDJxVks4K2x6Wnl4azhx?= =?utf-8?B?Vi9jNEdjbE5BMDN2Mkh3Z3BKaDJJaVZXRGRFSDlBdTZlcW1iSHJIcUg4SGhP?= =?utf-8?B?VE9LVHpFTGFleFlsd3F0RFNHZXpYbU1SMUJlN3FnLzhPWDkyaFpGRnNtOWtO?= =?utf-8?B?Q25LRDBqbGJBeDRiZ0hONlp2c1lTdXpUWndWRG4vQ0VXek1JNDRyZ2pMSHhp?= =?utf-8?B?dTYyeW9kVWtJbGJvcHc1L00xZi9jUDA2MkZkeTgxV1gyR0hkTG5ORnhoeVlP?= =?utf-8?B?WUw4SHZ5LzZMV2k0SXRTR1lJc21tRWIwVnFJQWhHdSs1azUwS1VjM3FPSndk?= =?utf-8?B?TFdRUlh4dm5ZUHl3VjhwSWt5bWE3M2M0VTdLbDBOQmN3ODFXNHc0Z3pHQUw1?= =?utf-8?B?OWpQVFBxeGhoNVdpdE5ISk1hSFl5QkJCaWN3NzdGRk85bUxKQTNDSTRPUmg2?= =?utf-8?B?VTl6c0p6dHdQN1Y5Lzg3ejcrZitxMnUrbEd1d1RnQkFhVzNrYWt2ZVY4ZCsr?= =?utf-8?B?bXBlZEtXSU9nM0Q1VHczOGFjaFZ1Sy8xbUh1cTg4a3JnaW9rSTVucDJzNnpB?= =?utf-8?B?VmtoUk9OTXFzVEVjNndRU0dDRm1IQVU0MmtQLzd5MFpQZmpET2JYMXduaklS?= =?utf-8?B?RjU4WTZ3RFlOVUhmTWc0NkU3WkhsaXlRVWp5T1V5Q013eFRPYjBrWkNKOXVa?= =?utf-8?Q?KsRIBap1gVttNkLS01cdu8pBqGWNq5j2Lb4la?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0622f8aa-a810-40b6-0ef0-08df198e93fa X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB11799.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2026 16:20:27.1623 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: oWDX9kSQ1hvr5bSKVy/THaDKmK2A9KAuTDJcsHKoOhtYkxtW9TRI5/0t25+EA9L1o+5GNNHKsYvVwYTO3acHiXUA5FbCniwsJ3ay0JRST3d+NsaJ+jQODW4c6mG7OcED X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR04MB10433 From: Frank Li Replace dma_maxpq() with dmaengine_maxpq(chan, flags) as a channel-based API, consistent with the convention of other dmaengine_*() helpers that take struct dma_chan * rather than struct dma_device *. Signed-off-by: Frank Li --- crypto/async_tx/async_pq.c | 8 ++++---- drivers/dma/dmatest.c | 2 +- include/linux/dmaengine.h | 6 ++++-- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/crypto/async_tx/async_pq.c b/crypto/async_tx/async_pq.c index 580936eecba1b..5f62f2edefe58 100644 --- a/crypto/async_tx/async_pq.c +++ b/crypto/async_tx/async_pq.c @@ -51,7 +51,7 @@ do_async_gen_syndrome(struct dma_chan *chan, =20 while (src_cnt > 0) { submit->flags =3D flags_orig; - pq_src_cnt =3D min(src_cnt, dma_maxpq(dma, dma_flags)); + pq_src_cnt =3D min(src_cnt, dmaengine_maxpq(chan, dma_flags)); /* if we are submitting additional pqs, leave the chain open, * clear the callback parameters, and leave the destination * buffers mapped @@ -192,8 +192,8 @@ async_gen_syndrome(struct page **blocks, unsigned int *= offsets, int disks, =20 /* XORing P/Q is only implemented in software */ if (unmap && !(submit->flags & ASYNC_TX_PQ_XOR_DST) && - (src_cnt <=3D dma_maxpq(device, 0) || - dma_maxpq(device, DMA_PREP_CONTINUE) > 0) && + (src_cnt <=3D dmaengine_maxpq(chan, 0) || + dmaengine_maxpq(chan, DMA_PREP_CONTINUE) > 0) && is_dma_pq_aligned_offs(device, offsets, disks, len)) { struct dma_async_tx_descriptor *tx; struct device *dma_dev =3D dmaengine_get_dma_device(chan); @@ -313,7 +313,7 @@ async_syndrome_val(struct page **blocks, unsigned int *= offsets, int disks, if (chan) unmap =3D dmaengine_get_unmap_data(chan, disks, GFP_NOWAIT); =20 - if (unmap && disks <=3D dma_maxpq(device, 0) && + if (unmap && disks <=3D dmaengine_maxpq(chan, 0) && is_dma_pq_aligned_offs(device, offsets, disks, len)) { struct device *dev =3D dmaengine_get_dma_device(chan); dma_addr_t pq[2]; diff --git a/drivers/dma/dmatest.c b/drivers/dma/dmatest.c index 043bb065dd68a..01ab33580da81 100644 --- a/drivers/dma/dmatest.c +++ b/drivers/dma/dmatest.c @@ -636,7 +636,7 @@ static int dmatest_func(void *data) params->alignment; } else if (thread->type =3D=3D DMA_PQ) { /* force odd to ensure dst =3D src */ - src->cnt =3D min_odd(params->pq_sources | 1, dma_maxpq(dev, 0)); + src->cnt =3D min_odd(params->pq_sources | 1, dmaengine_maxpq(chan, 0)); dst->cnt =3D 2; align =3D params->alignment < 0 ? dev->pq_align : params->alignment; diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index 63f40b8fd3009..34fd3bb32f86e 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h @@ -1706,7 +1706,7 @@ static inline unsigned short dma_dev_to_maxpq(struct = dma_device *dma) return dma->max_pq & ~DMA_HAS_PQ_CONTINUE; } =20 -/* dma_maxpq - reduce maxpq in the face of continued operations +/* dmaengine_maxpq - reduce maxpq in the face of continued operations * @dma - dma device with PQ capability * @flags - to check if DMA_PREP_CONTINUE and DMA_PREP_PQ_DISABLE_P are set * @@ -1719,8 +1719,10 @@ static inline unsigned short dma_dev_to_maxpq(struct= dma_device *dma) * In the case where P is disabled we only need 1 extra source: * 1/ {01} * Q : use Q to continue Q' calculation */ -static inline int dma_maxpq(struct dma_device *dma, enum dma_ctrl_flags fl= ags) +static inline int dmaengine_maxpq(struct dma_chan *chan, enum dma_ctrl_fla= gs flags) { + struct dma_device *dma =3D chan->device; + if (dma_dev_has_pq_continue(dma) || !dmaf_continue(flags)) return dma_dev_to_maxpq(dma); if (dmaf_p_disabled_continue(flags)) --=20 2.43.0 From nobody Thu Sep 24 13:42:07 2026 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011060.outbound.protection.outlook.com [52.101.65.60]) (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 0686B53FD34; Wed, 23 Sep 2026 16:20:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.60 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790180442; cv=fail; b=BVPV+18sAA7pglZx+81U12/t4moXPnZQqDzr4zFvmaHneQI7ufTEYF0cy8ETg6bPt0MqfSN7AdO26OEtrs8NJQTy94CACwjkyfInsdxsC1dvWHoCIVMrYox5hXuc46oEZzRBNe1fsLhl4X5icyTz+VYKe2ETLT0Q3EjVqVzn7I4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790180442; c=relaxed/simple; bh=Sxo/fdjF891jqQbEI57+UsgGvPIJBm6727nKoyPqrJM=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=DBM+WdrZFgob2wuTuY/TMl6tb+KeDJsNTmnsGkX/Iru8fJnaCYWUAfXPXbCAfmM4MCZUBq4tIn1Uo/NloX3LvQyDvKrHwFAoiIjUBPVkKN7q2Yp1Y3fXryLLWkn6TOTICDNP0D/jxRFUkHD0JabYU0OSFDnzNo4uOum2sfUQd0k= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=QsV1KvpE; arc=fail smtp.client-ip=52.101.65.60 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="QsV1KvpE" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wSs7QvGh//DaVUahiq3kTwjNfCMuunc3o7iVUX8GND0KaEEjbuQJr0znHpRxx0geyjbh2bvjjeW6Cz3xv7KTsCxmRnYEpdN6KbX7VSDib20hCPySCQ5/NLY3TrXWsGDBnEUmrQRLSfZ1Ub/atSuDv44qr7xdk4IYyfPaINAzaFmmvhO83KjmxJpyhtCN4Hg1LyaL69CF3BDqtso6AE7mQoMJzXR5uwhCm+yCItiU+1INHaXQyU7L10FU3/Vf7xBUAvK2/4I+WLCyRcv4pkxgqPLUgPxqGZ9aI+FJQA2Uh1m/rLPUEoic137gfo6Bn57Ib44uby+rJN6UcdV0xR2NEw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=MoMAFbeT/Kz/S+4Hy7QZwRRAMgc/ugp7DlWOAPG2GHI=; b=YZWdyO7LtLsvDbUOSDIiYE7BumkEaPWxn/f0qXpsx5gRfex/ktctiSeXGQhjb53YeFh0NoeMtaETgcg4JgNRN6INqQ0EhlwCRuUePyY6/66UvKQe+keuh8Y3zyuSsDFEW0GfZGAqu2VDsa+T2lll8NVzGH0NzJLvPPYMx7LhJgIOKuUm3biMonMf55pQ8HiAbY4N/DL1Uoe2x8Thb63BbAbiVON3clwyNlj62TkngvLULgPQ/u7BN8fWD62AQOHn4mUcGyZIm2a8IXZ+PImWofk1nlqoMkxaaOoVAFDzYQkN2aIFmzGo0U2cLbkunOij7xF2xMdeMwkftddPjG9JVA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MoMAFbeT/Kz/S+4Hy7QZwRRAMgc/ugp7DlWOAPG2GHI=; b=QsV1KvpEHV80bfpdgKtB5mtQombKs5GD+AQLZiqFSEMFYHvE8FC9Pk276/s4KrzJQElY1zLC5nXL23WzucaWfFwgLi3tIMgOuyYPF26IgXVUzP6ikou3r+cGEUBTrcfaB4J95Khdd2gY1Mu+BeZtn4IBYbi8J8kFO3VeWP2efGGqIRugTki0gmb+/p1ms3OQ13bG263FvsMtn2+qc9XKKov3iCAyJUN/k5bB48veL+95fdbwtjHrU/qN0yW/t0OTJJXXDRmdwxvTfxm+54N91iFhxczKjwZkJR+Xr2nYdbxOJPUeoFlL5uuy/gyL51mr6Kgh72znGpY356HA1wUO2A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) by DU4PR04MB10433.eurprd04.prod.outlook.com (2603:10a6:10:55f::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.17; Wed, 23 Sep 2026 16:20:32 +0000 Received: from GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c]) by GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c%7]) with mapi id 15.21.0428.015; Wed, 23 Sep 2026 16:20:31 +0000 From: Frank.Li@oss.nxp.com Date: Wed, 23 Sep 2026 12:19:39 -0400 Subject: [PATCH v2 10/12] async_tx: use dmaengine_prep_dma_(pq|pq_val|interrupt|xor) instead of direct callback Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260923-dmaengine_prep_dma_pq-v2-10-32ed65b8a9b4@nxp.com> References: <20260923-dmaengine_prep_dma_pq-v2-0-32ed65b8a9b4@nxp.com> In-Reply-To: <20260923-dmaengine_prep_dma_pq-v2-0-32ed65b8a9b4@nxp.com> To: Vinod Koul , Frank Li , Dan Williams , Herbert Xu , "David S. Miller" , Jon Mason , Dave Jiang , Allen Hubbe Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-crypto@vger.kernel.org, imx@lists.linux.dev, Frank Li , ntb@lists.linux.dev X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1790180376; l=7467; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=tVRcby2UAkXHgo/y4rmvmUCX6xWI5VeTjfvvjtYvYl0=; b=p82jo0RJgcE2y1d1I69YjykvqDrdSPTD4IkQFb5mgDTgigmFB2zqCzL1PTybu6+E/wVBuROPY C3dVJpHZJ6bA6uXZn9BVJLwzmMNQ/7SKftinyYJbUTNXnrxfynFGuDC X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: CY8PR12CA0037.namprd12.prod.outlook.com (2603:10b6:930:49::19) To GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB11799:EE_|DU4PR04MB10433:EE_ X-MS-Office365-Filtering-Correlation-Id: 78fd6c2e-f236-4d28-3d02-08df198e96e0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014|19092799006|23010399003|6133799003|18002099003|22082099003|56012099006|11063799006|10067099003; X-Microsoft-Antispam-Message-Info: r4XQi+L5QHEcXSGnUXJAX5nHpanBTlXHilEGghcQtforYly8QWXGUgjU7PQgX8Dbg53iv7axh/VN+MzktynJuKWYs9KlwojrqzkwkawdvPG3PiQTXLyrDxikUwYKSAC1jvVca7pOxGdSvoBAc89ZI+arJ3yYvdko+EL3O+Gzb8w/m2YCm9sZQ8tgYMrWZmUpy8OgCINzdwDuV/bQCVmxoAE9wGV6nnTnvqBCCQQoBXCPB43LL1b1SVwfAQATI3P11hMpwapy36hqTTAWj+5qt+Tn3zghKwrfGJMvDUG7ERL6r32x4safzv/wJ6emBe/9zZucb6TsN3G9A7hlAqq6WC82oTvBxAXYl1bvdTmLrTddFaSwMRl384om2YmmuUqf7H45hvUv/Bvv+E0Nv2hHQK1lsuccvGnS97JAfDZEkjXgylpggwfyGPduEwTbNt/Mrlj5FBImKjTtmyyMgorUImKklZWV7HLWQfr7XVMqajoPit2pIui1rKzz7lpkDHyBcbpi2/U6cElgK5K7C2RJvikLJGSp2F7hDZDLl1bWdZkgGC1zcjeDnhMSAK3Q53BNuGSI/p6JE/k/6XH99kKYf1osKtiXhMEGjZEOlPoFGGKiq6xfy2hHU9Pq4ynHm5s929DgepwynJBSTYFnAJIjAv/X6yUrRQNnBeVZKw8tW6A= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB11799.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(19092799006)(23010399003)(6133799003)(18002099003)(22082099003)(56012099006)(11063799006)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?R05UMVlFdzh6ZmxyWnpVcG9NRmR6Qi9GL0hXM3Q5SThRbnBZaWVzZGluQk5M?= =?utf-8?B?MFVsdzkydjNudUNlRjhGYnZzQ2F4Mlh6MkNUTFVtS0xuL2t6bXYrWG4rKzV0?= =?utf-8?B?bmhhblVpSzIrWlhrY21uTnAvT1VtVDBybGFRYlF5TG9nQ0VlNFJDaklUNDI1?= =?utf-8?B?L0cvL042d0xtVmVOVGY2bmpMMUNJU1Z6ajczTUt1ajF3cWxtN3c5Wis3dlNk?= =?utf-8?B?QWc4czhHZDF4bzN3anBnUEV2ckVEZUhqWmc3VTRtMWZkTmpoM0hTVGZ2RnI5?= =?utf-8?B?bFdBUXZkWFpiRXRCaWtYUlgyK3pudWhqUHAxOUhFYzJ2Z3ZrN05GZG56V2ZI?= =?utf-8?B?WW9JalhCajhZMkk0YjFFUDdteFJtWERBS05nNHFseW5nSTN3M3NzMVh4QTBv?= =?utf-8?B?c1pEMm52VnJDSnA2NUZZYzZCTkwvRlljKzVZdUQ4SHp2V2ZvNkRBbjVHN2Jn?= =?utf-8?B?TnA0ZSthejkyclZsSnRUVEZOdjg5dVo4eHFwRGxQM2xWNkJ2R2ZXSjhkRGVR?= =?utf-8?B?cHlmRE5QeE9lTkVZS3I5MWRibVB0WWNpb2Z1ZkovT3djdmRhTERmd1ZSWFAr?= =?utf-8?B?UWhzbjhCRk1iVjVHOGZtTUV3b0xxbzdxckFUTFluam5yLzBOQlI2NU81bXNJ?= =?utf-8?B?Nmg3Zk1MbUY1TlJOZVRrZVh3aVN4TGZMVVZORFlQWUxzVHV4YXZDV0N5V1Bp?= =?utf-8?B?UFZ5ck9NQWd6TkJXMWdEMGsrMXJxWFgvK1ZFTnFGKzc1d3poeUF1OGVWajlp?= =?utf-8?B?ck1QZTBzeWthbWZ4Y1VoZnJUM0hNblpkVjNzaExwWjBiY2FXRGNkNFlGZXRM?= =?utf-8?B?cGV2SFV1L1FpZVMrQjFuVTRjWHlQbFBaN3B3ZU9ZRWR6Q1pNaWpCVWMxUms2?= =?utf-8?B?SUpiNjA4MStXaTdGK3lRbG1lV21HcktYTkFJdSttMG1HRGpjelRpcGM2Z0J3?= =?utf-8?B?R3BKbU81MG91OHlveVZzeC85YnJQNjdsRmplYzFyTXQ0RDN4TlZMU2JPK0c5?= =?utf-8?B?UkxLM2JzVjBIV3hESGFtSlQxTkxvYlkyM0hiNm9OcGdBcXZId2NXdWF0bktz?= =?utf-8?B?aVl6bHFiMVhBLzJZaXc0ZFFCNGNGNm5Wb3V6KzFzYVEvY3hLbjVVQit2di9n?= =?utf-8?B?ZHFpYnJUWXRvUVpnZTFubTdMT09ENGdHUTJUSTQxTGV6ZTRCTit6aVlya2Iw?= =?utf-8?B?K3FzN3Fzd3R6R09xZFArNUNpbitwR0V4TTE2cGpJMldGMnRtR0dzQlNuLzFS?= =?utf-8?B?ZjZMbzRzZUIxRzhyM2FRYkJJRExNYXhWY1VmN0dkOGxHWFUwZUNBZ0N3UC90?= =?utf-8?B?YjJDZ0QrZktGRkFDTW9IRTJHdnBaOGtRTnFTeHR3dnI0VVlMa3l0NGdiTVVD?= =?utf-8?B?eWhxekhJa1Fzd2hJZlB2T29yWUFDT0dVelZvcGZTVVpKSVhNVXVHVU5icFBT?= =?utf-8?B?dWk4RFZ2a2NsOE9WbytBeEV0Qy9mdDFjbVV0Y1BkczFOS2t2enZjS0NvTzJl?= =?utf-8?B?NmRQVFU4bTRHblZpOFIvUld0VVpleWJwUWV3Mlg0R2hKeE9Zem51a3lTajd6?= =?utf-8?B?TThDSDVoNENWZnMvaHVJclBlL1EwOThxTzk2VGQwanZXZjJSS1BReEhBdmZR?= =?utf-8?B?RzZsNnhjbFlyS1I5NEIzbDlSd0k0d0laamlwUDl3cGg5MXlXcThHTzhSWDVJ?= =?utf-8?B?eWViNm4wSWZaWTdQLytCVHF4eE80UHAyWU5EQWJWUWNUV29nMDE0cHBudldH?= =?utf-8?B?NTdnNmIrcWVlSkRETlBVb3EyT1ZHOWJaZ3BEK0F6MGpSRWF4QUVtcElBL0VZ?= =?utf-8?B?QVNUeGI0ekxyeVVaTTZvZTBsOTRIK0UxaTFlS1A1a2t5WEtCeU9JN2g2VEEv?= =?utf-8?B?aFd4dzJTS1VrbXJ0Z3VzUklIckJ1MlpRbFF5dGcydVdpUHI0R0FPZTFPcnZB?= =?utf-8?B?aWRSckNndWw5cHUzTm14UTdEUVcvY1ZsNFo2bHEyYjBvSFhTMmxxRExVV0J3?= =?utf-8?B?WHd5cVhPUithL0E0WXR0Sk5PMklDY2VkUzdJQmhQa0xBMzVianEwTWZOd1R6?= =?utf-8?B?ZzNBRk5tTzNWQVlhdEJQd1l4bTNGSTBUMFFjejNaTTlERUdOSEdLUWU3YzlS?= =?utf-8?B?cjVrM2hSb1NwZkE5MkRrMjRMeGF6S1ZyZ2dCZ3NYNklUMGIzM1pMTmx4RzVV?= =?utf-8?B?dnNBb1BFOUZEVTRDNU1IdzQ2RmpoTnA2RGVuM3RmSTk3bmVaY0hWbXBLLzNv?= =?utf-8?B?dTVLVFZ3MHd4elNpV2tHdHptTHluSmFOZUc5dHJXZEtQVW5LeVE4eTk2QTZ0?= =?utf-8?B?Y1JJeUljUFE5TlRTU2prQ3BYMmdycFJnMlU4aE9QeFBCSlEwb3lzWEw3N1pJ?= =?utf-8?Q?g0s+3f5ILupBwID09lalKoQ6IwrZIc0ppZ8kd?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 78fd6c2e-f236-4d28-3d02-08df198e96e0 X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB11799.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2026 16:20:31.9141 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 3Snx2hi+jvRt3D/vF21c9GfrNWO18g0g59wAzkVA5y6k8by21YA7OQeSPd6vFGVIwqqgYKR70krxzQL8FfzrbDkOHDTXkvfYn6BjdwFYek1swy4Zcp4JC0MnLeer2AeH X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR04MB10433 From: Frank Li Replace direct device_prep_dma_(pq|pq_val|interrupt|xor) callback invocations with dmaengine_prep_dma_(pq|pq_val|interrupt|xor) API, consistent with how other dmaengine operations use their API. Assisted-by: LLM Signed-off-by: Frank Li --- crypto/async_tx/async_pq.c | 23 +++++++++++------------ crypto/async_tx/async_raid6_recov.c | 10 ++++------ crypto/async_tx/async_tx.c | 13 ++----------- crypto/async_tx/async_xor.c | 19 ++++++++----------- 4 files changed, 25 insertions(+), 40 deletions(-) diff --git a/crypto/async_tx/async_pq.c b/crypto/async_tx/async_pq.c index 5f62f2edefe58..6ccc1073c5ace 100644 --- a/crypto/async_tx/async_pq.c +++ b/crypto/async_tx/async_pq.c @@ -40,7 +40,6 @@ do_async_gen_syndrome(struct dma_chan *chan, struct async_submit_ctl *submit) { struct dma_async_tx_descriptor *tx =3D NULL; - struct dma_device *dma =3D chan->device; enum async_tx_flags flags_orig =3D submit->flags; dma_async_tx_callback cb_fn_orig =3D submit->cb_fn; dma_async_tx_callback cb_param_orig =3D submit->cb_param; @@ -76,11 +75,11 @@ do_async_gen_syndrome(struct dma_chan *chan, for (;;) { dma_dest[0] =3D unmap->addr[disks - 2]; dma_dest[1] =3D unmap->addr[disks - 1]; - tx =3D dma->device_prep_dma_pq(chan, dma_dest, - &unmap->addr[src_off], - pq_src_cnt, - &scfs[src_off], unmap->len, - dma_flags); + tx =3D dmaengine_prep_dma_pq(chan, dma_dest, + &unmap->addr[src_off], + pq_src_cnt, + &scfs[src_off], unmap->len, + dma_flags); if (likely(tx)) break; async_tx_quiesce(&submit->depend_tx); @@ -358,12 +357,12 @@ async_syndrome_val(struct page **blocks, unsigned int= *offsets, int disks, if (submit->flags & ASYNC_TX_FENCE) dma_flags |=3D DMA_PREP_FENCE; for (;;) { - tx =3D device->device_prep_dma_pq_val(chan, pq, - unmap->addr, - src_cnt, - coefs, - len, pqres, - dma_flags); + tx =3D dmaengine_prep_dma_pq_val(chan, pq, + unmap->addr, + src_cnt, + coefs, + len, pqres, + dma_flags); if (likely(tx)) break; async_tx_quiesce(&submit->depend_tx); diff --git a/crypto/async_tx/async_raid6_recov.c b/crypto/async_tx/async_ra= id6_recov.c index 4f223fa36c706..0e3ae945154fc 100644 --- a/crypto/async_tx/async_raid6_recov.c +++ b/crypto/async_tx/async_raid6_recov.c @@ -22,7 +22,6 @@ async_sum_product(struct page *dest, unsigned int d_off, { struct dma_chan *chan =3D async_tx_find_channel(submit, DMA_PQ, &dest, 1, srcs, 2, len); - struct dma_device *dma =3D chan ? chan->device : NULL; struct dmaengine_unmap_data *unmap =3D NULL; const u8 *amul, *bmul; u8 ax, bx; @@ -52,8 +51,8 @@ async_sum_product(struct page *dest, unsigned int d_off, pq[1] =3D unmap->addr[2]; =20 unmap->len =3D len; - tx =3D dma->device_prep_dma_pq(chan, pq, unmap->addr, 2, coef, - len, dma_flags); + tx =3D dmaengine_prep_dma_pq(chan, pq, unmap->addr, 2, coef, + len, dma_flags); if (tx) { dma_set_unmap(tx, unmap); async_tx_submit(chan, tx, submit); @@ -91,7 +90,6 @@ async_mult(struct page *dest, unsigned int d_off, struct = page *src, { struct dma_chan *chan =3D async_tx_find_channel(submit, DMA_PQ, &dest, 1, &src, 1, len); - struct dma_device *dma =3D chan ? chan->device : NULL; struct dmaengine_unmap_data *unmap =3D NULL; const u8 *qmul; /* Q multiplier table */ u8 *d, *s; @@ -120,8 +118,8 @@ async_mult(struct page *dest, unsigned int d_off, struc= t page *src, * dma_dest[1] and ignores dma_dest[0] as a dest * due to DMA_PREP_PQ_DISABLE_P */ - tx =3D dma->device_prep_dma_pq(chan, dma_dest, unmap->addr, - 1, &coef, len, dma_flags); + tx =3D dmaengine_prep_dma_pq(chan, dma_dest, unmap->addr, + 1, &coef, len, dma_flags); =20 if (tx) { dma_set_unmap(tx, unmap); diff --git a/crypto/async_tx/async_tx.c b/crypto/async_tx/async_tx.c index 01ef830675574..7eba152ecb97b 100644 --- a/crypto/async_tx/async_tx.c +++ b/crypto/async_tx/async_tx.c @@ -66,7 +66,6 @@ async_tx_channel_switch(struct dma_async_tx_descriptor *d= epend_tx, struct dma_async_tx_descriptor *tx) { struct dma_chan *chan =3D depend_tx->chan; - struct dma_device *device =3D chan->device; struct dma_async_tx_descriptor *intr_tx =3D (void *) ~0; =20 /* first check to see if we can still append to depend_tx */ @@ -86,10 +85,7 @@ async_tx_channel_switch(struct dma_async_tx_descriptor *= depend_tx, /* see if we can schedule an interrupt * otherwise poll for completion */ - if (dma_has_cap(DMA_INTERRUPT, device->cap_mask)) - intr_tx =3D device->device_prep_dma_interrupt(chan, 0); - else - intr_tx =3D NULL; + intr_tx =3D dmaengine_prep_dma_interrupt(chan, 0); =20 if (intr_tx) { intr_tx->callback =3D NULL; @@ -221,21 +217,16 @@ struct dma_async_tx_descriptor * async_trigger_callback(struct async_submit_ctl *submit) { struct dma_chan *chan; - struct dma_device *device; struct dma_async_tx_descriptor *tx; struct dma_async_tx_descriptor *depend_tx =3D submit->depend_tx; =20 if (depend_tx) { chan =3D depend_tx->chan; - device =3D chan->device; =20 /* see if we can schedule an interrupt * otherwise poll for completion */ - if (device && !dma_has_cap(DMA_INTERRUPT, device->cap_mask)) - device =3D NULL; - - tx =3D device ? device->device_prep_dma_interrupt(chan, 0) : NULL; + tx =3D dmaengine_prep_dma_interrupt(chan, 0); } else tx =3D NULL; =20 diff --git a/crypto/async_tx/async_xor.c b/crypto/async_tx/async_xor.c index 0fb29da2235cd..3cbe08883085b 100644 --- a/crypto/async_tx/async_xor.c +++ b/crypto/async_tx/async_xor.c @@ -62,9 +62,8 @@ do_async_xor(struct dma_chan *chan, struct dmaengine_unma= p_data *unmap, tmp =3D src_list[0]; if (src_list > unmap->addr) src_list[0] =3D dma_dest; - tx =3D dma->device_prep_dma_xor(chan, dma_dest, src_list, - xor_src_cnt, unmap->len, - dma_flags); + tx =3D dmaengine_prep_dma_xor(chan, dma_dest, src_list, + xor_src_cnt, unmap->len, dma_flags); =20 if (unlikely(!tx)) async_tx_quiesce(&submit->depend_tx); @@ -72,10 +71,9 @@ do_async_xor(struct dma_chan *chan, struct dmaengine_unm= ap_data *unmap, /* spin wait for the preceding transactions to complete */ while (unlikely(!tx)) { dma_async_issue_pending(chan); - tx =3D dma->device_prep_dma_xor(chan, dma_dest, - src_list, - xor_src_cnt, unmap->len, - dma_flags); + tx =3D dmaengine_prep_dma_xor(chan, dma_dest, src_list, + xor_src_cnt, unmap->len, + dma_flags); } src_list[0] =3D tmp; =20 @@ -335,15 +333,14 @@ async_xor_val_offs(struct page *dest, unsigned int of= fset, } unmap->len =3D len; =20 - tx =3D device->device_prep_dma_xor_val(chan, unmap->addr, src_cnt, - len, result, - dma_prep_flags); + tx =3D dmaengine_prep_dma_xor_val(chan, unmap->addr, src_cnt, + len, result, dma_prep_flags); if (unlikely(!tx)) { async_tx_quiesce(&submit->depend_tx); =20 while (!tx) { dma_async_issue_pending(chan); - tx =3D device->device_prep_dma_xor_val(chan, + tx =3D dmaengine_prep_dma_xor_val(chan, unmap->addr, src_cnt, len, result, dma_prep_flags); } --=20 2.43.0 From nobody Thu Sep 24 13:42:07 2026 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011060.outbound.protection.outlook.com [52.101.65.60]) (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 4D80149E5D4; Wed, 23 Sep 2026 16:20:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.60 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790180445; cv=fail; b=TDrid1/2L6safNKrisuNaXqgi+0yjNZDf/2nruaKr3oZLAS7yOEFlsPScYHsrFd2etvbdNVYre8XtJ21f8NQAdS3Y/JfnMhq+00dLHHSeqAnMqJCpXauE0/4y3+HkrCYLuQ3GB6ncLc3JHM4aT81Q2+tWEnmo+DwSaVGjGMI/9w= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790180445; c=relaxed/simple; bh=zOIb8BHkONWGwWwC4aGSk7IdY/jgKjD9GG8v6PPQqYU=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=YC0+ESyx8XsOZ7gFvAdVoAanuF4hDYN37zEfuLR1XHNs/AkFeAlpgW6WSXdrU5yqoErj/sU+nXNZEBhe5u6hnIlSGMvey3CiwVIAe9uF3WURufZZgDtgF7uktBj7R7DbdMsfqrmNZKHtV9X+hCbTS7iejhahSF7QCaFwpN7JMwQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=QqJKdZjJ; arc=fail smtp.client-ip=52.101.65.60 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="QqJKdZjJ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Iv0xILTJK3GmOTAxTUqnYHL94LIHIF2G6H60fFuTwsxLG3eQlgA2JbfV2lfxqf2xJLrJ6EKryMsLWT6QP0T5PtVV/VoFZd67yhvoTnzu6ntFeWfHvTdETPKqa32mN07/fnXPTSreqaSKXi32VTa7iEqI3Phg+o3LMLTIXjKvb5ENqCJxasJVDKsluhuOiHFsIxwJOiX+ZnePIFhes2dfYsaUn8QoYyrpd2ewCjQo4YoT2GCmPatC9BZDcAnpgE8YsfIVBQSyKHudL+VOLk9J9BiWhl6SWOp7vQE7w1+Q5Q68VriyJ3O7X3gUHHI5remhWKP9YSlwwNalw9Xx4osAmA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=hpcZvQ+JgKZgxrQd9r1XdRhxKWPG015w59O7RJ/3LiA=; b=xFd5gpI6g6PlwL6akB2XSJJSd48FdBtK5movr48t3EqgbFqXYDmWdU4NYWFFGcSRMPfLTDIU5Asnm+KTuY4nZ+KeZQJFhLH7j/ISGGwa8iYNqvPP0gB4akGskz36yk6IOMVRAzL0Ssq2o0iNPyPGv0dl3OwQ9ZmRfDZsMOOFcP2ouu0XPAKJFc0TQIb4FxftasrINIY15fS6je/TYFEUhWEko3IjwQdjK0eClfarEOVl7DIf+kzzida7VrjwhS6ZI+C19dtEsNsUEJzu4V/u9uum9g32SIABi7rzdfcFW9VGZzaHS4hrLAoL1NnN/OFzHJbCsxGEL9ufYjLLFtx0eQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hpcZvQ+JgKZgxrQd9r1XdRhxKWPG015w59O7RJ/3LiA=; b=QqJKdZjJmf7ymgRFdJFj3UWNWvFWnU7U+4PXJpD0BCiaSnjiaVKfXONsVODvTA37C7QPZbiCpNP97NfkrLbvzxFgRqa0RM4SZlQ7dCZgU2U/1ykI0HT+WOBuFAKIikHYwOtrNZSw6xZFw52E10+MJaEq7m9A3UsEsxjjEoguZMIW6T8ZhgzBmYD+ITFnJr4AQ4X8dKzYXff8+BEn2OXL2/GvKVUhZs2wnAUZJFr8ZuQ0NfYXFuwt42xnDUROkY8VsVIedwgh48Wim8imOiTXMi1NduqfxuSQsruuPd6BFacjKOLqdQr+45xlZBGKDNEi8wx0L1U+/s985VBsY+Qmiw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) by DU4PR04MB10433.eurprd04.prod.outlook.com (2603:10a6:10:55f::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.17; Wed, 23 Sep 2026 16:20:37 +0000 Received: from GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c]) by GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c%7]) with mapi id 15.21.0428.015; Wed, 23 Sep 2026 16:20:37 +0000 From: Frank.Li@oss.nxp.com Date: Wed, 23 Sep 2026 12:19:40 -0400 Subject: [PATCH v2 11/12] async_tx: convert to dmaengine_is_*_aligned() helpers Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260923-dmaengine_prep_dma_pq-v2-11-32ed65b8a9b4@nxp.com> References: <20260923-dmaengine_prep_dma_pq-v2-0-32ed65b8a9b4@nxp.com> In-Reply-To: <20260923-dmaengine_prep_dma_pq-v2-0-32ed65b8a9b4@nxp.com> To: Vinod Koul , Frank Li , Dan Williams , Herbert Xu , "David S. Miller" , Jon Mason , Dave Jiang , Allen Hubbe Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-crypto@vger.kernel.org, imx@lists.linux.dev, Frank Li , ntb@lists.linux.dev X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1790180376; l=7777; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=MXXspFpNMQHnCFDkxgXQK55LyGvBoycOAUNpk+mGK+w=; b=dtVwBkkjAar1kvmi4oBHf7oIV4PUAMO21FdpEfkucu7LVyeerCofd6XvJeKpjog2Q85u6oIM4 N1gXm17+IcTCQ6HcgRPAMDFpdlGw8z+aefM+lmK4uKEfYuoP/NX/BVv X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH8P223CA0018.NAMP223.PROD.OUTLOOK.COM (2603:10b6:510:2db::28) To GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB11799:EE_|DU4PR04MB10433:EE_ X-MS-Office365-Filtering-Correlation-Id: 75e20f1e-0d3d-4de1-50a7-08df198e9a27 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014|19092799006|23010399003|18002099003|22082099003|3023799007|56012099006|11063799006|10067099003; X-Microsoft-Antispam-Message-Info: 8q8Utj7D1RhgThEGYMK6tX4s5oD0MttErrtVh949s9QlTXQegmEumPlTg8+z/ee40+jrKfQcSlNcg1NMkp3ctYD9dh4NGSW64BLoUST9137oHmMMng6pl6w6g4QoQyzlGgJ9FQGfwuDUJV2EftqKYXPjLd/vnQyDfzZ99Ddd4Ae8kHzS47MBybycOLy8MF6iICXwjGLLJuWAg0cXHe6KVU9Aq8rKqNPE4WYK42+Kfi1WVTASnnYws9Sg5czox1QS2YiNckXHhz4ZhaRp0AKWMaTDse92scqtqTEMUUw9/p1Dgz04E8gvFQg9Zz+i+tHGpnrFLkI0irFesj4rXaeTsFQp173Y7ENzZLSB4QKMzRWdVSITIwlRIWo6BFtSB2i/ouE7SKzyPsSsoDZA6LisE6g4I16fZPAery8tqcig4vu+XuIm8TfQ7igeQBeiFTXKbyx/w3L9K3zGbc4EYO6tMoKSAhnaSuf4rpRkcE9D+q+z4xAzlc6mt2igYx7N1q1vjxPF2QGo0D/Pss4fii2SNcGagPQHPx9kBuSfLGGanW4raheix067ny4JHz2U7y/nN+RsHAvd9d3asckjnGv4uHLOAvmFjaZfGHJmHD9erZYJVctlvsWfzVBu1D3dH+DZQqDYdhGEl1bXWYjsmDrt0WTRPpkZTvZa/4BLB9m/1rY= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB11799.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(19092799006)(23010399003)(18002099003)(22082099003)(3023799007)(56012099006)(11063799006)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NStRZUM5RnJDN2d4QnN1eTJzZm1iNFFMUVp4a3pnYmZ2QjZybTVkNS92RzJH?= =?utf-8?B?eFlDNVNCNE4rbkNWVlY0WmJuWlI3blJhMTlxNEJsQXRWeUNhV3g5S3BPYWN2?= =?utf-8?B?VENLU0xmdXRHcnBKeVNxUm5QdTdWWEw4TlFOamNleDNPTlVSdkVDZzBlcGFZ?= =?utf-8?B?M2c1YkJ6aER0aVdUS05uSzVjRFpEMmhpaEppdFNlZnlucWVTTUcramlGRWFy?= =?utf-8?B?Ym0xOEk2eGNVM0NlaHlhQ2RCTVdtTmNBRmw2MXdRUE1QakxhcmwwVU5selZJ?= =?utf-8?B?T1dUb0cwQXUrK09ieG15Um9nM1g4WTAyYjUwVVFGbHkxSm04bW9hRERJQ01Q?= =?utf-8?B?SXcrdE85NlRnaUptK3l6TzUxTUw0cTY2eUx4N0U3czgxTzV3M0w0Mzk1SjBX?= =?utf-8?B?ZWJ5WENmZ21OWXFjeDRucDBLZEwwSFNNTk5LZUR5MVBmYXNVUWFIaW1MZWVl?= =?utf-8?B?cmFTY2llbTRzbEQ4bXNYSnF0VVdOZHdoaXVIcDM5Mit4ejVlc1N5T0UzbVZX?= =?utf-8?B?ZlRTelozVzV2U3JLT2NINEFnRGhSYVJwQklYNWRqY2F6SmRTUGpLbU0yMEF1?= =?utf-8?B?dU4vVThMeEJEQkhMYUJlMFVTUjV6V2JQSGFGQjdSMXFDdWVJSzF4L2JCVEZa?= =?utf-8?B?SGxwaHUzY1J5QXg0V21LZm1BZWpzNU0vWm5EbFJVZStSamx5bnFwVVgySHUy?= =?utf-8?B?V29SUDZnUStPaGlaeVpnTmFhLzFyeEdDM04wcVdjUE9FOG05ZTF5Z3JTT29B?= =?utf-8?B?bG5COXlNb0kzUERmT3NjaTJjdWhQRm1CU09jMzhScVNrT0lMTHNKd0pGa2tY?= =?utf-8?B?OFZWdUZlNHkwcG9jQ1htVXltczJCNEtCV3ptTkZiNTBPTG5vaHpBUzBTUjJZ?= =?utf-8?B?VFVRQ1NtZTFCSGZKN0ZvYlZHcGJkT0pwM3c4OGZRSmk4aU5BK281S2JRUjNB?= =?utf-8?B?d0hrdDljc0UzRjVHaHMxbTJxa2hGb1cvQnp1eFBsaDVVNjdWRnN2NW40TWJY?= =?utf-8?B?K0Zic3pnR2tUcFQ4cWhXY21Fa2EvdWRsT2xETk5pTGkzbGc4U2s3SXVwMFRL?= =?utf-8?B?MnFITWhrNVpyRWtVcUcrbGc1bWJ5cGIzbkFzNllaRkhXYjJ5UEFPUFNSVFJq?= =?utf-8?B?ZzltTURPZ3I3LzRlZ3JmSURyZ2tQTGxtcDVJay80NmNVV3RzSXdHa2p6NVAx?= =?utf-8?B?bndGSHlFQnBsMm9BZkE5NXFiZVNNSGN2cFFGOUVtd3kyTC9pSTFhcEpKMWlT?= =?utf-8?B?QkI1d08yT1FQOHdwcndDZmthV2YvZmNtYWMzdHRZV2FDRzFhQmg3RDRBZ3pr?= =?utf-8?B?a1d1UGRxUFNBWTNiZ0hLY3ZZY2NCOVJxbWg3bmlVdy8zMVZYZGhKNlZ3a05J?= =?utf-8?B?dlRuWHFQQjBQVStzd0FIOXBMbzVMb1F5cjdiZ2lCNFUzSzNVczIwbXdLclR0?= =?utf-8?B?WVJzQVZ6bUZCZUVLRnlMRG94WGM2dWt6OG9qTXpVVEw0NmlJbS9uSjhhVXpR?= =?utf-8?B?VDc4Wjl6M1lhbFVBdk56NHlxcURqSWk2ODVjejBvTzZVR3k5anI2T1oreFdj?= =?utf-8?B?Ujg1Zy85VVBhbWcrZUh3ZWdyTDlNdytzaUhVN1RhWmdHaUUxRGlWc3h5UzBo?= =?utf-8?B?WlRxL1hHeXJ5T1FRbFpnendGcWg5M1VvaXJOcGJEU0wrZzZrSm9QUHM1N2pQ?= =?utf-8?B?ZnlPQVpnWkgvbEIxWjlOTW9lYXJnVWtSK29hT1N6cXBqdVFrNFI5YmZKVmg1?= =?utf-8?B?K1BZY2hydTVmak9LdjR5YVZ2TzJVNVIycE9IYjJGYnEwOHNIVnhZaTFEMzg3?= =?utf-8?B?bExFNkVwRFNkMUE5NXFtcWk4TTNUU25pMy94WlEzaHZuemxXNnJIb2o5UVh3?= =?utf-8?B?MUt3dTkyc3Z5UGFaeHJwZ0gvamQyUzh3c0dlMVJIZU1BOFZ6eUV3ZXloWVVW?= =?utf-8?B?RFcyQ1ZSRWFpRGU1K3ZBYndYdTdoMURRbmpKOXptQmg5Y2VtOG5BMjlxZHE2?= =?utf-8?B?RUxYQXQ2SVpmSjVPRTNheXd5WkxmRER0OUQwb1V6NXZ4MkxjYVdRN0FLdmlI?= =?utf-8?B?T0FKclJjM0xJRFl5WHIvUEwzNHlXaEh5a29yV0tQL243RlBWeWE0cjVGS2dS?= =?utf-8?B?Q0owSEhFOWNHbXIwZkk3akgrOTdNWWMrTnhaNWNqVlBRNWJiMG00ME9CRjhW?= =?utf-8?B?VjMvSjRBTXdPWkxkU3J1S1BIU09tTGtOVUlLeVFaY2w0SnppU2Y5bE1RV2pG?= =?utf-8?B?dTMvK3drOWladXdGQnNYU2M2NUVPcXQwb3RLZU9nVkE3QVFnR2JLcURyT21t?= =?utf-8?B?TVVrejY5Y1JuVjE4enZvdk9kNzU5cUNPa0NINVBrdEZyRjNEVFFKWllPUXVL?= =?utf-8?Q?3B0q9+Tps1fPGoM4r99UtgjzH0z4XwljdzmxO?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 75e20f1e-0d3d-4de1-50a7-08df198e9a27 X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB11799.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2026 16:20:37.3664 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: HsWGz6DY4i6sbd9ZWgLkwyrnwVQ62qHMopPgBVlExLBHGvybxpJUqvRaqST2z/Sy2BzH0yzQM3UChZ3arnXzDr7513TxSp8ACXYmg/0QBtTwpkWVVohG1fSDRmi9sh5W X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR04MB10433 From: Frank Li Replace is_dma_{copy,xor,pq}_aligned() calls with the new dmaengine_is_{copy,xor,pq}_aligned() helpers that take a struct dma_chan * instead of struct dma_device *. Also update the internal helpers dma_xor_aligned_offsets() and is_dma_pq_aligned_offs() to take struct dma_chan * accordingly. Also use dmaengine_get_max_xor() to get max_xor. Signed-off-by: Frank Li --- crypto/async_tx/async_memcpy.c | 3 +-- crypto/async_tx/async_pq.c | 12 +++++------- crypto/async_tx/async_xor.c | 23 ++++++++++------------- 3 files changed, 16 insertions(+), 22 deletions(-) diff --git a/crypto/async_tx/async_memcpy.c b/crypto/async_tx/async_memcpy.c index 49ee66759c7e9..972670094be0a 100644 --- a/crypto/async_tx/async_memcpy.c +++ b/crypto/async_tx/async_memcpy.c @@ -35,14 +35,13 @@ async_memcpy(struct page *dest, struct page *src, unsig= ned int dest_offset, { struct dma_chan *chan =3D async_tx_find_channel(submit, DMA_MEMCPY, &dest, 1, &src, 1, len); - struct dma_device *device =3D chan ? chan->device : NULL; struct dma_async_tx_descriptor *tx =3D NULL; struct dmaengine_unmap_data *unmap =3D NULL; =20 if (chan) unmap =3D dmaengine_get_unmap_data(chan, 2, GFP_NOWAIT); =20 - if (unmap && is_dma_copy_aligned(device, src_offset, dest_offset, len)) { + if (unmap && dmaengine_is_copy_aligned(chan, src_offset, dest_offset, len= )) { unsigned long dma_prep_flags =3D 0; struct device *dma_dev =3D dmaengine_get_dma_device(chan); =20 diff --git a/crypto/async_tx/async_pq.c b/crypto/async_tx/async_pq.c index 6ccc1073c5ace..30d6ee676dd44 100644 --- a/crypto/async_tx/async_pq.c +++ b/crypto/async_tx/async_pq.c @@ -140,13 +140,13 @@ do_sync_gen_syndrome(struct page **blocks, unsigned i= nt *offsets, int disks, } =20 static inline bool -is_dma_pq_aligned_offs(struct dma_device *dev, unsigned int *offs, - int src_cnt, size_t len) +is_dma_pq_aligned_offs(struct dma_chan *chan, unsigned int *offs, + int src_cnt, size_t len) { int i; =20 for (i =3D 0; i < src_cnt; i++) { - if (!is_dma_pq_aligned(dev, offs[i], 0, len)) + if (!dmaengine_is_pq_aligned(chan, offs[i], 0, len)) return false; } return true; @@ -181,7 +181,6 @@ async_gen_syndrome(struct page **blocks, unsigned int *= offsets, int disks, struct dma_chan *chan =3D async_tx_find_channel(submit, DMA_PQ, &P(blocks, disks), 2, blocks, src_cnt, len); - struct dma_device *device =3D chan ? chan->device : NULL; struct dmaengine_unmap_data *unmap =3D NULL; =20 BUG_ON(disks > MAX_DISKS || !(P(blocks, disks) || Q(blocks, disks))); @@ -193,7 +192,7 @@ async_gen_syndrome(struct page **blocks, unsigned int *= offsets, int disks, if (unmap && !(submit->flags & ASYNC_TX_PQ_XOR_DST) && (src_cnt <=3D dmaengine_maxpq(chan, 0) || dmaengine_maxpq(chan, DMA_PREP_CONTINUE) > 0) && - is_dma_pq_aligned_offs(device, offsets, disks, len)) { + is_dma_pq_aligned_offs(chan, offsets, disks, len)) { struct dma_async_tx_descriptor *tx; struct device *dma_dev =3D dmaengine_get_dma_device(chan); enum dma_ctrl_flags dma_flags =3D 0; @@ -301,7 +300,6 @@ async_syndrome_val(struct page **blocks, unsigned int *= offsets, int disks, unsigned int s_off, struct async_submit_ctl *submit) { struct dma_chan *chan =3D pq_val_chan(submit, blocks, disks, len); - struct dma_device *device =3D chan ? chan->device : NULL; struct dma_async_tx_descriptor *tx; unsigned char coefs[MAX_DISKS]; enum dma_ctrl_flags dma_flags =3D submit->cb_fn ? DMA_PREP_INTERRUPT : 0; @@ -313,7 +311,7 @@ async_syndrome_val(struct page **blocks, unsigned int *= offsets, int disks, unmap =3D dmaengine_get_unmap_data(chan, disks, GFP_NOWAIT); =20 if (unmap && disks <=3D dmaengine_maxpq(chan, 0) && - is_dma_pq_aligned_offs(device, offsets, disks, len)) { + is_dma_pq_aligned_offs(chan, offsets, disks, len)) { struct device *dev =3D dmaengine_get_dma_device(chan); dma_addr_t pq[2]; int i, j =3D 0, src_cnt =3D 0; diff --git a/crypto/async_tx/async_xor.c b/crypto/async_tx/async_xor.c index 3cbe08883085b..cf3eedaf2a75b 100644 --- a/crypto/async_tx/async_xor.c +++ b/crypto/async_tx/async_xor.c @@ -23,7 +23,6 @@ static __async_inline struct dma_async_tx_descriptor * do_async_xor(struct dma_chan *chan, struct dmaengine_unmap_data *unmap, struct async_submit_ctl *submit) { - struct dma_device *dma =3D chan->device; struct dma_async_tx_descriptor *tx =3D NULL; dma_async_tx_callback cb_fn_orig =3D submit->cb_fn; void *cb_param_orig =3D submit->cb_param; @@ -38,7 +37,7 @@ do_async_xor(struct dma_chan *chan, struct dmaengine_unma= p_data *unmap, dma_addr_t tmp; =20 submit->flags =3D flags_orig; - xor_src_cnt =3D min(src_cnt, (int)dma->max_xor); + xor_src_cnt =3D min_t(int, src_cnt, dmaengine_get_max_xor(chan)); /* if we are submitting additional xors, leave the chain open * and clear the callback parameters */ @@ -124,19 +123,19 @@ do_sync_xor_offs(struct page *dest, unsigned int offs= et, } =20 static inline bool -dma_xor_aligned_offsets(struct dma_device *device, unsigned int offset, - unsigned int *src_offs, int src_cnt, int len) +dma_xor_aligned_offsets(struct dma_chan *chan, unsigned int offset, + unsigned int *src_offs, int src_cnt, int len) { int i; =20 - if (!is_dma_xor_aligned(device, offset, 0, len)) + if (!dmaengine_is_xor_aligned(chan, offset, 0, len)) return false; =20 if (!src_offs) return true; =20 for (i =3D 0; i < src_cnt; i++) { - if (!is_dma_xor_aligned(device, src_offs[i], 0, len)) + if (!dmaengine_is_xor_aligned(chan, src_offs[i], 0, len)) return false; } return true; @@ -171,7 +170,6 @@ async_xor_offs(struct page *dest, unsigned int offset, struct dma_chan *chan =3D async_tx_find_channel(submit, DMA_XOR, &dest, 1, src_list, src_cnt, len); - struct dma_device *device =3D chan ? chan->device : NULL; struct dmaengine_unmap_data *unmap =3D NULL; =20 BUG_ON(src_cnt <=3D 1); @@ -179,8 +177,8 @@ async_xor_offs(struct page *dest, unsigned int offset, if (chan) unmap =3D dmaengine_get_unmap_data(chan, src_cnt + 1, GFP_NOWAIT); =20 - if (unmap && dma_xor_aligned_offsets(device, offset, - src_offs, src_cnt, len)) { + if (unmap && dma_xor_aligned_offsets(chan, offset, src_offs, + src_cnt, len)) { struct device *dma_dev =3D dmaengine_get_dma_device(chan); struct dma_async_tx_descriptor *tx; int i, j; @@ -303,7 +301,6 @@ async_xor_val_offs(struct page *dest, unsigned int offs= et, struct async_submit_ctl *submit) { struct dma_chan *chan =3D xor_val_chan(submit, dest, src_list, src_cnt, l= en); - struct dma_device *device =3D chan ? chan->device : NULL; struct dma_async_tx_descriptor *tx =3D NULL; struct dmaengine_unmap_data *unmap =3D NULL; =20 @@ -312,8 +309,8 @@ async_xor_val_offs(struct page *dest, unsigned int offs= et, if (chan) unmap =3D dmaengine_get_unmap_data(chan, src_cnt, GFP_NOWAIT); =20 - if (unmap && src_cnt <=3D device->max_xor && - dma_xor_aligned_offsets(device, offset, src_offs, src_cnt, len)) { + if (unmap && src_cnt <=3D dmaengine_get_max_xor(chan) && + dma_xor_aligned_offsets(chan, offset, src_offs, src_cnt, len)) { unsigned long dma_prep_flags =3D 0; struct device *dma_dev =3D dmaengine_get_dma_device(chan); int i; @@ -351,7 +348,7 @@ async_xor_val_offs(struct page *dest, unsigned int offs= et, enum async_tx_flags flags_orig =3D submit->flags; =20 pr_debug("%s: (sync) len: %zu\n", __func__, len); - WARN_ONCE(device && src_cnt <=3D device->max_xor, + WARN_ONCE(chan && src_cnt <=3D dmaengine_get_max_xor(chan), "%s: no space for dma address conversion\n", __func__); =20 --=20 2.43.0 From nobody Thu Sep 24 13:42:07 2026 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011060.outbound.protection.outlook.com [52.101.65.60]) (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 7F857552954; Wed, 23 Sep 2026 16:20:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.60 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790180448; cv=fail; b=U3sJdtLRe+YRwkIx1bbvt22K82HBOkxx/HmNoR0gunv+9HK5/Sd/PUzaI503WAK3JfiYSTGGqMRIDmvJa9sUMWTcvhVy/RYygQ5N9DKHDHr546KUi28/9pDT7OvT5bQ5V7LcT6gx2PNC8NNxGdh82jblSOF0vlNR27dMOcMaQMc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790180448; c=relaxed/simple; bh=mIMtRZc/aP3dP+jhwzAxQ/FHZxXC9C/bUsZjVktjMeI=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=UBklVazSVZcgjY054Ebkd8BK1t4UeSr1bG6Ib4zMuJjinah6jQw7jF2Ti43vq0QCG1fS8UrNG+qGhQxAqwKaGprWIfO4o2eaK4I358U5uq7pxZa4AzAlHIBbtOh9cP29vusANBlUSNZ+v9h0epQyOE37c2B/o0MJPP/DONhYdlE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=rjxFChzW; arc=fail smtp.client-ip=52.101.65.60 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="rjxFChzW" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yaKjgmatJz/TrJusMj4uBParxzx78wvJC1xgL3e1qeVDvnySOY5jgI/eKA5cGtlQuyzRH1NIUHMX6yUHA/U+d4OlUi/m1MeY1iKQUgFF2mHC5NQ4xB8SPa8D5B6Kl2RV1BW/qkKwsqOhW/qHcP6bDTw+GE6SoxMDuc1MjqUOVO3N9xWrXxPsaWmCBPt32tKLwzUAVKZ4mGqJ32UYR7dBRpIf3qlqp3npIYEqH7C8N6FV2TH/gRPdorNS7YnxkQTNtcXo2L8wVh+jK/GjSSi9NSXHAwuMpZzWftGrW4DBVpJeUuN3pX/rVYeXxhXGBK5wrXf7X/8ygQcdfubfP8hNag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=5w/lPJrmc3m5j9IWNs0d7LIt4GcVNfKkkmTHK7HL1xQ=; b=iygF1rWW6Pr01GTi4bgxdZ7+qlud+sora313TELqS51UHsolenguK4Qsvh3qae+Zl10arOleMrssHaTLkYB232sxySi47Mwl2Rlbm6zyO85nMFRWhTOcY4s5dFgb44ABIzJsEItFxcH2h+PjlmLl4kYPEpT4tWgWRqct8LoIjgX60adpv5qmjfSyFRuxPqIwLkF9tuCld5fwWFlCeos4tjRK44BuGGmyyUursE1/beET+WC4pF+AZbmKyfuDLJBKA/FaKGkdIiamRiciGxgsYSHkVuWJb1AXMi9rO5xTTwRDk4S69wZCoHjC8i7bUlZbbCek0DlEDoYpD2fFL91Lvw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5w/lPJrmc3m5j9IWNs0d7LIt4GcVNfKkkmTHK7HL1xQ=; b=rjxFChzWfYaz1KfQnpMkEltmrpGo7HUDOF2IDCMRC/wsJegm5cfBEQg89ulzoXWzlVsyz+Y+nh9H+QdIlK8dqP/5pw724L73xLV0bo7xrHZ+z2/9k6KG4Tzqu5FCr8ZRPDXAaV2v3t+hLgngtEj0ZdS+xEEMG/wV6Pq1uXZ0TvLV57QlbYbkhfXusvnz0Gk3HRnsUIg9aJzlAeUFCQvpxqeRuh4HPOy58E/euo4fwgVaGyFW1i9SDt2HNevR0RC9qUZi9HLJZ0bPd19LiRSFoccGrdrw7V/ZCf4GC3tv1zB8kuptcSDjxOQmYpBos98fPQlZ/HiPljZHxdMM4y2Rkg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) by DU4PR04MB10433.eurprd04.prod.outlook.com (2603:10a6:10:55f::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.17; Wed, 23 Sep 2026 16:20:43 +0000 Received: from GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c]) by GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c%7]) with mapi id 15.21.0428.015; Wed, 23 Sep 2026 16:20:43 +0000 From: Frank.Li@oss.nxp.com Date: Wed, 23 Sep 2026 12:19:41 -0400 Subject: [PATCH v2 12/12] async_tx: replace open-coded cap_mask accesses with dmaengine_has_cap() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260923-dmaengine_prep_dma_pq-v2-12-32ed65b8a9b4@nxp.com> References: <20260923-dmaengine_prep_dma_pq-v2-0-32ed65b8a9b4@nxp.com> In-Reply-To: <20260923-dmaengine_prep_dma_pq-v2-0-32ed65b8a9b4@nxp.com> To: Vinod Koul , Frank Li , Dan Williams , Herbert Xu , "David S. Miller" , Jon Mason , Dave Jiang , Allen Hubbe Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-crypto@vger.kernel.org, imx@lists.linux.dev, Frank Li , ntb@lists.linux.dev X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1790180376; l=811; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=+z4r5MWtbaMh7Do/UsFrhQ12/nuY+GHP7Q0JHyFXttc=; b=PFL/30TfrECeDqWKuUVv6bTG8peu9n+fHCDvJ7fKvDOzeKxT9EsgBjXDl/qcJw08HcVYWy9Q+ S43fEkb4tIFACd3wuOoyHTZKbTCYKKFcb3Je2u10JJDBRcFTNzXHUGS X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR13CA0219.namprd13.prod.outlook.com (2603:10b6:a03:2c1::14) To GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB11799:EE_|DU4PR04MB10433:EE_ X-MS-Office365-Filtering-Correlation-Id: c2070377-2676-4be6-d68c-08df198e9dbb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014|19092799006|23010399003|18002099003|22082099003|56012099006|11063799006|10067099003; X-Microsoft-Antispam-Message-Info: wQ8OYhglvfxUKubG7LqWbpoJKe6icNrv91e+Xj6agguK3tlWtTe3zkUWyKDWpVlwUDxJhEeUQdsWP+gT+UnI/Yk5+z+Po40PaqUI7Z2YTa1sSmX0KzuRIxiYVwIJ3NKQD4w72I2NlAfwcscRDPHtet1IkMbXeKJQq0UojgtE+aJQq9lx/ZVjf9BZVXJxBe2AupMrAC9SLf25BQCfeVbCixCAkOAfq51sBiE5Dp/3m+0Ca4Q/lE0gvzUouif3zimQmpQVoes0f9E67ddHVX2AYqm6Ox29kf8oW2eVRyeWeya7/lts+ZQYjcXJYPnP83oh+2psofiOgZekeuHyzTIw9LrVqYB9mG67ceSujhNuXym9CDejlb4PBCsLYL/IpBPhK+YXggf+dSbnRsugxaV0qE/5OpcTGu+jLERXKbILlDhRfiyfRWPfMOXSJAGoj84AgXZ4pIxCX85dndsuSJJxaI52RIExsvUHUyhk9NWSpvfBeyyaYTDDkY5V47ziUt4iHFn0JHtEc3Gy5wKgNNMXpTU9HonioFA4batHJqaZ5GIdkMPPlwAa+ZK92bqbVCq/UNNJjDvBfaSgkaSVyK7NwzO6QZce0Ep/+yPIZmy4/3swO1EK1tRCEU2fQEz7chYolhPpevr+6paDSgA47yXdfQ5gw1RKkRVtnYGFDB+eAuk= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB11799.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(19092799006)(23010399003)(18002099003)(22082099003)(56012099006)(11063799006)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VWZIeWpoNEZSOFh4YVA4aWtFRWxJK1pUajdCZmNnendXM1F2ZHBVQnNVa2hZ?= =?utf-8?B?U3FDRG1WUUlIVUQxZEtnam91dEJkT3prRUZnWWtkbmNKTWVNQWxhOXp3Tmwr?= =?utf-8?B?aVg0cWVaR24vK0kwZkY0V2QzS2hkUnZITUlvYU5TY2w2VVpmVjFEV3VNK1du?= =?utf-8?B?NEpxdmM2TWVZQkpmblM3bE84MzRFRTFVQWczVG5GYmgzWFEyM1poU0NMMUdu?= =?utf-8?B?UlJqU0RCb1NWVkY5Uk1ZZ3FNVWk5eUpHdytnbmtQMkEvLy9hV0loMXNLdFpZ?= =?utf-8?B?WjhoeFJmZk1rWVAxZ2wwRDc2SXpPQkZlVlZZcC9EU2k3VG8rWEhrbjRhcGE1?= =?utf-8?B?ZU9yZ3J5Nlk3NFl4YUFMWlhwOWRNOXVDQmhxL203MTBqRkFnZFhYSXRSUUcy?= =?utf-8?B?QW41SjhXVm15NG1jY0NZcXBleXU1Q09FUEZUM2FZalh2UU5OcTdPYzlJaWZ0?= =?utf-8?B?TjNFRDVYUVV3dGl1NTBJZXdjZFRCN0FlWGNLN1FCMk5BbHQ5OU5Nc2Z0L2Ir?= =?utf-8?B?YWlJcFpWbVc2ZGNTdWg5S3BjL3Y2c3FWWWx5bXR3K2VEQ09WcGVtK1dTajBo?= =?utf-8?B?azVLdUxaQkVQQmtyMlRVTDk0c3R3V3FwYmlZa3R5WEc2bWE1Tjc2UEJVRWhS?= =?utf-8?B?ZVhBNDQ0ZHowNDVSTTZsenYvbGhEVW12ZUNReTVxcjBkUUEybkNFbkR6U09Q?= =?utf-8?B?dnREOFFEWStyZTZpTFhpbzV5THVkdjZUU0k3L3pUK0wwYkxiQTh5VlpUWS9R?= =?utf-8?B?RVBrekRGOUpMQ3VCdlA4NWJOZnBHNGd4cE5CR3Z4S1ZockE2WHpXd0dKZ0pH?= =?utf-8?B?bHp5NUZHOUY5RFlHLzI3QWczZytjb0M3cHQrdUI2TUMzbWZpYk1YN1ozUHVS?= =?utf-8?B?a0Y0aWtoSng5OCtrUXdsNkVkVWRwSW5UVys2NXIvWGRZSEZzaXUvcnJXRmF2?= =?utf-8?B?WVordUF0UjQya2JiK0wycks0L1hSMndLV21DTUtRazFncGxxOGdwRm5lWlRk?= =?utf-8?B?MEpka1U5SHFacHRSUEhYaWhhVGViczdmS1lLZFl4WFpnQnp6RFptOWtYOEdP?= =?utf-8?B?aytndGpTNGRFS2F6T1dPN0lwMzRRdEd2Vk1aMlFnRFFLM2pVUkF4bzlWcWVs?= =?utf-8?B?L3ExTW9WYkVaT3VjaTNjeERxblFKTERFSlpDTVdSU3JBZ3IvcXFSSUpCd2Iz?= =?utf-8?B?ckszaHpwbGJZSU10eE5IZ3hsZWRNVkJCdG1VdVVtdmhkcVgzaUl2Z3ludUpr?= =?utf-8?B?dkRNeGExSmd1aStva1U4a1RvQWFzQlhBVm8xb2VvMU9sQk5CSUJxOXVyeXl2?= =?utf-8?B?REdVUVpWOWprV2JINDQwVVNncWpON3ZlU0hTUnplTW4yckFGREpOc3htWTR1?= =?utf-8?B?ZEdnQndjWS81YmU0V2RHNEFlMTJWM3Fid2JqK25vdit1WlRBOHh6VEg1eVR4?= =?utf-8?B?UFdLVnhWV2swVk02bVVwUzdaWTd6eWZCU2NWMENqNDM4eWhha3JPOWFNUTcx?= =?utf-8?B?NUt2RGJvUEc1YVkrZDNQUFRheFJsOWdpWnBGM3d1aGZNVDJta3drYXpISHJH?= =?utf-8?B?WjdFRFhMSW1pRGZZMVNYL2NUN1A5bDU1MzJJbTFrOGVvNCtrblg2bkJYaXZi?= =?utf-8?B?c3V3cExFbmZBTm54anNNenJ5TlB5QlNvUnVHWEZBMFFScHlvK3FTQUs1SWth?= =?utf-8?B?Ri9sbW9saVNZWFNSWndkK0tPVStqS3Z5eXQxVENmUmFRTDkzV1V4c01MVXp1?= =?utf-8?B?OUZlYXdMZjlrSldNQnYyQlMzRC8yZyt3eFBiaEFxeWppYnF5M3RrelBLaWJ2?= =?utf-8?B?SENrWisxYTc3NFVUM0llSGRvczBtODJWeHMxeFpiUTFic3VpRDFQdFk2REht?= =?utf-8?B?TURIN1pwaXU2VzRFK2dqeUZSbDN4MGRvVHl5SUMyVTdUclMxMmN3c25YRkg1?= =?utf-8?B?OE03UDd1Q2dreC9Hdm9PNFVJNlYyUU9NOURvaWVINU9sTmtDUDBxZ1V2N013?= =?utf-8?B?b2JRc1pqdnhjdDJ6MWg1SEcwUXpSZ1lSV3RSUHpyYkRJVkY2Vld3S2FjdkN6?= =?utf-8?B?Sk5aQ0xJQWpTc0pRbFByRkVHejFyTVhpTEJSUWI0Nkc5aTI4djJ0U21FczVj?= =?utf-8?B?N1Y5S0dNeTNpTERFL1JJMDBlR3lZRXA5NXlhVmdrVXpUZFhMVnNLOS9IbFdX?= =?utf-8?B?UGhUaUowS01HVWJjdGM1blV3bUd3ZGU5WEtGUDhCQzAyRnlXQmI5UWlNUTJz?= =?utf-8?B?cE5XSDN5RmJOaWd0R2ZIRFZSQkwvdWxPTmxqM2hTUGd1c1ZrVXdldFpoODFF?= =?utf-8?B?MkxoTWZtUGlYUVRiVkYxVnh0aTk3bG1OWG9WTGVJUnNxd2lFWThtaTg1ejZY?= =?utf-8?Q?7la6UTuHzEHYAPBugFMAuY8qrzuqCfganxILD?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: c2070377-2676-4be6-d68c-08df198e9dbb X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB11799.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2026 16:20:43.6355 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: wlLy7kFeOmKIWzN+PGBVSyV8tQv0uUi96ARmtgnRrjcEV1iFoYS3WMLFWKozVJ+9O69q9TYZdMN0hOpeZCtiu6+ovpWcm/e/wcDgfgu35ka+KRumgspoUMkaybcp+YyZ X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR04MB10433 From: Frank Li Replace remaining direct accesses to chan->device->cap_mask with the dmaengine_has_cap() helper which already exists in dmaengine.h. Signed-off-by: Frank Li --- crypto/async_tx/async_tx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crypto/async_tx/async_tx.c b/crypto/async_tx/async_tx.c index 7eba152ecb97b..5637c95be6b3b 100644 --- a/crypto/async_tx/async_tx.c +++ b/crypto/async_tx/async_tx.c @@ -47,7 +47,7 @@ __async_tx_find_channel(struct async_submit_ctl *submit, =20 /* see if we can keep the chain on one channel */ if (depend_tx && - dma_has_cap(tx_type, depend_tx->chan->device->cap_mask)) + dmaengine_has_cap(depend_tx->chan, tx_type)) return depend_tx->chan; return async_dma_find_channel(tx_type); } --=20 2.43.0