From nobody Sun May 24 21:39:22 2026 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11020112.outbound.protection.outlook.com [52.101.228.112]) (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 9C8D7221F20; Thu, 21 May 2026 06:31:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.112 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779345084; cv=fail; b=hww/EJBRdmcI/mmepSG8UujWX6779tLCFQniMvUlYEX/b/UtMLl+XZmvTfJ9Yz2vJ85rX3Z/A0tVFt6u2e2riIGW91EvrMK40Jrb4vvCvanK5BW/CKE5e1OablO7m+F9WFZP1wH+7Xv6z8ZJ9yxELt6Yn8/h1IeOTVAqgZ5wVrw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779345084; c=relaxed/simple; bh=vTHijv+fJSrYE/fMkiV31DNWk0idPgD5wXy4v04fzs0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Umj87/MusZ9buSIo+i1WKE2dA1NBpq/gnR9h7xUmp7UFqWeqvG0H24E0rJ/ZJtF4vgJgQDL5RzXgTamD+AoGlTmG18q0axFaeSd8MFpgxvzcoUkHqwhXfgvnAONiydQqSwK5uOApmhdntoUAtiOkNeGekDlHof2e3NAtK3N+HBo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp; spf=pass smtp.mailfrom=valinux.co.jp; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b=VIZZHGsS; arc=fail smtp.client-ip=52.101.228.112 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b="VIZZHGsS" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=BMhbSm2DLmAzg2KhfgDfAvlDfcuUF7mrvcaWIzJg1mUvS73bXoZJozRwK7+wE8UTixMFV9mE17gD+dQNBAn5BIXpXojDDtRExTcT57sS+9Ltah8grUBpeD2MzuIoWBS6AdukBNSLZIEQGZD0QR7PrEWgWw3A48nK85JZ33anCnE0qt6BDHVfygCMM9GLCrsL4sRPy2TAK9nqYgAFrjUEwD3Hjo/mnQ15jG5YwlfGNy46kQZMPCRQ2bfKPuxqVn4PD+tRGHyM+pMEe9A0suo7KlyWRmZdk75WmqeQRKLtx5ImmgadTVwPr6JD9K6140RxsKHepqMvVlXuNmQ+Nrz9ig== 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=++jx00ZKIblZ00Hh2P9I2CgzD6Ar5xocwGnmnrfFNBI=; b=cskmW1JmwY6jPhsOxu7uEY4Z7J+GT4deUr6aHYyLKRwmq9239tKGvtk7WatNfMM0WfOnU8386IJOj6/88ZJvt1U0Gg87TRR5vfAPaMa/o59xE6ar/RU4YTHf0rNtlYwNFizIXnolNxU9ZVARn9nfdfb/Cn3c9AqGrF4HhOU41OJxUlzMSEuY1gCKNGT83YHeXV25t0WYP0cQfVId/0lfgAMdbU5NThsOu2syNbuWBdX4YmT/PR1sUN5/77qKESB9IN+4XHEsMv3GtoGhzdK5UDxC8FKKIQD//nRErwp7rXGFmzQlerlDdASkCYT4jNGPKOTfZSjZpjBo5BLWbfU6Jw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=++jx00ZKIblZ00Hh2P9I2CgzD6Ar5xocwGnmnrfFNBI=; b=VIZZHGsS3K3aFqZmrsf9eQO5DuIhDNgCRaZ0RoV9AVYJ8GoD5Z9rZuhYBb4/xHMmtW08pgKJaLmgOCJeLaAORoPjzY3cYT4tf6OsPPDc2gt/4O/p3tYGuqcYRS/dyJ6QZ345TYpJ46JMNFEFPL2+G2fFjcr8L5Qg4gQ+ybXSfkY= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) by OS9P286MB7818.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:473::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Thu, 21 May 2026 06:31:20 +0000 Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.21.0048.016; Thu, 21 May 2026 06:31:20 +0000 From: Koichiro Den To: Vinod Koul , Frank Li , Manivannan Sadhasivam Cc: Marek Vasut , Yoshihiro Shimoda , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 01/12] dmaengine: Make dma_get_slave_channel() public Date: Thu, 21 May 2026 15:31:04 +0900 Message-ID: <20260521063115.2842238-2-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260521063115.2842238-1-den@valinux.co.jp> References: <20260521063115.2842238-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0075.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:31a::16) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) 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: TY7P286MB7722:EE_|OS9P286MB7818:EE_ X-MS-Office365-Filtering-Correlation-Id: f4813c9f-5b3e-4dea-0299-08deb7029220 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|10070799003|376014|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: 1nlrBel4rI00Bieo7qZvXpRXUHvGKS1MjL1m5GECHcudPJmPN7Q5WQiQflPLnmol/om9CSOMQnMkGkxlXahHk13DSzch4kaCoM8VcHD/PTb/gnXeK7b5zxl4bPPLpv3JyWTE6hqn9JkWiIJKS9LkK75rA+9e1E84xMl9otZivdkZSPIuWH7y3sfNOEDInVHQyo8eB1wXKHwqZq1X1zYvFt56qLwXv0SYMN+puh38OCMDaQVcKRBmW7l2Pfr+TaaMDlxNmZpKavUiUpD6GhD3frI0UFZuY1uvIxHYtfjGvUE+n3H66e+Mjyr5aAutdXinBAfZ4MqPjoZ7NJU0FswU8fWpcumx6Y81/a4hO6KNA36k4UhjZuBREtk8sDlTQRUYE7fXwQC3fx5X//QE6KxfF7KzGHE/shJBQv0ORoBsW16MLEN/Ilwe3EZdS9ZY9u75DaRZJEPZAVqmXLp9Z+II31dB5ffQa9G0v7Yf0OfA5y0HpeaFLsVoEVovC3GqMeY8mdXRYXbUjCBELzR0lymCjYjOPxB4Xvxn3IN7c1cKKk6clE3TPp3A13GAyybmQijpbg4j435/VKFyoW9JYTgDpibT04/vhKU4JeNSdb9KOUGln+TpwT2PKvtvRHwmvr+x+ruW3N1zwUL9XjckRUG1w50ojQsyr/UmBMwVRx/HFfKw7Tfrwi7zG4JmCIukcF3v X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(10070799003)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?u/Mtw+llirpfYQaMXWBOzoOYTv7taGVlJ4V3p+weakB9nk0jpWhFcaRF0t4Z?= =?us-ascii?Q?qObiZkiGRs5kQbo0eQ+qWtzDKgYPdSOEnOSem98aYkiWoOQ3ttmzP68+HNuP?= =?us-ascii?Q?s4XBxKjExBPGBrbwOv+mMFncshy5iDnHuZI3Q0B4aUn0MyLnZSCtZq0sYt1q?= =?us-ascii?Q?uQpDq/vFTtHDok1IwO5GOwbC92+sRaK++os5QtVAYmIElIGR29XCHBAH5Nb/?= =?us-ascii?Q?gKiAh84uDhtSyJLq4wSEKTo0DmTMGUOFCioueBHPILJo49CaHe2cneDz12Sc?= =?us-ascii?Q?FyIxNIl0JE3TxSGhOCzBhNzWYQgQ3yPfnBSB+t2ZI1vPaAsse88bg93sJCs9?= =?us-ascii?Q?FtJbXHms3nyRb3nHzkmddhsxnSxxLSk5EKKBvexFY8DMe1bIIDg3dOzFoG8Y?= =?us-ascii?Q?j409z1qRYGBbNQtIktxf6NxJgDVxc3sOBXWAd6mV1aFLby10A3mwU8DvMCOx?= =?us-ascii?Q?VrJCTZ0DkpdB4pNL4oRPcGTuDOMoxz1sv/9Xg0Cgiy8wzMevHs+VAXH8KiDm?= =?us-ascii?Q?4EKkopEoPfXjKv0+p69ufnC+luMfDVPgLW+RKUCM1eBZNDpeJ/K09GLPE0NQ?= =?us-ascii?Q?H2rDsKj3b9WKiX1XCobgK535pED0YAQTJGMnBK0VA+v+hqJbwKUM3KsDWbJi?= =?us-ascii?Q?MmWeQWYGQOnH/FaN94QlfzpJ2LKEKDWR1B4Yyhjv7S3kdI9ET4I7E+RbmMfC?= =?us-ascii?Q?KeyuE0i8wYNE/4AXQ6bRHG2CKW5kyng/LmLSkqKbXuwn/ya+ksP2S7EXuAoi?= =?us-ascii?Q?ZAPM6sz8m8SsuNb/5PE4JXzMeNllHWHdko3HFffEmYaKstpeOPMLjU5hq1KO?= =?us-ascii?Q?oN9rHgFZIld0RsQwmqSPwzWBb/k1Bz38/RoKHv4ge0R25dZEpDWZShZ3Btsw?= =?us-ascii?Q?suEXF1tIqimlZ56ey53JH9UIEymDpA+vUnyRxND1sTUkf60jFGBRke2wx8tt?= =?us-ascii?Q?hx4Ht0IDvwkTDGJtYkyaSGgcOi7HqeYBN0ZBVPDaWO87vAGa15nDtMwDfnsX?= =?us-ascii?Q?Im5D7g2TLzbC+MVjfVGk7VJKoFE0lWOH2kXK1VcbV7x2QdsFjQ/deLn9uIvB?= =?us-ascii?Q?eO6r2IARawwKyZsgiUbIApzgWXKtfkigOtrxlE/PHImdfW4h2vLFOqdNMJQo?= =?us-ascii?Q?dssEQS26MwBb8yMI86IE1MeCM3DxTZqXs8iO8S3FzdJk9tBs58lFTJKSngtS?= =?us-ascii?Q?JDifr9YCNPOhLQMRFm/gGwUUMfgGsN0R8F0Y5LzIDHIrCFUqKGMoYzU0TfRT?= =?us-ascii?Q?w5mCDnpNUhDCzfoLfeQnP/SYWgJGhuY07di9Uo1k0k+Fqk7VdmIYR3i7j4Pr?= =?us-ascii?Q?Z88l5+ME5mCIBXO8Qiw+z8DsLnoO/Ksp5HYvHn1fm+t8+BPkgcNgCvu0S1oo?= =?us-ascii?Q?lelbnr8M+HsKvoEU/cVYJEEneZGblovIQXhTyWbZhL6zBtDqhhJuadr5UM7N?= =?us-ascii?Q?+GCtJHNZWD1tGFDBwMtTT5VGoNcuEOZ3w/kspN0vYpZSxq/U2R5InwhOWVeu?= =?us-ascii?Q?nfB3JDD12PowjMHgCDkw0bArTlWLOP/Tqm+lcc3+cSond/b6pQPeJLjZWs9h?= =?us-ascii?Q?6K0s7nOlSAx1Fbp9CPFTZbXu/2HmF1KVjKWkVzs/c10OuCtSOHjvnBmR/ROk?= =?us-ascii?Q?KV6NsKGsZEzDujiO33k8cHcYuTj6Iqm3/raLozb19wp0jaUOCrzO740t5txR?= =?us-ascii?Q?RyIxNRXJn4n2GQoiYgh/4MRCdN1AX3FDuujqBcO4wkTp36fjkgCqbraE7aeG?= =?us-ascii?Q?HJhKJGrfSzBqXBBrvvr8EG7qS4wQEr0oPWkDoYXzb8X23+w1Tbeu?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: f4813c9f-5b3e-4dea-0299-08deb7029220 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 06:31:20.3259 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: MxAUfVcfLrnAf2jsTzeCHYNM8VRkB5yLLxRfyaYh8P+8YIoo1nQHaVn9O+v0crI8pHWqSSJiobn4TDA/oAxQyg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB7818 Content-Type: text/plain; charset="utf-8" Commit c3c431de99c06 ("dmaengine: Move dma_get_{,any_}slave_channel() to private dmaengine.h") moved dma_get_slave_channel() to the private DMA engine header because only DMA engine drivers used it at the time. PCI endpoint DMA needs to reserve an exact channel from outside drivers/dma. Restore dma_get_slave_channel() to the public header for that use case while keeping dma_get_any_slave_channel() private. Signed-off-by: Koichiro Den --- drivers/dma/dmaengine.h | 1 - include/linux/dmaengine.h | 6 ++++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/dma/dmaengine.h b/drivers/dma/dmaengine.h index 53f16d3f0029..bde5217ce2b5 100644 --- a/drivers/dma/dmaengine.h +++ b/drivers/dma/dmaengine.h @@ -179,7 +179,6 @@ dmaengine_desc_callback_valid(struct dmaengine_desc_cal= lback *cb) return cb->callback || cb->callback_result; } =20 -struct dma_chan *dma_get_slave_channel(struct dma_chan *chan); struct dma_chan *dma_get_any_slave_channel(struct dma_device *device); =20 #ifdef CONFIG_DEBUG_FS diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index b3d251c9734e..59be52e74d5e 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h @@ -1527,6 +1527,7 @@ struct dma_chan *dma_request_chan(struct device *dev,= const char *name); struct dma_chan *dma_request_chan_by_mask(const dma_cap_mask_t *mask); struct dma_chan *devm_dma_request_chan(struct device *dev, const char *nam= e); =20 +struct dma_chan *dma_get_slave_channel(struct dma_chan *chan); void dma_release_channel(struct dma_chan *chan); int dma_get_slave_caps(struct dma_chan *chan, struct dma_slave_caps *caps); #else @@ -1568,6 +1569,11 @@ static inline struct dma_chan *devm_dma_request_chan= (struct device *dev, const c return ERR_PTR(-ENODEV); } =20 +static inline struct dma_chan *dma_get_slave_channel(struct dma_chan *chan) +{ + return NULL; +} + static inline void dma_release_channel(struct dma_chan *chan) { } --=20 2.51.0 From nobody Sun May 24 21:39:22 2026 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11020112.outbound.protection.outlook.com [52.101.228.112]) (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 1F3A73947B7; Thu, 21 May 2026 06:31:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.112 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779345086; cv=fail; b=HZ5GOY2ZRRn5mZURhihJVwL/cLeVFXE5GgJl64mXtwjnOBgE/6dBAKJNhFSyjQ75IZa38GHINFstxim8dwUvSkqfHKDuLNISRRhFr+gVK0BRiX10zRL5jVjpODlhuQrVU5/3ZOGuhcXYJIBAq9EFyD4D7pqqbRLwxbeoxdInC6Y= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779345086; c=relaxed/simple; bh=z9dthnFDfK0fb4BcLCvo6391KaDSt3GcadQwebJgcFs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=XwoYYM2hENQLCVOs6WLRXSziK6c0ANuN+gnguJ8f8zZb+q2aUr6gdKQUVTW0W50GTW3CHWdhLFbisNGdUAZ4IFsnV1yNhqoN7+N+KHCaYTWIefrwKOaqPFrqJMnEvRVPQuEeYn9ji0BI7ZePd0PJ2NU3LM4U4KO03g63xMb3mb4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp; spf=pass smtp.mailfrom=valinux.co.jp; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b=MpqRwl4p; arc=fail smtp.client-ip=52.101.228.112 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b="MpqRwl4p" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PSN0uW8IiCDD5do+Zjht8dyMLmq/fXGUJNgbSKcL98fzApjymWqkEF2ZU62TlO+qfKxCr3q4FHnnlpWYDDisbiwQfRxLmo5S0NMEQy89Pj333mwzPAW51nho/0V7KQ32NP0+ecLC/Us4a9MtPpxq435oWjOBWd+kx1qhMa0pptzAEIHwdBH9TOPjEzLRt9dzw6dz2P+jJWpBh1IC1oxrNLZEcwCuIJlnK889IH10sOIgxRnQFa4hq5W+f1W9IcVN29wS1yASuoeDnjL32I/+uVUfonZlOLrIG8KYKYMBHhD2ZHF3/PlXUwiDk0UHuT8qaAqiq4Mye2wMbji/2BXJDQ== 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=eM62hhQKNLmQINaiT0PtQjSGiD8UIYCSbym5Hc89HTo=; b=Qva+rR/luxb1wbViw/h6pCdQcytaPPjfq+Obqzf4/skT7k72a3fImcNs8EI4Tf6hnG3B0ZKL20lLyNqM/nJxXy5MfNLR2nacGaKUgmTxB83g7tjWgY4lX3BfdGYltFCZFMtccFMKtlpvL7c2YkJeWFDFTGJOf0ZfEsTLhvn5tI6q76isqeG2pgH/DI2ML9iXLLvBkjltKVbFbe0horYkQlRjWiGpTP/WkKeld4SbqZLyuLvf1zf5epJjrCc7q+f2caUCd8GQr3Fh5aKj3EqYjs9hsS27TSvxrh1leKOv1o4EFMLCu7exO0hNthGla5fizrRcA2tSGYmgow+77uoV1g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eM62hhQKNLmQINaiT0PtQjSGiD8UIYCSbym5Hc89HTo=; b=MpqRwl4pXl2H+xlmAgFWnL7qRKbu9yESnEjrX5wu48YIqOs3uqJ8aRvFdts6GQ6WWnpLeaNvWnrxSs7s13mpjSPg09ba1b18siYaKSHq/NuYUTpoSDma3W5JhFkFcgWOX2PMA8ucXiJ6RH1hZ+ArAuGfkOuNO5eKEilFukYigo4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) by OS9P286MB7818.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:473::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Thu, 21 May 2026 06:31:21 +0000 Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.21.0048.016; Thu, 21 May 2026 06:31:21 +0000 From: Koichiro Den To: Vinod Koul , Frank Li , Manivannan Sadhasivam Cc: Marek Vasut , Yoshihiro Shimoda , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 02/12] dmaengine: dw-edma: Add channel lookup helper Date: Thu, 21 May 2026 15:31:05 +0900 Message-ID: <20260521063115.2842238-3-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260521063115.2842238-1-den@valinux.co.jp> References: <20260521063115.2842238-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY4P301CA0025.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:2b1::7) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) 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: TY7P286MB7722:EE_|OS9P286MB7818:EE_ X-MS-Office365-Filtering-Correlation-Id: 8be1b565-6809-41b1-22ed-08deb70292a1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|10070799003|376014|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: G1IG00n4ssfROzGgOAwqgHeQlW/B+0c2wkbcMABv4Q8IwvK0htxhZV/i0X0tQ9cUb28yiBsC1uAMKQFN4CWR+i23rMD9R2vh99uwqSsellP0TKMVF7MHcsU7UCBCRYZE8Xjzt5h7sMe76SYfVajdTDNaiMmWcsW2vT2ditL7dCZd6osMZMRZK7CPp59NaAEUMb2dOIlEuw+UygclBywl+NzM8Y2iqzhxiL5Nfg7UaZDVETtlvewZEvP0SzMmJtx7/B/ZCx1X/qLBOkR1Cvj044L1mhFvhBL+iWrDlAfsGCHMzH5RyThq6/R6VdEnlLNq3nBQheoDoOYr9YiWzg45hq23lY19rBzKvBX8ro7sYWosQzZARqJwnsOYYHhTV0osmmkzqNRwSq49S6JObJxRm6gEyZIC3g9Orv8FKdNeZDf8oL/X2NzbM9H6W4dLf7dS+wYvumjFR3Dhb4APG85Cn/PVUYF2iKcvYtXcHCM8FI33GCqvfdid533rb5MT/R977yoLU1cOjjIFGUzJgrfMOi4PizlVwtY70vbYm7iOqaFTdT0brTgvJu5mcc4TplrxSoetv2H+fJQxxkfeVV6nfSGsHknws1yhbeyvUshVC8fNCxowFPyrOiTv5eAMNjsNbK+EbeUAqFohXL2QQmh8z/Bch71XtX+77E0oD4gVyKKR5GMu4tUxf9/dGmwROCbq X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(10070799003)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Tnu6GS/R7PmA/4CyKg1MBf6tDh6/SUKZYmndo0r70+Sv7JRGdW6zNX/ST7Qh?= =?us-ascii?Q?mHx6cHf5eIfLIXC0h1xz6oUzs93U6HawYUYqWkvvzzDEbXvSSy7ARuPFCNwX?= =?us-ascii?Q?yRnJWWNAoktNwAGud3JHSxp9PlssoT3wzyS8Lo2OB2qklYIfU2LWFIXbvGL4?= =?us-ascii?Q?YYTeC4mz+jDHYp0x6yhhpLENRCikZt5EvU6THxDMTMmF/9V2IgNdgQDTvfkF?= =?us-ascii?Q?2THRNz4DFk1CbL9K432NVp3mbs2wLH8SU3PJgdPnj5YrVhFR+uf2/WNNWDdU?= =?us-ascii?Q?WsB07RVRHQmD2iR5MezB0Hh9EyZmZYkU3cl1/lgMsrLZmy3bGHN+eZfzSd1n?= =?us-ascii?Q?LBmHSp+uovsZokcjaP/d0h/ujZBEAJsqInqEa/+FBydWT3vfAXKNsFkGrRQ7?= =?us-ascii?Q?CBTg2I0i8mMg22m/01UlRW2IHoar9Uh8GTfqRBpQ4T3REptSC6+myzkiEOIS?= =?us-ascii?Q?JJQoZrR7Fw6+Xq0hqcJHE+C3pirzEwc+MbQSmaEEPS7GcpgdRvlqy3zq7nnH?= =?us-ascii?Q?oFZB+brYt0lA4/TZOdIGK+wGV55fnPGV8WTE5MAv8cHfft+U2wKqNOhxLn0o?= =?us-ascii?Q?0dMxqyi3lnVfUUNttkwfRnSH7ihz3w1rR8CvSUIp/8OHBQVHnKSol/e9hAhW?= =?us-ascii?Q?drCPMr9ofyWzsjQ+Be2yGl5ahk8p7UVTmVndEP1noLjFUgqKq1DcOFsHz9Tn?= =?us-ascii?Q?GFVziBtk2DIXUjaWdCOB+ZT9zBV2SZa7rH+Z/+quybkrkVXb3uF98vsboTSb?= =?us-ascii?Q?QIugB9nw/OEFrfBj4FfV1lAYMUfyrMsD9jJvpDshx1Us3qxfdfUN7A382q9N?= =?us-ascii?Q?HcKVxRq8fgvr8POpYPNxDbNelZAAfDbaN+izeV3uk+hPvo5vC4fuDRKveraY?= =?us-ascii?Q?OlUyEKWJeNXk0IqDv3tx/+qoirxQbCCZ6aqOlmoqsjslYdOIbBr7xqdG+nXz?= =?us-ascii?Q?DVNLK1rXgucNYoM6xHc8fAMNqUSgwIyZdricph6EMGpzQtwFwG1qtG6Wm92A?= =?us-ascii?Q?E2RNQHcvNWCAbCmBCZzRFOAxGOSLXDZ6gujwkF5iIGh6/Eb5AkaKGRBQ4uJe?= =?us-ascii?Q?GJ/gSYpl/NPj9qLUQy50wsu1Mph8Ow9ziPo8defdnAvMpOthZS1cVfWeailU?= =?us-ascii?Q?gG6hfoMOZuc0mlpJu2beQuscLB1BEO5aA7QGEvUEOnkBTYeQejqNTkggmFK9?= =?us-ascii?Q?c5MaAtaOlnLZCnp8231urqNbDWIsJhaGbeEcs02XEPeQ3ITJFx0XlRcy4RHf?= =?us-ascii?Q?XJLY2jKR8CNL2MdNgVQkjmYUe5Exiq5HpCxAyN0sacF6e5lCEzgoQ1vHcO9f?= =?us-ascii?Q?KPoYNgfdL/rm26L/egAZF2iMUc+AK9l2xNuOYqKBQXmvevV2rKtmeYLWwgsd?= =?us-ascii?Q?AlG8vi9XrG8TRjH2TRa5LXwEp2wMm8Z/HoeNNijxXWgjJDjP5uDfSSTZjbgG?= =?us-ascii?Q?9OgsF2wRo2GIWlv0j91ViSiqiuqNAvuKore38MtIrA6EKGF3jc8RqG8ipirR?= =?us-ascii?Q?ytqJCRamvUvHYD2SG+i1IkULKVbKVfN+JeBJeR8B63Re6AAQGB0ddnwiYS21?= =?us-ascii?Q?DRt6GPX1Y5nCGS13kEnfQkylcT8Sn9DjGlDNfaGAbGt07+gGovvmzvsoz2Gm?= =?us-ascii?Q?G79WCQPf8iLuxWzLjlkOQvp6DnpV9rHYsCjbSdJZ/cRYyQP9rVUKicpGCBaZ?= =?us-ascii?Q?G4cTozuDL4HQR4gn4MQgcstelyRkCtVYEi00URGdMOuNrL+Pl+I9ncbOfVql?= =?us-ascii?Q?y1lmmDi7yHusxL3IRabXuB3FCSi9hSMKoo0Hb5j58D237et0Qp0q?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 8be1b565-6809-41b1-22ed-08deb70292a1 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 06:31:21.1695 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 11PGmmXQEcS6BtOvlBXaNsudWn+Nfwe8T3Jn+Sy3etnCt2W2Q7TgsjczSOptbVjhz2bdYo+7/PbEYl9gsZXu9A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB7818 Content-Type: text/plain; charset="utf-8" Add a helper that maps a DesignWare eDMA write/read hardware channel number to its DMAengine channel. PCI endpoint resource enumeration uses the pointer only for later ownership reservation. Signed-off-by: Koichiro Den Reviewed-by: Frank Li --- drivers/dma/dw-edma/dw-edma-core.c | 32 ++++++++++++++++++++++++++++++ include/linux/dma/edma.h | 8 ++++++++ 2 files changed, 40 insertions(+) diff --git a/drivers/dma/dw-edma/dw-edma-core.c b/drivers/dma/dw-edma/dw-ed= ma-core.c index c2feb3adc79f..6660380a1bbc 100644 --- a/drivers/dma/dw-edma/dw-edma-core.c +++ b/drivers/dma/dw-edma/dw-edma-core.c @@ -1189,6 +1189,38 @@ int dw_edma_remove(struct dw_edma_chip *chip) } EXPORT_SYMBOL_GPL(dw_edma_remove); =20 +struct dma_chan *dw_edma_find_channel(struct dw_edma_chip *chip, bool writ= e, + u16 id) +{ + struct dw_edma_chan *chan; + struct dw_edma *dw; + + if (!chip) + return NULL; + + dw =3D chip->dw; + + if (!dw) + return NULL; + + if (write) { + if (id >=3D dw->wr_ch_cnt) + return NULL; + chan =3D &dw->chan[id]; + if (chan->dir !=3D EDMA_DIR_WRITE) + return NULL; + } else { + if (id >=3D dw->rd_ch_cnt) + return NULL; + chan =3D &dw->chan[dw->wr_ch_cnt + id]; + if (chan->dir !=3D EDMA_DIR_READ) + return NULL; + } + + return &chan->vc.chan; +} +EXPORT_SYMBOL_GPL(dw_edma_find_channel); + MODULE_LICENSE("GPL v2"); MODULE_DESCRIPTION("Synopsys DesignWare eDMA controller core driver"); MODULE_AUTHOR("Gustavo Pimentel "); diff --git a/include/linux/dma/edma.h b/include/linux/dma/edma.h index 1fafd5b0e315..b4b42b2278f3 100644 --- a/include/linux/dma/edma.h +++ b/include/linux/dma/edma.h @@ -110,6 +110,8 @@ struct dw_edma_chip { #if IS_REACHABLE(CONFIG_DW_EDMA) int dw_edma_probe(struct dw_edma_chip *chip); int dw_edma_remove(struct dw_edma_chip *chip); +struct dma_chan *dw_edma_find_channel(struct dw_edma_chip *chip, bool writ= e, + u16 id); #else static inline int dw_edma_probe(struct dw_edma_chip *chip) { @@ -120,6 +122,12 @@ static inline int dw_edma_remove(struct dw_edma_chip *= chip) { return 0; } + +static inline struct dma_chan *dw_edma_find_channel(struct dw_edma_chip *c= hip, + bool write, u16 id) +{ + return NULL; +} #endif /* CONFIG_DW_EDMA */ =20 #endif /* _DW_EDMA_H */ --=20 2.51.0 From nobody Sun May 24 21:39:22 2026 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11020112.outbound.protection.outlook.com [52.101.228.112]) (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 A4A8437F8A3; Thu, 21 May 2026 06:31:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.112 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779345088; cv=fail; b=hkPJXkOKvHCoSxOxgPQvB9ec7PXW7ABN+ez8fRZvdMAO4H3I3NZ8FzN+9o1dp+vQM/qezJVFRRpr+J7GCpg8JVfH3/HUG/ZKuMwcLNwl8AZH5KMSK7XMBSLnCmDMQ/H9Xyqg7GO53//wOJ1VUDSuceNddsxhW0DEzYXonqoxLK0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779345088; c=relaxed/simple; bh=mPd46DDpsvkorglPA79c/sO2KJ7ogqfEF70we5y36wc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=aXdcr4K4fSpMOEDNFdiDLL3hoOaqpXqavVKRXu/V7NDWECIcdmNMmDEzmukFCpYQGFWyzyyWYO2WVra0h6qMR9iyO0X51D3bZ0rwR4AdisC4aCMA8zHTogtqrHuZOEmd1hyCwmnu6c5Fo0j1xrj6QfHvUdeWmP4F6cZsFRqCDU8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp; spf=pass smtp.mailfrom=valinux.co.jp; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b=FEh68puk; arc=fail smtp.client-ip=52.101.228.112 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b="FEh68puk" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YPiGmUikMzJRPYdgMFYKQFd6NZq0GqDG+PIFyEyxFu1xhwLPd22sEFL4DUWyDA1zobr9k+Ng9ycL3gNGr+P3jmloz+fOvWLHzUtVH2IxkAIOYbCQswHyspcENtOnQqDzshfZ1i1vtKvqWPv0Vch/sSx4ohooT7ct34fw3dH11Iac88pbjKkn+rT42YlEh+fNAW/xPJmwPD4pvEcmztfuIqSoZeJDIvfPuuGxKRGs5dUqrNPjn9C/OfSH5MxZxmABx+3j4gKWogUxptmFgeumYizRSqbCbk2NIuAM7rKfuEVVJFlJeAoNFoC71lyCJU8XnmHqVzWNtzj1RsUtC9ee4g== 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=Bcd0jKDpDjtL9g70WPe0z0abZ4rlpfM1dxIaQbltvvI=; b=czKmf14fi7BN4Wq/bW5j0A8I26hgVlO8/+hZAINdXI5WZKBtnN89rWUMTqUsrhJ4yTBvKLDNG3c4pAzXmJJ31uSI9dWPtpp3+05KfgbqSmV+28tvEh/X5+edJ3XVt8z/QfWQRKZA7CMh72VNnfeF4CDFD3/mp++iU+iD4GclD4fdqT3svBeJYc5a0eY4ORqWH0kYmhutRxwbNTqGHrahQCT8/IU0iAJEtdaiD76NU3hsqaGZzMTvQJzGeGVaM8+C+OWi1H3oPdpXbYHXgPrrJ7wfaJ6BK1ULTMLSwLmqOG+yfid2mGKuMvy7NPN8PHrupWZP3TwybCzscUbPY8PExQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Bcd0jKDpDjtL9g70WPe0z0abZ4rlpfM1dxIaQbltvvI=; b=FEh68pukvO3ew84JQKugcDByhb4ovVdc03voWn64ZIUJg6rGsKdjFAq5UaCAYvmZcw3UOETklrxyV/XqIiLOfyTEmdRccuhNLL8kq7OfBGAkqNi2M5JugFNIlPPg6dyyd5afvwHLiLH0OYLz0hbZ7ejj4bIUcz+YETslOrcnmNY= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) by OS9P286MB7818.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:473::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Thu, 21 May 2026 06:31:22 +0000 Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.21.0048.016; Thu, 21 May 2026 06:31:22 +0000 From: Koichiro Den To: Vinod Koul , Frank Li , Manivannan Sadhasivam Cc: Marek Vasut , Yoshihiro Shimoda , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 03/12] dmaengine: dw-edma: Add per-channel interrupt routing control Date: Thu, 21 May 2026 15:31:06 +0900 Message-ID: <20260521063115.2842238-4-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260521063115.2842238-1-den@valinux.co.jp> References: <20260521063115.2842238-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0101.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2b4::14) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) 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: TY7P286MB7722:EE_|OS9P286MB7818:EE_ X-MS-Office365-Filtering-Correlation-Id: 62ee133e-d3ef-42e6-21c0-08deb7029321 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|10070799003|376014|18002099003|22082099003|56012099003|6133799003|5023799004|3023799007; X-Microsoft-Antispam-Message-Info: 9WEoFkG1/HINLdUh5K0cibtenhEU+vdzdlc8hC+FEhlpDy+2MaXbEMpmolkU/ibhAtCrjQuneIiRdTY27zkEwQv9KRvaP+B0lmhESAxyzVXLpTjKOjWgQDfjrfE7HowrRt7degH88cECvZRea/MiAGQyID6siOv3aKN4/GpjjYMC53NLaiDmG9azEVAqL4z0iM0cAC95G01eEJB+73A50vrY4l7uHKY9nJQmLI5BYhy1jdz5ozht6YoUSzf8n8lw+NytKltEhfL28xSTeuAIMz6DVGerDa2Jy2ksPmMwrRylzEzMt+GwXHDtFyOlVigHgOhELR2h+CHdMBU5oI582+lRLsFNermfF5srQMpQPfa59zztYRBxI+0BikN7uh2sFLTbpO4NB14xdztNuMhNhZzhiDwxopHe7fQYQRrhBE5Ni5WGFFlvjhZ8nfJ56dfmq2ABo3uQdYcH1ubvD8zAZTunYDGRxGspG+TOeJ32sP1s/00bh7sJQ3qOIP+JCaERzFzQoD88tH4UWrLt4ntiD/gK/sIFAY3hP677mH5qBX/pTHIMo0o14Zch35NuXTATrfqINd0tkJOdFlGRPEZeTzuTk2V/c/rCb4qM3Bmgt7zepowgHPRg+DoUUsjLLCjwlJxPiLQFt289e5CKkRx/AxvyqrwzZ4J2rdebXucBk/Yz6P/WxLKNF9LeGdUktKRt X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(10070799003)(376014)(18002099003)(22082099003)(56012099003)(6133799003)(5023799004)(3023799007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?QEKFl+0KaRoZWz82ngQnMhQgIXm0FjH7Os9fgrNE7gCkra9ztZMell+C2Buq?= =?us-ascii?Q?RH+KTGmlOSltu3z+HNWEMVUXY1QauKc3aXnzSXspFQwYAl10dkUGTnAdppDA?= =?us-ascii?Q?jQTX7PhEq8bZEMwT9eIMUTC9F2Ts3fJfKFgt5zbRlotNelEUdRl0w7oMEz23?= =?us-ascii?Q?RvMCZ9WL3U6p/7h0fYWbIfTtyl6XbgrTAubv2Vij0nA+jP+IsL5MA3rQ6/Qb?= =?us-ascii?Q?jtDyTX+7YLR2/d03UG1urfyA47cXOaLhurBlk8l3/D+WyeDLJJ+TNFQd+58q?= =?us-ascii?Q?kyqqrZDXq0UHOcxJzWea/6ERC2L59BNLsyTyW+U0zXM4xW+pWxiTNEX8JEBZ?= =?us-ascii?Q?N84mPymmVd8fuXD7OKgjb14qRFySZuJZAeNitdlNkZUbCNkQAlhuXLWg3OKP?= =?us-ascii?Q?zWRiP11yaKiaX20ljYm00M5FrAKzoeV38x/1+Z5qL+up6Ef46AWW+cW4DA7V?= =?us-ascii?Q?+k09+IwBn2dVOeXv/FbEDt4PRkiMn4Rnm702BSe1jHyJCGhTNidz2pNYRNnY?= =?us-ascii?Q?UyAqgqiEL+1cNpJPawRanbvHHLKsImFlO0RvORLWpQ6unxOWD1o18tNh2TpO?= =?us-ascii?Q?zF1A7OJChMiEKznRlQaQLdcE9+72D0GUHnww1keVGNuzZqm55GUrWp8wCDKe?= =?us-ascii?Q?cAyznvyVu2J9wuVsregjCYp4avv1kRZ8t9N09iwWjucV1jkbLZrayiyzabeH?= =?us-ascii?Q?UHjoBUFOD/SF/aInId1ebe4Iy2IDoODpnoYBaSUFIcT/UIIxA3fARIxrbwdd?= =?us-ascii?Q?E94/EBQIAcldd9yq9+VICYETISLBkt3M7+1QfodNY8ic6QihT25hGolpFY/k?= =?us-ascii?Q?qpi55iVWbUTNL9YHAFRUrGpf2tSZd8hM31lW6g0D7lY2SoLVfG/BL4dzHzfT?= =?us-ascii?Q?pI3O/tLAg259qnEfuLR+DRqe7UOT0pHSwms+l4ou1+8uT+eCFZtI9tEHGE2l?= =?us-ascii?Q?D5jfvB1zvExVxDBkGaKzrPEnXXd4RCHHjHqTTc3jEr/0WKJNniArXsiTRqPr?= =?us-ascii?Q?3fQWZi+eD3naKem1Om3vULetFBUbiRYjmsJMZhlkkpLjzb/yqC0ybCvW9cEh?= =?us-ascii?Q?p5ns/fBbTyMirSo9Df6tlJhGHSeIkrhFedPqYPIr6QfEucn6FB9TLOzb8HP4?= =?us-ascii?Q?JThkWq1MsrmOVeaN/gAzEJt+1ArofWkVA5l/dpIeylUMMfAUsFjWDNXKNclz?= =?us-ascii?Q?5vUck0k89lTtOetjJMO0qTozojyiVhxpOXmlqqq8AW9ZqEqjUs8scGJPV886?= =?us-ascii?Q?trNCy8sSmB++Oc/bsFPto7HfsjVYXQrB4uXBOLtD7LuVJeJcYHqLptbQHP0X?= =?us-ascii?Q?haD3lylDxyjTIy2+6yX6ti4kWvrE9VVVcbYaNrD3UBmIqxESnb3Z4ImN6V2Q?= =?us-ascii?Q?CNMtHEvakq02GzlhgoNaz66VxI/WJb6qPbkKpAV8Ecv2X9vCNKRQkE56VtOS?= =?us-ascii?Q?Tqvp/6DmWfphhEcVqTBpYbgBlSJQHWZEDGAiRs0A1UFWK4nZr0eiyis+AdtV?= =?us-ascii?Q?U3rwH36SMcDefbZ1f+eSkjJLs37Yqw1QT3DXq5aA0HPldr1rzTe0G0z5aA0V?= =?us-ascii?Q?WlsE4xktPWTHQhympvsvgDhEpx4d4dGUuEt33j+fVDOIvhiXtYh+5lb44lw0?= =?us-ascii?Q?tSzkVp/8Jm0atJNz8n5x9aiiaWosQnH0E/RyBMGls8CFuX4lTYiBJG3JtNBR?= =?us-ascii?Q?LIcNw34XstaY5feOpswGIsQKSNm/wiVm7NdmXFNChpTCR1erZxqQZxcyHsk1?= =?us-ascii?Q?UaBCaniR8WH1soOmzOkHqYvPtJD6ld2m6nzeUL1nWSMVysWc70Rf?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 62ee133e-d3ef-42e6-21c0-08deb7029321 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 06:31:22.0077 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 8CIZBvkZNfa4Wh6TLOb7jiTycxAGsFBv2qb6gVKCQUfdRtDyMY24ZWHhRodsKE+ydfdDukCjY/o+mGlRp31ZyQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB7818 Content-Type: text/plain; charset="utf-8" DesignWare endpoint eDMA can signal completion both locally and remotely through LIE/RIE. A remotely controlled channel needs a per-channel policy for whether completions are handled locally, remotely, or both. Otherwise, the endpoint and host can race to acknowledge the interrupt. Add dw_edma_peripheral_config, carried through dma_slave_config, to let a frontend select the interrupt routing mode for each channel. Update the v0 programming path so linked-list interrupt generation and DONE/ABORT masking follow the selected mode. If a frontend does nothing, the default keeps the existing behavior. HDMA native already uses dma_slave_config.peripheral_config for non-LL mode selection. Keep that ABI unchanged and do not interpret the new IRQ routing config on HDMA native until that routing model has been implemented and validated. Reviewed-by: Frank Li Signed-off-by: Koichiro Den --- drivers/dma/dw-edma/dw-edma-core.c | 59 +++++++++++++++++++++++++-- drivers/dma/dw-edma/dw-edma-core.h | 13 ++++++ drivers/dma/dw-edma/dw-edma-v0-core.c | 26 ++++++++---- include/linux/dma/edma.h | 38 +++++++++++++++++ 4 files changed, 124 insertions(+), 12 deletions(-) diff --git a/drivers/dma/dw-edma/dw-edma-core.c b/drivers/dma/dw-edma/dw-ed= ma-core.c index 6660380a1bbc..72dc8a60798a 100644 --- a/drivers/dma/dw-edma/dw-edma-core.c +++ b/drivers/dma/dw-edma/dw-edma-core.c @@ -219,12 +219,56 @@ static void dw_edma_device_caps(struct dma_chan *dcha= n, } } =20 +static enum dw_edma_ch_irq_mode +dw_edma_get_default_irq_mode(struct dw_edma_chan *chan) +{ + switch (chan->dw->chip->default_irq_mode) { + case DW_EDMA_CH_IRQ_DEFAULT: + case DW_EDMA_CH_IRQ_LOCAL: + case DW_EDMA_CH_IRQ_REMOTE: + return chan->dw->chip->default_irq_mode; + default: + return DW_EDMA_CH_IRQ_DEFAULT; + } +} + +static int dw_edma_parse_irq_mode(struct dw_edma_chan *chan, + const struct dma_slave_config *config, + enum dw_edma_ch_irq_mode *mode) +{ + const struct dw_edma_peripheral_config *pcfg; + + /* peripheral_config is optional, fall back to the frontend default. */ + *mode =3D dw_edma_get_default_irq_mode(chan); + if (!config || !config->peripheral_config) + return 0; + + if (chan->dw->chip->mf =3D=3D EDMA_MF_HDMA_NATIVE) + return -EOPNOTSUPP; + + if (config->peripheral_size < sizeof(*pcfg)) + return -EINVAL; + + pcfg =3D config->peripheral_config; + switch (pcfg->irq_mode) { + case DW_EDMA_CH_IRQ_DEFAULT: + case DW_EDMA_CH_IRQ_LOCAL: + case DW_EDMA_CH_IRQ_REMOTE: + *mode =3D pcfg->irq_mode; + return 0; + default: + return -EINVAL; + } +} + static int dw_edma_device_config(struct dma_chan *dchan, struct dma_slave_config *config) { struct dw_edma_chan *chan =3D dchan2dw_edma_chan(dchan); + enum dw_edma_ch_irq_mode mode; bool cfg_non_ll; int non_ll =3D 0; + int ret; =20 chan->non_ll =3D false; if (chan->dw->chip->mf =3D=3D EDMA_MF_HDMA_NATIVE) { @@ -255,10 +299,11 @@ static int dw_edma_device_config(struct dma_chan *dch= an, =20 if (cfg_non_ll || non_ll) chan->non_ll =3D true; - } else if (config->peripheral_config) { - dev_err(dchan->device->dev, - "peripheral config param applicable only for HDMA\n"); - return -EINVAL; + } else { + ret =3D dw_edma_parse_irq_mode(chan, config, &mode); + if (ret) + return ret; + chan->irq_mode =3D mode; } =20 memcpy(&chan->config, config, sizeof(*config)); @@ -853,11 +898,14 @@ static int dw_edma_alloc_chan_resources(struct dma_ch= an *dchan) if (chan->status !=3D EDMA_ST_IDLE) return -EBUSY; =20 + chan->irq_mode =3D dw_edma_get_default_irq_mode(chan); + return 0; } =20 static void dw_edma_free_chan_resources(struct dma_chan *dchan) { + struct dw_edma_chan *chan =3D dchan2dw_edma_chan(dchan); unsigned long timeout =3D jiffies + msecs_to_jiffies(5000); int ret; =20 @@ -871,6 +919,8 @@ static void dw_edma_free_chan_resources(struct dma_chan= *dchan) =20 cpu_relax(); } + + chan->irq_mode =3D dw_edma_get_default_irq_mode(chan); } =20 static int dw_edma_channel_setup(struct dw_edma *dw, u32 wr_alloc, u32 rd_= alloc) @@ -904,6 +954,7 @@ static int dw_edma_channel_setup(struct dw_edma *dw, u3= 2 wr_alloc, u32 rd_alloc) chan->configured =3D false; chan->request =3D EDMA_REQ_NONE; chan->status =3D EDMA_ST_IDLE; + chan->irq_mode =3D dw_edma_get_default_irq_mode(chan); =20 if (chan->dir =3D=3D EDMA_DIR_WRITE) chan->ll_max =3D (chip->ll_region_wr[chan->id].sz / EDMA_LL_SZ); diff --git a/drivers/dma/dw-edma/dw-edma-core.h b/drivers/dma/dw-edma/dw-ed= ma-core.h index 902574b1ba86..e2aadf0109b6 100644 --- a/drivers/dma/dw-edma/dw-edma-core.h +++ b/drivers/dma/dw-edma/dw-edma-core.h @@ -81,6 +81,8 @@ struct dw_edma_chan { =20 struct msi_msg msi; =20 + enum dw_edma_ch_irq_mode irq_mode; + enum dw_edma_request request; enum dw_edma_status status; u8 configured; @@ -224,4 +226,15 @@ dw_edma_core_db_offset(struct dw_edma *dw) return dw->core->db_offset(dw); } =20 +static inline bool +dw_edma_core_ch_ignore_irq(struct dw_edma_chan *chan) +{ + struct dw_edma *dw =3D chan->dw; + + if (dw->chip->flags & DW_EDMA_CHIP_LOCAL) + return chan->irq_mode =3D=3D DW_EDMA_CH_IRQ_REMOTE; + else + return chan->irq_mode =3D=3D DW_EDMA_CH_IRQ_LOCAL; +} + #endif /* _DW_EDMA_CORE_H */ diff --git a/drivers/dma/dw-edma/dw-edma-v0-core.c b/drivers/dma/dw-edma/dw= -edma-v0-core.c index 69e8279adec8..2e95da0d6fc2 100644 --- a/drivers/dma/dw-edma/dw-edma-v0-core.c +++ b/drivers/dma/dw-edma/dw-edma-v0-core.c @@ -256,8 +256,10 @@ dw_edma_v0_core_handle_int(struct dw_edma_irq *dw_irq,= enum dw_edma_dir dir, for_each_set_bit(pos, &val, total) { chan =3D &dw->chan[pos + off]; =20 - dw_edma_v0_core_clear_done_int(chan); - done(chan); + if (!dw_edma_core_ch_ignore_irq(chan)) { + dw_edma_v0_core_clear_done_int(chan); + done(chan); + } =20 ret =3D IRQ_HANDLED; } @@ -267,8 +269,10 @@ dw_edma_v0_core_handle_int(struct dw_edma_irq *dw_irq,= enum dw_edma_dir dir, for_each_set_bit(pos, &val, total) { chan =3D &dw->chan[pos + off]; =20 - dw_edma_v0_core_clear_abort_int(chan); - abort(chan); + if (!dw_edma_core_ch_ignore_irq(chan)) { + dw_edma_v0_core_clear_abort_int(chan); + abort(chan); + } =20 ret =3D IRQ_HANDLED; } @@ -331,7 +335,8 @@ static void dw_edma_v0_core_write_chunk(struct dw_edma_= chunk *chunk) j--; if (!j) { control |=3D DW_EDMA_V0_LIE; - if (!(chan->dw->chip->flags & DW_EDMA_CHIP_LOCAL)) + if (!(chan->dw->chip->flags & DW_EDMA_CHIP_LOCAL) && + chan->irq_mode !=3D DW_EDMA_CH_IRQ_LOCAL) control |=3D DW_EDMA_V0_RIE; } =20 @@ -407,10 +412,15 @@ static void dw_edma_v0_core_start(struct dw_edma_chun= k *chunk, bool first) break; } } - /* Interrupt unmask - done, abort */ + /* Interrupt mask/unmask - done, abort */ tmp =3D GET_RW_32(dw, chan->dir, int_mask); - tmp &=3D ~FIELD_PREP(EDMA_V0_DONE_INT_MASK, BIT(chan->id)); - tmp &=3D ~FIELD_PREP(EDMA_V0_ABORT_INT_MASK, BIT(chan->id)); + if (chan->irq_mode =3D=3D DW_EDMA_CH_IRQ_REMOTE) { + tmp |=3D FIELD_PREP(EDMA_V0_DONE_INT_MASK, BIT(chan->id)); + tmp |=3D FIELD_PREP(EDMA_V0_ABORT_INT_MASK, BIT(chan->id)); + } else { + tmp &=3D ~FIELD_PREP(EDMA_V0_DONE_INT_MASK, BIT(chan->id)); + tmp &=3D ~FIELD_PREP(EDMA_V0_ABORT_INT_MASK, BIT(chan->id)); + } SET_RW_32(dw, chan->dir, int_mask, tmp); /* Linked list error */ tmp =3D GET_RW_32(dw, chan->dir, linked_list_err_en); diff --git a/include/linux/dma/edma.h b/include/linux/dma/edma.h index b4b42b2278f3..9ea7b24b5015 100644 --- a/include/linux/dma/edma.h +++ b/include/linux/dma/edma.h @@ -60,6 +60,41 @@ enum dw_edma_chip_flags { DW_EDMA_CHIP_LOCAL =3D BIT(0), }; =20 +/** + * enum dw_edma_ch_irq_mode - per-channel interrupt routing control + * @DW_EDMA_CH_IRQ_DEFAULT: keep legacy behavior + * @DW_EDMA_CH_IRQ_LOCAL: local interrupt only (edma_int[]) + * @DW_EDMA_CH_IRQ_REMOTE: remote interrupt only (IMWr/MSI), + * while masking local DONE/ABORT output. + * + * DesignWare EP eDMA can signal interrupts locally through the edma_int[] + * bus, and remotely using posted memory writes (IMWr) that may be + * interpreted as MSI/MSI-X by the RC. + * + * For the v0 eDMA programming path, DMA_*_INT_MASK gates the local edma_i= nt[] + * assertion, while there is no dedicated per-channel mask for IMWr genera= tion. + * To request a remote-only interrupt, Synopsys recommends setting both LI= E and + * RIE, and masking the local interrupt in DMA_*_INT_MASK (rather than rel= ying + * on LIE=3D0/RIE=3D1). See the DesignWare endpoint databook 5.40a, Non Li= nked + * List Mode interrupt handling ("Hint"). + */ +enum dw_edma_ch_irq_mode { + DW_EDMA_CH_IRQ_DEFAULT =3D 0, + DW_EDMA_CH_IRQ_LOCAL, + DW_EDMA_CH_IRQ_REMOTE, +}; + +/** + * struct dw_edma_peripheral_config - dw-edma specific slave configuration + * @irq_mode: per-channel interrupt routing control. + * + * Pass this structure via dma_slave_config.peripheral_config and + * dma_slave_config.peripheral_size. + */ +struct dw_edma_peripheral_config { + enum dw_edma_ch_irq_mode irq_mode; +}; + /** * struct dw_edma_chip - representation of DesignWare eDMA controller hard= ware * @dev: struct device of the eDMA controller @@ -76,6 +111,8 @@ enum dw_edma_chip_flags { * @db_irq: Virtual IRQ dedicated to interrupt emulation * @db_offset: Offset from DMA register base * @mf: DMA register map format + * @default_irq_mode: default per-channel interrupt routing when client + * does not supply dw_edma_peripheral_config * @dw: struct dw_edma that is filled by dw_edma_probe() */ struct dw_edma_chip { @@ -101,6 +138,7 @@ struct dw_edma_chip { resource_size_t db_offset; =20 enum dw_edma_map_format mf; + enum dw_edma_ch_irq_mode default_irq_mode; =20 struct dw_edma *dw; bool cfg_non_ll; --=20 2.51.0 From nobody Sun May 24 21:39:22 2026 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11020087.outbound.protection.outlook.com [52.101.228.87]) (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 E6D7F332EA7; Thu, 21 May 2026 06:31:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.87 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779345090; cv=fail; b=jWZJ8beGgy7YCdOzO79BWcnPAv53HyuaV+myF+lEewKFI06d5sAw5ZGtwjn4m9zQP8DUYr3XLWww+RbE0FSQHb9uYWCVhg62pJfLRWCEs5K2CxLfriuOfWW9ZbhyxAcLUtXdf06bHHwb9+YvxW491S7MghlmY7G7g2SRLvS2BoI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779345090; c=relaxed/simple; bh=ZT8U1mrwhfyM5rfGPkXLEWJyc9UtFiIyr0pa+SrYbHY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=YvetFR7JYkTa/m4EcjLMDU+LJ6owVDmAJs9XenctrZY4PNh6F+fenI9ipd4C1SWdEVIn/quopr/tNbuxn16/EhTLvLILkq9cDne5yNoRqe8ktK0WndsvyzeG9ei4a5SmqD21N7+9McgYmixI0KYHRSrPsWvXqVzBoq+AqokrsiU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp; spf=pass smtp.mailfrom=valinux.co.jp; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b=oke+aX27; arc=fail smtp.client-ip=52.101.228.87 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b="oke+aX27" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=j7cGQX2562YGEmg0tXPMTxanbuohDC/BOUJfwgFiwKprCinei1xFi0QqdBoXzxs9GAHRkDxtU8EA07JuCWWuOJIBrv/KVt4doux+nK9NUYFMWp6//wHEV+lSH61WNOkURTNvres/E22QdSB2C9/MVwB1WWhEGZjYnBt0Upd8vu6n3iGYz762HGPss1/dLpsjkyi7dv07vRAYDSOCF8HAaEPgU8OmHTmf/9P34xCD7rvn8xA9EdAguPMTE+E6Oqksufh0+CNkfUGylGJZhx20NgXNMCAmBHYRRLqSFnCNlwj4JCE3SkjBy2nL3/KkfuSAFuFOQZIo6WygyrfeWCZrJg== 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=zAq5cOedkbWdw9dwOnPjSI33gkfhqskqNabVOqHSMs0=; b=RqDnT2k8Zcb5oMnHvgySmX6zbmjNemzkKb/l2u25KUU1INBPgjYmKcJloWH4/OkDKAUmbuUboJU7i3DEsXKlSKbZiDkx6GNRsHsdydNX1SOJ+3qqd25FRfrOcMtZyvAajtaSEltu3o35lvSN8krstvDiq9k+4g9/H5S6PhR0Hyr6CXZdMmNCn4sOKQydU4fsfsa6Ml/GgwLwfzcPt9pIh8Gw/uxyLZ0JSEhsSaaeN7Uk0WGi4bLj3qQX6P9yVZg7HJSv2nthV2yMeJnGwBS9myVTtw9sE3bZbW8xLYJrLvJ5I6RtrjELV1RPpVYbbH0oiNBW829xBZxvNbW3BDpW7w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zAq5cOedkbWdw9dwOnPjSI33gkfhqskqNabVOqHSMs0=; b=oke+aX27IsvZq2jSZpcTPT3mEQQPVMMmuC54vGDrrOXAx+cRNqy+e+gYpmfyAkiB4VAgieiU44kqxDRWJxAeKlWIYB70HfLqX886EOv0UNeiCqClqPX8eu/X08XokV0Do5l+DXPf4MsoHvOgibg8bz+JUkpUYKPXnPq9Qxcbyog= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) by OS9P286MB7818.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:473::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Thu, 21 May 2026 06:31:22 +0000 Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.21.0048.016; Thu, 21 May 2026 06:31:22 +0000 From: Koichiro Den To: Vinod Koul , Frank Li , Manivannan Sadhasivam Cc: Marek Vasut , Yoshihiro Shimoda , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 04/12] dmaengine: dw-edma: Add partial channel ownership mode Date: Thu, 21 May 2026 15:31:07 +0900 Message-ID: <20260521063115.2842238-5-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260521063115.2842238-1-den@valinux.co.jp> References: <20260521063115.2842238-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0065.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:31a::6) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) 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: TY7P286MB7722:EE_|OS9P286MB7818:EE_ X-MS-Office365-Filtering-Correlation-Id: 025afcfe-eec1-4096-3f4d-08deb7029397 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|10070799003|376014|18002099003|22082099003|56012099003|6133799003|3023799007; X-Microsoft-Antispam-Message-Info: nes0+lf2yANx20DjCuAwwOIcl9zcmmpkxdvIJFNPuYl3DLge87aBMgWo7kK/ZR5qKaAVkaiCm2FFJJKnCGRTbuvjlEGOUI6JPdl4SLsfd142zBpxywSsLLZaDIgC8ch+puqodSd/CcW/RnE6nbi75p7TvhXIuccNaIGntoTqq6f67FBWnbldK95JvzMnIlp9sAUR4NVdb0DeouhPxmz+SRvUKM2ICkXFIMDihsFppmiBujkDxTlzMGs+9vhKQ6i68wJhTxpWY8oh0J5ir06cLWmr+Vwn12onkMyz1n/gnL7yJAcT6N4Vv2NTLpB8Le2cOUou7M8yo7QhMxFPn10Z4Y7PqRg+a7eJ24jyyavrocz+X4fXOy9S+ulYWHf4URlKwugAiMcFuZVtUZGKjkMedlZps6BaGnKhgvf4WjlFl1WeTgmyhNifNVvXm2YAWxgEDWxHhc8Didrvh0mv+7dwCAdgIn2uPpRnnbfNQcNf8KMb+PoSuioJl6gBOyxidpUcVvMCoCzchxhCVpVBuopJfBRhHMSxVb0QaY9A19Fi9wOyLORVQQIvya8Te31ybDbtlSEVHgIkfQYLuHDpDFrwvPy/nga8UhDWgoG9FqvcDnSLVMF7V6b9sJUKZ20t1R/wpPOLtjt1bnk6r3nWvn/E8FEIki/Slws/zBtujfKBs5kHJTUiPtB3wCG3698Ayy4s X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(10070799003)(376014)(18002099003)(22082099003)(56012099003)(6133799003)(3023799007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?GuE4EKtz9mOm2xQg0BloT33x9YcTZR3kptK/ReaP7OCJXYsGaaCoAMO0NTxe?= =?us-ascii?Q?T2QpxCVqh6FRW8JRRf+cgwpUQUOsj31wf66sSKkT4fmlrb+vTcpxltXLlNt3?= =?us-ascii?Q?wj8y/afl5oItsGhyex6h06SOv7LDIuBzpPm3M0AbuIRA1gTeq1QEq9Qmluec?= =?us-ascii?Q?m8qs84G5OgNi9rAZsTqYjLyZcxLzIlF2pY6DjRx6euI5G86pniI3VoOUhqqS?= =?us-ascii?Q?OymDFVLlTOUN9JA3EJwaSSvM+nmcB/KXBrfbKLQ8Hz6SFj77aB8B1/M/cuAC?= =?us-ascii?Q?3H1+XPm9BVdUUwqw6w+9RppKoS1Pmm8VYpd+t9VEljzTiw7ci/wbjG/5i/6C?= =?us-ascii?Q?7sz0QdnhfPywl/vym0UCXcUf7ZSwXXDup3Z5cs3TM2gbPxrESXGdnrsnVRKa?= =?us-ascii?Q?/ivMugLFdUT/NHBaK5sKIXA08BpvxL5MVno0RD0siUIR2sr2ma2/+/yb+eSr?= =?us-ascii?Q?dnvjUbCxW+H5NkrmIbz9SzsVQiQp/YJvJ6eTV2mvboMaSO57kAunxRaAc4nQ?= =?us-ascii?Q?nSu+Jl6RJQpSFF72dDGKS3001cEQNbuD/i1J4JL8rPXortogyDvh5jLnDOPQ?= =?us-ascii?Q?dVhxyADTVnb2M08fX7rKR3r3MsZiulpbPLmJRAlHUaVLhgQYfs7eB4DmiZ2s?= =?us-ascii?Q?yxlz7kWABw2rJWA/tuhokStodMMmBwC9dGHcWeO+P80lk8NZmCLB836BQ5bi?= =?us-ascii?Q?7NtBky0hcYUK3gajylmAHAw2OKbgNRvvXpGIjG1OI9ldjnJsAntNVT6jRFJA?= =?us-ascii?Q?WXtve37+FxqpsB+wzp1SdrtV831a1em5pQNChASMC6s3COHDk7Ejqy6tSDac?= =?us-ascii?Q?F5YzZfhc0A5fG3M1ZuWc2grzoPcf8NWiHnj+EemmevKrZIDFchyPsBZjhMzr?= =?us-ascii?Q?nEMMHyfMHyQoCCSbHhoyNwNgc3pjGw1aTRVMEo8kxq97yt8pSadjdy4xZhvy?= =?us-ascii?Q?EdGbv3IelCFY8O2k1Icy3LsrCB4I2P91xk5km5virWOPjxTeV1X84iJXDR3N?= =?us-ascii?Q?FNTEhPhNDo7hYFiJC8pq0fbBG74SKKdzgnmMVrDNFvgA5aUlFD4vOtvXA6Oj?= =?us-ascii?Q?AM/nwWZkZOfyOqvZl37mzrKTvbrF7n2qaoVULVDA7ua1V6DL03J4asY757vo?= =?us-ascii?Q?Txii/j4jHTKtgcKyI0WJjP98xK6z/eyONfql3v7YqcIdcu5pDfcwmr5G6NYr?= =?us-ascii?Q?sWIfRmlu8hr8Bcpfa02shIsEBsIJS4rktBatbFFVRcY6K5rt49kOanC7YhGY?= =?us-ascii?Q?nI6K5qe63nPAocwQN5Fp83yNOABIzH5vn71NhHeLrBv8T2fWAkmdlk5hFs+X?= =?us-ascii?Q?lVWBvXEkTNmo2VQi85OiGm0ACkpBRxY5zt/sC+fm9aLK3EZmIiEjOx0FvqLc?= =?us-ascii?Q?6gayDKkcjyIBJTfyinh51ardG1KR8G0MQqqOCmmR00dkTd1uesMr0RG91HZk?= =?us-ascii?Q?ifEuRQDOgA8YIGx3dYw3SuQ6MioqTeSo1Y7nikXbOXtcbu+Y/W8p6anVT2U6?= =?us-ascii?Q?EjcUiAgQurSjf7HUdz7tGVyop897L2lt37VldCRzctEuW7UrvnwRJLMtNrwg?= =?us-ascii?Q?V9cEasN4gLu8/DEDOdyXy+25yp53kE3Pz91XvEUHfqq3Gplb9kA8r3ckoxKf?= =?us-ascii?Q?L1VyLtbt05F72M4geoWjq9KosFiXefoalP+Sz7krpeIrWTLtOFiCCpRqVN47?= =?us-ascii?Q?NIIAu0ImBbUF6rK+fb+rzDGe27Kdfxiq07PcWizXj7g1Ar0WHhaYgLYBIzH7?= =?us-ascii?Q?IDDOLb3Uc/OkajOS5wr0bCBKZDBvqD7y1/1Dxw5VMhtjhTQ0p+K5?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 025afcfe-eec1-4096-3f4d-08deb7029397 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 06:31:22.7838 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: BcCBp8pisbYE4rDmilUJJuSHjC9b82cN4+hUIvyGh8FkAxYIIsmDylyn10jGFGlc3WRJmUqs5gphxDEPaNpczw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB7818 Content-Type: text/plain; charset="utf-8" Some endpoint DMA frontends expose only a subset of a controller that is also initialized by the endpoint-side OS. Add a partial ownership flag so dw-edma does not reset controller-wide state in probe() or remove(). Keep the mode conservative. Do not enable interrupt-emulation doorbells, and reject eDMA legacy mode because it uses a shared viewport selector. For EDMA_MF_EDMA_UNROLL and EDMA_MF_HDMA_COMPAT, require ownership of all channels in each exposed direction. The driver updates registers shared by all channels in a direction, such as interrupt masks and linked-list error enables, so two independent OS instances cannot safely split one direction without a shared locking protocol, which is unrealistic. The frontend must still quiesce delegated channels before removing a partial instance. The flag only keeps probe() and remove() from resetting controller-wide state that may belong to a peer OS instance. Signed-off-by: Koichiro Den --- drivers/dma/dw-edma/dw-edma-core.c | 43 +++++++++++++++++++++++------- include/linux/dma/edma.h | 6 +++++ 2 files changed, 39 insertions(+), 10 deletions(-) diff --git a/drivers/dma/dw-edma/dw-edma-core.c b/drivers/dma/dw-edma/dw-ed= ma-core.c index 72dc8a60798a..ec32a2ab1651 100644 --- a/drivers/dma/dw-edma/dw-edma-core.c +++ b/drivers/dma/dw-edma/dw-edma-core.c @@ -784,6 +784,9 @@ static int dw_edma_emul_irq_alloc(struct dw_edma *dw) chip->db_irq =3D 0; chip->db_offset =3D ~0; =20 + if (chip->flags & DW_EDMA_CHIP_PARTIAL) + return 0; + /* * Only meaningful when the core provides the deassert sequence * for interrupt emulation. @@ -1128,6 +1131,8 @@ int dw_edma_probe(struct dw_edma_chip *chip) { struct device *dev; struct dw_edma *dw; + u16 hw_wr_ch_cnt; + u16 hw_rd_ch_cnt; u32 wr_alloc =3D 0; u32 rd_alloc =3D 0; int i, err; @@ -1139,6 +1144,10 @@ int dw_edma_probe(struct dw_edma_chip *chip) if (!dev || !chip->ops) return -EINVAL; =20 + if ((chip->flags & DW_EDMA_CHIP_PARTIAL) && + chip->mf =3D=3D EDMA_MF_EDMA_LEGACY) + return -EOPNOTSUPP; + dw =3D devm_kzalloc(dev, sizeof(*dw), GFP_KERNEL); if (!dw) return -ENOMEM; @@ -1152,13 +1161,25 @@ int dw_edma_probe(struct dw_edma_chip *chip) =20 raw_spin_lock_init(&dw->lock); =20 - dw->wr_ch_cnt =3D min_t(u16, chip->ll_wr_cnt, - dw_edma_core_ch_count(dw, EDMA_DIR_WRITE)); - dw->wr_ch_cnt =3D min_t(u16, dw->wr_ch_cnt, EDMA_MAX_WR_CH); + hw_wr_ch_cnt =3D min_t(u16, dw_edma_core_ch_count(dw, EDMA_DIR_WRITE), + EDMA_MAX_WR_CH); + hw_rd_ch_cnt =3D min_t(u16, dw_edma_core_ch_count(dw, EDMA_DIR_READ), + EDMA_MAX_RD_CH); =20 - dw->rd_ch_cnt =3D min_t(u16, chip->ll_rd_cnt, - dw_edma_core_ch_count(dw, EDMA_DIR_READ)); - dw->rd_ch_cnt =3D min_t(u16, dw->rd_ch_cnt, EDMA_MAX_RD_CH); + if (chip->flags & DW_EDMA_CHIP_PARTIAL) { + /* + * Direction-wide registers are shared by all channels in that + * direction, so a direction must have a single owner. + */ + if ((chip->mf =3D=3D EDMA_MF_EDMA_UNROLL || + chip->mf =3D=3D EDMA_MF_HDMA_COMPAT) && + ((chip->ll_wr_cnt && chip->ll_wr_cnt !=3D hw_wr_ch_cnt) || + (chip->ll_rd_cnt && chip->ll_rd_cnt !=3D hw_rd_ch_cnt))) + return -EOPNOTSUPP; + } + + dw->wr_ch_cnt =3D min_t(u16, chip->ll_wr_cnt, hw_wr_ch_cnt); + dw->rd_ch_cnt =3D min_t(u16, chip->ll_rd_cnt, hw_rd_ch_cnt); =20 if (!dw->wr_ch_cnt && !dw->rd_ch_cnt) return -EINVAL; @@ -1175,8 +1196,10 @@ int dw_edma_probe(struct dw_edma_chip *chip) snprintf(dw->name, sizeof(dw->name), "dw-edma-core:%s", dev_name(chip->dev)); =20 - /* Disable eDMA, only to establish the ideal initial conditions */ - dw_edma_core_off(dw); + if (!(chip->flags & DW_EDMA_CHIP_PARTIAL)) { + /* Disable eDMA only when this instance owns the controller. */ + dw_edma_core_off(dw); + } =20 /* Request IRQs */ err =3D dw_edma_irq_request(dw, &wr_alloc, &rd_alloc); @@ -1220,8 +1243,8 @@ int dw_edma_remove(struct dw_edma_chip *chip) if (!dw) return -ENODEV; =20 - /* Disable eDMA */ - dw_edma_core_off(dw); + if (!(chip->flags & DW_EDMA_CHIP_PARTIAL)) + dw_edma_core_off(dw); =20 /* Free irqs */ for (i =3D (dw->nr_irqs - 1); i >=3D 0; i--) diff --git a/include/linux/dma/edma.h b/include/linux/dma/edma.h index 9ea7b24b5015..33aa6c8981b3 100644 --- a/include/linux/dma/edma.h +++ b/include/linux/dma/edma.h @@ -55,9 +55,15 @@ enum dw_edma_map_format { /** * enum dw_edma_chip_flags - Flags specific to an eDMA chip * @DW_EDMA_CHIP_LOCAL: eDMA is used locally by an endpoint + * @DW_EDMA_CHIP_PARTIAL: Only channels described by this instance are + * owned by this driver. Controller-wide state + * must be preserved, and layouts with shared + * direction-wide registers must only be shared at + * direction granularity. */ enum dw_edma_chip_flags { DW_EDMA_CHIP_LOCAL =3D BIT(0), + DW_EDMA_CHIP_PARTIAL =3D BIT(1), }; =20 /** --=20 2.51.0 From nobody Sun May 24 21:39:22 2026 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11020112.outbound.protection.outlook.com [52.101.228.112]) (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 85C8A395AC4; Thu, 21 May 2026 06:31:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.112 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779345090; cv=fail; b=FBDz+dkuH6eIN8HsR6V3GbpK9FG6a+ODoabgNls9bu4i1dv3ZwqL7QkyK3mw1gZmpTqVTQIqPTu6aeVdrfH0FPUwC5Oll7syO/vBpE8BCZjFbiJ85+v6idFuvXmhhVznBE5PpvNVkKELKPCnuPm4bQ5iFnv4gjW/t2aHVR935Us= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779345090; c=relaxed/simple; bh=oQKoF8pcBs6UMqe0kjGpXg2Jhh03OYYxTcPO037rH2o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=YaXMldp58f2LUPHw35KDAymGHDI+9N0n4GK66HG/cgoXL5TeGiuAVQKd/8sglhhXM65HWAQR20GrCGhY54w25sQGMKh/WqLRfQo/9SF5oAuCJwrp5EUpQDdtiPDQ2Dsh+awiHoVabb8+hCSLtD5EqsntnH5c5wk/a6PpcYHq+Cg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp; spf=pass smtp.mailfrom=valinux.co.jp; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b=DkzXq0r4; arc=fail smtp.client-ip=52.101.228.112 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b="DkzXq0r4" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=mM5Xy1Oh2vUOXatLVX5kR934PBLXBPPcfUICBu7G2tNOjbNbtNmPOJw4oRbpQ3Roz72gFWPQ5+c91d3DPtkLSgQTSF2/tsF9bsuyC2ellD6IYw8AyXcEP9esLMFtR1EiDP0YqYKvRhi5njaSlxDCxHSaFydCYybkNuIEdSLvxq55+/aPVUBXw5gK++hLodyQtXAyuZknANXSf3pPgSdCXVc5+SDC3vMJA7SqWJyJWMmyMk1DgL1l0G9rspOHdbseP1oDUhLzaMNuFTHNQk3pzENWorgR5AUCfPPHtiWV8N0wWleJ0ddxxmrcle/SxqSAbB/u3c+ioLgv5J7JCf1DXw== 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=ZV1DF1f+79Yg7dRiMvu18CdfpT2a/bRjmDzPRNJ9hoI=; b=a0NJXrq6DbNKj+a5vaxsOsG3AhmjL6r9+CRB2mtlJgXC1OYQaPX//n3qyBIAk20tx1jWjNSIVFYSu4OZHgme+5BsNQ7chj+297U7VM+6dnNRchwJONtoG3kQHcKjoQMBMy0WxmOIHvxCuwcNOE83d2MvuI/6/+vQJtcrcg09ZvOoNMnNeZhKprRzEhqPrGu5RyNjHrkBC+HPm6yxiZ9QegVy8RBrowTrYYAXyLwfBIdYkQERxLOkhAhEVImdKw1uQsnZvwmaAOQsthF1oZhMaRhh48tgIpmJRdGTHsKLtXaeUfuhoqhQyUknzMbq+DV1QhdmEbxBc7kYwwqDVA5G5A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZV1DF1f+79Yg7dRiMvu18CdfpT2a/bRjmDzPRNJ9hoI=; b=DkzXq0r4ZsWkp5C2dl2dm1HUAsMh8qBi0OGuvLk6w9wNrnS5Gjfd3Xner5wa1uA+0rH5wjNFBjRmNFsOKdTLW53bKBdrfEEKS7RIAPK2Oh8Y5QHIgsjVtnWggSHbhZeOX2qVqSQlVQB+Q0TR6pT3ApoXo3Wwhb/H4d8dY1OPWM4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) by OS9P286MB7818.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:473::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Thu, 21 May 2026 06:31:23 +0000 Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.21.0048.016; Thu, 21 May 2026 06:31:23 +0000 From: Koichiro Den To: Vinod Koul , Frank Li , Manivannan Sadhasivam Cc: Marek Vasut , Yoshihiro Shimoda , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 05/12] dmaengine: dw-edma-pcie: Add capability match data Date: Thu, 21 May 2026 15:31:08 +0900 Message-ID: <20260521063115.2842238-6-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260521063115.2842238-1-den@valinux.co.jp> References: <20260521063115.2842238-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY4P301CA0025.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:2b1::7) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) 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: TY7P286MB7722:EE_|OS9P286MB7818:EE_ X-MS-Office365-Filtering-Correlation-Id: 07052e59-23e5-44ae-2693-08deb7029422 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|10070799003|376014|18002099003|22082099003|56012099003|3023799007; X-Microsoft-Antispam-Message-Info: 54xxfudDeza31eFTtTw7ByU4mIQ6tG+zNncOsS5m0ZLguVLuDdZE5TnHRPzeK/0am5B7v7Ujqki6irgHdWtO1eoUXOeGL7yV3P23dgQnx0bxrsxnAfQb+qAX150Cs39rKuFabJUUXsUVP/p3pe1pF1PGomfFBdL35ZAkfsVpKheUyI8f1rsUkQHY/rjWHNVT11UxKwqJYKaDI6gKXJQxSaZusdWFIovPunMbYEHcIvKQX5nx0G/eE/1WmSjQC6S6W+ADH00dCdz21ir2BDmiSTCalc4Es0T9pQEXzPTsRk+D0Phyz7JtvAwyX0QfolhzmxoMd3F4UAV1MCfA+YJcS0EniKV+xhjN1GVwPuVdZ1H7rLbL7n/MrIx3yWqXNww9INooN87pUK8DRVtBvzEunT+fYlc56F1WiRkap8sBrBVR4S+paYHMcCC5PEySZwPbg0CCyxSMnnaT2x6vE8apz1xZFHgOvOSRF5N2Cn6zAuk45ZBjZC1NFKLeRP1kFhw9BeU27KC761XNDSJCBvm0zBMVMnyD4Z6xnrxbWU9LF7asjGumqDZlaqinWIHe74TJeZt3u6TUL3GuIK7DY0oG1AkG/h2ua3PTUIB3tGEfWvNGjRP65LLW1Za1WvB/I1V/y1bzksE2mnP5mebDlJZQOgVnVs1Cyu6XQGmkzx+L17c0ICD6C1sW1sYPo7iTvv1L X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(10070799003)(376014)(18002099003)(22082099003)(56012099003)(3023799007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?UH3V2p9m1EIGDLFPYL8y0nMeO3okQi/HYMkUqZWvKJWrI1Aa3MJJivY43nTJ?= =?us-ascii?Q?9xs6pBKfnYoxbk75DW+okvXi7Cl+whHkgHyXKU/TqNl7MqVtL1zbGzNwxqaN?= =?us-ascii?Q?/nH0YzXXQcbVgzzntGNOoCflxqcIFqcouyGKNXq11ycNOEingHBGk3ASiasY?= =?us-ascii?Q?mSRoBBcfgv2K4gicRsDhpsZyb08ITtRQGdcziWhzmC6veFOwXGu9kAj50NUB?= =?us-ascii?Q?r6x9keo3S9r82NI1pyBwilW139tekAu02FiRuidZCp3AWhBGKC4oSAoWsjPZ?= =?us-ascii?Q?L9WB70iwmPRCd2zxvc+w+8rppS9jgqq18pqaRIILNthjYus95gJY4h7JQ/nR?= =?us-ascii?Q?DFqVdey7Ec7IFezjLEzeEwAfIRLZWwsas3tGTT1rnSdSX5IEffnd+Bbi5slu?= =?us-ascii?Q?kCIAc0/MGYHkDxdd+9qH+Orf3Q/3fjCs//7N3T+fJ0J2u8q3UJiVVraDiUQ0?= =?us-ascii?Q?3Rd8s7yAXwW45/cqA7Q7ZWY3ivCVQSQYCo9DHtCGGm3VDL6sGENZ+3SRJ8Dl?= =?us-ascii?Q?Al+QCBSmnpuYLqq4NxWIck3JmJGP71jOrhnsn0AZRZnxrUwnQusax4dazznD?= =?us-ascii?Q?zLM3fS8n9TI9SrGu95xy5Y7ouxTibq2MZKizbBhyeRfyjNjt/fWBzUzqi3xj?= =?us-ascii?Q?gVBS7iqV5ZBYDoiC5xDJ/EuqyEfECXKuofYVAYg5Yo5uoDoILsbbgMGhBYvD?= =?us-ascii?Q?GNHS2arJwNFnL64PoaifZdtWeY4S8eM35YVzBw2aVBu206aiRij0b4pmGqUA?= =?us-ascii?Q?Az9ZHwbgWxfw3ZyYLGUR1l/p1AWcSNQjU29mynhFyKqvFGDpG1ffDNG41D+P?= =?us-ascii?Q?n8wYiYBg8cPuElqlzR4Tgu6I3ie7G/6SnfXLked0nDixE8z+wFHBGVOAsPUO?= =?us-ascii?Q?mo7AWPrw1nybCWhDW6eA0G3fLQ14csMKJ7SkcMl2gugSZs/Wl961ixRpSMC4?= =?us-ascii?Q?s40Ak4Wi9qJ9liXc7q3VQdd+VbWDsw9tVyHOQnO5N6yqM0XHVbNrPAZT5qCh?= =?us-ascii?Q?71ftoGBbANM/Wx4GqV9guRoIVO29MlqhWX7Nd80FYrSYKPLkmiJtygprPLMO?= =?us-ascii?Q?dDeZmok//bdPg8/sdhbZBxWPXL6sTnoEr7Rre2VQBWyVJdDvuJ3p807Upohz?= =?us-ascii?Q?+dRteiPO7heIzNLQ8dT1dju05yexLFG1mSwzZVoPZfLNmzXfRLJ+BCs9+wOx?= =?us-ascii?Q?RpI8bt4qvQ0yeOeYMRB/nHC4zScWfohZhqHMm/g3bL2GBMBBOV4MD+vtPOMP?= =?us-ascii?Q?VwWNBLmDzcjv5foplA6KwPZBdg17ncVGvvAN2EuvRlxGYjJbSRhDP+Eu4cE2?= =?us-ascii?Q?ZuF+4B7ESi/wrBcbjP+jDKtmes/crdjK+cbtkUThO8INZnFVCUt5wvb91Sn5?= =?us-ascii?Q?hktul8UgZ/GaBOD/FyvLXeYJYABvOFARfjAEaeCpMyavBtRV5hejRSAO55j/?= =?us-ascii?Q?v5OL8w673MIz74Uy+80sBrfgQEbrSrGFI73bu4s+EWFwey2p3YiHkcuNZYK/?= =?us-ascii?Q?yLNp1gNddafSGUE3E2UAc4xwhQsy5WKNPt5pn6QluOmRPWSONZShPnSnli56?= =?us-ascii?Q?fLQ5YXAndAsZ+Rl7dMXKwjLVbtAdIce0G4nZT5cEomsZ8lAC/WletFzZ49gB?= =?us-ascii?Q?RQjnslAzCPBfkHQ3CZDO/+YiqrHTzw01KgJMT6b2X6I1C7t6cwnqBAz2m9wL?= =?us-ascii?Q?ZrY+5N2Wk5n6ycRv3F153VJjbH3Macq6OWrayIDVInG9b7rWJM9JTg0Pz/rc?= =?us-ascii?Q?yzNZ7KknPauGRo3HXZgLNEA13Tg81inEkvcKEDvGqFrTYrFa2T4H?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 07052e59-23e5-44ae-2693-08deb7029422 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 06:31:23.7205 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: cd8ebliPC51ymyNYuRgUH0QGiGH5GzBk1kU3mxTvoiF66DKogxmL0+w6nStJDOw+vj7OQWmwRVp3M8KYOvVNFA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB7818 Content-Type: text/plain; charset="utf-8" Move device-specific capability parsing behind per-device match data. The existing probe path mixes two decisions: which static template a PCI ID uses, and which device-specific capability parser adjusts that template. Split those decisions so device-specific discovery can be added through match data instead of adding more vendor checks to dw_edma_pcie_probe(). No functional change is intended for the existing Synopsys EDDA and AMD/Xilinx MDB matches. They still copy the same static template data and run the same capability parsing logic before BAR mapping. The MDB entry also keeps using endpoint memory physical addresses for descriptor windows through a new match-data flag. Signed-off-by: Koichiro Den --- drivers/dma/dw-edma/dw-edma-pcie.c | 127 +++++++++++++++++++---------- 1 file changed, 85 insertions(+), 42 deletions(-) diff --git a/drivers/dma/dw-edma/dw-edma-pcie.c b/drivers/dma/dw-edma/dw-ed= ma-pcie.c index 0b30ce138503..043a7f73bf79 100644 --- a/drivers/dma/dw-edma/dw-edma-pcie.c +++ b/drivers/dma/dw-edma/dw-edma-pcie.c @@ -74,6 +74,19 @@ struct dw_edma_pcie_data { u64 devmem_phys_off; }; =20 +struct dw_edma_pcie_match_data { + const struct dw_edma_pcie_data *data; + /* + * Mandatory callback. It may leave @pdata unchanged when the static + * template already describes the device. + */ + int (*parse_caps)(struct pci_dev *pdev, + struct dw_edma_pcie_data *pdata, bool *non_ll); + unsigned long flags; +}; + +#define DW_EDMA_PCIE_F_DEVMEM_PHYS_OFF BIT(0) + static const struct dw_edma_pcie_data snps_edda_data =3D { /* eDMA registers location */ .rg.bar =3D BAR_0, @@ -295,19 +308,61 @@ static void dw_edma_pcie_get_xilinx_dma_data(struct p= ci_dev *pdev, pdata->devmem_phys_off =3D off; } =20 +static int +dw_edma_pcie_parse_synopsys_caps(struct pci_dev *pdev, + struct dw_edma_pcie_data *pdata, bool *non_ll) +{ + dw_edma_pcie_get_synopsys_dma_data(pdev, pdata); + + return 0; +} + +static int +dw_edma_pcie_parse_xilinx_caps(struct pci_dev *pdev, + struct dw_edma_pcie_data *pdata, bool *non_ll) +{ + dw_edma_pcie_get_xilinx_dma_data(pdev, pdata); + + /* + * There is no valid address found for the LL memory space on the + * device side. In the absence of LL base address use the non-LL mode or + * simple mode supported by the HDMA IP. + */ + if (pdata->devmem_phys_off =3D=3D DW_PCIE_XILINX_MDB_INVALID_ADDR) { + *non_ll =3D true; + return 0; + } + + /* + * Configure the channel LL and data blocks if number of channels + * enabled in VSEC capability are more than the channels configured in + * xilinx_mdb_data. + */ + dw_edma_set_chan_region_offset(pdata, BAR_2, 0, + DW_PCIE_XILINX_MDB_LL_OFF_GAP, + DW_PCIE_XILINX_MDB_LL_SIZE, + DW_PCIE_XILINX_MDB_DT_OFF_GAP, + DW_PCIE_XILINX_MDB_DT_SIZE); + + return 0; +} + static u64 dw_edma_get_phys_addr(struct pci_dev *pdev, + const struct dw_edma_pcie_match_data *match, struct dw_edma_pcie_data *pdata, enum pci_barno bar) { - if (pdev->vendor =3D=3D PCI_VENDOR_ID_XILINX) + if (match->flags & DW_EDMA_PCIE_F_DEVMEM_PHYS_OFF) return pdata->devmem_phys_off; + return pci_bus_address(pdev, bar); } =20 static int dw_edma_pcie_probe(struct pci_dev *pdev, const struct pci_device_id *pid) { - struct dw_edma_pcie_data *pdata =3D (void *)pid->driver_data; + const struct dw_edma_pcie_match_data *match =3D (void *)pid->driver_data; + const struct dw_edma_pcie_data *pdata =3D match->data; struct device *dev =3D &pdev->dev; struct dw_edma_chip *chip; int err, nr_irqs; @@ -328,36 +383,13 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, =20 memcpy(vsec_data, pdata, sizeof(struct dw_edma_pcie_data)); =20 - /* - * Tries to find if exists a PCIe Vendor-Specific Extended Capability - * for the DMA, if one exists, then reconfigures it. - */ - dw_edma_pcie_get_synopsys_dma_data(pdev, vsec_data); - - if (pdev->vendor =3D=3D PCI_VENDOR_ID_XILINX) { - dw_edma_pcie_get_xilinx_dma_data(pdev, vsec_data); - - /* - * There is no valid address found for the LL memory - * space on the device side. In the absence of LL base - * address use the non-LL mode or simple mode supported by - * the HDMA IP. - */ - if (vsec_data->devmem_phys_off =3D=3D DW_PCIE_XILINX_MDB_INVALID_ADDR) - non_ll =3D true; - - /* - * Configure the channel LL and data blocks if number of - * channels enabled in VSEC capability are more than the - * channels configured in xilinx_mdb_data. - */ - if (!non_ll) - dw_edma_set_chan_region_offset(vsec_data, BAR_2, 0, - DW_PCIE_XILINX_MDB_LL_OFF_GAP, - DW_PCIE_XILINX_MDB_LL_SIZE, - DW_PCIE_XILINX_MDB_DT_OFF_GAP, - DW_PCIE_XILINX_MDB_DT_SIZE); - } + /* Let device-specific discovery override the static template data. */ + if (!match->parse_caps) + return -EINVAL; + + err =3D match->parse_caps(pdev, vsec_data, &non_ll); + if (err) + return err; =20 /* Mapping PCI BAR regions */ mask =3D BIT(vsec_data->rg.bar); @@ -424,8 +456,8 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, return -ENOMEM; =20 ll_region->vaddr.io +=3D ll_block->off; - ll_region->paddr =3D dw_edma_get_phys_addr(pdev, vsec_data, - ll_block->bar); + ll_region->paddr =3D dw_edma_get_phys_addr(pdev, match, + vsec_data, ll_block->bar); ll_region->paddr +=3D ll_block->off; ll_region->sz =3D ll_block->sz; =20 @@ -434,8 +466,8 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, return -ENOMEM; =20 dt_region->vaddr.io +=3D dt_block->off; - dt_region->paddr =3D dw_edma_get_phys_addr(pdev, vsec_data, - dt_block->bar); + dt_region->paddr =3D dw_edma_get_phys_addr(pdev, match, + vsec_data, dt_block->bar); dt_region->paddr +=3D dt_block->off; dt_region->sz =3D dt_block->sz; } @@ -451,8 +483,8 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, return -ENOMEM; =20 ll_region->vaddr.io +=3D ll_block->off; - ll_region->paddr =3D dw_edma_get_phys_addr(pdev, vsec_data, - ll_block->bar); + ll_region->paddr =3D dw_edma_get_phys_addr(pdev, match, + vsec_data, ll_block->bar); ll_region->paddr +=3D ll_block->off; ll_region->sz =3D ll_block->sz; =20 @@ -461,8 +493,8 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, return -ENOMEM; =20 dt_region->vaddr.io +=3D dt_block->off; - dt_region->paddr =3D dw_edma_get_phys_addr(pdev, vsec_data, - dt_block->bar); + dt_region->paddr =3D dw_edma_get_phys_addr(pdev, match, + vsec_data, dt_block->bar); dt_region->paddr +=3D dt_block->off; dt_region->sz =3D dt_block->sz; } @@ -543,10 +575,21 @@ static void dw_edma_pcie_remove(struct pci_dev *pdev) pci_free_irq_vectors(pdev); } =20 +static const struct dw_edma_pcie_match_data snps_edda_match_data =3D { + .data =3D &snps_edda_data, + .parse_caps =3D dw_edma_pcie_parse_synopsys_caps, +}; + +static const struct dw_edma_pcie_match_data xilinx_mdb_match_data =3D { + .data =3D &xilinx_mdb_data, + .parse_caps =3D dw_edma_pcie_parse_xilinx_caps, + .flags =3D DW_EDMA_PCIE_F_DEVMEM_PHYS_OFF, +}; + static const struct pci_device_id dw_edma_pcie_id_table[] =3D { - { PCI_DEVICE_DATA(SYNOPSYS, EDDA, &snps_edda_data) }, + { PCI_DEVICE_DATA(SYNOPSYS, EDDA, &snps_edda_match_data) }, { PCI_VDEVICE(XILINX, PCI_DEVICE_ID_XILINX_B054), - (kernel_ulong_t)&xilinx_mdb_data }, + (kernel_ulong_t)&xilinx_mdb_match_data }, { } }; MODULE_DEVICE_TABLE(pci, dw_edma_pcie_id_table); --=20 2.51.0 From nobody Sun May 24 21:39:22 2026 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11020112.outbound.protection.outlook.com [52.101.228.112]) (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 54D37395AD9; Thu, 21 May 2026 06:31:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.112 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779345091; cv=fail; b=TtzS9XEoFD/dRJ5KEtYN7EX/rNPSd35nK35H59/1QBHKuuvHVwNfEu0Ixb4eRTS891UUXJvb7WcMpOpXGXDyw89OAjri4lkYJwIQTvNfonQ6GrV6W6SrVXICu/X/iITt62e+IIOR+F+lM196RBgsKjGiS13Zr4TNARr80whTdr0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779345091; c=relaxed/simple; bh=0KIawX3aRrJQzeecinO/V7Ffn6FsJ8P9do+EdIt4tUo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=N5/AkkrBc6SdxHyIvgOlg9hvikp9opu9Vnlf0ImU6Fkh7Xp1iQ1vaE1DQQVr2hx5t068jTELOQoGRLXqa4u/AlwUS1L3qOip7wVdk1FiMEPxq/TB27GWu47QDR0zHkhC7LB3SvsoHK7tUqrfSIXwS5TJVxt+2S7xG5ujIOLfXxM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp; spf=pass smtp.mailfrom=valinux.co.jp; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b=w3VLvbef; arc=fail smtp.client-ip=52.101.228.112 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b="w3VLvbef" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VUgqgmebTrYg8jIrm0456DkH56Nmr27RrffDMtZIFn4Dbz/9TTFfldKo6qlqJwyUiUl6NPRp0oFMfKTkZ0KwTbf27pJWyxWk8n65mScH65Sem70wvyT0dytzrrwlrTxEelnYlpafVJZINDNOlaYRApoFBdGopAOUJ/PgltlovMd1ZQth9i+m0Fkx4tPly4tCqr9918UzFYmFOdGpxKrRbcSR9KYEYQZS6wjL0F1eg/eCUPgUJONtaPRYGNi2tjRbULCGqoFu2sh2BcFh8RTREUe+pw8TMxdIVoEPmeWY/ZVELjMq2gRkyqs+b3GaJkVUclc3k7kHs1YtOT/c9hfc3g== 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=8HcgQ6IRqg/kLgZJ5/4TPbqATlmJ9iRfIBWA4i3AyPM=; b=fIYSoIZF0wBbADIeZ7q5bQI9q4GYiVXKEBLXR+ortIrH8aQ6U/RRA4KyrubErIHNDHugcEQE+Y1VVGc0Qz9uKmxopi0ieE3l0N5gbOFRj4LbMRL9KDCwLAfRcE7s7UDGdo6SD78BvYAuyQM7voI+3KbOcT4lLS4He5tmKKDYLdsobjxBAlO4JaSu8gAIDOtMzhfGtdAY1rRtif8iPgcrzDGMQJQ2c0m1c9zUte5nfZuA1rP6vTVJiv7uNvgBETCHXHKeMXaQCqH30FhDshdlf+4BYjLzzBoGHXZ9uVKS3xG7ClT9LAFFvBq0x7KjH/6roO3bAdNCEsUPa/3nIEGxDQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8HcgQ6IRqg/kLgZJ5/4TPbqATlmJ9iRfIBWA4i3AyPM=; b=w3VLvbefym5L6QvSYqCfcIRJgKMUzemY1we1fTgECvzNflA/cweLagAsFMh+sGxSeg2uXGJ2Bp5764yQjb8bhgtpUS8hLawoa3wUiLCGCKUIRYVwU6mtnr1XrO5KUuNLykuEwQDsSgEr+s9kjbIdaS8ipNia7EfnuoGXu3VXip0= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) by OS9P286MB7818.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:473::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Thu, 21 May 2026 06:31:24 +0000 Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.21.0048.016; Thu, 21 May 2026 06:31:24 +0000 From: Koichiro Den To: Vinod Koul , Frank Li , Manivannan Sadhasivam Cc: Marek Vasut , Yoshihiro Shimoda , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 06/12] dmaengine: dw-edma-pcie: Rename DMA data copy Date: Thu, 21 May 2026 15:31:09 +0900 Message-ID: <20260521063115.2842238-7-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260521063115.2842238-1-den@valinux.co.jp> References: <20260521063115.2842238-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY4P301CA0022.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:2b1::14) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) 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: TY7P286MB7722:EE_|OS9P286MB7818:EE_ X-MS-Office365-Filtering-Correlation-Id: c0e76ca8-828d-4611-590d-08deb70294a1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|10070799003|376014|18002099003|22082099003|56012099003|6133799003|3023799007; X-Microsoft-Antispam-Message-Info: KHV0JbIqSz46qdlkHIPWm4dxoXVjpXaoTUpaYjNPbOOx6FwOyoV4nRRg9kN9OIeNKuz73dXlPKThWsBZ+UKb63tgoG3JJcxbzOvoRPIK49/W6VQTaplP/BEZG6qt8/STTtVZbk9IkglBUc5Wx/5wM0+e2rNT+SyTca/WB4i2Ccb+gOx85vlMmp0T+iRfD8yCPvdSaPiabsPoMo6tosMB/3ZjkkS5tyRI5D0pkm04hmgLL6/7dROXh1EsBU7w7HBIduGzgFJYOdxQIC6rKBXrJz3gb5Lv5Wjec1l3hiJFLn8Rs6ygFKB42gWSXPXmLY9iInkBnRojjqTQxnIt55d0JeSzLxI9qVDqvck3USgtdWJf7UE+/W3cZEqjeBJWtVtkiKjcrIQOYS7iDF/uh17T7PwJ8UZk0n/STPgHupRV/GkBeWuHv8BLUTFs2ZoCCjXZT5KxjKsVwlWOHMEb+DQeFsYK2IPwUlr50SsSkL/bD0eTdfR03dsstao+PhJU1zFddXx8wg9B0u9PmIJlJG6yL1cA5lRR2jx/hLlIMA093Z8bZOqZX2+ocXDdfmWSSs/Y8YPsBINStDwzmDBquV86xuWN/FPQz1XEcsGCyCw9mD7XicmzA4ZmJcdLrPboG6vf8knK84ykRNoQqyprq3N0EqOyXtYcv0VX+a6dJ+zcYgtiRzufbraNPI/3JazlkOTY X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(10070799003)(376014)(18002099003)(22082099003)(56012099003)(6133799003)(3023799007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?aI62eT1LuMjvO+osfopqGZ63qKub6rAbO/wnDt23UE2dzfypSbz8GJ1XIP3y?= =?us-ascii?Q?QcSIk6LcXvPxZ5eAiBktJQ1rmFow818l/p2uCkfN5MOOarj7I9Jx8BZUy/XU?= =?us-ascii?Q?GY36DccxMX87ihomzWEk9jnq9vuhunnkfO5VcPWYqY4uAoRjUWl0YSE/YR5l?= =?us-ascii?Q?a/TeFVyH8j/PiCReoR4z+wGMdUq1aG999TZKxk5kOoVPqNmJQNeVlUHn5La0?= =?us-ascii?Q?RcVaEE7AyWiBv4xWJyZBcychkHgkrL+EuEOfn4ytPUDvtW5Wq4JD5uRPFe3C?= =?us-ascii?Q?nf2JJBKfvw0fpoL3BEhO0ymWi/ggelbIfh7ziNwcU+dTAOpQVV9kDA4VPf62?= =?us-ascii?Q?jn6EpLT3JdRrcj/84n19X1FzegQ79kuuV0nf/qjOp6XXZW6piT6+/dDqFS6Y?= =?us-ascii?Q?4sMZaa8us3d2uQrxDue/36I4h2WGLhjVR/yi7sQ+Ehwi7B4X2TN3+laqbTPo?= =?us-ascii?Q?moXKE/EB0pTqC0exjGbcNTTOxiMMjQ9NW5OLfgS8QKuPvBGZCXa1xH+iplvs?= =?us-ascii?Q?TGL0uHx6TSLhs2I+z1+N2BclkLjw07C5jQ9LhyrpZ/lkMllbNwu6xsExdAFa?= =?us-ascii?Q?QcLjTOmqYzfUi8pOvAkoelKIusK/WHHBHJ3sJYPhHNKAp9RYAmdSEFlVanaK?= =?us-ascii?Q?DP3so21MVkWpGLYwXpNhSIe3IKfh6LiL7lG8mYcXFnklhniOY8vCDRZJmteb?= =?us-ascii?Q?xrF3H+fTOyI4wMJq98EOPBqCMINVV5gFwQt+JxNnGqE1fDZndspUj5bJkYlY?= =?us-ascii?Q?g3zIzpcWBw+Ws8QMG9dRVW4jwVa/vAW8E0QTWOHDPYWxNGMRIv+xCns8IJ+c?= =?us-ascii?Q?AQdxDedKo7sVGqL2hsUhfqO2y7xaWjeupyYI/BibHBG1Exn5XMv6V+pS11qq?= =?us-ascii?Q?RF69hoadqBD4aqni4/uKcAMxdnsKak13fwfwv6Jw+hpd7SumNMfuFMw7MYpw?= =?us-ascii?Q?w5+VDGCoZu2T0mpOG492IoNroNPU4fFBBh/UOlp0HjWF1/SceZ99KSo025bH?= =?us-ascii?Q?g96BBYruN/k0HwX5N7jtf/vytgfLlkOBWiiDMx13y/dL8ql+HHOL6jU46VlO?= =?us-ascii?Q?EVlN+pCNqpzbjBZSneuzMb0mAcmUlDcR65RQgEgJ4oabhUkd9pIrQsya17OP?= =?us-ascii?Q?jCiCwTGy/FiCFLdBPeHZHG9N2Wn4PAK4p9eO3PHdiMWPZ9cRpSDcHBsDybix?= =?us-ascii?Q?jOs5ziZWH6q31QlvhzW6X9MNiM2zfZiHzOW1cJqb2ecrErBldbImBYFtr4hu?= =?us-ascii?Q?wt3ElNqg85TZcVJbZ0kLyiFgomeq6rZNP2CMym63VzXObwXy44iYjB849NG+?= =?us-ascii?Q?unU5zKyd11ipd5mNBK0D7PyK8WUM/M4XRe6oK729q9y6Z5i3G+1xqH0erCXJ?= =?us-ascii?Q?b5bOazJ87Lflumom4A8WdVeDgyJ9/DnxomaTpRd354R01YlThoxCspz4VvwI?= =?us-ascii?Q?O7oQso5B2+a4B9ty47tehtXc4e0LhfPY4nbe+rs5Vt5vPpqgN6etJws6rORj?= =?us-ascii?Q?mHaTstaCXCRk/I1qckoUAysQzJBs0ooz4H2WHExFggpghMCYqQsaY868BMR2?= =?us-ascii?Q?VYKVca4dxra44ysv29FaC3eCkveP3CUsNtUYNoxwsqyhCVjIQUaS6rvFmpz0?= =?us-ascii?Q?q93VfsSoYJw5FsqdctZ26u8DS0DCqUXrOa1YMGbS7wPjJYYRMaLu/+KildMc?= =?us-ascii?Q?LlONr5jXqQMcTMInT3wYSKK4beAlpGRViEyGxy3xGKgmohpcEsqBkLFrKpZR?= =?us-ascii?Q?RYwsYvR2WgmRbg7/fRMGZRih85NdOuR3eZIOyFHkqLIW9qSjm7+R?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: c0e76ca8-828d-4611-590d-08deb70294a1 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 06:31:24.5276 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 1iMotH1rHNHJ04Ge5axuUaJUxH1w2ymcsMh65rVO5Gewd1M+MtHj7u72xrXj420QobTvmbddjnSLVj3ZjWH8tw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB7818 Content-Type: text/plain; charset="utf-8" dw_edma_pcie_probe() now obtains DMA layout data through device-specific capability callbacks, not only from PCIe Vendor-Specific Extended Capabilities. Rename the local data copy from vsec_data to dma_data before adding endpoint DMA BAR metadata discovery, which does not rely on VSEC. No functional change intended. Signed-off-by: Koichiro Den --- drivers/dma/dw-edma/dw-edma-pcie.c | 70 +++++++++++++++--------------- 1 file changed, 34 insertions(+), 36 deletions(-) diff --git a/drivers/dma/dw-edma/dw-edma-pcie.c b/drivers/dma/dw-edma/dw-ed= ma-pcie.c index 043a7f73bf79..8ae164169c7e 100644 --- a/drivers/dma/dw-edma/dw-edma-pcie.c +++ b/drivers/dma/dw-edma/dw-edma-pcie.c @@ -369,11 +369,6 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, int i, mask; bool non_ll =3D false; =20 - struct dw_edma_pcie_data *vsec_data __free(kfree) =3D - kmalloc_obj(*vsec_data); - if (!vsec_data) - return -ENOMEM; - /* Enable PCI device */ err =3D pcim_enable_device(pdev); if (err) { @@ -381,25 +376,28 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, return err; } =20 - memcpy(vsec_data, pdata, sizeof(struct dw_edma_pcie_data)); + struct dw_edma_pcie_data *dma_data __free(kfree) =3D + kmemdup(pdata, sizeof(*dma_data), GFP_KERNEL); + if (!dma_data) + return -ENOMEM; =20 /* Let device-specific discovery override the static template data. */ if (!match->parse_caps) return -EINVAL; =20 - err =3D match->parse_caps(pdev, vsec_data, &non_ll); + err =3D match->parse_caps(pdev, dma_data, &non_ll); if (err) return err; =20 /* Mapping PCI BAR regions */ - mask =3D BIT(vsec_data->rg.bar); - for (i =3D 0; i < vsec_data->wr_ch_cnt; i++) { - mask |=3D BIT(vsec_data->ll_wr[i].bar); - mask |=3D BIT(vsec_data->dt_wr[i].bar); + mask =3D BIT(dma_data->rg.bar); + for (i =3D 0; i < dma_data->wr_ch_cnt; i++) { + mask |=3D BIT(dma_data->ll_wr[i].bar); + mask |=3D BIT(dma_data->dt_wr[i].bar); } - for (i =3D 0; i < vsec_data->rd_ch_cnt; i++) { - mask |=3D BIT(vsec_data->ll_rd[i].bar); - mask |=3D BIT(vsec_data->dt_rd[i].bar); + for (i =3D 0; i < dma_data->rd_ch_cnt; i++) { + mask |=3D BIT(dma_data->ll_rd[i].bar); + mask |=3D BIT(dma_data->dt_rd[i].bar); } err =3D pcim_iomap_regions(pdev, mask, pci_name(pdev)); if (err) { @@ -422,7 +420,7 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, return -ENOMEM; =20 /* IRQs allocation */ - nr_irqs =3D pci_alloc_irq_vectors(pdev, 1, vsec_data->irqs, + nr_irqs =3D pci_alloc_irq_vectors(pdev, 1, dma_data->irqs, PCI_IRQ_MSI | PCI_IRQ_MSIX); if (nr_irqs < 1) { pci_err(pdev, "fail to alloc IRQ vector (number of IRQs=3D%u)\n", @@ -433,23 +431,23 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, /* Data structure initialization */ chip->dev =3D dev; =20 - chip->mf =3D vsec_data->mf; + chip->mf =3D dma_data->mf; chip->nr_irqs =3D nr_irqs; chip->ops =3D &dw_edma_pcie_plat_ops; chip->cfg_non_ll =3D non_ll; =20 - chip->ll_wr_cnt =3D vsec_data->wr_ch_cnt; - chip->ll_rd_cnt =3D vsec_data->rd_ch_cnt; + chip->ll_wr_cnt =3D dma_data->wr_ch_cnt; + chip->ll_rd_cnt =3D dma_data->rd_ch_cnt; =20 - chip->reg_base =3D pcim_iomap_table(pdev)[vsec_data->rg.bar]; + chip->reg_base =3D pcim_iomap_table(pdev)[dma_data->rg.bar]; if (!chip->reg_base) return -ENOMEM; =20 for (i =3D 0; i < chip->ll_wr_cnt && !non_ll; i++) { struct dw_edma_region *ll_region =3D &chip->ll_region_wr[i]; struct dw_edma_region *dt_region =3D &chip->dt_region_wr[i]; - struct dw_edma_block *ll_block =3D &vsec_data->ll_wr[i]; - struct dw_edma_block *dt_block =3D &vsec_data->dt_wr[i]; + struct dw_edma_block *ll_block =3D &dma_data->ll_wr[i]; + struct dw_edma_block *dt_block =3D &dma_data->dt_wr[i]; =20 ll_region->vaddr.io =3D pcim_iomap_table(pdev)[ll_block->bar]; if (!ll_region->vaddr.io) @@ -457,7 +455,7 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, =20 ll_region->vaddr.io +=3D ll_block->off; ll_region->paddr =3D dw_edma_get_phys_addr(pdev, match, - vsec_data, ll_block->bar); + dma_data, ll_block->bar); ll_region->paddr +=3D ll_block->off; ll_region->sz =3D ll_block->sz; =20 @@ -467,7 +465,7 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, =20 dt_region->vaddr.io +=3D dt_block->off; dt_region->paddr =3D dw_edma_get_phys_addr(pdev, match, - vsec_data, dt_block->bar); + dma_data, dt_block->bar); dt_region->paddr +=3D dt_block->off; dt_region->sz =3D dt_block->sz; } @@ -475,8 +473,8 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, for (i =3D 0; i < chip->ll_rd_cnt && !non_ll; i++) { struct dw_edma_region *ll_region =3D &chip->ll_region_rd[i]; struct dw_edma_region *dt_region =3D &chip->dt_region_rd[i]; - struct dw_edma_block *ll_block =3D &vsec_data->ll_rd[i]; - struct dw_edma_block *dt_block =3D &vsec_data->dt_rd[i]; + struct dw_edma_block *ll_block =3D &dma_data->ll_rd[i]; + struct dw_edma_block *dt_block =3D &dma_data->dt_rd[i]; =20 ll_region->vaddr.io =3D pcim_iomap_table(pdev)[ll_block->bar]; if (!ll_region->vaddr.io) @@ -484,7 +482,7 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, =20 ll_region->vaddr.io +=3D ll_block->off; ll_region->paddr =3D dw_edma_get_phys_addr(pdev, match, - vsec_data, ll_block->bar); + dma_data, ll_block->bar); ll_region->paddr +=3D ll_block->off; ll_region->sz =3D ll_block->sz; =20 @@ -494,7 +492,7 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, =20 dt_region->vaddr.io +=3D dt_block->off; dt_region->paddr =3D dw_edma_get_phys_addr(pdev, match, - vsec_data, dt_block->bar); + dma_data, dt_block->bar); dt_region->paddr +=3D dt_block->off; dt_region->sz =3D dt_block->sz; } @@ -512,31 +510,31 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, pci_dbg(pdev, "Version:\tUnknown (0x%x)\n", chip->mf); =20 pci_dbg(pdev, "Registers:\tBAR=3D%u, off=3D0x%.8lx, sz=3D0x%zx bytes, add= r(v=3D%p)\n", - vsec_data->rg.bar, vsec_data->rg.off, vsec_data->rg.sz, + dma_data->rg.bar, dma_data->rg.off, dma_data->rg.sz, chip->reg_base); =20 =20 for (i =3D 0; i < chip->ll_wr_cnt; i++) { pci_dbg(pdev, "L. List:\tWRITE CH%.2u, BAR=3D%u, off=3D0x%.8lx, sz=3D0x%= zx bytes, addr(v=3D%p, p=3D%pa)\n", - i, vsec_data->ll_wr[i].bar, - vsec_data->ll_wr[i].off, chip->ll_region_wr[i].sz, + i, dma_data->ll_wr[i].bar, + dma_data->ll_wr[i].off, chip->ll_region_wr[i].sz, chip->ll_region_wr[i].vaddr.io, &chip->ll_region_wr[i].paddr); =20 pci_dbg(pdev, "Data:\tWRITE CH%.2u, BAR=3D%u, off=3D0x%.8lx, sz=3D0x%zx = bytes, addr(v=3D%p, p=3D%pa)\n", - i, vsec_data->dt_wr[i].bar, - vsec_data->dt_wr[i].off, chip->dt_region_wr[i].sz, + i, dma_data->dt_wr[i].bar, + dma_data->dt_wr[i].off, chip->dt_region_wr[i].sz, chip->dt_region_wr[i].vaddr.io, &chip->dt_region_wr[i].paddr); } =20 for (i =3D 0; i < chip->ll_rd_cnt; i++) { pci_dbg(pdev, "L. List:\tREAD CH%.2u, BAR=3D%u, off=3D0x%.8lx, sz=3D0x%z= x bytes, addr(v=3D%p, p=3D%pa)\n", - i, vsec_data->ll_rd[i].bar, - vsec_data->ll_rd[i].off, chip->ll_region_rd[i].sz, + i, dma_data->ll_rd[i].bar, + dma_data->ll_rd[i].off, chip->ll_region_rd[i].sz, chip->ll_region_rd[i].vaddr.io, &chip->ll_region_rd[i].paddr); =20 pci_dbg(pdev, "Data:\tREAD CH%.2u, BAR=3D%u, off=3D0x%.8lx, sz=3D0x%zx b= ytes, addr(v=3D%p, p=3D%pa)\n", - i, vsec_data->dt_rd[i].bar, - vsec_data->dt_rd[i].off, chip->dt_region_rd[i].sz, + i, dma_data->dt_rd[i].bar, + dma_data->dt_rd[i].off, chip->dt_region_rd[i].sz, chip->dt_region_rd[i].vaddr.io, &chip->dt_region_rd[i].paddr); } =20 --=20 2.51.0 From nobody Sun May 24 21:39:22 2026 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11020087.outbound.protection.outlook.com [52.101.228.87]) (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 A4FA939280A; Thu, 21 May 2026 06:31:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.87 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779345092; cv=fail; b=CI6Pb/NjrrpME5Mm7tdKFkKulTgCoZiOP94AWDjSi69cKnFVs4Ww/TyNDNdNVSQM8ftPD8qXbs9YVjYY+NbN1Wnd1Fc+/cA9106tis4/3YnW2kSQDancqthvhsmeKXD5b3bvlSOisGwaS6np/72oSYXZx5xjymLFr/Z0sw9oNRk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779345092; c=relaxed/simple; bh=AskA2I3sJCzBMDbM7e8u5sW170JweAex7VKcO8APvA0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=RxIzyPfZvNj0vgPK8jUTXlxy92m+9VU3TRVLGhKRUJ5xUT3BeMtJ/VZOU5Ik2m6tk/qfT2KS2g35drHfMO1AJwOns0yp7EGuY0P3x592bqyj+IAzTl7lNEEWJDQ/Wk2WE083rgs8Wi3LiNHyIfej96KbpD5o+IA1YaX+n6OdiHE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp; spf=pass smtp.mailfrom=valinux.co.jp; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b=p8l7JIwE; arc=fail smtp.client-ip=52.101.228.87 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b="p8l7JIwE" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XnyFRCcs8GVpHKT7yfYbEHuyDsN85SJ+H2YtFaBgSGsuAyVptWghcDF/dHoXZZlO9LoP+XiFo3upqZ4IMd2pSn/cfHRIpg12kTltDCWRx8UpTD9Zui8AtcYsg9z3RbzoKZ6V9/4odhGNHGf7dibQ7pYvsx9NKvZFhwkbDxhOh/UjRC+NrpjurPArsf+w/0KlqBwZfPWTes0dnhVtn0mpJVbAlSE3dJP6TrfS2YnuYMv3Ub7cKPXk4SuA6HD0am9B3JLi1SaQe13H0qHgXdGWkM2cF41gj0esiFDgCextJSSe4ydVZSCUi5i7QUYtGisQ/0z1GYVA17ghNHLcr8S/pg== 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=XcKlDAezGyzJptobqspWBXdpzI3uAN4M0TEirzYhRY4=; b=amn9dPnbVQIYbRrIkI4+ZONKY62UOjix114iH8OkOVL9ivFceyVklYTDc2PdHtkGc4iv+/+cLAInHx+kuk6OI8WGg79HeeQSXT3gyUI18CUw/1n/nZ1GsdzcMcNFu9MM0qxKe0ciBzSWWEofkv2hPisasw9BO3TmEQ5hbJBWQMMv9DYYb8Cel1hoJm0JeYxD1uikotUfA1/JT18C9kCbt9DVMs7BsspNbQH6nMJdrcRQwNliy6dB9s4zgwNaNogrmuZpoFCKqGePRCVQ0I5ehQIEVb7kXZKiOro/rVL4dOLy7iRv7eswNLCW0G8Px2yHC1N6k0DJJE7OnrqUMXJ8KQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XcKlDAezGyzJptobqspWBXdpzI3uAN4M0TEirzYhRY4=; b=p8l7JIwEiTOwLIow2MyCCaBQC4OT5FV0K/iIIjBXEG53LV9URo37+7zFF8EBKBRXeIwb0Z/62JQ8GiN94VGbtZkFvS22/CZPaNtKLU+Mn/5JB7+aRo1QuWuPgQHAaUkwnTUuoqMZDonLfuBodhBdjwSQBvLJpZWKP4Xn10YXU7o= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) by OS9P286MB7818.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:473::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Thu, 21 May 2026 06:31:25 +0000 Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.21.0048.016; Thu, 21 May 2026 06:31:25 +0000 From: Koichiro Den To: Vinod Koul , Frank Li , Manivannan Sadhasivam Cc: Marek Vasut , Yoshihiro Shimoda , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 07/12] dmaengine: dw-edma-pcie: Add default IRQ match data Date: Thu, 21 May 2026 15:31:10 +0900 Message-ID: <20260521063115.2842238-8-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260521063115.2842238-1-den@valinux.co.jp> References: <20260521063115.2842238-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0074.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:31a::19) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) 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: TY7P286MB7722:EE_|OS9P286MB7818:EE_ X-MS-Office365-Filtering-Correlation-Id: 778309f4-fa58-4a39-d416-08deb7029525 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|10070799003|376014|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: mw4jqU3r1SzJ7CMwnnmKfA73Zk9AH/GI+5tt0fI/hDSpSX59RQwx7jFi39sdlTWwHNPta5ikDW8RQZFxXe3NQ3mjrnUYZNKnOd4Wg3uUEzApNIgt+TceYTqEjf+4b5vQOX0HCmG/aNTVg3z4Wz01kFfwXJPufUmgxLDZ1MTgkItSq0cbY1olRolJCi0jhfmTnR9n4ColcX71ZX8HqshPOSbsHaqo/azWsvxrV0vhzj1rNkiQzXS0sYsli2DQ1IERzNVIavKmPvW1hkoTf/xX3k5KVhepby1eILgeURcuCM/ZFxxogpSIpaKGno4quBN1stPMZIbln3lCIqVkt7SHM4ITiFwZUdpaEQmF7nnc+1FeJciaNDvEAxHNsRzLqSVC0e2Vuq8TL2f/a3xjAxwfAKLCn0FrUIsqiYcwDEm0ugGiD4gn+CjVe9DuLjq7p5YrByziGFtJAaSMld4qFrrfhnRIICzS960xvJPmdmwrJ/zZKoOTQAg7p0KPiWZh/IkEo9PSPqgbcrVvxcIqxx2ZXIWx9XpDrMQCJ0fH46hKnUQcQiUu2Hxt0shdazS7iEf+7UdjHG/NdptP/1YrM1m0yJjyx+WjSV9xdACwEWGTw0a+IDkRgxM5rRBGGEbnQfmd8b70PfeXB9oBZTTrsWa3H7nwtCl4D/CBuc8dgse/UqsSmKGhRWAngJpfkXdCUOTK X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(10070799003)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?yfhIdYY+Rb8dgXbIBxI9U4p/dhzR4eGAofjzuUIq2nzXw96R0PdwEtAM/TF0?= =?us-ascii?Q?Lf4mn7XE9yjjVLC9PUq4ImabfkVFPeXhaOJdFugQ4IrcTKGS7YaaNKbiLX2s?= =?us-ascii?Q?XWy1rR4PsKJWTcvKX/Gv5oyrcB0Eezh9ZOHxuRwGWDcP8vHtn2yXcmg/u/Wl?= =?us-ascii?Q?9yZXVvMqresC4tnDOmFKyfPYSZKo630mBy7uvPE7igjzASV3YJunCcOuDIZQ?= =?us-ascii?Q?pZvoVPTUO+ezywYIuIF/VaR6B1pndLGxqOiKuzcC+V+Oz2dFrM7UxISQ6UwT?= =?us-ascii?Q?qdBDHXkIsNCtAKpqKa8qBAAc+34IbxzWZP6pV+2NLHV40OAT3buj54YXDmoO?= =?us-ascii?Q?Vd8CAqlF3IJ/fUCenQtTaBjqxgvjicZuWDnRJcN9Ff/1Kjr8iR6BhxV9Sy1J?= =?us-ascii?Q?4DrhXvlwNKW2sycUXEsk016u58D+eGKIdR2FHtIoQNEQpZRNY7YFk/57Yf1A?= =?us-ascii?Q?PKNkPZgLIi99MFgGUSRuI/XKf8KvAzFCZoX+E9kO+/OQKN07Skpb8liPmm0u?= =?us-ascii?Q?yY4I43s6Z4rSJMTqt9xd0J+3rVcIVHmxUm8WJbWKQ7sHkdmv721NuUTwMXZr?= =?us-ascii?Q?DLGwpCUMVjvpp3RF5sEuCixNsw+XhFrciw0/EtPNCSbvhL0J1n/nLy/MXJt/?= =?us-ascii?Q?KJJqXXFs7M4Ez7tRvwGM5RH+rUckCOrvoyVX2B/T8ihSZivJErxYYP3vE04P?= =?us-ascii?Q?vjOaFgveGE+mmYKuGVQ7Syxmyy7uDgL9CNxdjqKid8T1bjwYAGgZnbnYYQxM?= =?us-ascii?Q?jWMcULi32HD5yL+rRuaz0yk9fBVCWhx6od/FnxWIy1CemHbcgYWwHIgeW1iS?= =?us-ascii?Q?cXhn966fjYm2aufv8o2IDZi6++/IKZxpmcYJyrULFS7H52n29/6YlResLcEp?= =?us-ascii?Q?Vjbd0tgEgY/nap4NUbOrzqdNKlKp7iqIJtCMeXkMF05mK6GxTQ0jFwSPhHa6?= =?us-ascii?Q?QHSXWlY4Oy8O6mCiC4/krli2cZQ+Tb0yKh9QPVtXaHCVQH1LgV55srh9iO3Q?= =?us-ascii?Q?mK2yINqFyjZuny0bkdSI4TnygO6/chsJrVYJrqJab83BEyJsAnZsWE50t/Hd?= =?us-ascii?Q?xBMWhExl3XVpxxboXjQ+mbgYrpSswO6uvfzUE0fruHBgn/0PQd3K5IzAxmOS?= =?us-ascii?Q?3bN+c4ioRxbUWhv1FWOLXYEH5CI88V16wleg0Dtd9QnLiAxBMyfqYTRV6Bdt?= =?us-ascii?Q?6yXT38ZrJctut/NCAtp6xNscWmu4GZozoO0W6ANviUGWGNdS94OaahnCHc1u?= =?us-ascii?Q?7+z6t7ZlPY0l/yE0veGfgHOuPbWQAhf0mPN6kn//ZrINJQvJ8YhZMM0YiW5f?= =?us-ascii?Q?yxj5fZa+Ox9OBVqN3kPE4k+vGHIHDK6qYyASqG9GKIUQUBtwT/faEUUWpw/N?= =?us-ascii?Q?S5nsX+xhn90MUmvM+4j93Ll6GPz2cLj1WuzM4y8OU7ZN47mKgztEsSD6Qkvm?= =?us-ascii?Q?1FXii3u0wZ7t80E9h820vJnSR0aThvP1zpquY55LjFk73I143mR9VhQVhCGs?= =?us-ascii?Q?Ojnh17D0vvCAAh//YTcxkfiga4uxfShcXIc9rnLh20akXPtK+cNekiKpTNgA?= =?us-ascii?Q?3zL9+f0SNTD1B7V0ziCkkRdefpYvqEIMsvg/OHv0rl0tiT6hvzhLqFh4hXz1?= =?us-ascii?Q?BKGne5G7yVnQ/WoHG2EZbKxvf0oJfMywaTh9Ib7wC2HNam1jvpkpryAsJuPe?= =?us-ascii?Q?wb/tgViAoedJH59cO1eoU9QvsU5mTckjP7A1aVFX5N3XF+agayuYgg4nZP/t?= =?us-ascii?Q?mEh4UHUA3aDopIb58dlTWgABe5A7C6zi4J3/wJ3GYB/tJCAkCc57?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 778309f4-fa58-4a39-d416-08deb7029525 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 06:31:25.3960 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 9FgqAWIxCu2QDE2IoHSWBCT49PL6af+YrNEm+Y1t/xcPBw1F5AGYyLSujpyQdEShq/B2dtdLSzg8HqdDlJpkag== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB7818 Content-Type: text/plain; charset="utf-8" Store the default per-channel interrupt routing mode in dw-edma-pcie match data and copy it into dw_edma_chip during probe. No functional change intended. Existing Synopsys EDDA and AMD/Xilinx MDB matches leave the field zero, which is DW_EDMA_CH_IRQ_DEFAULT. Signed-off-by: Koichiro Den Reviewed-by: Frank Li --- drivers/dma/dw-edma/dw-edma-pcie.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/dma/dw-edma/dw-edma-pcie.c b/drivers/dma/dw-edma/dw-ed= ma-pcie.c index 8ae164169c7e..cf2f09f1891c 100644 --- a/drivers/dma/dw-edma/dw-edma-pcie.c +++ b/drivers/dma/dw-edma/dw-edma-pcie.c @@ -83,6 +83,7 @@ struct dw_edma_pcie_match_data { int (*parse_caps)(struct pci_dev *pdev, struct dw_edma_pcie_data *pdata, bool *non_ll); unsigned long flags; + enum dw_edma_ch_irq_mode default_irq_mode; }; =20 #define DW_EDMA_PCIE_F_DEVMEM_PHYS_OFF BIT(0) @@ -432,6 +433,7 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, chip->dev =3D dev; =20 chip->mf =3D dma_data->mf; + chip->default_irq_mode =3D match->default_irq_mode; chip->nr_irqs =3D nr_irqs; chip->ops =3D &dw_edma_pcie_plat_ops; chip->cfg_non_ll =3D non_ll; --=20 2.51.0 From nobody Sun May 24 21:39:22 2026 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11020112.outbound.protection.outlook.com [52.101.228.112]) (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 20B0F395AF3; Thu, 21 May 2026 06:31:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.112 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779345093; cv=fail; b=YMmzeOeP8e7NpXIBR9HBaQFa4ArOV0tvUSK88fSNzuNI4L08PkuNSMgWiP71aF9HWjHFaqe65WZeJMljRhfw1TYdoPV3nd2/j9jNsRCTs5U8+XoNGfHUaZS5RRgc1VketZfZyXOxgKOAl4jG4mmFnx0rZenXWFaWqc+HG8l9a2U= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779345093; c=relaxed/simple; bh=wCEdtgYVRZH1n9kUTC7kKjwQbgFrrenJ7qIOlsIn7BI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=X80ztqgusopVYhCb6vLIH3WYTgha8RUJKwriLS1RMjtkXfVJNuWnqwHpFAL7KUSPKmsrQQtthfeE0a6/v3OSUca61TRIePwUMwfvrHxMgu4GBcvLkDT1XpJY5BtZgWQTXHolpxk5JxdNf5Bv8aaNd5aQ2JefSs+n1aJfytk0JTM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp; spf=pass smtp.mailfrom=valinux.co.jp; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b=fVy+YdKG; arc=fail smtp.client-ip=52.101.228.112 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b="fVy+YdKG" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=W4eyfrMZFdoh6+Qok67bTnEyHZEqpDnc5B98QpqC70M8h//dUz0xHzbOTnPpRtO1VAgNWO8zlAPxCf2EcJ129+/k0L52eAglByEw2pSZ+5onAytymcE0XrMIbHpHxD1QC7MxKNWGCA8IWgIOyRpJEbAmdCtYfCu1aB9rilByR4AV7oYF0FB4bsfgvlAG151HmL+WisoWhGw3enRhAw4pLx1iEeMk0O24b2bLMxv0HrdjApgtb5OKYTgxc676TVzCyihwmfF2Ss2Z00fTN6jsa0IVxS0+9ZuPfh5uyKbVl8ZiFvP18vsiAJeYzgkrb9s1WbVu9Sd1kHNyVdIoPl8lXA== 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=Rks/I3ijRT9Db+GBXHgTSrfQkZEUXwvUxRYznxxeTCU=; b=TvxibBtD4Axnat8HaD2NQKmHOEDFE2dMDNJtNx7CwU1GTQz9yxUsDqG9+KShZpOq4Eovq3qDvDqvj4sWekjzGpRmkB/muGnkxHyu+3W5/Ve19JF/ahsCVgGGiijESNTk3IlFYoZ7KLfLssh2XsWiCP+Fjnzy8uNM8p22qmu81+OiI5IxoRw70LhurSm+bMEVBHAl5oCkKruriYAyOJHVeyujInWcrifGn9qFYNUFDtj9TmZPw6raKzOyGeKxRwJGvdJFx+GUmxKpV3UhkFHSYfOybAWE5SPGd7OA4VgxR9ndRssU4TJhlHtgoqnGsCnIQ/PubhbkdWwInQaO+Fyr3w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Rks/I3ijRT9Db+GBXHgTSrfQkZEUXwvUxRYznxxeTCU=; b=fVy+YdKGpSTTbZOjy8F6a6a+kkHn1Ge15u4XlGQ1L/E+oj7pOgJ0Ox/GtjeSJ2glzTLd+2CPdtfJRYZHEaFIvocZo9sx1jLjly8v55qOfTnwFvHS60a6xLJAgdjKvrm9FLOvjbMwSJAZS+JWV4hB9U89gC+ljlSjO96BzWGuX8k= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) by OS9P286MB7818.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:473::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Thu, 21 May 2026 06:31:26 +0000 Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.21.0048.016; Thu, 21 May 2026 06:31:26 +0000 From: Koichiro Den To: Vinod Koul , Frank Li , Manivannan Sadhasivam Cc: Marek Vasut , Yoshihiro Shimoda , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 08/12] dmaengine: dw-edma-pcie: Add raw slave address match flag Date: Thu, 21 May 2026 15:31:11 +0900 Message-ID: <20260521063115.2842238-9-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260521063115.2842238-1-den@valinux.co.jp> References: <20260521063115.2842238-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0066.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:31a::10) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) 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: TY7P286MB7722:EE_|OS9P286MB7818:EE_ X-MS-Office365-Filtering-Correlation-Id: 02b38a7b-eb9e-45b3-9091-08deb702959a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|10070799003|376014|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: j6fuWSC4dXURjbz9ArYQQpLrIuaL8XLpxyOn+1Emyk/ikSBStHwjCNqm3dOZqnRHREfOEHl2zACyHgIzGsg97osOq9fapV9eLkH5S8WcZ3PTbfBvBt/U1Py5PdKxaLSRKDSFWY3/VYBbXj1r3jwP7VMjTQS/iraIzpn6KPk/p/s3vNCGFEJpmf95oCXvdTEuQqcqlfS+S71F7sVzIJAfFpVb+zx4HFJV0ubx3UzI0xyUwDH6MHayy6AbkM269jCl8rW1nNZZ+li2ithLbIyxM4R6Go44R2j/6W/X0cBnLvIeN/fSxiojVJdGRtphfC81t9DrxL31RNz1GKnMqi8/FTKM67cdm9QHGUZn6iHnS+vwSji+oMj5mb9n/uFwby8MMpV76bKHeSTyKvyFNek3JBS4QhSvDu8AJljxTC965bw5sOUVOICq61mFtITGnRRSFjlz9Nosuy3Lb+hfZ8P0TvBFmQ9j3qqg50AEImHoi1l1GjjkSt+cS/gzwos3DkYXuIJycVJ0zsXI4tTlc1+mtj7IR5jx+dXnnMA0Rkfd6UngZTHreX46zgmZFFzzqs+IILZDcOdvAPQ1KrTY3yFWzCnMLbOX6hpYuOg3iZbfSEmQ8N6VyipX9OC28zgC0oD3OX0hPZkrR8T8nZ0wd7UgOxqJTSSXqT70KH/bFjaD9HKF4LsrisvV/b3yHAp55ntp X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(10070799003)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?fEJbZdp/Y6b53v4qhyAlUR96SRkGOZeQ3mrIha2JCbGr74ziTOhYk2j+p2+/?= =?us-ascii?Q?G/mmdUNGEpznpoEWrzMhU39acz7HIqRzYHgok8IdVX58yQIwVgmkIdtn8oH3?= =?us-ascii?Q?Xk4d7m6XC++v4KpeWpCRxaF1d8WB8Pvi6hzQPyqGE0XQS+2+xFPLgScw+HIg?= =?us-ascii?Q?Bu7z9GFMjpSYGYct9IpzS65bzfYyaAEhUYLF6o2wLHMqMYDWSJbCD5fTPI5/?= =?us-ascii?Q?ghIo9ZbKxvtWnSzFqcCwaEiC8RCA+2XUoQQ+ryipHtF8w4ZvSWt9JJ2dZlEO?= =?us-ascii?Q?6333r7l4ul1A+QWIgUy8aaRJV2CthtDriBTM/a0W/5gUtTCUUwofLAuX+yf8?= =?us-ascii?Q?09ePLEwP3W6VlSbfeKS2wkb6gx9sjz1D3R3rTmsCCZbeXEsg3+08Qy+Gh+Rk?= =?us-ascii?Q?kF23lByOCAVJgFB5fCUl9z0NeLxMP7TUWMczycp70REhg4tKlncW9Z9iGJh8?= =?us-ascii?Q?hpsI60G5qJ6aQAwWTvE2LUDBEWaHFNvwKtk51rpWxhhbNusaNljlwQgr/Ci/?= =?us-ascii?Q?yzZjPrfUxFn/I7giCX15CorrSpxk1C9ubBCz3ankOsQQZFf5vqaTWZnMPrLz?= =?us-ascii?Q?zxif4zUfYLQ3oF3UBOa6uPi+VUdRvvxkbFRTPUGO4zoOShlMhD1mxGsq5ayS?= =?us-ascii?Q?xivtdyraDpheHv+OJupB4RxzV+e6JtZ7DqZoTwELDMDrm3JgH1GBhq485n9v?= =?us-ascii?Q?WYsFknAw34lJZV5oI8/jfpRVk1OjmQWW5OsDj7mD9Zf4jkJcXNzKwNRsclMz?= =?us-ascii?Q?Q8cIq2kLiVnuU3Sed3+pttYYy5sHa8N8yj0PgKiQXGhnQjLmRy5Aw0NW3Pfz?= =?us-ascii?Q?HRmvf7f3p/sCAL/9LKfqipQfgQcHAqVDzX2G11j5ebavy2ALcwPmKV573UuT?= =?us-ascii?Q?xo1svq932pTsZ1K1npvqn3Qfz6iEo2YTHhB0MmR3ZQgRCxRG3dL+nBorTn81?= =?us-ascii?Q?7ut+CpJbDtXE0j7/BVXoZwoL/lO6aYKE9T0vD1Jy2YQAoVLk6xJO4K7SuVH4?= =?us-ascii?Q?rT2yhDhuw5JcOfFTJIQ8cOWKnuelvuRiZL6cicTfpjb6HANFmQ0PNyXCZjxr?= =?us-ascii?Q?4LmkpuBQqjgj3jsdOuF5nwkMa3IoDNIVbvKsTweFRWkZT5hT+ymrgAfP6SG0?= =?us-ascii?Q?W7yBHbiMLCfgR2zzrPYS2EsQTCukYzhU1uhxfpBfeXB01LolBwFqZR/Hl65B?= =?us-ascii?Q?OxDNxZJ6RDWLIAsaMejgg07AbruHZrqmL3FGSnctJNfCYT/Pnl6mVv3RGjyt?= =?us-ascii?Q?qOd1JMoXca/v1RNM4dglpdDqIu8btaUiQbIs9Y/+l8mwRUG7vKK6kqj4DHfJ?= =?us-ascii?Q?llGjaGSAXZ1vOQkwbzuvgVDOJAbxuIYYDlBVdiLo3GZtoHhhzQxYQQ+Vimdy?= =?us-ascii?Q?yXN8+53ef2Jg8m6pHADBeNluh9ae4qynPn75yNjF2kVkIy7fz6+pAkBxWncH?= =?us-ascii?Q?5cPiw3otHKFkWD8kU2b48LUaTUUfpxTHPVrnqUfZv7ZG1o/1sakUbPEj7roy?= =?us-ascii?Q?2bm349ts9psjkdO8YcbWIqZOmPLH09FD7CErBNmvN/QgoD3TFnty/tgd1s6T?= =?us-ascii?Q?Lwx6uXbM5Y5gV1vJirvMtURz11rdxnL6+X/4vasmYhZALrHe10pjJ3TEeRw4?= =?us-ascii?Q?gJCLf0sAT12AoRaaGJtg0SHIfZUHVd2X6Laoyi7RUoPrIrjwZyOw1spaT9yY?= =?us-ascii?Q?J2Jzb5CbAufwQsd3CWuYgf/PrNIGqBT7JoSfC1y1I6c1aHEhEZMzdUa2gOxT?= =?us-ascii?Q?bAaWANMiV5I02yGIn3wAswzy/aZHPV/56uXsQI3DiJ35bV0rSUyP?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 02b38a7b-eb9e-45b3-9091-08deb702959a X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 06:31:26.1589 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 9bt2b7nVEC/vAQXdn2WMvw7rUFYbKSgRNM9KJUkWAOieAFfxiV6IQWCRApqQu4za2msDb7QXJgNieEIsIoNR+A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB7818 Content-Type: text/plain; charset="utf-8" Add a match-data flag for devices whose DMA slave address is already in the DMA controller address domain. Such devices do not need the dw-edma-pcie pci_address callback, which translates a CPU MMIO address back to a PCI bus address. When the flag is set, select platform ops without a pci_address callback so dw-edma core passes the slave address through unchanged. No functional change intended. Existing matches do not set the new flag and continue to use dw_edma_pcie_address(). Signed-off-by: Koichiro Den --- drivers/dma/dw-edma/dw-edma-pcie.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/dma/dw-edma/dw-edma-pcie.c b/drivers/dma/dw-edma/dw-ed= ma-pcie.c index cf2f09f1891c..651269708cc5 100644 --- a/drivers/dma/dw-edma/dw-edma-pcie.c +++ b/drivers/dma/dw-edma/dw-edma-pcie.c @@ -87,6 +87,7 @@ struct dw_edma_pcie_match_data { }; =20 #define DW_EDMA_PCIE_F_DEVMEM_PHYS_OFF BIT(0) +#define DW_EDMA_PCIE_F_RAW_SLAVE_ADDR BIT(1) =20 static const struct dw_edma_pcie_data snps_edda_data =3D { /* eDMA registers location */ @@ -208,6 +209,10 @@ static const struct dw_edma_plat_ops dw_edma_pcie_plat= _ops =3D { .pci_address =3D dw_edma_pcie_address, }; =20 +static const struct dw_edma_plat_ops dw_edma_pcie_raw_addr_plat_ops =3D { + .irq_vector =3D dw_edma_pcie_irq_vector, +}; + static void dw_edma_pcie_get_synopsys_dma_data(struct pci_dev *pdev, struct dw_edma_pcie_data *pdata) { @@ -435,7 +440,8 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, chip->mf =3D dma_data->mf; chip->default_irq_mode =3D match->default_irq_mode; chip->nr_irqs =3D nr_irqs; - chip->ops =3D &dw_edma_pcie_plat_ops; + chip->ops =3D match->flags & DW_EDMA_PCIE_F_RAW_SLAVE_ADDR ? + &dw_edma_pcie_raw_addr_plat_ops : &dw_edma_pcie_plat_ops; chip->cfg_non_ll =3D non_ll; =20 chip->ll_wr_cnt =3D dma_data->wr_ch_cnt; --=20 2.51.0 From nobody Sun May 24 21:39:22 2026 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11020087.outbound.protection.outlook.com [52.101.228.87]) (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 4ADF1395AFB; Thu, 21 May 2026 06:31:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.87 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779345093; cv=fail; b=WOeRT3ZV+4INg9rgNFr5SrwuV9QxsTvtf8OyB9NiJezNhwCslbK4rUadrqukG6PRay8V/gh5n+lOvAdtKNo5CW5ZaT3OkoRqkQwuWehTLgA83CFEvU+O6/FYbyTPzblYorIHP+2g1ED1EEL0ZHWd3/AGJeIIEtJNUSzBQnqNoZY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779345093; c=relaxed/simple; bh=4LnvNkcVJ+CYElxCYIVAkGZIDEyexpBhMyE0dX73Xf4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=oTbCRCc3rk4N9ggRFUP6Vc1YYwA1YvdvR1zzYNPucBOAUwOw0c0/7fb74LGVJWYCaWM6cuHB6wF19B8dfjPGhDnJj5zS+6ttof+MCH+JmEO92yWoEQ7hhXrXMbhUIq99rFaI8CnznQ99eTX249iD3VCjCz4/TlblL/MsBodn9h0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp; spf=pass smtp.mailfrom=valinux.co.jp; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b=sHMmRgod; arc=fail smtp.client-ip=52.101.228.87 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b="sHMmRgod" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=iUkTD5zxNMLG/9HRgsoEsvQoDMh9RdDGESrl3qV/u1/KLhv9BysGVd6FYopv1P1tteLN+rvSSJTuEjJE8S+iT4BpiYJBXPJojaFfFWZknLWpoZI5/XkdIu6Fl0UcIXvzSrszcJl9HYzmFq/3gAdKHdNfvOAxEyMGokhoto1FxRYN01T0wk7L5n8PcJly+sxZeqBBZYxCSlmIdahBRW5J91WQGuWUqS5QnMDB1WMHDPKPsG8VWNEw6gek1LErCgK1hIjXVfo92W90KmNAMWn9XDFEi1lBzO5HvyvdZL64Y3lGzS57+adk73bRdBFVNBFKBKxon6tOcbvt0p7YUQ6XCA== 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=dmnGxT8hcOuayYvFZ21Yr0EFoHoE8p/jb6JY7jK/9xE=; b=Xszo/mTbv8sHfJmivvRpUy0meut13V2waQnZ3CVG996JZlhJ/PTLKPD+LJixD9BrY0Pb0Ccn02t5MJH0nKIyPOAUP9gtPZgQkKAT3nVEx5vQY5R2VluoBS6gxTZNQZGJStoqNJB2fbDVlwYTlL12S3qQR4TUXFFMTdVzmq6LHjr+pgbwxGBuCHwiAFf4apTOsBMnp7QKvgcvLWKIA13gQLfUZuwaLFXKfWIX0+0neItoD0Aie/WY9sslsMFEmjQhf6gAKuf6t5rdar0rEhp9IffwX9B85eWPLw2CZGPzmyQAUXsULCxNKi+RcAybeKqZDTdO0wC3Z1pbwGvMlOwPxg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dmnGxT8hcOuayYvFZ21Yr0EFoHoE8p/jb6JY7jK/9xE=; b=sHMmRgodKQZvBaOQMCHcVniYDisNkEK2SXdACzNYVl0NEpzxEAazZvZciari0Z0WokhiY4q76Y8B4shT10ywYqPoACM/70P25pbyUmE5MbP5rkKVHaWSlssmpXlwydeODLqlXlB4O/vN5fls9BHXoAdIRlweywEEg7Wj8LvRAEM= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) by OS9P286MB7818.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:473::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Thu, 21 May 2026 06:31:27 +0000 Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.21.0048.016; Thu, 21 May 2026 06:31:27 +0000 From: Koichiro Den To: Vinod Koul , Frank Li , Manivannan Sadhasivam Cc: Marek Vasut , Yoshihiro Shimoda , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 09/12] dmaengine: dw-edma-pcie: Add register offset match flag Date: Thu, 21 May 2026 15:31:12 +0900 Message-ID: <20260521063115.2842238-10-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260521063115.2842238-1-den@valinux.co.jp> References: <20260521063115.2842238-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0161.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:383::6) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) 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: TY7P286MB7722:EE_|OS9P286MB7818:EE_ X-MS-Office365-Filtering-Correlation-Id: 624f2c49-b60a-4f24-33d3-08deb7029617 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|10070799003|376014|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: KhLnK5q0br3+7V6oDoNti2dwlaTYudrQ4Ggt6DjbY3R+fq3ho9eqgewatRaw6iUul5KnSY2JGoPZfC/mLtKN+rp2AB2/boQzkood7q1xYq5QUK7Ig53SqjDXY9VEj4L4Sv3by438AJv5GFIpmla+E4F7om17MRkGp4n4b55PBbK0UOynlRTsUMxBNFBwZtgi3K1JmZ550CfBiIhmOhvV0WWDsaxdg6Lgu8A/gN86eXGNJ5x33bgd2Ta2aPtGn1YTBcAW6QFv8/sm5saGFTGSFhKkaCep6OyzRQfXtp7bLMvYDnI7EptdOcBP6P9odmKMmMVWxxRGGqqgrJoWJBNUY76/aNZsbdaZHFkUdzS4GzsnQ7o/yepKKWXV62X6f7QZn+8vFPzFmtycqn1jWCIu9btDA475FVS6UVQAvLuMhianN3hixJm0Y6TgtigwYdlowgcAMcUZk9smLPW866xRlNPiHMDirzCxT1XEn1iCvU9yt4wiQMasuS+yBntSs+gDvATOVXtdW9dnKJGpqeBP1jMOIvRELqIUmPu4wyVs2tHxkxbi5t0KVN2Cd+o6bIA7cEOgylEgeZ0kRcNGV/Gl8yszealJ5nx1CRLpG5LUWIdPtHCeuInYTwlG2fM+NYOk3Z3ZyU5S6GVdp5TsXoxcKZyMY8L5KEZE9OhQqCgh0h37Bp0j7lddTiW9Pa9kVLug X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(10070799003)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?DeAJssneVIDR8ezSajHeK6bZRevJIwIQI35tnFH5TXAZ3GAoNij3I1gEUXUF?= =?us-ascii?Q?7QjZIwpcxlHOyTS93m7SnYvrz53ro62y/KqexGL78seaZixrUPB3Q9ZrTAsc?= =?us-ascii?Q?by4cLnKIjcoLOTwmhYSekmoHfxiQXNzBYamcHxm6JcXaOitAvcctxEERhnmK?= =?us-ascii?Q?ilNrY89x+5UzgIn2W/gQfOxMhEBCNFUXTy+qLqHgif3qDj6pskXG6mIUxy82?= =?us-ascii?Q?jPv5YqHLr4ea4+cvMoSuX3DxaODwPwg5AJY40Bx1R5uoFzkx6EdAuTPtWUg4?= =?us-ascii?Q?tSsOIOFSwsJfc65pGPo0JO9vUsXWVA61q+oJ7ZjGqZbU77uoAJe1waopNoSE?= =?us-ascii?Q?MTiWRsDf4GRL0yY+lHeOeCfwUKmldRPf8me64rRJaseoupbPXbVOMSm4g06s?= =?us-ascii?Q?iqME9QdeKewKm5hZOB5W6WSX2CkOS5RigamlHdB61VsGJYBBae7VBbnGliBG?= =?us-ascii?Q?QN6kug7v/NS7KI4gNL7cxv9Yl2opXEawcl9PRC7Fd9LJkCvH6X9bT0y75rPF?= =?us-ascii?Q?0gC6US0662sdYEsoUcDejwvQTERVjE2bzKdVtY61pn/UkKsUaRdZ9jhxfecI?= =?us-ascii?Q?qqhD0sy/sD4n0o6ZYlo9XIsVGzr2OWr+5fPqTUcKsUTdPrLvVOLEhU4LkiNm?= =?us-ascii?Q?QF7bPB0i44JSUdY+O9Co9KvlW0JKzWNPtCv3Jj+90wAbULn0FTP8QXNGsu5y?= =?us-ascii?Q?7lrQt3vOLwSvr4VZStH6ytVvSPcU3GQus4sjvvvh4eDHCpItoooUTTXASiaa?= =?us-ascii?Q?2G/8+i7Z+ddOFzCxlhiTuSIWVZfYVmFFcYf58UFJUjsH5JZuTwJC26omMYi+?= =?us-ascii?Q?p2xJ5j2SDnTOOrnM2mwiU/MsDniAkfJWXXdZlB/oVn8GIH2s6b/8N9koTGkc?= =?us-ascii?Q?A2ob6RWTmSVeuz4dkz4+IqkM6WO2cw+mcaxckbQaZCBD0hl41/X57fnqIK80?= =?us-ascii?Q?zvGAFngvUWrPGchc/vv2qduT+Wa2BF63UHBwp8Pq4f81YbVdUmGeEd8PCRYE?= =?us-ascii?Q?c7zeQRbemfHhqkPVZ019xElkMcKZi3hmsuZyUN8B2GDW8BIC2RSkYyIGMPFE?= =?us-ascii?Q?WOecBQLcQswKKpOkoz4tR/ySXzEMXlFSRiBy9pFvafEA/qro8varVbEvMhoo?= =?us-ascii?Q?080kLZkd3bYaScUA7y2d6d+Gt44i3tODu4mmU+jl4g9gewwRf8PXyJgmLtMJ?= =?us-ascii?Q?8TMh10FqHO7/7JaGhDSsanZmlcuedyScnX56/GohdJ7cRlL9tFx7g9Aq1iCP?= =?us-ascii?Q?hfd0MWhpcz8zU6N0biLmj2e52qs89HKIy2bo6EXcgg5kRvJQR4phVwdd23PL?= =?us-ascii?Q?rxS309CXz2Ej1qECeo3EB5pxfX0wjPaqNHyopYNf41Cj9MD9eiUfpS/TNC6d?= =?us-ascii?Q?bXo/r+kGbG/EnvI+8Cf118ztmL1U+G5dAZscDXH06j9r/w8GHMTMwPFoBhE5?= =?us-ascii?Q?19SyVCvMy2e8MLL/0WMbNHkn16Fv6C3WyzTcx1m3mFsH3/5csIaxPhGH/1Xq?= =?us-ascii?Q?RebU41lnQUTil3d1tUhT9lX/cRVEpjBdTf+tBp7rNSxpG674fH91Koo1IF8C?= =?us-ascii?Q?XwRA6OrVsqh47rT4kX1W2SWXiHYnq3N3ocnAuke6Tuc8kZLanFhxbZXcESHu?= =?us-ascii?Q?vIoIqHwRKAmamk+6n5G2Pk/M/TW4aX8OcfwquKoUh8/MZIvidD3dDqQ/cTlO?= =?us-ascii?Q?cbIWxCiWkfTmYotbRux1lvJsAm7dUdztoweu/3R7lbFAx/8mJ3B52UTZtqck?= =?us-ascii?Q?n9lS4EjWJ9a84qzJ4UrRBPFeSfCqN9qplSSKw0rtL6HuA8mACHzL?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 624f2c49-b60a-4f24-33d3-08deb7029617 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 06:31:26.9678 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: nqc/W++5KN6+Nwc9r+qNZu6LBC/V0R7BZDn68qraGJZL5iYp+zxk4R/N1vLkKahDCY/h59Pt9WfMMfYcU1rRrg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB7818 Content-Type: text/plain; charset="utf-8" Add a match-data flag for devices whose DMA register block starts at an offset inside the mapped BAR. Existing Synopsys EDDA and AMD/Xilinx MDB matches keep using the BAR mapping base directly. No functional change intended. Signed-off-by: Koichiro Den Reviewed-by: Frank Li --- drivers/dma/dw-edma/dw-edma-pcie.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/dma/dw-edma/dw-edma-pcie.c b/drivers/dma/dw-edma/dw-ed= ma-pcie.c index 651269708cc5..6b375a58c550 100644 --- a/drivers/dma/dw-edma/dw-edma-pcie.c +++ b/drivers/dma/dw-edma/dw-edma-pcie.c @@ -88,6 +88,7 @@ struct dw_edma_pcie_match_data { =20 #define DW_EDMA_PCIE_F_DEVMEM_PHYS_OFF BIT(0) #define DW_EDMA_PCIE_F_RAW_SLAVE_ADDR BIT(1) +#define DW_EDMA_PCIE_F_REG_OFFSET BIT(2) =20 static const struct dw_edma_pcie_data snps_edda_data =3D { /* eDMA registers location */ @@ -450,6 +451,8 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, chip->reg_base =3D pcim_iomap_table(pdev)[dma_data->rg.bar]; if (!chip->reg_base) return -ENOMEM; + if (match->flags & DW_EDMA_PCIE_F_REG_OFFSET) + chip->reg_base +=3D dma_data->rg.off; =20 for (i =3D 0; i < chip->ll_wr_cnt && !non_ll; i++) { struct dw_edma_region *ll_region =3D &chip->ll_region_wr[i]; --=20 2.51.0 From nobody Sun May 24 21:39:22 2026 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11020112.outbound.protection.outlook.com [52.101.228.112]) (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 E678E1B142D; Thu, 21 May 2026 06:31:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.112 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779345095; cv=fail; b=Ic/ooPBoJgXeDIEk+Gah2Y6Tuh7MXUVHBQ5kMbAk3HvQvSQTUhyiAQxCV0AXmXbhWp8yFOC0wjr4ku98NOBeOkVnnARF1T43Sci8PLkJBwQVToY/QTBcPfA6GLx0HL2F/b1cBC+n70Mhr7Ebh5Tbf3+aFRnVVE74JKGyxJ2vq/c= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779345095; c=relaxed/simple; bh=eLDUe3L7yCrKADv6SGZDQTJDaLzMpPaPXYjz8Qainjc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=YjSv+Ie23lO0dvAnMyxPO8Eg16iKCkmvjZMElurGVcsstJSYnbi2g/mlGdSt9EGHJn4mUc5eHHKiYisXKS95JU6neegncmf0b7IuB1OKCZje0qRG1UnSuk3oZTAty5jVkiHn11KJpPB3BYGtHyMfPrRT7PC6cd0sngRB7BOzSg4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp; spf=pass smtp.mailfrom=valinux.co.jp; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b=GL903VQ2; arc=fail smtp.client-ip=52.101.228.112 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b="GL903VQ2" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gSM/Lfo8y+C1KgClxHuiIhIezRm7inbv+70BHcxDke01twFnuXKg5luYOWtMFq7Io8zUtkK7k1XbRaZCUcdy6abyBw6XTzKF+QWknluQzSGDOmuQ9NmJeeoVJBnd3Ggbv0BS6mGgfxCu0AXBSmxk3qsPeqAiU26pdBw5d/G/AQCMLGNWtrrFX10ffbY2rUR0Iy8lDVputsrlQIpodFuY109giU0LVK8gFamKRvV3hufMlrPzHIm4bO6rYZS+09BQN01fYNKgJPHt2v4VGQ/J4iuKk9WYqtFyxqqCYMO87v/5fc4Z5SMTVw/XlyDlxwgGlYDpRs9KFPi6gvBXHucIAw== 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=1swTebOBibyUDONu1zA6JAMuNFEks/SLFN4Wr8kuGb0=; b=WlgV8cgSD8PpKqqICJtF5Jx4hmvnCNMcPAvsLoUdImMq1fgJJQZVFgJXQWhwQ2OmKtY8DJgxMIF4sMsmXlp9JskeyHC6/RM3GHwkX4pjpU6tKut/SuX32FHviL7PLw6SOKHe3gw9k1QA/P7dIlPkgg2JKnD8uBaMXp0mFYJ/eLRgESo/yF2ee6y7iPLgLGLWr7vdmGeJFdSDA3eBmjEOOK7Fgo2cX2L75T4pUhPGg7YvxgK2FuSR/CxADrHH1mJxQaLpGbr/tz7mjy2wmTXh106UkXVqjyFgJ58gY2Qp6U2a1jiGWYJvrVzekDuWK+i1x+eDIwWgpSPBjejOYQ05Uw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1swTebOBibyUDONu1zA6JAMuNFEks/SLFN4Wr8kuGb0=; b=GL903VQ2Qfi59nuXusXY69gUpYuhvvRM2LRaq0fs7jwjR7yFp16X1bXq4wwT6mJImnpuIBHuSpPQMvB7VtPyYTh3FMJSWVmK6tmoFBsCdYkCi4EMWiVkhqjmujNMcBDouz+ODWuEyBZEAP4kW57brhyWDZIUd4Q3NzCYKgj0Naw= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) by OS9P286MB7818.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:473::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.17; Thu, 21 May 2026 06:31:27 +0000 Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.21.0048.016; Thu, 21 May 2026 06:31:27 +0000 From: Koichiro Den To: Vinod Koul , Frank Li , Manivannan Sadhasivam Cc: Marek Vasut , Yoshihiro Shimoda , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 10/12] dmaengine: dw-edma-pcie: Factor descriptor block addresses Date: Thu, 21 May 2026 15:31:13 +0900 Message-ID: <20260521063115.2842238-11-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260521063115.2842238-1-den@valinux.co.jp> References: <20260521063115.2842238-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY4P301CA0076.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:36f::18) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) 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: TY7P286MB7722:EE_|OS9P286MB7818:EE_ X-MS-Office365-Filtering-Correlation-Id: b0561395-0037-4c17-f234-08deb7029693 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|10070799003|376014|18002099003|22082099003|56012099003|3023799007; X-Microsoft-Antispam-Message-Info: RjyK/urbvUeylm5NNGj5r958cIs/hDt9Xw7dxaWVaPJBhMKNu/lSeENjMyD4Ll4fBCxpFX7DZfY32gKORFVDbK90JByrcA5kVJ0tHEytNsno6fQXmkAXa7DFBjfAyTOjBv4Mh7sf7NPz0ZX9d709UZ3wp5mRmNMp/tj6eJwxYZJbjJBeoZ677tn+r0RCLotJejYjbS9M4OYvhVOzIx7NJJuPPgOqUo4h6FCJ4Aqk5wlXYYyeMtQS/IZhRCfhuD/2V1An16l5ycgeHFySwah3A9z3mP6z3sGpvCigFkmM6W4I4vIIoEFv57jkI1uty+tMZLFwmN1YNHI7zwh2XjxKNND3fYqeLH0WlQIptgWWi0tUnwK8Snm1YznfV4mofnlPpy68hVwKkpuLA37PgPRJz9+4azas5JVY1PlbnKHtpPx+A5zZKNi2SFKeaV7BGg9LDD88yPNq/NQldt9ABqeUYvTR9lhKEuPwQ2nO3/dX5jn0+J+GlIt2S5ZWBCSa2M6KR8CQvcVWzlDRzGYYX4uBfHKL9uGZHFgIlulx04K3LflO0Lw7ZHByoDZYnsuNrMJZi4U62mSXBsIhf3OJM8Sg4QsG9UH/d5qQXFShzxUfH/KpS9PzYitaD4BnMArofDfFDDBmb205SsdBlkF8A7fmXN1a28c4bYLXQVD7gx+3886csXvojKxemgLde48gWSTV X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(10070799003)(376014)(18002099003)(22082099003)(56012099003)(3023799007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?foA2BbOCirFbcdozKHYKZQLGf7MBYvxWlO3u0QCxfPEfE7yuooOm2uhdv9B5?= =?us-ascii?Q?IcdGP18kRUw5PkjKPhZH4jxVAXyNXDr4mEFB+OyZu05NM32QpgrLCka9fVWb?= =?us-ascii?Q?NIRV14lRhkZ8fMgPqZVtx+Papb9JIFAqvOQuid+lewZ5C4Dcm0K5pkWpw6cB?= =?us-ascii?Q?zclZcNEr4mEa36hn1CUPwby8fROXTFjDrMMgTQZH2tjCs9IhYHTspZUpAUp3?= =?us-ascii?Q?QSctkUc5nOWMskpQQmCKz423/6qOO6rUrKa2xUu7++tVUPdltrh6cVMzc4sb?= =?us-ascii?Q?sC9eFTny9y5MgeUb1Qg3GchoQa+/QvYtDrEbtRfg/CsoIo2cGhZ5NrdWGGe2?= =?us-ascii?Q?DHcOhCQOnKPW1uIHl2wugX594lTMg/MpaClitcpiRC2CymG9QoWvlbqHe6BX?= =?us-ascii?Q?KycNYi+9Do7L2duOOCDy70OSIQuv6sDwsxCpp5W89I2vYWjUZTjumoe8fP82?= =?us-ascii?Q?HXdIgburK+UDbwUY1MJTLRkQWWhHT2rwdLltFS5CH4pUxi4cJ3Bmmoc2mcJR?= =?us-ascii?Q?Pz9wJuETsq318DqC/jG5agQ2ms5EhD36nDiOMwvBuqjswvpwFttZRgdKihBC?= =?us-ascii?Q?eUmLRLS3d/DN4Zri1JddCpqYL1G/+UnOAEXTlZxFXFo+IEkN8qAksb7YQfYf?= =?us-ascii?Q?Tuuok+BJzbRd4CB9Br7sZWThi3x1bx6QhJ0DqmcbNZbJ9O5tZkCLWclJ3F8Q?= =?us-ascii?Q?q6Up+pjphiyvA9Jeo/WmS9Feu0n0FHftBlQlF8yKo6E8nawraugfTMpkUI1y?= =?us-ascii?Q?z/mywpGMB1KsbTbiCbYprNSLYxEQtSJeg6olh/O5LoHtzwu0/r4WcKZIqN6p?= =?us-ascii?Q?fQcgFcqHO3pUb+NY9oAnIFdt6Jdokl+ISaTW1DFBY2nv4m0R3QGUwz161ulq?= =?us-ascii?Q?nJXVvZGBTnSPbttRFOr602qo3fIdsp+HkPVTPih+CN+BHifRHuGv9zUaKefq?= =?us-ascii?Q?lNC/jY1+s3t2eTqMfN40N3V6iyGyLDVhuJqVQNnaAc6OPw6hPRicR/ej1w4l?= =?us-ascii?Q?xl0oJ831dX4afxDII7ZjickoZMenCvei4g58AekvHu/ewJPW1rGaNvQD8rTG?= =?us-ascii?Q?+ViiVymJBlZTIPyoJczzpPG4GUYEj7ncTlQ8jYsYB8pJymmuzqyP7+T+Cqfc?= =?us-ascii?Q?nFM3tb1W+Lv3Pz1oPSe7LSqVfWk7cSfAm6nUAOEW1ySFEfzYkKPnYxs1AmXx?= =?us-ascii?Q?fHEVpbZIZLXCRxRvb8hjHd67v3Z4Vd8Q7KI3iuqvjNYXmR0YcDl8bISZHTsE?= =?us-ascii?Q?9eUZBaFN3KL+8r/ZLKcywTAkjO4KSgu59noHjrfymXNdE1fgqtGfBYmB6XiU?= =?us-ascii?Q?dm07ptwSsvl/gRmTUh1qNfGEAOc4ZeWW5YBOyOSpOixmfMiHL8nrnoEeIjB8?= =?us-ascii?Q?9wMlaWPHcjQ4g+SS8lKooxOTXSF5wqK2oerGbh3462e0oMAvLGNZuMLbcpz1?= =?us-ascii?Q?68jucTUYB4A3XFnSuSGhPTO6p7PcGJZED9B/BX514iY/d3jqsimrnW41REh/?= =?us-ascii?Q?SXaikR6DwDvo7Jtyu5GGYzgJuw7S0Zr0EApEtd0p2pKReBLPTpcXIVxxNkgK?= =?us-ascii?Q?HNZyplrM3wLIBQfA+KFpP38jGcXJZhwPFnw+O9feW5awNC8yetAjm7KPewUs?= =?us-ascii?Q?MP55lqPe/HBNZwiDefzq/6gvfnwLSRqp4Vs7EYYoV39tAj/r95NxeJPUJwkN?= =?us-ascii?Q?WhWk0GVfWXiqShDuo9VFUnJ+ACxoRY41uMa+Ma6qAk0iAdfa93ffpWgYCW9z?= =?us-ascii?Q?eAszFsQbzhmdx4PSLsztpM61f+ujzNzM2Hz/AAErelIrm+eFdntq?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: b0561395-0037-4c17-f234-08deb7029693 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 06:31:27.7908 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: brp+YXu8E8W9s66agHhutu4EnGlYKyJ/7nMZenCqiVYImyo59jWynRKJlm0wBqZ8tjQJM/n2d0E67nlac/LiJg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB7818 Content-Type: text/plain; charset="utf-8" Add an optional physical address override to struct dw_edma_block and use a helper to compute descriptor block addresses. No functional change intended. Existing EDDA and MDB block descriptors leave the override unset, so the helper still returns the same pci_bus_address() plus block offset value. Signed-off-by: Koichiro Den Reviewed-by: Frank Li --- drivers/dma/dw-edma/dw-edma-pcie.c | 34 +++++++++++++++++++----------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/drivers/dma/dw-edma/dw-edma-pcie.c b/drivers/dma/dw-edma/dw-ed= ma-pcie.c index 6b375a58c550..2a95fb9d5fc3 100644 --- a/drivers/dma/dw-edma/dw-edma-pcie.c +++ b/drivers/dma/dw-edma/dw-edma-pcie.c @@ -54,6 +54,8 @@ struct dw_edma_block { enum pci_barno bar; off_t off; + u64 paddr; + bool paddr_valid; size_t sz; }; =20 @@ -365,6 +367,18 @@ static u64 dw_edma_get_phys_addr(struct pci_dev *pdev, return pci_bus_address(pdev, bar); } =20 +static u64 dw_edma_get_block_addr(struct pci_dev *pdev, + const struct dw_edma_pcie_match_data *match, + struct dw_edma_pcie_data *pdata, + const struct dw_edma_block *block) +{ + if (block->paddr_valid) + return block->paddr; + + return dw_edma_get_phys_addr(pdev, match, pdata, block->bar) + + block->off; +} + static int dw_edma_pcie_probe(struct pci_dev *pdev, const struct pci_device_id *pid) { @@ -465,9 +479,8 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, return -ENOMEM; =20 ll_region->vaddr.io +=3D ll_block->off; - ll_region->paddr =3D dw_edma_get_phys_addr(pdev, match, - dma_data, ll_block->bar); - ll_region->paddr +=3D ll_block->off; + ll_region->paddr =3D dw_edma_get_block_addr(pdev, match, dma_data, + ll_block); ll_region->sz =3D ll_block->sz; =20 dt_region->vaddr.io =3D pcim_iomap_table(pdev)[dt_block->bar]; @@ -475,9 +488,8 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, return -ENOMEM; =20 dt_region->vaddr.io +=3D dt_block->off; - dt_region->paddr =3D dw_edma_get_phys_addr(pdev, match, - dma_data, dt_block->bar); - dt_region->paddr +=3D dt_block->off; + dt_region->paddr =3D dw_edma_get_block_addr(pdev, match, dma_data, + dt_block); dt_region->sz =3D dt_block->sz; } =20 @@ -492,9 +504,8 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, return -ENOMEM; =20 ll_region->vaddr.io +=3D ll_block->off; - ll_region->paddr =3D dw_edma_get_phys_addr(pdev, match, - dma_data, ll_block->bar); - ll_region->paddr +=3D ll_block->off; + ll_region->paddr =3D dw_edma_get_block_addr(pdev, match, dma_data, + ll_block); ll_region->sz =3D ll_block->sz; =20 dt_region->vaddr.io =3D pcim_iomap_table(pdev)[dt_block->bar]; @@ -502,9 +513,8 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, return -ENOMEM; =20 dt_region->vaddr.io +=3D dt_block->off; - dt_region->paddr =3D dw_edma_get_phys_addr(pdev, match, - dma_data, dt_block->bar); - dt_region->paddr +=3D dt_block->off; + dt_region->paddr =3D dw_edma_get_block_addr(pdev, match, dma_data, + dt_block); dt_region->sz =3D dt_block->sz; } =20 --=20 2.51.0 From nobody Sun May 24 21:39:22 2026 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11020111.outbound.protection.outlook.com [52.101.228.111]) (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 9D7DA392C46; Thu, 21 May 2026 06:31:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.111 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779345093; cv=fail; b=k2dqjzFtnxl1z6S3dlMI/63Cgn8TBYkNB10VL1mgyftj/qKWcr150WBC58504T5jnPzJ+Jlxq3Yf/ZbZPYk29zj8XuW2qdkGuC5UIxmQu8QroI7sh/eTZASmHYza1xcwARLEmOvAGW/ruSjtyt5PZXA7SGTTzgnHA+NH3jX5Y4c= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779345093; c=relaxed/simple; bh=tBa2qyMdCfj6ub+DhO3XEZxih0CIz2hOuB3NK8hq+Q0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Jl5Vs5LBW+nXlVVjMm3azXxy6vodDz/DH3jV2u8SVuiKJcPAUVIt71frAALby0cFD05/V0fgWqcaeAnKTJueCc3SkHtb3WpwVe92z5O1LJI9Wim2bS2IQWrMllU+1pBtpkEmf4Oxf6yI9Bt2Qa0XqyZD+d9wV6LGOVQeHh2sFMw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp; spf=pass smtp.mailfrom=valinux.co.jp; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b=I33xQxM1; arc=fail smtp.client-ip=52.101.228.111 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b="I33xQxM1" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fskVSyWTSVhyQDLMltdZlthAlkr7gfpIsZ7iDGPCbOvBrxCDKg6Xbh2Hcdcjzuw616AY2/tMl4+IR9gkQd1Jt6bzC7Dnan1Q6Tk4E/J/WKEj9mbgQABIO6cPyyAgGtBQkvOVCLqK6svlZZOi2x7e40vdaVVSAI5AjufZHxauU1FBRejMgLQ+F9T5v4twcu9Cu9vNLxLr1fEsWFnRElsIEdhzqfkRThhZnlRL7s7Cfanl93P2QQfCxbjxnWMd6/jJQoSuCn2CHnonKEY4yAojfHWVEBxYWBZrqqHSZdZ+kWMJv3nYrQfTjoY+lLJph5b+wFbKFjb0QcUjlsqgEg+Wzg== 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=kpFxaALFxMRB5HZtwVXMU3m7p/pmra8X3mIHpVS6KAk=; b=e9+6bW4S55s2+uVQUYxmUqBC4aJAebl4T/YbUTR71iu0dlfsMzw4kLdDQq5yKufNuQspB0qZ+KUWwjGOrK5gT5hTmbeDMsrahdIPNzSDwqyBy9B+gaXIufQkK14xTasdS84FOMh8183GGdLzFSg9CaFkfE1Kpr7FN3HCuLuuP35kJfuh3d2d4kzw2xxZE0ILN8DeDk65amFDiZNRaBXRMiyoG67xpDpvY9U4UuIL53A6hfdhbCpngB1sPZlhkyZQZXC54ySoxmk1xe4B5AO7oLFTXUXhMJW/UOQ5X20rJWkGX+F5419YaGXhVxfK78/U6DlAUUi9YtlvzWRq1xgj4Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kpFxaALFxMRB5HZtwVXMU3m7p/pmra8X3mIHpVS6KAk=; b=I33xQxM1rXEbhl9ergXhTt1qmN2eLHh22r3bJxkq2HTHRw1A7csp04HVKWZ+N9KKz4P8NYdAwLqCALK4WeLFsws2rL1hPBWVtKwaOd7wISHgSdoU+vxIXXPnCjgcqP+YSJiXBeej+elEfUG0xZnq5qH73+ZnzrjAGrOC5OPOXF8= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) by TY7P286MB6817.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:322::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Thu, 21 May 2026 06:31:28 +0000 Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.21.0048.016; Thu, 21 May 2026 06:31:28 +0000 From: Koichiro Den To: Vinod Koul , Frank Li , Manivannan Sadhasivam Cc: Marek Vasut , Yoshihiro Shimoda , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 11/12] dmaengine: dw-edma-pcie: Handle optional data blocks Date: Thu, 21 May 2026 15:31:14 +0900 Message-ID: <20260521063115.2842238-12-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260521063115.2842238-1-den@valinux.co.jp> References: <20260521063115.2842238-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0151.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:383::8) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) 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: TY7P286MB7722:EE_|TY7P286MB6817:EE_ X-MS-Office365-Filtering-Correlation-Id: aa94f204-975d-4837-21eb-08deb702971b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|10070799003|376014|22082099003|18002099003|56012099003|3023799007|6133799003; X-Microsoft-Antispam-Message-Info: +K5m2K+NosZpwFVqbFtfFDTaxcGmvAK9Ek0jTipibdrImD/DsUSFzN8Wzsfw4azkKx+yavV5I5KvmhQrvWqrB0PK1V19l6cURQwwmKW+yup2u0S47rD8Id9sZgoI00SsF12L4kkTs0iOT1dkcM0QvFSKiLQFwM7qrF0pSXoGFddZg4IENenX8ZhhA/wUaBzOenumIOlVYRevISVbpVLXGAw3RN0/1NWJfyrz3TlJB3C2yDB5AAUNTbei4sfERzFUtgZyFWhGOeRi4B/gXnWfS8Jj43YsJRxVza8uXDTLX1G3myzZmCKREKHCp2+agLKOFOQ+H6QdWvE/xVJd3RZCFn27Ou3b0jwhilCG1bBEvFWw7a7Xg2EPy+rT3mKcliSYZDN0fyAYSRg60Cg0gtu4bVH7wqFZU+zQ+HGuqN0dvhozqY30yf0bIIou6qYAIwOpk4XvgDyX2O/0C+vnyxMwHAKULVIVtEhzixk4wNDMebLnqa38Bw11kCcTOj3WJYU28lHJ9aYpqyvZp/aF0r7SOjuupQF248VSJwOkFiEoiWU7pj1EaPgNPAFDnZqZKx0G9gBuAeXy8ogA0WAf+5D7LLRFJBQOny/nGSldhZuAOHXTAZD1fBKD6fW1Qu9L+y72Sj1HHIy2jxsWFCvXWW98BXrvYmTAdeH6TNOaczPgltSp+5MpvwMKe+B/tNkp8knd X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(10070799003)(376014)(22082099003)(18002099003)(56012099003)(3023799007)(6133799003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?vqN1g1ypmoXTyoO2aXUely5DyGV9Ie2VoUGtb5cd4FV+yparI9XYrGODZ8el?= =?us-ascii?Q?AlhVoKXYNmf1Dofu5G1aNb2OlWxn9KxgaqMR5b4JuYw16P0mkc736kdfp9Ot?= =?us-ascii?Q?nfdzCjM76IoN/jquJaJYuiaKyFduG9O/07DLhVLnuQIJMkYmLIJicVxT8Mgv?= =?us-ascii?Q?kE1KEGiS9u/NfaDkouIrG4P8r4lfjulGhSNS+1JvGa/JhE7jdTPbPPk/Hn+C?= =?us-ascii?Q?mLUO2l5Ap8nIKAFnvyUssr3OhCcay6RRo/G3KRRplaaxH2nLwpUZSSB3WUCo?= =?us-ascii?Q?8vq78iNNf2/zqGudwJgvbodfkN2wMq6hd1bC8QFZbxUN3JKKPFEe7iIQSpFK?= =?us-ascii?Q?bXrp8cSZGZfg8UnhBGEzh2xBR3mOy61tPNiFhUhNZuiP2XGO9z+mSHCvpJDB?= =?us-ascii?Q?nN5keYsl515XydWBoOPv9yFGXyaR05xv4yM9WxnyJxvwb17Q3/glN/K4RO2W?= =?us-ascii?Q?kFklFF7IMzIRihYXtF4aJcbxPobfK49qsOxhC9sFKXJM+5aAwzpEyIDSzyGk?= =?us-ascii?Q?TL9AU1M+jAxOEhy1PoFPPP0syNPyqQIcc1tcYQDPAwJl0xXnZjDc+lDTltew?= =?us-ascii?Q?Jb396Jt01GC2R6nW/Ypdz/dhGj/SAZks4/cY1YVNeowofwSOHc50hqkz7RBA?= =?us-ascii?Q?s8qNiwMqA+rSExOxAlMbpd73kuIUNLYuygFIUoyTPEojhexPnlglDTKccGVN?= =?us-ascii?Q?HynKgfYbG3xUSz/fBxFQLs09BkJNjlq09YAbqs0/QIFb8SvvAMPOmHhD8PtW?= =?us-ascii?Q?rPNRlS+7ck/dGzRukXf16Hsd7H/tGJDZSTFjLMLraNNEaPMCSu8MYF1jH/UU?= =?us-ascii?Q?d5eRWUY+HOBxlnO8JSNsJOy2L7GtQ5W+euWIXR+gm0XqndT2VaO1kWeDUnkd?= =?us-ascii?Q?CXA2spWwXWlhw/NBR9TOeW+j85NhBhbGCL9x/Eq0xr32L6Yr/ntKDrFhqKQX?= =?us-ascii?Q?LNZ4yAonhOVYU01qiq45IbX60R3vOJEFPNSlaCBdE6Ym9Ja1NvifzVK8S3pj?= =?us-ascii?Q?fwaJH3PEXNcQbP7eoNP/EuRw/ZthNPR8iN86h4HYZfI3UMUGagY+fW7E/ikS?= =?us-ascii?Q?Gf8HCcV5BrGF2KMy0JG9uxNhXTzV7IRNnpIeKrPG6fBnqfSmnuv1K2HJswu9?= =?us-ascii?Q?1ROIzV5tKbw3FoHA5xz56NEKC7ZUJzS4C+JtbQIXJkAQyNfdtkmBdKIJAOM3?= =?us-ascii?Q?B+FIq4/CO7Z1ql8vuo0FdIgwMo7XCbCbBAp56LQYMxB7+zGpY5gdUlTmBSZl?= =?us-ascii?Q?0aDxnK0l/uzXzRBrB8O3ggu1Ee65smElKXvrlNKPkWtbbsmpjlG0JvC+q7Rz?= =?us-ascii?Q?OLJ73SyH9X6DDm7zJu6VRHqLKvXRWbW7kzdiw2ALc+FK4Ovf3KqBifOFTCjB?= =?us-ascii?Q?9r0gypcgHVQkUbSHCxzliKpuDZ48BgQ6EhOKe0EQCr7IhEe4cdAEwg8/nXXF?= =?us-ascii?Q?6duDQxy8yvRdzuh0Fx/Zq7vLdJy5VoOyh5yOdN7ngwJN2/lXz53aEDDyyi4A?= =?us-ascii?Q?kPDJpk4mkNA6TiKUByxuYo0KFj1YUN/Wxt/BOSYhXHeZiHTEeHcCW2sKWz6K?= =?us-ascii?Q?PdkNrePukhqH3ooQ4okz4OeH6v06f3CN/RdB6sdikJwyWUB7eD6jo2jL1F56?= =?us-ascii?Q?koCto/ncqd34Fvr5CQEzF8jiO6SREQ6BLtb5RPPPjgjf2lc1tvwpxUdkNG84?= =?us-ascii?Q?d/o6b5FqiaO1l8g8Ff6NsTHcRdeflhTMwIpj8+EcPsujx8BucQWljKE0fyWb?= =?us-ascii?Q?thuubKWHr+Llk2Fh10yH3YKkVqclgVejTJR3ciCdSlygokgKX1pi?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: aa94f204-975d-4837-21eb-08deb702971b X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 06:31:28.6780 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: gVv+bjAGIrf+VlzVPPSXZdFg+iO8mISP9uTr1f3w2DZT5J+Q22/Dkq2maNT3xB2v6sjewq/ncJioGtlDhTH5yA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY7P286MB6817 Content-Type: text/plain; charset="utf-8" Skip data block BAR mapping and debug output when a channel has no data block size. This lets future providers describe channels that only need descriptor memory exposed. No functional change intended for existing EDDA and MDB devices. Their static channel descriptions still provide data block sizes where data block windows are used. A zero-sized data block now means "not present" for future metadata providers. Signed-off-by: Koichiro Den Reviewed-by: Frank Li --- drivers/dma/dw-edma/dw-edma-pcie.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/drivers/dma/dw-edma/dw-edma-pcie.c b/drivers/dma/dw-edma/dw-ed= ma-pcie.c index 2a95fb9d5fc3..df02b244e748 100644 --- a/drivers/dma/dw-edma/dw-edma-pcie.c +++ b/drivers/dma/dw-edma/dw-edma-pcie.c @@ -414,11 +414,13 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, mask =3D BIT(dma_data->rg.bar); for (i =3D 0; i < dma_data->wr_ch_cnt; i++) { mask |=3D BIT(dma_data->ll_wr[i].bar); - mask |=3D BIT(dma_data->dt_wr[i].bar); + if (dma_data->dt_wr[i].sz) + mask |=3D BIT(dma_data->dt_wr[i].bar); } for (i =3D 0; i < dma_data->rd_ch_cnt; i++) { mask |=3D BIT(dma_data->ll_rd[i].bar); - mask |=3D BIT(dma_data->dt_rd[i].bar); + if (dma_data->dt_rd[i].sz) + mask |=3D BIT(dma_data->dt_rd[i].bar); } err =3D pcim_iomap_regions(pdev, mask, pci_name(pdev)); if (err) { @@ -483,6 +485,9 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, ll_block); ll_region->sz =3D ll_block->sz; =20 + if (!dt_block->sz) + continue; + dt_region->vaddr.io =3D pcim_iomap_table(pdev)[dt_block->bar]; if (!dt_region->vaddr.io) return -ENOMEM; @@ -508,6 +513,9 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, ll_block); ll_region->sz =3D ll_block->sz; =20 + if (!dt_block->sz) + continue; + dt_region->vaddr.io =3D pcim_iomap_table(pdev)[dt_block->bar]; if (!dt_region->vaddr.io) return -ENOMEM; @@ -541,10 +549,14 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, dma_data->ll_wr[i].off, chip->ll_region_wr[i].sz, chip->ll_region_wr[i].vaddr.io, &chip->ll_region_wr[i].paddr); =20 + if (!dma_data->dt_wr[i].sz) + continue; + pci_dbg(pdev, "Data:\tWRITE CH%.2u, BAR=3D%u, off=3D0x%.8lx, sz=3D0x%zx = bytes, addr(v=3D%p, p=3D%pa)\n", i, dma_data->dt_wr[i].bar, dma_data->dt_wr[i].off, chip->dt_region_wr[i].sz, - chip->dt_region_wr[i].vaddr.io, &chip->dt_region_wr[i].paddr); + chip->dt_region_wr[i].vaddr.io, + &chip->dt_region_wr[i].paddr); } =20 for (i =3D 0; i < chip->ll_rd_cnt; i++) { @@ -553,10 +565,14 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, dma_data->ll_rd[i].off, chip->ll_region_rd[i].sz, chip->ll_region_rd[i].vaddr.io, &chip->ll_region_rd[i].paddr); =20 + if (!dma_data->dt_rd[i].sz) + continue; + pci_dbg(pdev, "Data:\tREAD CH%.2u, BAR=3D%u, off=3D0x%.8lx, sz=3D0x%zx b= ytes, addr(v=3D%p, p=3D%pa)\n", i, dma_data->dt_rd[i].bar, dma_data->dt_rd[i].off, chip->dt_region_rd[i].sz, - chip->dt_region_rd[i].vaddr.io, &chip->dt_region_rd[i].paddr); + chip->dt_region_rd[i].vaddr.io, + &chip->dt_region_rd[i].paddr); } =20 pci_dbg(pdev, "Nr. IRQs:\t%u\n", chip->nr_irqs); --=20 2.51.0 From nobody Sun May 24 21:39:22 2026 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11020111.outbound.protection.outlook.com [52.101.228.111]) (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 753B6397AFD; Thu, 21 May 2026 06:31:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.111 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779345095; cv=fail; b=QkwCnmH75ZJeaqN6n9gbuzMvA2w+Jc0FkRTpNCcOivRRIgvTRhyrUkH94uTfRV6RpT/lvVhfKkdxJj6eUXwgEN/cyYlMyDXtuZhw4zkaKq96+c5Hm3204eakFONrzmFHVGSk40FND7qDrI+TVBDNwLeariSB4r8LGPAc/TJnj/I= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779345095; c=relaxed/simple; bh=sl9waPAe7dh0tRM6thGPJB09z6kQhFkbtzaLcmlaxxk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=fGzXjCXkt1nTmuxM49KLvmaCggObx9PB4dKcPK3i9lXb5a1zyrQzJHYed5XaK/P/E3xe8CrhmrfMiKuFBUTulPIORhG1XsDsKFJIyPHp8/Op+3Mu65dqip6ZuEFAC/7DK0g6CqAlNGHq7VqzOiPsU8UGweOhrNPLwGlepFyPhhg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp; spf=pass smtp.mailfrom=valinux.co.jp; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b=R5JJV7jo; arc=fail smtp.client-ip=52.101.228.111 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b="R5JJV7jo" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ah5Z9SXOQSxhazl3m1T+m/FryPrdZT+winHRDLB4VuWMrtUqUUdCEO6UovbQNBYN9J7r0WM6hYj4QHYldHJ0eMuJAkBisocVJOmtyM/r3bq0pUIP3X6t627SwJE1kqsqOuUUvOGtXW0k2v0wFv+JMJgGBY1wzekzwNzlFGxuD2uMG1/kMaFqkbu8RbBCpvFXFOeVYmUVEWlQ01MXBLSUtp7nmnPet0a9aJRpR2YBjeBx8qKTg/WjZCpKMM4xb+vaYbOIVwhvOAgLdgdk3Q/U8TOOzWuJk0eD6fWYKdu4usKGflKztipmQDStZy6B57LPKUjQUjOhOywsoABv+oZJdA== 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=60kywydMrvv/i8EY25mzB0j1uu3PCC7OCoNnB/Fkt6w=; b=E/OfLPlVXOVFNOaV5PCd27bfOanPr5zN4435k6IdaZp8UevmeHknzJSqLAmT9jOf+fJL9lb25i/UVNVCnqsV3SFUOO9i4bhWa3/GSEBcVOHuFL+1TwJBNb2bItyA4VQK6JZ7aRkqiCT66/SwlJpd8JTjyrtxYerEqgC3P4r9zGk4jn3nIgCrMzZ0FzeSFGNj3nSv4M9MzUW9JUDJp8BKiIielk2UXnCC3IdjFxmdSUWi9Zb/i2FHIkkoMfI3td7UO+cazSXOD1stu31m4B/Ulibu98ExSNj4mwIWKfBcxdPRBD4WkNX3ZfdsA+z4efvc9NTdw9w3tyYximzkF3rwew== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=60kywydMrvv/i8EY25mzB0j1uu3PCC7OCoNnB/Fkt6w=; b=R5JJV7joyE2VKDRObS1sh/Cjg61IF0yxI/oUa7LnrG/PwsFa79SwZhdIco/HPSD71jbHfhlLKm2PMb/Lo5DpG+gCTcf7BIKUe4lYT43JBPNgwaTHaOF5bAQ92Qtr9T8elfSgNkKxz3zg6rLcz+YJgofxXXgubP0AynedKqS0fz0= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) by TY7P286MB6817.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:322::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Thu, 21 May 2026 06:31:29 +0000 Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.21.0048.016; Thu, 21 May 2026 06:31:29 +0000 From: Koichiro Den To: Vinod Koul , Frank Li , Manivannan Sadhasivam Cc: Marek Vasut , Yoshihiro Shimoda , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 12/12] dmaengine: dw-edma-pcie: Add chip flags match data Date: Thu, 21 May 2026 15:31:15 +0900 Message-ID: <20260521063115.2842238-13-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260521063115.2842238-1-den@valinux.co.jp> References: <20260521063115.2842238-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY4P301CA0073.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:36f::7) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) 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: TY7P286MB7722:EE_|TY7P286MB6817:EE_ X-MS-Office365-Filtering-Correlation-Id: 1d0595eb-1a73-49c2-f9a0-08deb70297b3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|10070799003|376014|22082099003|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: 4Jrb9ARVTwryGKvwypmMy+e/w9YqHLIhnwA4dZEPYx7vK8wmiJusUKaCth7IcVbUm2S0hJZMFcEMDWF/bcYOC8oSbhrej4j2TbRDrL5Oq6DHY2fgfEZ2f4g2J4hgnQmTOzDdlrMKzNZ+gglfIQwRVTUfRQqRit4J58ccyV+hLobMrFiJmVzz1yeOOFAVQiLqnQA1x1+dReFmJwCqigB0AG18qIO4LvP5WWG7+0eXPv5AmhxetDOaNv6Jn/wgAB6Bwpm4QwX/YZj2jTV/k6g4WxDfdjuTbjVjfXz0dHsg2fyb326UOoNKAuH9XSnRgHSlNxzAh5SpGY/8FVq+ez6/lLul7ovhkw1wyZBNf5hRED0kwpOVjUql8KT4uKYfNEN0eNYOZnQR1z9zunC77IjJIf93es6PuCklwP5gdhNcNyH5SR8Pg6CqUVjBklaBC8nOamk+VhBjqBsMU5FwgRxlIeS17CJ2Degd5ASVYqckQU0AaJhTy4YjKDD6+Cb2Os5jTLnItmRDDLn/hIVQkJQWQmb9wcUunyq70R8L9rBqk8igy/5+zbfpL9mKoQeaL1Vce8W1Kj+ljRKVI8TOATu10UWGOEWRz2tYHOEkxF4ZDicd6XjxaWh9o9jFfJQA3+UPvxE74JwU8VvVujj5fqj4uW4BcfZQmyq343KVY/sSkGqqU2mCYePZEODVLDfJO+bx X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(10070799003)(376014)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?F47DfpjG+mx+j/iVGe8rysCyZimVgEb8f4XNPsVmyI6WcDxV5BAqFfVA9aBz?= =?us-ascii?Q?FbYgZXpvu81vnKy2vr3bXNOdmFr0/K3+KvdfDSPse8jU/WY3UsyIASPeyB4N?= =?us-ascii?Q?iP6WFDjbaFqQIKibzGtoOiIxP9RlP0IXPKUWpJ6HRXUj2JsWK1A+cdOtk3Q1?= =?us-ascii?Q?MBDYdU30vNE+Scc5xdv8tkKvUulYCLfTgtZ9qwYsXsVLk8Lbi9q74LQorL8V?= =?us-ascii?Q?EUaRn5wlgWpts50f3Qq1y4jaU+Pj2d9gIrHePm6lbc8EaTuX313aNblD+5Dz?= =?us-ascii?Q?4LpOQ9ag7q84OJAmpzbzA38s3DpIsILh6NDR7lRS5zaljyVnwtWReGfcmIYD?= =?us-ascii?Q?oO7BM3j+53J/XR/8ZAAmlV1W5eHTLwqhdsrwhAYE1GTZy5HjbxpgVxz2M0QT?= =?us-ascii?Q?58lMH8DIvNfD3jh9+ZZ3DHDZfr/GqHSghCPg7yQvmDzgMem06aVL9FNVQnTN?= =?us-ascii?Q?xBQ79cvHAV0j3qiW4vD7T0+6PNJAAfKVxoNBjiBG8FdJJ7VBlSbYp0JEjguM?= =?us-ascii?Q?2O3DxFlzL293QcdVxFbmbwJ+u7tMk5TeAFAX8X73CuVghy6DsxG1NSDXGb1l?= =?us-ascii?Q?DceZ6sTzxxTwjVji2aACj4WR4W0OsYWv4PLTjIT93/TDnLCKRUtsH7jDkX8t?= =?us-ascii?Q?DODZ7uJvyByDMe59leFiBYRbTaUlwKiFF89RBgt+REBfRbHGknP8ijigItk4?= =?us-ascii?Q?bXrVET4q9znDBTybfK1bes3DZ6i/06hF/sShgTp+IDAIdC677hg8+rntXqrD?= =?us-ascii?Q?E9mTziLj+JVxum0o2i2A3HJeaeEe1pr6WhUcvSVYbNcHs9A5i1JJZKaEib48?= =?us-ascii?Q?xxAzzcZAlRelRyt5TM0MmgC0fJQd6TFCHFtl5D6P42FGsWV1x7iGNyZb0u8T?= =?us-ascii?Q?0ekZmNQ8K8bpjabmuvm/t00JZAtoGMkVF1231ecfWj5AMaenXDdDCmcrCJkr?= =?us-ascii?Q?rYSpKHFedxSKLvA2TMn3oXhMeIhq0HWOkJNl8MZ+lyL6JaO2q16QFJQvr6/U?= =?us-ascii?Q?1GoVvzsa2OSwhqSvZdid7+cdxVRcaCKZ1CfOvF0bH82w3hRnHr0n3J9UhfPb?= =?us-ascii?Q?YYw4i31IiY2dOvhs1iak89YRrKROGH0K2m0z650DiYmUXIV0J0TKKoJPV9HF?= =?us-ascii?Q?ohP6EiQGxDp50WJmcJisvqLGTM/Qi2sBcdAyPHiwRftL5ZNtXx9iRsxvqaSQ?= =?us-ascii?Q?zuvn7zmLEYALD1v7BgDnL3pXFTru2oQEGni9RwJkUK21d9AUy6ADCDDJlPB3?= =?us-ascii?Q?KYKOuDnVSdw0JV9u4cAughJ58NsORsi1uZiuwk1A/F74+TUQkWVKCVSwjEBE?= =?us-ascii?Q?aOiQL2NDkBImio+gVgdeJoRQw7K4hCRh78O2vAQ/4i6wPZDMp+tICbX22NO7?= =?us-ascii?Q?tMfpaCK5eE/g8TbF49qT+XyJ177wpLLuwx8e4UJMbcxQJyMI2Nq8VvhRLzdH?= =?us-ascii?Q?YAf3PoeuR6LrnlSAUOanRHW4E1WM4QJZOYuFth+dKcQ0YuKO7eg4SOIFHWNj?= =?us-ascii?Q?7js6HQnczT8cFn1crw6rHZwCnOAbUom3WWcI42LPl6tuC4sJOI042NIhNxGc?= =?us-ascii?Q?JZTvPLS6K43oj72Lz1VLq+jeTKSHUklNlta1NjAr9pYewcLhHSb13LVSKyiJ?= =?us-ascii?Q?Aecn3FtpNrhqYS3okz0FxUh0EkiO7+Vql4KvqErjNF+rcR3lkWroJpc5TktG?= =?us-ascii?Q?LjnpFABScH1h3bNT+hfPwUx59bZdK9KEXEBVckl+qVsDHzeC/lftY5Wyw92u?= =?us-ascii?Q?2y060Je1LwdGnR9yGzxPtPCv/VTK2xop2vDIQxrdyFRmfNDKosjr?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 1d0595eb-1a73-49c2-f9a0-08deb70297b3 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 06:31:29.6735 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Ib6lm5RVwSDNFAkexOp7ny35gzgQpMKERh1kEbLlvM5u7cZGDXMxHMBMTByPKLPTvpMVZnjgharftcbYkcxWtA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY7P286MB6817 Content-Type: text/plain; charset="utf-8" Allow PCI ID match data to pass dw_edma_chip flags into dw_edma_probe(). This keeps per-device policy in the match data instead of open-coding it in probe(). Signed-off-by: Koichiro Den Reviewed-by: Frank Li --- drivers/dma/dw-edma/dw-edma-pcie.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/dma/dw-edma/dw-edma-pcie.c b/drivers/dma/dw-edma/dw-ed= ma-pcie.c index df02b244e748..2f752e8fb999 100644 --- a/drivers/dma/dw-edma/dw-edma-pcie.c +++ b/drivers/dma/dw-edma/dw-edma-pcie.c @@ -85,6 +85,7 @@ struct dw_edma_pcie_match_data { int (*parse_caps)(struct pci_dev *pdev, struct dw_edma_pcie_data *pdata, bool *non_ll); unsigned long flags; + u32 chip_flags; enum dw_edma_ch_irq_mode default_irq_mode; }; =20 @@ -455,6 +456,7 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, chip->dev =3D dev; =20 chip->mf =3D dma_data->mf; + chip->flags =3D match->chip_flags; chip->default_irq_mode =3D match->default_irq_mode; chip->nr_irqs =3D nr_irqs; chip->ops =3D match->flags & DW_EDMA_PCIE_F_RAW_SLAVE_ADDR ? --=20 2.51.0