From patchwork Wed Aug 12 21:24:08 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 2975 Return-Path: X-Original-To: noreply@patchwork.local Delivered-To: noreply@patchwork.local Received: from tor.lore.kernel.org (tor.lore.kernel.org [172.105.105.114]) by mxe881.netcup.net (Postfix) with ESMTPS id 3ECE81C05C9 for ; Wed, 12 Aug 2026 23:24:57 +0200 (CEST) Authentication-Results: mxe881; dkim=pass header.d=NXP1.onmicrosoft.com; spf=pass (sender IP is 172.105.105.114) smtp.mailfrom=linux-sunxi+bounces-25135-noreply=patchwork.local@lists.linux.dev smtp.helo=tor.lore.kernel.org Received-SPF: pass (mxe881: domain of lists.linux.dev designates 172.105.105.114 as permitted sender) client-ip=172.105.105.114; envelope-from=linux-sunxi+bounces-25135-noreply=patchwork.local@lists.linux.dev; helo=tor.lore.kernel.org; Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org [100.90.174.1]) by tor.lore.kernel.org (Postfix) with ESMTP id 9DCC7302794F for ; Wed, 12 Aug 2026 21:24:37 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id C4F6C48C41A; Wed, 12 Aug 2026 21:24:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="MxrAHX73" X-Original-To: linux-sunxi@lists.linux.dev Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010041.outbound.protection.outlook.com [52.101.84.41]) (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 91DE748C3F5; Wed, 12 Aug 2026 21:24:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.41 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786569873; cv=fail; b=LaOKFrc0OxJapXfOF/BkuEVEwt4Ho1DWtiSttMYmmie86damKfjxDDURiesro0VTjq8c7aHaXK9MLYwjcAUCmLs73aCO6bBetsx8yE4BzfJSjR8FXwj6UiKxxyrdtXmg9Ch3bX1HoEt5PSD+XCRdF7Su31w/IsqtAaTwcJO2dI4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786569873; c=relaxed/simple; bh=ZQ2gQNqFqIven/NWWHxp6yO4j2RBRb8NLqEvvhvAFPo=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=mRN1v40Vg4xqod9gYrp0hyuV4fD5PFO3hEVWk2cIvwoOMdzbTeHr9O1oc0AH2QnBpsl+T0MMo8aNzfXbiYab893B+DE7w5yhDDCo+X4RDcMNCrE1V7XeR4lc3Qe1Zdgun285cye94Ujw3i5GsTlhS0bL60Hi2H1r+Zy/RlZX0HE= 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=MxrAHX73; arc=fail smtp.client-ip=52.101.84.41 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 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Wfa62djdd/JN9ODP+zNUTJA+s6pP5wlnj08XnBMm/gzubhtHH3DBet8BndzplQjXdGr6K+EfjQbWbCGvewjroh/QgRxLJxUFkTt/gaoo18jNmQjJ+ElDE3bkwPwTLWa/3ao8zFAev/g3tJsPxwGTkdzDvVCagWCJtMJt9+9ygUEjIa73UAOwPNI4vXoBItsITnMLjo75PITSlvIDYfX5kdMJle8+pCd7kAG17bysYPP45XHg9pc70WDOaD6i8/iqcsbicppbr92Eew4R5eWaH3qPuLD3h4B5R44lrwKX3xI21o2TpBmr951QP7TmVXLEtQj++IqIEUuomxE0NMnw5g== 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=Ha6jOpM0h+MXgP7LvEXSxUQtQ8ZXqyO7kz02H2qiiiU=; b=Uj88LK0M3yXghY4QOQio6nmH9huQCcJRoxmXihBaCR8uXdw4HC/Y8+RtlpWMfYDRZL1Ja8DRMftQzaXqEH8wyD3nEjfrqAAiz3hPazGu1E+byworSKQHc/l3wJpdiEELvkjcmI5MQoxwAOwO9AVEaINJBFpMAs+dW+KXN4MU/JJx/cQb6Y2/uMTv2XaCz4YQd2UZ6pt9RjiurDQ1NokN+i513B/FyQE39XPB7aNHq2AHpPuUzfH7h5wUj9nwSuOLTKoCIJrOVe371XYhDjO9U9TuukIkOTzQ7+xmb5zr+ilev3hdVT6BiHJfspcaT0I8DN710PKb6KTKzf1Ut1EZmg== 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=Ha6jOpM0h+MXgP7LvEXSxUQtQ8ZXqyO7kz02H2qiiiU=; b=MxrAHX737h7r3913tM3mvmyERttYQJynjMl92GXL3QPQWvKLabyGVfvHhars6By4AGL1ppku0pHzI0bKQTNMhrOTHV3nhzYulawdsFeuOdUJF/x0qLBwgZUNB9/07JUCbQZgsp4ApuFj13XFH2j33IqYjStWkjv0Ay4/qRnh8Oep7TakgUFa1Kn1kmzIZlgl3xvvmBgp7l0oYqH7O6/3rMQmYY9+t87DzLhBC3sTg2/sEaHincTIYGP3c6SSgaHGlmbCwdwTGj9nM16Wmtg4PNpPKqm02k6Gwwy2zHcHZwBZ6jlpO+QmrdTs7YJuMGFxrAhWSqtyUTNTEZ40WaRDNw== 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 GV4PR04MB11821.eurprd04.prod.outlook.com (2603:10a6:150:2e0::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.315.12; Wed, 12 Aug 2026 21:24:26 +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.0315.012; Wed, 12 Aug 2026 21:24:26 +0000 From: Frank.Li@oss.nxp.com Date: Wed, 12 Aug 2026 17:24:08 -0400 Subject: [PATCH 1/2] dmaengine: use dma_chan_name() helper to get per-channel device name Message-Id: <20260812-dma-chan_dev-rename-v1-1-a67131f7d5c2@nxp.com> References: <20260812-dma-chan_dev-rename-v1-0-a67131f7d5c2@nxp.com> In-Reply-To: <20260812-dma-chan_dev-rename-v1-0-a67131f7d5c2@nxp.com> To: Jacky Huang , Shan-Chun Hung , Vinod Koul , Frank Li , Paul Cercueil , Eugeniy Paltsev , Andy Shevchenko , Binbin Zhou , Patrice Chotard , =?utf-8?q?Am=C3=A9lie_Delaun?= =?utf-8?q?ay?= , Maxime Coquelin , Alexandre Torgue , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , Thierry Reding , Jonathan Hunter , Ludovic Desroches , Viresh Kumar , Keguang Zhang , =?utf-8?q?Andreas_F=C3=A4rber?= , Manivannan Sadhasivam , Daniel Mack , Haojian Zhuang , Robert Jarzmik , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Kelvin Cao , Logan Gunthorpe , Laxman Dewangan , Vignesh Raghavendra Cc: linux-arm-kernel@lists.infradead.org, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mips@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-trace-kernel@vger.kernel.org, linux-tegra@vger.kernel.org, linux-actions@lists.infradead.org, linux-sunxi@lists.linux.dev, imx@lists.linux.dev, Frank Li X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786569857; l=9109; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=PDosGW0CD/B66+z51ntfn83KdAhvhxREfCe0V361xGQ=; b=2WjtUbPVSbMMF1zFSzfbeRa9kuJS5fZMsnN9fyou14PGipDsQL1x9wlJWMz1F7T3mSmnObkLo x4xtMsYRbZMDd8LAGKpnezanHap+6DvAbMyLsvJysceRGU8t1O0KMsv X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SA1PR02CA0018.namprd02.prod.outlook.com (2603:10b6:806:2cf::26) To GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) Precedence: bulk X-Mailing-List: linux-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB11799:EE_|GV4PR04MB11821:EE_ X-MS-Office365-Filtering-Correlation-Id: 562ea4da-8b92-47a1-4460-08def8b8163d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|1800799024|366016|7416014|376014|19092799006|921020|56012099006|18002099003|10067099003|11063799006|6133799003|22082099003|41080700001; X-Microsoft-Antispam-Message-Info: xDq3FexuycHnQKh8OfC8NNOjb7cVRHgLdTjHfyVStlid8YRaAIg0ca7vWcBXlIhDlzSSf8JmzbcoWfHmLpm4X3QD9n3eHs7ZJtPyxUx8IKWuvGBVG1qFFOVw+Y8ToQ69PDib7DE2mQ3Nkx3mex0kcaZiK4zA3DdUH0ig3pdnuZRVfTE2G5EqA5TWm2wqdRsrBpyQRiqvaf3cNYf5kXKy+dGL9byAPJmmO9c6h+vNhYZRLV6TuKekjpOlBuiW/WGS2jdnixdny3WdfhIPwReANEcI2siCC/+Ty3O87Bds/UC9+wJIKZ18edgXeqSMez8937FlDcbOo1xg+WuhuqawXRQy1Zpi/QNF9mFihhP68CMxR986dHq2V7vMChczm77/N7jtb+zQRGvMxUH3vxuZO7A8yw+RVt/gSY3swDID+x+9jJt51UcygNiltfD7y+cybRZvwPLXcyxFnu7yKDKFC7agg+fJWiLp2X5/CtxXZMnkAhjMe6CT5sE3jgthppWWZiNDmvFIUhIeThrceWywns1VaJrZr31ul2Qfgne/hfR5eDoNGP3xvU6xYhvhnN1apKJOw1HNVrxgAzvBnPy1XRX6s01hqE3ixPImxFVijAAkCu2lzMlM4xo2UHCefOQGL5dshDNrijmkCHOETfe8lwPEPcJADFSF1a2gksA45YCwqWjLELeMHsf+n0TZdESd7M3TJqlmWJKkFxYMmAEjDo3OVVAIQyllIGTa6mzOZXr6P+yg96xaza0tpOPWFUC6 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)(23010399003)(1800799024)(366016)(7416014)(376014)(19092799006)(921020)(56012099006)(18002099003)(10067099003)(11063799006)(6133799003)(22082099003)(41080700001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?lwy+FxGIjEw2pJZ4zeRdBQZHHydp?= =?utf-8?q?ZRv8X8BkUajM6SWD34dDNTVXIlF5fc5UIL/f2smYREaVRWDH7zlalDxY3vOqircVL?= =?utf-8?q?OdsKh2RMYslernZkBAbhbQibvQZUUXz3o96XJfTf7U5Ng1yjLNfE1iCEIXhBT/TkN?= =?utf-8?q?XzfbyYRBpFGvAcRCKOzCnMpF6MCxQNTgdYih0g0sJwoXWEtws6cox/ZNN79D025G6?= =?utf-8?q?vLWmffIw9BuCzb/1QKPWRpGxyQkgMQ/9+obFeaFHYLI363OPNuP0CdsHsLFyHdrYF?= =?utf-8?q?BJt/hqCeFAap4j6Q0b2/uQ+9BGzUp+GRxhC8UmcPFto5028pmQEDxkEWL1mt4rUQi?= =?utf-8?q?H6jn13CMJUCTI/xrnUicnvRIbaTbwzBYp0LBJ+WU8v+1aa70O7LWw65If3PlEVXN9?= =?utf-8?q?eOeCOj8qopdiihTrJ2SoxDT0DyHg4gjrBzVntECbx9D+sR/uWtmcxidqWISisNSOa?= =?utf-8?q?dEWZyQoTJ3huhiMpzMXhS5XcxwtnImKunJAw6B1wNt1xLlN2NcJ6lm9VoT2Eh4o3Q?= =?utf-8?q?X1K7wTDGe7TcEdagl+gJz3mZX2BfMPbNYtGzmnkfoqIYIQLJzzyFfb4gMEcA/PhtG?= =?utf-8?q?PXcwO+9Tj3ZtxE8ZiSj7n+qgDJDaG1x9hTHGG0dOszKovn54eFwATU844r6IfZTUP?= =?utf-8?q?vDz/BNuIF9AXZLQ5Uw2xfhvQlXnIld4fnkUaIUC2mqM5Ge7KY3RNwLiWg3j+uNwl1?= =?utf-8?q?bBxun3UBpPlxC/5hIP/Dvrmlvl+sAQB5Dl6Hu32jCXra6YcRzCTMJBWnS3c3Vhmzl?= =?utf-8?q?FgmrxAKLyLcjXnQk1yL6SxQ2U6WVPTYuvDAlcow/5TeOtWLZgoOr0yzO0SphXXmZP?= =?utf-8?q?w6SrrhMCpf9MkT855h0zcfvKy7a7jf6D/oBNNRj35xdxOkGPEVOGaqpfewo/GzeHf?= =?utf-8?q?rIHWPk3ONPotw6cXVaE1dpd5RFwYdG79Vp+IN3yYoWtNJxapJ6HCFo53fFJ8OfWXp?= =?utf-8?q?CTaApTWj56TTIgBumRv77PulrnQMdJX9hhBKEHaOzq9Q0V8OoXgX8GT6Z0jzGF4XO?= =?utf-8?q?8/fodlwqlZaGKrKFCUVRIyzI4vFUw0qxjFXqFI87mco9q5HZ/1O7BVMglFcl3G/IR?= =?utf-8?q?rqFGdULwJgeBELbWFBq9S7CO9Gbh1OkmjQmZW9sMuN+wUyiL7y0Fudy1Oj3r42w8O?= =?utf-8?q?KPofcBPcxPJU/0FRsS2BHSf5uimO2febGLoS9TwyZf8Cyx3fcCN0eLPiaCFw/F8Gv?= =?utf-8?q?lCNXsjHKcatpaeC0rHec7GRH7/AA041KiaGEQC3eaiRvy+KOKkL3MmCY/K1hDNNQ2?= =?utf-8?q?+LIyjEw8i0LO0TRBYUog8lTIfG7RFpXmXSIEqd0OevSsELKvlOSiB2Wy7f2bPQTOI?= =?utf-8?q?tlvedLwbLvhMCWPPAJaCmPUMBDbJCr2K3XBQOnEgIiNtox4Vnu9FcPMmPCnygcf6Q?= =?utf-8?q?sa2yPspODZQTPC9+B/836MOYGhYW5iYRaTxsOm46+l/DxUmNUZPilPhO0rAWnxZtY?= =?utf-8?q?kugrjeJmv88wHevYZ9fjx9pefdq7t2q93EBN5TpWqri5u0Nqr/tCwP0VKjDw3bWc5?= =?utf-8?q?x+UJDJjvwt73BtCYx/tQekT+qhK68K/4rnPi9BD6fAqSlXHs/Py001WYJeRzsCuj9?= =?utf-8?q?vByOjKBi67EOjhlfvaEs7IXS/uJVwSKcbHNCxsqq3lXLXk+Z1YiQujVQJ/iRQ5SkP?= =?utf-8?q?FRukXfd4IhBm55YYgoRMZjyEVXGHSM1yNwrZ4sCcQayZmGWJ53F+X2Q/XlHObi4xU?= =?utf-8?q?afnCYsC8x?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 562ea4da-8b92-47a1-4460-08def8b8163d X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB11799.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2026 21:24:26.6696 (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: 8/6SbnOSTs36RHZ6k+NatEJy9crS4G6ktoLDPXQP88n4YdRFHjvEynrZJe/ik3/wm9yNCbXzM4PG9HySBQG5GdtDCSMWZIyeEIyzyo/oiv2Iy7CoqTn5RDupLBjfTHCK X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV4PR04MB11821 X-MORS-Enabled: yes X-MORS-DOMAIN: patchwork.local X-MORS-HOSTING: hosting172546 X-MORS-USER: hosting172546 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= From: Frank Li Use the existing dma_chan_name() helper to obtain the per-channel device name instead of open-coding: dev_name(chan->dev->device) / dev_name(chan2dev()) Simplify the code and improve consistency. No functional change intended. Signed-off-by: Frank Li Reviewed-by: Logan Gunthorpe --- drivers/dma/arm-dma350.c | 2 +- drivers/dma/dma-jz4780.c | 2 +- drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c | 2 +- drivers/dma/idma64.c | 2 +- drivers/dma/loongson/loongson2-apb-cmc-dma.c | 2 +- drivers/dma/loongson/loongson2-apb-dma.c | 2 +- drivers/dma/mmp_pdma.c | 2 +- drivers/dma/st_fdma.c | 2 +- drivers/dma/stm32/stm32-dma.c | 2 +- drivers/dma/stm32/stm32-dma3.c | 6 +++--- drivers/dma/stm32/stm32-mdma.c | 2 +- include/trace/events/tegra_apb_dma.h | 6 +++--- 12 files changed, 16 insertions(+), 16 deletions(-) diff --git a/drivers/dma/arm-dma350.c b/drivers/dma/arm-dma350.c index 09403aca8bb06..89673a5fca304 100644 --- a/drivers/dma/arm-dma350.c +++ b/drivers/dma/arm-dma350.c @@ -512,7 +512,7 @@ static int d350_alloc_chan_resources(struct dma_chan *chan) { struct d350_chan *dch = to_d350_chan(chan); int ret = request_irq(dch->irq, d350_irq, IRQF_SHARED, - dev_name(&dch->vc.chan.dev->device), dch); + dma_chan_name(&dch->vc.chan), dch); if (!ret) writel_relaxed(CH_INTREN_DONE | CH_INTREN_ERR, dch->base + CH_INTREN); diff --git a/drivers/dma/dma-jz4780.c b/drivers/dma/dma-jz4780.c index 6070dfdb7114c..194649811d02b 100644 --- a/drivers/dma/dma-jz4780.c +++ b/drivers/dma/dma-jz4780.c @@ -760,7 +760,7 @@ static int jz4780_dma_alloc_chan_resources(struct dma_chan *chan) { struct jz4780_dma_chan *jzchan = to_jz4780_dma_chan(chan); - jzchan->desc_pool = dma_pool_create(dev_name(&chan->dev->device), + jzchan->desc_pool = dma_pool_create(dma_chan_name(chan), chan->device->dev, JZ_DMA_DESC_BLOCK_SIZE, PAGE_SIZE, 0); diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c index eebed2474210d..d24902374f742 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -531,7 +531,7 @@ static int dma_chan_alloc_chan_resources(struct dma_chan *dchan) } /* LLI address must be aligned to a 64-byte boundary */ - chan->desc_pool = dma_pool_create(dev_name(chan2dev(chan)), + chan->desc_pool = dma_pool_create(dma_chan_name(dchan), chan->chip->dev, sizeof(struct axi_dma_lli), 64, 0); diff --git a/drivers/dma/idma64.c b/drivers/dma/idma64.c index 5fcd1befc92da..6399fd5408be2 100644 --- a/drivers/dma/idma64.c +++ b/drivers/dma/idma64.c @@ -507,7 +507,7 @@ static int idma64_alloc_chan_resources(struct dma_chan *chan) struct idma64_chan *idma64c = to_idma64_chan(chan); /* Create a pool of consistent memory blocks for hardware descriptors */ - idma64c->pool = dma_pool_create(dev_name(chan2dev(chan)), + idma64c->pool = dma_pool_create(dma_chan_name(chan), chan->device->dev, sizeof(struct idma64_lli), 8, 0); if (!idma64c->pool) { diff --git a/drivers/dma/loongson/loongson2-apb-cmc-dma.c b/drivers/dma/loongson/loongson2-apb-cmc-dma.c index 1c9a542edc859..f53f24b7f8ffe 100644 --- a/drivers/dma/loongson/loongson2-apb-cmc-dma.c +++ b/drivers/dma/loongson/loongson2-apb-cmc-dma.c @@ -678,7 +678,7 @@ static int loongson2_cmc_dma_probe(struct platform_device *pdev) return lchan->irq; ret = devm_request_irq(dev, lchan->irq, loongson2_cmc_dma_chan_irq, IRQF_SHARED, - dev_name(chan2dev(lchan)), lchan); + dma_chan_name(&lchan->vchan.chan), lchan); if (ret) return ret; } diff --git a/drivers/dma/loongson/loongson2-apb-dma.c b/drivers/dma/loongson/loongson2-apb-dma.c index aceb069e71fca..7c3d7c3273955 100644 --- a/drivers/dma/loongson/loongson2-apb-dma.c +++ b/drivers/dma/loongson/loongson2-apb-dma.c @@ -282,7 +282,7 @@ static int ls2x_dma_alloc_chan_resources(struct dma_chan *chan) struct ls2x_dma_chan *lchan = to_ldma_chan(chan); /* Create a pool of consistent memory blocks for hardware descriptors */ - lchan->pool = dma_pool_create(dev_name(chan2dev(chan)), + lchan->pool = dma_pool_create(dma_chan_name(chan), chan->device->dev, PAGE_SIZE, __alignof__(struct ls2x_dma_hw_desc), 0); if (!lchan->pool) { diff --git a/drivers/dma/mmp_pdma.c b/drivers/dma/mmp_pdma.c index 386e85cd4882a..6b29e15b0616c 100644 --- a/drivers/dma/mmp_pdma.c +++ b/drivers/dma/mmp_pdma.c @@ -565,7 +565,7 @@ static int mmp_pdma_alloc_chan_resources(struct dma_chan *dchan) if (chan->desc_pool) return 1; - chan->desc_pool = dma_pool_create(dev_name(&dchan->dev->device), + chan->desc_pool = dma_pool_create(dma_chan_name(dchan), chan->dev, sizeof(struct mmp_pdma_desc_sw), __alignof__(struct mmp_pdma_desc_sw), diff --git a/drivers/dma/st_fdma.c b/drivers/dma/st_fdma.c index d9547017f3bd6..35dbff5f9f1ab 100644 --- a/drivers/dma/st_fdma.c +++ b/drivers/dma/st_fdma.c @@ -268,7 +268,7 @@ static int st_fdma_alloc_chan_res(struct dma_chan *chan) struct st_fdma_chan *fchan = to_st_fdma_chan(chan); /* Create the dma pool for descriptor allocation */ - fchan->node_pool = dma_pool_create(dev_name(&chan->dev->device), + fchan->node_pool = dma_pool_create(dma_chan_name(chan), fchan->fdev->dev, sizeof(struct st_fdma_hw_node), __alignof__(struct st_fdma_hw_node), diff --git a/drivers/dma/stm32/stm32-dma.c b/drivers/dma/stm32/stm32-dma.c index d3ad78562a140..4e3ecb6763036 100644 --- a/drivers/dma/stm32/stm32-dma.c +++ b/drivers/dma/stm32/stm32-dma.c @@ -1668,7 +1668,7 @@ static int stm32_dma_probe(struct platform_device *pdev) ret = devm_request_irq(&pdev->dev, chan->irq, stm32_dma_chan_irq, 0, - dev_name(chan2dev(chan)), chan); + dma_chan_name(&chan->vchan.chan), chan); if (ret) { dev_err(&pdev->dev, "request_irq failed with err %d channel %d\n", diff --git a/drivers/dma/stm32/stm32-dma3.c b/drivers/dma/stm32/stm32-dma3.c index 4724e7fa0008e..ab0fb05597363 100644 --- a/drivers/dma/stm32/stm32-dma3.c +++ b/drivers/dma/stm32/stm32-dma3.c @@ -1126,7 +1126,7 @@ static int stm32_dma3_alloc_chan_resources(struct dma_chan *c) goto err_put_sync; } - chan->lli_pool = dmam_pool_create(dev_name(&c->dev->device), c->device->dev, + chan->lli_pool = dmam_pool_create(dma_chan_name(c), c->device->dev, sizeof(struct stm32_dma3_hwdesc), __alignof__(struct stm32_dma3_hwdesc), SZ_64K); if (!chan->lli_pool) { @@ -1892,10 +1892,10 @@ static int stm32_dma3_probe(struct platform_device *pdev) chan->irq = ret; ret = devm_request_irq(&pdev->dev, chan->irq, stm32_dma3_chan_irq, 0, - dev_name(chan2dev(chan)), chan); + dma_chan_name(&chan->vchan.chan), chan); if (ret) { dev_err_probe(&pdev->dev, ret, "Failed to request channel %s IRQ\n", - dev_name(chan2dev(chan))); + dma_chan_name(&chan->vchan.chan)); goto err_clk_disable; } } diff --git a/drivers/dma/stm32/stm32-mdma.c b/drivers/dma/stm32/stm32-mdma.c index e3bbdc9ee36ed..c274638e919c2 100644 --- a/drivers/dma/stm32/stm32-mdma.c +++ b/drivers/dma/stm32/stm32-mdma.c @@ -1484,7 +1484,7 @@ static int stm32_mdma_alloc_chan_resources(struct dma_chan *c) struct stm32_mdma_device *dmadev = stm32_mdma_get_dev(chan); int ret; - chan->desc_pool = dmam_pool_create(dev_name(&c->dev->device), + chan->desc_pool = dmam_pool_create(dma_chan_name(c), c->device->dev, sizeof(struct stm32_mdma_hwdesc), __alignof__(struct stm32_mdma_hwdesc), diff --git a/include/trace/events/tegra_apb_dma.h b/include/trace/events/tegra_apb_dma.h index 6d9f5075baa3e..c38117c127ef3 100644 --- a/include/trace/events/tegra_apb_dma.h +++ b/include/trace/events/tegra_apb_dma.h @@ -11,7 +11,7 @@ TRACE_EVENT(tegra_dma_tx_status, TP_PROTO(struct dma_chan *dc, dma_cookie_t cookie, struct dma_tx_state *state), TP_ARGS(dc, cookie, state), TP_STRUCT__entry( - __string(chan, dev_name(&dc->dev->device)) + __string(chan, dma_chan_name(dc)) __field(dma_cookie_t, cookie) __field(__u32, residue) ), @@ -28,7 +28,7 @@ TRACE_EVENT(tegra_dma_complete_cb, TP_PROTO(struct dma_chan *dc, int count, void *ptr), TP_ARGS(dc, count, ptr), TP_STRUCT__entry( - __string(chan, dev_name(&dc->dev->device)) + __string(chan, dma_chan_name(dc)) __field(int, count) __field(void *, ptr) ), @@ -45,7 +45,7 @@ TRACE_EVENT(tegra_dma_isr, TP_PROTO(struct dma_chan *dc, int irq), TP_ARGS(dc, irq), TP_STRUCT__entry( - __string(chan, dev_name(&dc->dev->device)) + __string(chan, dma_chan_name(dc)) __field(int, irq) ), TP_fast_assign( From patchwork Wed Aug 12 21:24:09 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 2976 Return-Path: X-Original-To: noreply@patchwork.local Delivered-To: noreply@patchwork.local Received: from sto.lore.kernel.org (sto.lore.kernel.org [172.232.135.74]) by mxe881.netcup.net (Postfix) with ESMTPS id 731D31C05CD for ; Wed, 12 Aug 2026 23:24:56 +0200 (CEST) Authentication-Results: mxe881; dkim=pass header.d=NXP1.onmicrosoft.com; spf=pass (sender IP is 172.232.135.74) smtp.mailfrom=linux-sunxi+bounces-25136-noreply=patchwork.local@lists.linux.dev smtp.helo=sto.lore.kernel.org Received-SPF: pass (mxe881: domain of lists.linux.dev designates 172.232.135.74 as permitted sender) client-ip=172.232.135.74; envelope-from=linux-sunxi+bounces-25136-noreply=patchwork.local@lists.linux.dev; helo=sto.lore.kernel.org; Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org [100.90.174.1]) by sto.lore.kernel.org (Postfix) with ESMTP id D562E3010DA6 for ; Wed, 12 Aug 2026 21:24:46 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 0131948CD49; Wed, 12 Aug 2026 21:24:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="PMi6CTN5" X-Original-To: linux-sunxi@lists.linux.dev Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011062.outbound.protection.outlook.com [40.107.130.62]) (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 1362548C41C; Wed, 12 Aug 2026 21:24:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.62 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786569882; cv=fail; b=j07TxAh/GAuiUw3+hzWtHKrcnKgvtdSQS5DRAaE7B0+NP6nkb0WRlTSOPPtJnueQwqEJJbdkEXxnTyFi8w9cS/4HLfS/T/Tcl4DldclKF9IoIF+iy6WaEkC7tfP7ONVwaaML5ttGMLhdFKqZMn23gZUo/Fpyv0ASr1CL5skezvE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786569882; c=relaxed/simple; bh=b95VA9xYnWQvmX6w44mNHtNP9yi3+epLyjvXSGRR/wI=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=CGEnro6wvRSRcOC2QUBeKpAE9SeinXi0lwSttA6nUQK+wOjeWnKd5kZM2FTSeJL+4deJt0qOqC2paLiZlEB5G5qKDzwZ41Ryk4Augs/Tcd6FYIIqo6oqp660r9q/7qbsXFXCvpmvFntul6RxydRJodczr6q+PvuzOptGSCL+Dgo= 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=PMi6CTN5; arc=fail smtp.client-ip=40.107.130.62 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 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZRqD6CHndUpG5KQSQzKXMSJY6gZjRcchG0sLG4sbHhbJsbRC4I6fmQQSCFmdtiUb86oPsI2jxVqMti55USvexSIXwG5cyeRgHRVYFhyGrkpD1yeqjmCZZhig6enw/Baoo+U/trcrvRxFU2RpnmD9vAmoDnkcq1EJlO6Q7t4UApILzh+PguGjNmwV0qIE4whp4o1ifmLFAArqB8IDC0DzYwzV51/Y9AOk8M5emXjCSlNgChOCcz4Bu2gH1hvD/OLy61ZISkmfgFc8addleK34eolidDKoaUR5uQz5JmXXvUYLZoun0bc8BBKMxnSn91Abw1CfsWStMDBWS+7uhBFexg== 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=N0MCUZapd25YYFnlT29VEG0p/2ZvUnD5ydQdaBV/O6A=; b=n/UyR+fD9UG/ECrtqkMK5L2+Yf2KPJMqEjGU2iK3OxOHlMiWvhfBlFJcSiFx0UAp0DPi68qz5BRxluCQR7qjBgHOFotJaeuhg9ycD1yZxoQGTgphbpcDGz+RURd/R/4XPWxij9h9FjIf635x3WBFyVf8beLy6Ey1XaoqeNMrML8cuRus/jqP5M1HQWciISVy0FFrdF4wvYpoTqmycGIuKvLTE4GPdt6FsMSW9KxrTd7c8LUpwq4OvPVlMpNCrtNieop4vOqhPhwTAFfe2ACz8WBprnuNJxjeN8lKmfB7Ubi5QX3UGtMP/V5vNI+xCswNLpdaINZfq7t19BPioA9+Fw== 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=N0MCUZapd25YYFnlT29VEG0p/2ZvUnD5ydQdaBV/O6A=; b=PMi6CTN5PrTNahSV/gfbUN4up0pVJX0lpoNwtkEt3d5Ggn7Xw4WF35mmJEImesSth0Nt98leIe+gXCsLyVI1018s+9zsDAMbbuwWRfDYW9YQFT580iE/HtGLdp5a9IHuxv0U9SWj5KdSFho/z6vIpGTKZrjTb5en5t1j+73+V7LG/k0HXiOgCixUmh9+Ent+ppwp0lHMtabLeLS1qwQbVXZuHWKd65S/soIMouM4Zpot0WUJx1W+a/DPwxZ8pYNaJHj8CynsU8bmw5eTSBpHX0Hpzjk6sWE7jSsbHRYsH8j8ps5kVArLJOiN43DCPAAViyjmkPT1Ujyu4vJRiz2LAQ== 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 GV4PR04MB11821.eurprd04.prod.outlook.com (2603:10a6:150:2e0::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.315.12; Wed, 12 Aug 2026 21:24: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.0315.012; Wed, 12 Aug 2026 21:24:32 +0000 From: Frank.Li@oss.nxp.com Date: Wed, 12 Aug 2026 17:24:09 -0400 Subject: [PATCH 2/2] dmaengine: add union chan_dev for dma_chan::dev for clarity Message-Id: <20260812-dma-chan_dev-rename-v1-2-a67131f7d5c2@nxp.com> References: <20260812-dma-chan_dev-rename-v1-0-a67131f7d5c2@nxp.com> In-Reply-To: <20260812-dma-chan_dev-rename-v1-0-a67131f7d5c2@nxp.com> To: Jacky Huang , Shan-Chun Hung , Vinod Koul , Frank Li , Paul Cercueil , Eugeniy Paltsev , Andy Shevchenko , Binbin Zhou , Patrice Chotard , =?utf-8?q?Am=C3=A9lie_Delaun?= =?utf-8?q?ay?= , Maxime Coquelin , Alexandre Torgue , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers , Thierry Reding , Jonathan Hunter , Ludovic Desroches , Viresh Kumar , Keguang Zhang , =?utf-8?q?Andreas_F=C3=A4rber?= , Manivannan Sadhasivam , Daniel Mack , Haojian Zhuang , Robert Jarzmik , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Kelvin Cao , Logan Gunthorpe , Laxman Dewangan , Vignesh Raghavendra Cc: linux-arm-kernel@lists.infradead.org, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mips@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-trace-kernel@vger.kernel.org, linux-tegra@vger.kernel.org, linux-actions@lists.infradead.org, linux-sunxi@lists.linux.dev, imx@lists.linux.dev, Frank Li X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1786569857; l=30289; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=dDNLoDLRSP1leDJ7kWgXFYzuLcBNbHE4rSZ3rnXCYlc=; b=PigVNwYfANqHiD9LFAYXdltYmnUt5XaU02cPOnDPDGWGnvM0d0TV9Yg2PN34HKqglrn5TIGvF 6pg2oL7RdArBV15pKlrHFjrl3R+4hia2W6UcoEB1FAZcuyoscYOTmLS X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SA1PR02CA0005.namprd02.prod.outlook.com (2603:10b6:806:2cf::10) To GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) Precedence: bulk X-Mailing-List: linux-sunxi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB11799:EE_|GV4PR04MB11821:EE_ X-MS-Office365-Filtering-Correlation-Id: 227e4943-11ed-4aec-c4f5-08def8b81953 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|1800799024|366016|7416014|376014|19092799006|921020|56012099006|18002099003|10067099003|11063799006|22082099003|41080700001; X-Microsoft-Antispam-Message-Info: 6Rl/Nqr+3M77dwvRRLx91n9SmxXEKuDGVD3nqv2fczq8OejZqFEhDXwjVIb2WI+GHOu4m50PNLVSv+Nraj3VbWZZOGGEkMPXRuwYC+dEv6wWxRRoOtJnj3qYrV/dUfAX158hmr1AeMqR2NVskZK8OXE622ccTFKeWMh73IwTq9fFI0FdX2rhf8naCUfK0Istw7zWdDfjvQ5aXVuo9eH0bwIwTqh0V+CgCMZkaIa1ojekLjn9jJhflGwZ80UkKf7BfttZY61ABBVqVo9z/Fki/gkRh1kaeqobikLkbH/C+XL12WbVbl2gmWr5A0nyMpntvYjJq8M2QlMriKbqB+IKr/zZALTWD6gDPIXWFPGnYdoLcKnESkKd5Gn0hXJil+qpwaF5UqK1/Ed8EEZaYZwiypUdooN4hsu2PFXTFetIbI/PpOMTReEe4KGZTiYO0MTRP7BcwwNlkEsOAB6ndIo0H2guYjEQCSiLDPi/zIyOv3aKWEki+m57LMsyu6kgwTXTPdDds45BDjc4Txt/uJY3GyZ+7Fc0tN/WWSMGMSZbmsC9buPAgMbhveu9eB0DJ/hsfg2QlI23ikBq/j0E+pep4Xm6m5lMh96AqVT0vb0xHh+aOfm/Ub3v48lxtvXEVJsptgsvM1JU07eqp+d1chQgmOY1pTkF/KoiR7GQZ8XTYljM4gTJSGd4b8642EDwwbYzQLMJZYP5g8EJJuMqKJmlEP50+OyX90kHaKgiacEN9DebLqD6iMxjXTgwTNC/RuC0 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)(23010399003)(1800799024)(366016)(7416014)(376014)(19092799006)(921020)(56012099006)(18002099003)(10067099003)(11063799006)(22082099003)(41080700001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?39dZi172rPHZHNWzRp35rJ04ppY+?= =?utf-8?q?5kgo2BkHNRBlqUA64NlpRNJJP7rRr/duuZVAElMeR6VC4TNmiBhpsP0SM4Uzyz0QI?= =?utf-8?q?6cYpR/sEKpUVTklr0i8Ewaiuk1iiagpW5sWpzFcw0U/1DH2mxOaBoS77hx2pg3gl/?= =?utf-8?q?YZrJDEm3y86fnfPq5EXiksDemyGRfgnHMBaHm2M5uZaAg7wBEJUMskujEMxNYDAhL?= =?utf-8?q?4cENE/53ZjbrHjxFYM/C8S4vebAtaun0vEV8obyTTumwi1IeqJNEPPG822A47Q8BN?= =?utf-8?q?GtHLGcNArgszqNV11Yq0GloQskY1BIKhWwiWdOUoIcwNaVkRO8kVqT8Gu1H/tOzI4?= =?utf-8?q?exhH/G0u5kei+XVc/onR4bI6f5M48R4C0RHqqlBVZC8wlbAYVrNUb8WMODYP4Gw/N?= =?utf-8?q?tUHgsK1D330INJr1T1voTInJSFfVHLkN5pMC2mL1NXNipDJzMT4mvFEyTWmjzvRW5?= =?utf-8?q?KZJbAXgawn73L3BL+LumronKDnz1OEqPsS8vAOxErmesxYMQQs1SH7SmF4KE/F+ik?= =?utf-8?q?iKNgqcyXvV7bwNcXUZ7BUQM/c2gwDMTs4zfrB4yuqtxMg3uLWKegM+qdZ+PQos4sP?= =?utf-8?q?eMgq3k1tKg0/8bzBn599q481Y3l5fkBCVcs6+kGIiWTJabDg8GowEyD5MyPbveTR5?= =?utf-8?q?20RLQyEm1hWH9ixSBqdhTKbgWqHiYC03qpXSlnXsWCy1NeEk5LGJxg5hShQW6+plj?= =?utf-8?q?OK/N9hKiJHmNDUftTonaSTAxFqx6Gk3GjIEj561dPTp/EiOjA9J7XDuAA4xkuquWa?= =?utf-8?q?91hHg5VUAbmxXunEi85d5u15zLjqf3qJY87rX9NoCSJwxZQPeWpV7EIOzA4DZ+UvZ?= =?utf-8?q?JNSFBGofD51VN6IobiCvk6pqeN9BAPLMjrmx85AgJ0Qp/WxpE+P7w09PvVvs699nT?= =?utf-8?q?21Zyp9Bpztnkhcgzagx+f8Lu4QH0ca+3fATt6dsoICR3GpYn8PNs60wj32bL+wb1E?= =?utf-8?q?BU3IwE+HSNUPh/bt7E/2bMPpyKr5OFRMzxM3BgGKl2KGBjseFgm2g9cqGYE/9cF5i?= =?utf-8?q?lES9IJ8KjLcWgwFXC7MUNSJyxxDbQasTkg3lL6LAWDM2AX8oWHpxDrMU7embrRfwl?= =?utf-8?q?FNUEJDbAuPr5LbheEW47akCSRnr127hcJ+rKvVIzU+0tzFecGvOWECOnJzipiRnFH?= =?utf-8?q?vhb+7ynLk6xobRjpMrpwJrzi7hpCcWBbIt8IU7Px+c2B7xq809z6KW6eFb81dkqPv?= =?utf-8?q?vxpxyRYE+PW6V5nAWrkjl7+ZqYdYzE0x4ituT9xLObGvQTMkIsUdlxw6VKpI2ZeI8?= =?utf-8?q?3d2M/px8zWC/HDLSULd9HRpvUS331UNHnZIUvNW9tL4QnD06Oq3N95XCZb8OKDAaV?= =?utf-8?q?OAJqURmvft1+YirQANsmByLTFAIdV4DkzEwVWDuKe3WtIcvJuX0oaxt6uxdjZLqNp?= =?utf-8?q?waEFpTvrNF+eYS06CV/FqWLDnfnRK0zfdJvRyqPtY5hPG+zTeJe32E01CI7J1Rhmd?= =?utf-8?q?ip9BqKd0ZqDKftEAW5Pht5/f/mms9/D7oBFsXmfO1/yCf6anMj7iErPtxm+/8488x?= =?utf-8?q?NuHyzIfQgO/fBFHt6AoouKRNNLdVG+Mlqt3jZWFfojtbZgfqx5/Hn6WQqAIF177lw?= =?utf-8?q?lNugGvkifTw7uUgp2XzQAjk/v7YK7kJcAt7kZWP1aXMw2IOqANrxR+WZTxD7V4+py?= =?utf-8?q?raqjK5ygguCdJ4JZ9UYSc+l+ZWLvNnJoVnEWMMVqgcOEo+DoQi915e15iinwuSnGk?= =?utf-8?q?psCP8rFRR?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 227e4943-11ed-4aec-c4f5-08def8b81953 X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB11799.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2026 21:24:31.9493 (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: gxMsqOUgyPSIKU2zk8sNzJokfWdiHL9jRwfYKkYOJK2Tb8IULrWJKc+i4NsBcl+pG1VAuqpF1U5FoUxfKubkiNmHW92p9rNjKRw0a3HVPyVNcoPfoJD6nmnpa+Ze+jos X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV4PR04MB11821 X-Rspamd-Server: rspamd-worker-8404 X-Spamd-Result: default: False [-0.16 / 15.00]; BAYES_HAM(-5.50)[100.00%]; RBL_SENDERSCORE(2.00)[172.232.135.74:from]; SUSPICIOUS_RECIPS(1.50)[]; DMARC_POLICY_SOFTFAIL(1.00)[nxp.com : SPF not aligned (relaxed), DKIM not aligned (relaxed),none]; ARC_REJECT(1.00)[cv is fail on i=2]; MAILLIST(-0.15)[generic]; BAD_REP_POLICIES(0.10)[]; MIME_GOOD(-0.10)[text/plain]; HAS_LIST_UNSUB(-0.01)[]; TAGGED_RCPT(0.00)[]; FROM_NO_DN(0.00)[]; RCPT_COUNT_TWELVE(0.00)[43]; DBL_BLOCKED_OPENRESOLVER(0.00)[nxp.com:email,sto.lore.kernel.org:rdns,sto.lore.kernel.org:helo,NXP1.onmicrosoft.com:dkim]; FORGED_SENDER_MAILLIST(0.00)[]; PRECEDENCE_BULK(0.00)[]; RCVD_COUNT_FIVE(0.00)[6]; FROM_NEQ_ENVFROM(0.00)[Frank.Li@oss.nxp.com,linux-sunxi@lists.linux.dev]; DKIM_TRACE(0.00)[NXP1.onmicrosoft.com:+]; FREEMAIL_TO(0.00)[nuvoton.com,kernel.org,crapouillou.net,synopsys.com,linux.intel.com,loongson.cn,foss.st.com,gmail.com,goodmis.org,efficios.com,nvidia.com,microchip.com,suse.de,zonque.org,free.fr,sholland.org,deltatee.com,ti.com]; MID_RHS_MATCH_FROMTLD(0.00)[]; R_SPF_ALLOW(0.00)[+ip4:172.232.135.74]; R_DKIM_ALLOW(0.00)[NXP1.onmicrosoft.com:s=selector1-NXP1-onmicrosoft-com]; FORGED_RECIPIENTS_MAILLIST(0.00)[]; RCVD_TLS_LAST(0.00)[]; MIME_TRACE(0.00)[0:+]; TAGGED_FROM(0.00)[bounces-25136-noreply=patchwork.local]; ASN(0.00)[asn:63949, ipnet:172.232.128.0/19, country:SG]; TO_DN_SOME(0.00)[] X-Rspamd-Queue-Id: 731D31C05CD X-MORS-Enabled: yes X-MORS-DOMAIN: patchwork.local X-MORS-HOSTING: hosting172546 X-MORS-USER: hosting172546 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= From: Frank Li The current dma_chan structure contains both "device" and "dev". So chan->device->dev refers to the DMA engine device. chan->dev->device refers to the per-channel device instance. Their similar naming makes the distinction unclear and increases reader confusion. Add union dma_chan::chan_dev to make its purpose explicit and clearly identify it as the per-channel device. After all user switch to chan_dev, union and dma_chan::dev will be removed. Update the kernel-doc accordingly. Besides its sysfs usage, the per-channel device is also used by some DMA engine drivers for IOMMU mapping and therefore deserves a more accurate description. No functional change intended. Signed-off-by: Frank Li Reviewed-by: Logan Gunthorpe --- there are other user use it outside drivers/dma/ directory. --- drivers/dma/at_hdmac.c | 2 +- drivers/dma/at_xdmac.c | 2 +- drivers/dma/dma-jz4780.c | 8 ++--- drivers/dma/dmaengine.c | 34 +++++++++--------- drivers/dma/dw-axi-dmac/dw-axi-dmac.h | 4 +-- drivers/dma/dw/core.c | 2 +- drivers/dma/ep93xx_dma.c | 2 +- drivers/dma/idma64.c | 2 +- drivers/dma/loongson/loongson1-apb-dma.c | 2 +- drivers/dma/loongson/loongson2-apb-cmc-dma.c | 2 +- drivers/dma/loongson/loongson2-apb-dma.c | 2 +- drivers/dma/nbpfaxi.c | 2 +- drivers/dma/owl-dma.c | 2 +- drivers/dma/pch_dma.c | 2 +- drivers/dma/pxa_dma.c | 52 ++++++++++++++-------------- drivers/dma/stm32/stm32-dma.c | 2 +- drivers/dma/stm32/stm32-dma3.c | 2 +- drivers/dma/stm32/stm32-mdma.c | 2 +- drivers/dma/sun6i-dma.c | 2 +- drivers/dma/switchtec_dma.c | 14 ++++---- drivers/dma/tegra186-gpc-dma.c | 4 +-- drivers/dma/tegra20-apb-dma.c | 2 +- drivers/dma/ti/k3-udma.c | 6 ++-- drivers/dma/timb_dma.c | 2 +- include/linux/dmaengine.h | 18 +++++++--- 25 files changed, 91 insertions(+), 83 deletions(-) diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c index e5b30a57c477a..63c72f80d9a02 100644 --- a/drivers/dma/at_hdmac.c +++ b/drivers/dma/at_hdmac.c @@ -383,7 +383,7 @@ static inline struct at_dma *to_at_dma(struct dma_device *ddev) static struct device *chan2dev(struct dma_chan *chan) { - return &chan->dev->device; + return &chan->chan_dev->device; } #if defined(VERBOSE_DEBUG) diff --git a/drivers/dma/at_xdmac.c b/drivers/dma/at_xdmac.c index 901971e8bae69..30ec996845ce7 100644 --- a/drivers/dma/at_xdmac.c +++ b/drivers/dma/at_xdmac.c @@ -326,7 +326,7 @@ static inline struct at_xdmac_chan *to_at_xdmac_chan(struct dma_chan *dchan) static struct device *chan2dev(struct dma_chan *chan) { - return &chan->dev->device; + return &chan->chan_dev->device; } static inline struct at_xdmac *to_at_xdmac(struct dma_device *ddev) diff --git a/drivers/dma/dma-jz4780.c b/drivers/dma/dma-jz4780.c index 194649811d02b..c48a46b2bbbf2 100644 --- a/drivers/dma/dma-jz4780.c +++ b/drivers/dma/dma-jz4780.c @@ -687,12 +687,12 @@ static bool jz4780_dma_chan_irq(struct jz4780_dma_dev *jzdma, jz4780_dma_chn_writel(jzdma, jzchan->id, JZ_DMA_REG_DCS, 0); if (dcs & JZ_DMA_DCS_AR) { - dev_warn(&jzchan->vchan.chan.dev->device, + dev_warn(&jzchan->vchan.chan.chan_dev->device, "address error (DCS=0x%x)\n", dcs); } if (dcs & JZ_DMA_DCS_HLT) { - dev_warn(&jzchan->vchan.chan.dev->device, + dev_warn(&jzchan->vchan.chan.chan_dev->device, "channel halt (DCS=0x%x)\n", dcs); } @@ -721,7 +721,7 @@ static bool jz4780_dma_chan_irq(struct jz4780_dma_dev *jzdma, } } } else { - dev_err(&jzchan->vchan.chan.dev->device, + dev_err(&jzchan->vchan.chan.chan_dev->device, "channel IRQ with no active transfer\n"); } @@ -765,7 +765,7 @@ static int jz4780_dma_alloc_chan_resources(struct dma_chan *chan) JZ_DMA_DESC_BLOCK_SIZE, PAGE_SIZE, 0); if (!jzchan->desc_pool) { - dev_err(&chan->dev->device, + dev_err(&chan->chan_dev->device, "failed to allocate descriptor pool\n"); return -ENOMEM; } diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c index 6ffd8bd82154a..c00641366c4dc 100644 --- a/drivers/dma/dmaengine.c +++ b/drivers/dma/dmaengine.c @@ -868,10 +868,10 @@ struct dma_chan *dma_request_chan(struct device *dev, const char *name) return chan; chan->slave = dev; - if (sysfs_create_link(&chan->dev->device.kobj, &dev->kobj, + if (sysfs_create_link(&chan->chan_dev->device.kobj, &dev->kobj, DMA_SLAVE_NAME)) dev_warn(dev, "Cannot create DMA %s symlink\n", DMA_SLAVE_NAME); - if (sysfs_create_link(&dev->kobj, &chan->dev->device.kobj, chan->name)) + if (sysfs_create_link(&dev->kobj, &chan->chan_dev->device.kobj, chan->name)) dev_warn(dev, "Cannot create DMA %s symlink\n", chan->name); return chan; @@ -917,7 +917,7 @@ void dma_release_channel(struct dma_chan *chan) dma_chan_put(chan); if (chan->slave) { - sysfs_remove_link(&chan->dev->device.kobj, DMA_SLAVE_NAME); + sysfs_remove_link(&chan->chan_dev->device.kobj, DMA_SLAVE_NAME); sysfs_remove_link(&chan->slave->kobj, chan->name); kfree(chan->name); chan->name = NULL; @@ -1083,8 +1083,8 @@ static int __dma_async_device_channel_register(struct dma_device *device, chan->local = alloc_percpu(typeof(*chan->local)); if (!chan->local) return -ENOMEM; - chan->dev = kzalloc_obj(*chan->dev); - if (!chan->dev) { + chan->chan_dev = kzalloc_obj(*chan->chan_dev); + if (!chan->chan_dev) { rc = -ENOMEM; goto err_free_local; } @@ -1101,17 +1101,17 @@ static int __dma_async_device_channel_register(struct dma_device *device, goto err_free_dev; } - chan->dev->device.class = &dma_devclass; - chan->dev->device.parent = device->dev; - chan->dev->chan = chan; - chan->dev->dev_id = device->dev_id; + chan->chan_dev->device.class = &dma_devclass; + chan->chan_dev->device.parent = device->dev; + chan->chan_dev->chan = chan; + chan->chan_dev->dev_id = device->dev_id; spin_lock_init(&chan->lock); if (!name) - dev_set_name(&chan->dev->device, "dma%dchan%d", device->dev_id, chan->chan_id); + dev_set_name(&chan->chan_dev->device, "dma%dchan%d", device->dev_id, chan->chan_id); else - dev_set_name(&chan->dev->device, "%s", name); - rc = device_register(&chan->dev->device); + dev_set_name(&chan->chan_dev->device, "%s", name); + rc = device_register(&chan->chan_dev->device); if (rc) goto err_out_ida; chan->client_count = 0; @@ -1122,7 +1122,7 @@ static int __dma_async_device_channel_register(struct dma_device *device, err_out_ida: ida_free(&device->chan_ida, chan->chan_id); err_free_dev: - kfree(chan->dev); + kfree(chan->chan_dev); err_free_local: free_percpu(chan->local); chan->local = NULL; @@ -1155,10 +1155,10 @@ static void __dma_async_device_channel_unregister(struct dma_device *device, __func__, chan->client_count); mutex_lock(&dma_list_mutex); device->chancnt--; - chan->dev->chan = NULL; + chan->chan_dev->chan = NULL; mutex_unlock(&dma_list_mutex); ida_free(&device->chan_ida, chan->chan_id); - device_unregister(&chan->dev->device); + device_unregister(&chan->chan_dev->device); free_percpu(chan->local); } @@ -1290,9 +1290,9 @@ int dma_async_device_register(struct dma_device *device) if (chan->local == NULL) continue; mutex_lock(&dma_list_mutex); - chan->dev->chan = NULL; + chan->chan_dev->chan = NULL; mutex_unlock(&dma_list_mutex); - device_unregister(&chan->dev->device); + device_unregister(&chan->chan_dev->device); free_percpu(chan->local); } return rc; diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac.h b/drivers/dma/dw-axi-dmac/dw-axi-dmac.h index 67cc199e24d1f..ccfd09c06807b 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac.h +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac.h @@ -121,12 +121,12 @@ struct axi_dma_chan_config { static inline struct device *dchan2dev(struct dma_chan *dchan) { - return &dchan->dev->device; + return &dchan->chan_dev->device; } static inline struct device *chan2dev(struct axi_dma_chan *chan) { - return &chan->vc.chan.dev->device; + return &chan->vc.chan.chan_dev->device; } static inline struct axi_dma_desc *vd_to_axi_desc(struct virt_dma_desc *vd) diff --git a/drivers/dma/dw/core.c b/drivers/dma/dw/core.c index dd75f97a33b3d..d5618c128121f 100644 --- a/drivers/dma/dw/core.c +++ b/drivers/dma/dw/core.c @@ -43,7 +43,7 @@ static struct device *chan2dev(struct dma_chan *chan) { - return &chan->dev->device; + return &chan->chan_dev->device; } static struct dw_desc *dwc_first_active(struct dw_dma_chan *dwc) diff --git a/drivers/dma/ep93xx_dma.c b/drivers/dma/ep93xx_dma.c index 311e55a97ba9f..977ab12c793e9 100644 --- a/drivers/dma/ep93xx_dma.c +++ b/drivers/dma/ep93xx_dma.c @@ -252,7 +252,7 @@ struct ep93xx_edma_data { static inline struct device *chan2dev(struct ep93xx_dma_chan *edmac) { - return &edmac->chan.dev->device; + return &edmac->chan.chan_dev->device; } static struct ep93xx_dma_chan *to_ep93xx_dma_chan(struct dma_chan *chan) diff --git a/drivers/dma/idma64.c b/drivers/dma/idma64.c index 6399fd5408be2..6fdc0d50964ad 100644 --- a/drivers/dma/idma64.c +++ b/drivers/dma/idma64.c @@ -27,7 +27,7 @@ static struct device *chan2dev(struct dma_chan *chan) { - return &chan->dev->device; + return &chan->chan_dev->device; } /* ---------------------------------------------------------------------- */ diff --git a/drivers/dma/loongson/loongson1-apb-dma.c b/drivers/dma/loongson/loongson1-apb-dma.c index 89786cbd20ab5..03c8081e4b9a9 100644 --- a/drivers/dma/loongson/loongson1-apb-dma.c +++ b/drivers/dma/loongson/loongson1-apb-dma.c @@ -91,7 +91,7 @@ static irqreturn_t ls1x_dma_irq_handler(int irq, void *data); static inline struct device *chan2dev(struct dma_chan *chan) { - return &chan->dev->device; + return &chan->chan_dev->device; } static inline int ls1x_dma_query(struct ls1x_dma_chan *chan, diff --git a/drivers/dma/loongson/loongson2-apb-cmc-dma.c b/drivers/dma/loongson/loongson2-apb-cmc-dma.c index f53f24b7f8ffe..dbb85b72003e1 100644 --- a/drivers/dma/loongson/loongson2-apb-cmc-dma.c +++ b/drivers/dma/loongson/loongson2-apb-cmc-dma.c @@ -136,7 +136,7 @@ static struct loongson2_cmc_dma_desc *to_lmdma_desc(struct virt_dma_desc *vdesc) static struct device *chan2dev(struct loongson2_cmc_dma_chan *lchan) { - return &lchan->vchan.chan.dev->device; + return &lchan->vchan.chan.chan_dev->device; } static u32 loongson2_cmc_dma_read(struct loongson2_cmc_dma_dev *lddev, u32 reg, u32 id) diff --git a/drivers/dma/loongson/loongson2-apb-dma.c b/drivers/dma/loongson/loongson2-apb-dma.c index 7c3d7c3273955..94f4364fbfb56 100644 --- a/drivers/dma/loongson/loongson2-apb-dma.c +++ b/drivers/dma/loongson/loongson2-apb-dma.c @@ -163,7 +163,7 @@ static inline struct ls2x_dma_priv *to_ldma_priv(struct dma_device *ddev) static struct device *chan2dev(struct dma_chan *chan) { - return &chan->dev->device; + return &chan->chan_dev->device; } static void ls2x_dma_desc_free(struct virt_dma_desc *vdesc) diff --git a/drivers/dma/nbpfaxi.c b/drivers/dma/nbpfaxi.c index 05d7321629cc8..4dd87cafc5e0a 100644 --- a/drivers/dma/nbpfaxi.c +++ b/drivers/dma/nbpfaxi.c @@ -1202,7 +1202,7 @@ static irqreturn_t nbpf_chan_irq(int irq, void *dev) nbpf_status_ack(chan); - dev_dbg(&chan->dma_chan.dev->device, "%s()\n", __func__); + dev_dbg(&chan->dma_chan.chan_dev->device, "%s()\n", __func__); spin_lock(&chan->lock); desc = chan->running; diff --git a/drivers/dma/owl-dma.c b/drivers/dma/owl-dma.c index 7c80572fc71d1..ab7531a3a89c9 100644 --- a/drivers/dma/owl-dma.c +++ b/drivers/dma/owl-dma.c @@ -294,7 +294,7 @@ static inline struct owl_dma *to_owl_dma(struct dma_device *dd) static struct device *chan2dev(struct dma_chan *chan) { - return &chan->dev->device; + return &chan->chan_dev->device; } static inline struct owl_dma_vchan *to_owl_vchan(struct dma_chan *chan) diff --git a/drivers/dma/pch_dma.c b/drivers/dma/pch_dma.c index bf805f1024f64..69d60b587c2bb 100644 --- a/drivers/dma/pch_dma.c +++ b/drivers/dma/pch_dma.c @@ -152,7 +152,7 @@ static inline struct pch_dma *to_pd(struct dma_device *ddev) static inline struct device *chan2dev(struct dma_chan *chan) { - return &chan->dev->device; + return &chan->chan_dev->device; } static inline diff --git a/drivers/dma/pxa_dma.c b/drivers/dma/pxa_dma.c index fa2ee0b3e09f8..5398b47fec370 100644 --- a/drivers/dma/pxa_dma.c +++ b/drivers/dma/pxa_dma.c @@ -149,7 +149,7 @@ struct pxad_device { ({ \ u32 _v; \ _v = readl_relaxed((phy)->base + _reg((phy)->idx)); \ - dev_vdbg(&phy->vchan->vc.chan.dev->device, \ + dev_vdbg(&phy->vchan->vc.chan.chan_dev->device, \ "%s(): readl(%s): 0x%08x\n", __func__, #_reg, \ _v); \ _v; \ @@ -157,14 +157,14 @@ struct pxad_device { #define phy_writel(phy, val, _reg) \ do { \ writel((val), (phy)->base + _reg((phy)->idx)); \ - dev_vdbg(&phy->vchan->vc.chan.dev->device, \ + dev_vdbg(&phy->vchan->vc.chan.chan_dev->device, \ "%s(): writel(0x%08x, %s)\n", \ __func__, (u32)(val), #_reg); \ } while (0) #define phy_writel_relaxed(phy, val, _reg) \ do { \ writel_relaxed((val), (phy)->base + _reg((phy)->idx)); \ - dev_vdbg(&phy->vchan->vc.chan.dev->device, \ + dev_vdbg(&phy->vchan->vc.chan.chan_dev->device, \ "%s(): writel_relaxed(0x%08x, %s)\n", \ __func__, (u32)(val), #_reg); \ } while (0) @@ -396,7 +396,7 @@ static struct pxad_phy *lookup_phy(struct pxad_chan *pchan) out_unlock: spin_unlock_irqrestore(&pdev->phy_lock, flags); - dev_dbg(&pchan->vc.chan.dev->device, + dev_dbg(&pchan->vc.chan.chan_dev->device, "%s(): phy=%p(%d)\n", __func__, found, found ? found->idx : -1); @@ -409,7 +409,7 @@ static void pxad_free_phy(struct pxad_chan *chan) unsigned long flags; u32 reg; - dev_dbg(&chan->vc.chan.dev->device, + dev_dbg(&chan->vc.chan.chan_dev->device, "%s(): freeing\n", __func__); if (!chan->phy) return; @@ -454,7 +454,7 @@ static void phy_enable(struct pxad_phy *phy, bool misaligned) if (!phy->vchan) return; - dev_dbg(&phy->vchan->vc.chan.dev->device, + dev_dbg(&phy->vchan->vc.chan.chan_dev->device, "%s(); phy=%p(%d) misaligned=%d\n", __func__, phy, phy->idx, misaligned); @@ -483,7 +483,7 @@ static void phy_disable(struct pxad_phy *phy) return; dcsr = phy_readl_relaxed(phy, DCSR); - dev_dbg(&phy->vchan->vc.chan.dev->device, + dev_dbg(&phy->vchan->vc.chan.chan_dev->device, "%s(): phy=%p(%d)\n", __func__, phy, phy->idx); phy_writel(phy, dcsr & ~PXA_DCSR_RUN & ~PXA_DCSR_STOPIRQEN, DCSR); } @@ -491,12 +491,12 @@ static void phy_disable(struct pxad_phy *phy) static void pxad_launch_chan(struct pxad_chan *chan, struct pxad_desc_sw *desc) { - dev_dbg(&chan->vc.chan.dev->device, + dev_dbg(&chan->vc.chan.chan_dev->device, "%s(): desc=%p\n", __func__, desc); if (!chan->phy) { chan->phy = lookup_phy(chan); if (!chan->phy) { - dev_dbg(&chan->vc.chan.dev->device, + dev_dbg(&chan->vc.chan.chan_dev->device, "%s(): no free dma channel\n", __func__); return; } @@ -592,7 +592,7 @@ static unsigned int clear_chan_irq(struct pxad_phy *phy) dcsr = phy_readl_relaxed(phy, DCSR); phy_writel(phy, dcsr, DCSR); if ((dcsr & PXA_DCSR_BUSERR) && (phy->vchan)) - dev_warn(&phy->vchan->vc.chan.dev->device, + dev_warn(&phy->vchan->vc.chan.chan_dev->device, "%s(chan=%p): PXA_DCSR_BUSERR\n", __func__, &phy->vchan); @@ -617,7 +617,7 @@ static irqreturn_t pxad_chan_handler(int irq, void *dev_id) spin_lock(&chan->vc.lock); list_for_each_entry_safe(vd, tmp, &chan->vc.desc_issued, node) { vd_completed = is_desc_completed(vd); - dev_dbg(&chan->vc.chan.dev->device, + dev_dbg(&chan->vc.chan.chan_dev->device, "%s(): checking txd %p[%x]: completed=%d dcsr=0x%x\n", __func__, vd, vd->tx.cookie, vd_completed, dcsr); @@ -640,7 +640,7 @@ static irqreturn_t pxad_chan_handler(int irq, void *dev_id) } if (!chan->bus_error && dcsr & PXA_DCSR_STOPSTATE) { - dev_dbg(&chan->vc.chan.dev->device, + dev_dbg(&chan->vc.chan.chan_dev->device, "%s(): channel stopped, submitted_empty=%d issued_empty=%d", __func__, list_empty(&chan->vc.desc_submitted), @@ -694,7 +694,7 @@ static int pxad_alloc_chan_resources(struct dma_chan *dchan) __alignof__(struct pxad_desc_hw), 0); if (!chan->desc_pool) { - dev_err(&chan->vc.chan.dev->device, + dev_err(&chan->vc.chan.chan_dev->device, "%s(): unable to allocate descriptor pool\n", __func__); return -ENOMEM; @@ -749,7 +749,7 @@ pxad_alloc_desc(struct pxad_chan *chan, unsigned int nb_hw_desc) for (i = 0; i < nb_hw_desc; i++) { desc = dma_pool_alloc(sw_desc->desc_pool, GFP_NOWAIT, &dma); if (!desc) { - dev_err(&chan->vc.chan.dev->device, + dev_err(&chan->vc.chan.chan_dev->device, "%s(): Couldn't allocate the %dth hw_desc from dma_pool %p\n", __func__, i, sw_desc->desc_pool); goto err; @@ -786,7 +786,7 @@ static dma_cookie_t pxad_tx_submit(struct dma_async_tx_descriptor *tx) if (list_empty(&vc->desc_submitted) && pxad_try_hotchain(vc, vd)) { list_move_tail(&vd->node, &vc->desc_issued); - dev_dbg(&chan->vc.chan.dev->device, + dev_dbg(&chan->vc.chan.chan_dev->device, "%s(): txd %p[%x]: submitted (hot linked)\n", __func__, vd, cookie); goto out; @@ -809,7 +809,7 @@ static dma_cookie_t pxad_tx_submit(struct dma_async_tx_descriptor *tx) else vd_chained = NULL; } - dev_dbg(&chan->vc.chan.dev->device, + dev_dbg(&chan->vc.chan.chan_dev->device, "%s(): txd %p[%x]: submitted (%s linked)\n", __func__, vd, cookie, vd_chained ? "cold" : "not"); list_move_tail(&vd->node, &vc->desc_submitted); @@ -832,7 +832,7 @@ static void pxad_issue_pending(struct dma_chan *dchan) vd_first = list_first_entry(&chan->vc.desc_submitted, struct virt_dma_desc, node); - dev_dbg(&chan->vc.chan.dev->device, + dev_dbg(&chan->vc.chan.chan_dev->device, "%s(): txd %p[%x]", __func__, vd_first, vd_first->tx.cookie); vchan_issue_pending(&chan->vc); @@ -852,7 +852,7 @@ pxad_tx_prep(struct virt_dma_chan *vc, struct virt_dma_desc *vd, INIT_LIST_HEAD(&vd->node); tx = vchan_tx_prep(vc, vd, tx_flags); tx->tx_submit = pxad_tx_submit; - dev_dbg(&chan->vc.chan.dev->device, + dev_dbg(&chan->vc.chan.chan_dev->device, "%s(): vc=%p txd=%p[%x] flags=0x%lx\n", __func__, vc, vd, vd->tx.cookie, tx_flags); @@ -891,7 +891,7 @@ static void pxad_get_config(struct pxad_chan *chan, *dcmd |= PXA_DCMD_BURST32 | PXA_DCMD_INCTRGADDR | PXA_DCMD_INCSRCADDR; - dev_dbg(&chan->vc.chan.dev->device, + dev_dbg(&chan->vc.chan.chan_dev->device, "%s(): dev_addr=0x%x maxburst=%d width=%d dir=%d\n", __func__, dev_addr, maxburst, width, dir); @@ -925,7 +925,7 @@ pxad_prep_memcpy(struct dma_chan *dchan, if (!dchan || !len) return NULL; - dev_dbg(&chan->vc.chan.dev->device, + dev_dbg(&chan->vc.chan.chan_dev->device, "%s(): dma_dst=0x%lx dma_src=0x%lx len=%zu flags=%lx\n", __func__, (unsigned long)dma_dst, (unsigned long)dma_src, len, flags); @@ -974,7 +974,7 @@ pxad_prep_slave_sg(struct dma_chan *dchan, struct scatterlist *sgl, return NULL; pxad_get_config(chan, dir, &dcmd, &dsadr, &dtadr); - dev_dbg(&chan->vc.chan.dev->device, + dev_dbg(&chan->vc.chan.chan_dev->device, "%s(): dir=%d flags=%lx\n", __func__, dir, flags); nb_desc = sg_nents_for_dma(sgl, sg_len, PDMA_MAX_DESC_BYTES); @@ -1021,7 +1021,7 @@ pxad_prep_dma_cyclic(struct dma_chan *dchan, if (!dchan || !len || !period_len) return NULL; if ((dir != DMA_DEV_TO_MEM) && (dir != DMA_MEM_TO_DEV)) { - dev_err(&chan->vc.chan.dev->device, + dev_err(&chan->vc.chan.chan_dev->device, "Unsupported direction for cyclic DMA\n"); return NULL; } @@ -1032,7 +1032,7 @@ pxad_prep_dma_cyclic(struct dma_chan *dchan, pxad_get_config(chan, dir, &dcmd, &dsadr, &dtadr); dcmd |= PXA_DCMD_ENDIRQEN | (PXA_DCMD_LENGTH & period_len); - dev_dbg(&chan->vc.chan.dev->device, + dev_dbg(&chan->vc.chan.chan_dev->device, "%s(): buf_addr=0x%lx len=%zu period=%zu dir=%d flags=%lx\n", __func__, (unsigned long)buf_addr, len, period_len, dir, flags); @@ -1080,14 +1080,14 @@ static int pxad_terminate_all(struct dma_chan *dchan) struct pxad_phy *phy; LIST_HEAD(head); - dev_dbg(&chan->vc.chan.dev->device, + dev_dbg(&chan->vc.chan.chan_dev->device, "%s(): vchan %p: terminate all\n", __func__, &chan->vc); spin_lock_irqsave(&chan->vc.lock, flags); vchan_get_all_descriptors(&chan->vc, &head); list_for_each_entry(vd, &head, node) { - dev_dbg(&chan->vc.chan.dev->device, + dev_dbg(&chan->vc.chan.chan_dev->device, "%s(): cancelling txd %p[%x] (completed=%d)", __func__, vd, vd->tx.cookie, is_desc_completed(vd)); } @@ -1177,7 +1177,7 @@ static unsigned int pxad_residue(struct pxad_chan *chan, out: spin_unlock_irqrestore(&chan->vc.lock, flags); - dev_dbg(&chan->vc.chan.dev->device, + dev_dbg(&chan->vc.chan.chan_dev->device, "%s(): txd %p[%x] sw_desc=%p: %d\n", __func__, vd, cookie, sw_desc, residue); return residue; diff --git a/drivers/dma/stm32/stm32-dma.c b/drivers/dma/stm32/stm32-dma.c index 4e3ecb6763036..5fceed6fd8265 100644 --- a/drivers/dma/stm32/stm32-dma.c +++ b/drivers/dma/stm32/stm32-dma.c @@ -250,7 +250,7 @@ static struct stm32_dma_desc *to_stm32_dma_desc(struct virt_dma_desc *vdesc) static struct device *chan2dev(struct stm32_dma_chan *chan) { - return &chan->vchan.chan.dev->device; + return &chan->vchan.chan.chan_dev->device; } static u32 stm32_dma_read(struct stm32_dma_device *dmadev, u32 reg) diff --git a/drivers/dma/stm32/stm32-dma3.c b/drivers/dma/stm32/stm32-dma3.c index ab0fb05597363..81db3b33cabf6 100644 --- a/drivers/dma/stm32/stm32-dma3.c +++ b/drivers/dma/stm32/stm32-dma3.c @@ -330,7 +330,7 @@ static inline struct stm32_dma3_swdesc *to_stm32_dma3_swdesc(struct virt_dma_des static struct device *chan2dev(struct stm32_dma3_chan *chan) { - return &chan->vchan.chan.dev->device; + return &chan->vchan.chan.chan_dev->device; } static struct device *ddata2dev(struct stm32_dma3_ddata *ddata) diff --git a/drivers/dma/stm32/stm32-mdma.c b/drivers/dma/stm32/stm32-mdma.c index c274638e919c2..a7ab77e4ebbcb 100644 --- a/drivers/dma/stm32/stm32-mdma.c +++ b/drivers/dma/stm32/stm32-mdma.c @@ -278,7 +278,7 @@ static struct stm32_mdma_desc *to_stm32_mdma_desc(struct virt_dma_desc *vdesc) static struct device *chan2dev(struct stm32_mdma_chan *chan) { - return &chan->vchan.chan.dev->device; + return &chan->vchan.chan.chan_dev->device; } static struct device *mdma2dev(struct stm32_mdma_device *mdma_dev) diff --git a/drivers/dma/sun6i-dma.c b/drivers/dma/sun6i-dma.c index f47a326dd7ffa..0fa640557fb07 100644 --- a/drivers/dma/sun6i-dma.c +++ b/drivers/dma/sun6i-dma.c @@ -215,7 +215,7 @@ struct sun6i_dma_dev { static struct device *chan2dev(struct dma_chan *chan) { - return &chan->dev->device; + return &chan->chan_dev->device; } static inline struct sun6i_dma_dev *to_sun6i_dma_dev(struct dma_device *d) diff --git a/drivers/dma/switchtec_dma.c b/drivers/dma/switchtec_dma.c index c133535d37656..ebb734f807a3b 100644 --- a/drivers/dma/switchtec_dma.c +++ b/drivers/dma/switchtec_dma.c @@ -406,7 +406,7 @@ static int disable_channel(struct switchtec_dma_chan *swdma_chan) static void switchtec_dma_cleanup_completed(struct switchtec_dma_chan *swdma_chan) { - struct device *chan_dev = &swdma_chan->dma_chan.dev->device; + struct device *chan_dev = &swdma_chan->dma_chan.chan_dev->device; struct switchtec_dma_desc *desc; struct switchtec_dma_hw_ce *ce; struct dmaengine_result res; @@ -851,7 +851,7 @@ static irqreturn_t switchtec_dma_chan_status_isr(int irq, void *dma) list_for_each_entry(chan, &dma_dev->channels, device_node) { swdma_chan = container_of(chan, struct switchtec_dma_chan, dma_chan); - chan_dev = &swdma_chan->dma_chan.dev->device; + chan_dev = &swdma_chan->dma_chan.chan_dev->device; chan_hw = swdma_chan->mmio_chan_hw; rcu_read_lock(); @@ -1009,19 +1009,19 @@ static int switchtec_dma_alloc_chan_resources(struct dma_chan *chan) perf_cfg = readl(&swdma_chan->mmio_chan_fw->perf_cfg); rcu_read_unlock(); - dev_dbg(&chan->dev->device, "Burst Size: 0x%x\n", + dev_dbg(&chan->chan_dev->device, "Burst Size: 0x%x\n", FIELD_GET(PERF_BURST_SIZE_MASK, perf_cfg)); - dev_dbg(&chan->dev->device, "Burst Scale: 0x%x\n", + dev_dbg(&chan->chan_dev->device, "Burst Scale: 0x%x\n", FIELD_GET(PERF_BURST_SCALE_MASK, perf_cfg)); - dev_dbg(&chan->dev->device, "Interval: 0x%x\n", + dev_dbg(&chan->chan_dev->device, "Interval: 0x%x\n", FIELD_GET(PERF_INTERVAL_MASK, perf_cfg)); - dev_dbg(&chan->dev->device, "Arb Weight: 0x%x\n", + dev_dbg(&chan->chan_dev->device, "Arb Weight: 0x%x\n", FIELD_GET(PERF_ARB_WEIGHT_MASK, perf_cfg)); - dev_dbg(&chan->dev->device, "MRRS: 0x%x\n", + dev_dbg(&chan->chan_dev->device, "MRRS: 0x%x\n", FIELD_GET(PERF_MRRS_MASK, perf_cfg)); return SWITCHTEC_DMA_SQ_SIZE; diff --git a/drivers/dma/tegra186-gpc-dma.c b/drivers/dma/tegra186-gpc-dma.c index 64cedef1050ae..e36111e8a76dc 100644 --- a/drivers/dma/tegra186-gpc-dma.c +++ b/drivers/dma/tegra186-gpc-dma.c @@ -1537,7 +1537,7 @@ static int tegra_dma_probe(struct platform_device *pdev) * the channels available and registered for the DMA device are used. */ list_for_each_entry(chan, &tdma->dma_dev.channels, device_node) { - chdev = &chan->dev->device; + chdev = &chan->chan_dev->device; tdc = to_tegra_dma_chan(chan); if (use_iommu_map) { @@ -1554,7 +1554,7 @@ static int tegra_dma_probe(struct platform_device *pdev) return dev_err_probe(chdev, -EINVAL, "Failed to get stream ID for channel %d\n", tdc->id); - chan->dev->chan_dma_dev = true; + chan->chan_dev->chan_dma_dev = true; } /* program stream-id for this channel */ diff --git a/drivers/dma/tegra20-apb-dma.c b/drivers/dma/tegra20-apb-dma.c index 640b8a218c9ad..33811e7ee6552 100644 --- a/drivers/dma/tegra20-apb-dma.c +++ b/drivers/dma/tegra20-apb-dma.c @@ -256,7 +256,7 @@ txd_to_tegra_dma_desc(struct dma_async_tx_descriptor *td) static inline struct device *tdc2dev(struct tegra_dma_channel *tdc) { - return &tdc->dma_chan.dev->device; + return &tdc->dma_chan.chan_dev->device; } static dma_cookie_t tegra_dma_tx_submit(struct dma_async_tx_descriptor *tx); diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c index fb21e0df5ab7b..4fa6e81ff5a86 100644 --- a/drivers/dma/ti/k3-udma.c +++ b/drivers/dma/ti/k3-udma.c @@ -422,16 +422,16 @@ static int navss_psil_unpair(struct udma_dev *ud, u32 src_thread, static void k3_configure_chan_coherency(struct dma_chan *chan, u32 asel) { - struct device *chan_dev = &chan->dev->device; + struct device *chan_dev = &chan->chan_dev->device; if (asel == 0) { /* No special handling for the channel */ - chan->dev->chan_dma_dev = false; + chan->chan_dev->chan_dma_dev = false; dev_clear_dma_coherent(chan_dev); chan_dev->dma_parms = NULL; } else if (asel == 14 || asel == 15) { - chan->dev->chan_dma_dev = true; + chan->chan_dev->chan_dma_dev = true; dev_set_dma_coherent(chan_dev); dma_coerce_mask_and_coherent(chan_dev, DMA_BIT_MASK(48)); diff --git a/drivers/dma/timb_dma.c b/drivers/dma/timb_dma.c index 4fc5119854ec1..f414e41d90013 100644 --- a/drivers/dma/timb_dma.c +++ b/drivers/dma/timb_dma.c @@ -93,7 +93,7 @@ struct timb_dma { static struct device *chan2dev(struct dma_chan *chan) { - return &chan->dev->device; + return &chan->chan_dev->device; } static struct device *chan2dmadev(struct dma_chan *chan) { diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index fe33a20abc614..0fcec3f21390b 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h @@ -325,7 +325,8 @@ struct dma_router { * @lock: protect between config and prepare transfer when driver have not * implemented callback device_prep_config_sg(). * @chan_id: channel ID for sysfs - * @dev: class device for sysfs + * @chan_dev: class channel device for sysfs, some device use it for per-channel + * iommu mapping. * @name: backlink name for sysfs * @dbg_client_name: slave name for debugfs in format: * dev_name(requester's dev):channel name, for example: "2b00000.mcasp:tx" @@ -351,7 +352,14 @@ struct dma_chan { /* sysfs */ int chan_id; - struct dma_chan_dev *dev; + union { + struct dma_chan_dev *chan_dev; + /* + * please use chan_dev, dev will be removed after all user + switch to chan_dev + */ + struct dma_chan_dev *dev; + }; const char *name; #ifdef CONFIG_DEBUG_FS char *dbg_client_name; @@ -532,7 +540,7 @@ struct dma_slave_caps { static inline const char *dma_chan_name(struct dma_chan *chan) { - return dev_name(&chan->dev->device); + return dev_name(&chan->chan_dev->device); } /** @@ -1805,8 +1813,8 @@ dmaengine_get_direction_text(enum dma_transfer_direction dir) static inline struct device *dmaengine_get_dma_device(struct dma_chan *chan) { - if (chan->dev->chan_dma_dev) - return &chan->dev->device; + if (chan->chan_dev->chan_dma_dev) + return &chan->chan_dev->device; return chan->device->dev; }