From nobody Tue Jun 9 01:01:19 2026 Received: from TY3P286CU002.outbound.protection.outlook.com (mail-japaneastazon11020141.outbound.protection.outlook.com [52.101.229.141]) (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 6396A39A064; Mon, 25 May 2026 06:24:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.229.141 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779690279; cv=fail; b=ZeP2QLQvDvqfcO+nO14A8Qded6fb6JfuN+WH0idoRz1qHbvt3JT5/CStOhjYoyMQjtj6wAnvawRz2B0om16HBKN4ayTQbTocMrujAXdL5ZPR8NHl6tSQPLV5gIA2koPdLFLthcK1q94n1GsB24FmGL7XvWNWSrsiY3O5RYOAnC8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779690279; c=relaxed/simple; bh=BhlbSzVTjpX5TQlhG7JJst6yc9LXtr2q6KrICIVTrak=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=l+rGINfybTYJhNv7/oiPcFMU2rkaqgb3h5bawfGsqCunaMM4q4QQeNTkAV48sDhrxdMA1aIMpnr+40/NhTsZTzdVsvZ5T8GyEOiuZ8JPuWZJhjVlDnEn/g6eCvUSJALsbDwDMeM5jBUgFySPvb3tXhEdY3LbFeLHZ+VkV51nVrY= 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=AO1VRlMG; arc=fail smtp.client-ip=52.101.229.141 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="AO1VRlMG" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=f0D0XWAPpz8G/WrhupfjTKVSpDLFNPsFpiT1uyInnEBfJXdp+F1q5sf03lNohPY9ac9M80ESaMuVH7k5/2+utiUFCpLziS9loeAIpOamwkBmnukFciZI6QGUb0P0AX8B6TpIax9fJiHqk+dERMU2Do8IzFsjfaAr2gyrRLtynzJd2NMBpTnl5KGn+Mrb5aMTPP8w8hwu3pe7QcKazt3DSZlBHDz8w6elM16PeQmIvMDC5xrVF7Q3s1lDjw6roxIcliueH+D6N8kTbS2JRUAod+mK6Qkz9JIonqi87l0NchKXy41qdfSmmvgyLL6cxss7OW7tWwslOcN5mpVPXa0Nfg== 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=NxosVh7VJxxdhO7eIGTSiodIuvoaYGbgGfyrg7Lnp1U=; b=Mk/8d7xoFTHmqwC6QGgG8ZxWaouJUMBqAookWeQuQGa4Uk4rliA0JSxpt7R80tBJUhiKetGwP+Bq27agepqkuHJMSu4IWZ1V9dUwmoYY41EMZvO0PyZpJw2q++zq+YDBHF3FphZqgf+bBc4zpf/wd8TeWGp7IcxyPixNu0v8lh+9YvRcipnosqlqV6TR7/XOL1j5fhzGD6YxD3u2PDbzvV7HWiTflr44L02owYeunjZaoGhkWVmcp0zZBpDZ4IIJPYNrdpCIDQm1Cfd4quH1AUmenpZ1vmzUIfXkKuTZfe31BoeJOkbMRp0xzRRG1jbUc3jWkguOrNbZPCOUP36meQ== 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=NxosVh7VJxxdhO7eIGTSiodIuvoaYGbgGfyrg7Lnp1U=; b=AO1VRlMGhWEfxQahFR1/8u+AyVXQ5XxXgDEX9HPru9Kkw6FRbvCKfP8g+QScIlRyEDv92NJuqTSKZAFL+UWOeIxuAV40mFTDGEJoj83HBKyCxDrEy0eFNqfpZE8DK0s06mnNuYn3Cvv0jI+CWRiQEW2mkC14XSck7FYXMlQt/AQ= 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 OS9P286MB4655.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:2fd::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.19; Mon, 25 May 2026 06:24:34 +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; Mon, 25 May 2026 06:24:34 +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 v2 01/12] dmaengine: dw-edma: Add hardware channel filter Date: Mon, 25 May 2026 15:24:09 +0900 Message-ID: <20260525062420.3315904-2-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260525062420.3315904-1-den@valinux.co.jp> References: <20260525062420.3315904-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP301CA0082.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:7b::20) 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_|OS9P286MB4655:EE_ X-MS-Office365-Filtering-Correlation-Id: fdb15a4e-e5bc-48c2-1ed3-08deba2649a7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|10070799003|1800799024|376014|22082099003|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: fb3kqqsEEi8/GxoBSJHjDXrl8kRff7bMC6WySp2wu+PHIxDhvMqqdT7EWDXLzzyYLHI8hDkODfcvqDceS9D+NNam2JTD4TstVUp3bBCrS8G8YL49X2HjLks5AzFC1sQdNltUqSnlAjVWOQK+jhnkL+CHTymeHwFEnHlnPYXSdAcK5U1/ZLw7Mu8m4kfJ6DTXU2nD/aa2HhMb0CIzAseTYAqJMcSihA33PAgQ6tfOAnAsGIo6efBB+ip6DM7c/WH3zPo0XLgqS5IEArJICBT+5typEJypZfH0dAE8Tk1CXaWgDtdeKKfkWzQX3Ndq7Wj+b5jWKQGYJVmy5amGfc+Be23njyHu3TcRFqWIE/6euE2+ejBCSIYXOss7hdx8H6ee2bzqFtmfIjTxWAuY1zbNppkz/s/nC+OBX1wt4kUdmy8SuioVqXYvE5hfzmgAo5gelQjyHyLD9fYCzmL33TZT6AcgsUw4tIBfFKxqZHjmdDML8q8bKwzWndmBcLBk8QQowc6Wf9u27vp3sKh6CM4CdI8OhBl1FrItlEU1yCFJJJ1dpWTeoXYUMfC7c8zaJGVVoX2UlT48UnLhc2Vx86p6Xf7lG32qkIpFvlS1kXqfjXAxlYvfwoeIWt1lmu4Y0DgAV/z1Dd5hEC52VJqqT0SUs9UlweMdjWRh+exqMeEgVhspHaxa98cFOGibf6VrNeTh 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)(10070799003)(1800799024)(376014)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?0hjJgWCZVO6lIG972pI27zMIIwMRDPPBAuRon+K7j/zR1QmUo91Ap4M/XfTO?= =?us-ascii?Q?OxBDdz1WRt1j/9lUOCf0qD1oQZiR3sUCICFAKin0iooZuH6dqoIg/tnXcDnU?= =?us-ascii?Q?XmUsYRAc7wdFaSq8eDqWy+Y9/2+2+/FxntaYuw32nLLPjbwEPUpzWCPtMOP4?= =?us-ascii?Q?f+XlfvfMb2aBEGFcs1JPhBxMaFPHg3VF3lYOO1EPFLrpLsIxuDpX3hhTnugZ?= =?us-ascii?Q?nO5wz1pUrieO13qjc8wkRv9iWKjHhbM46QTlPlEe4nlxJqY4Ne8SLPShTmCG?= =?us-ascii?Q?mWsJmfZOdknMR7nMdf0FJZJZhrIci3QFU5wefFueoYQPJj8NXubGkcQGDlvE?= =?us-ascii?Q?Vw8qMGLnC+8JT1v1+9kVP0celOp9nPZg7ddamZ0BND+URc9zkUAACTyOEWnj?= =?us-ascii?Q?8GmII02HRm7+T/cbcBpahtM69E9t7O5ibWk4H22xj6v/F+NVEDDXYzHvEsVE?= =?us-ascii?Q?4nAGeW3Y1wSKipN1nchSZbT3dlkJbzg/+JgiOLAG/g8MxjWvjdf6JhENP/gB?= =?us-ascii?Q?iQtobxUrFE3ahE6dULYRIGE2Gvlr4LDLdLSsJAu6sizgSyNlqL/4aU55rUgK?= =?us-ascii?Q?OoM69gpXqVB5xXZ7vGeWaVdv6lJoblELnUn+WTyUZWFtlKkbqboJ9S45Gkie?= =?us-ascii?Q?s4EENeKWqwkWOgZk952g9v3JiFYexqk7ZLt+psK4ZZYGeASURT0tdC4+EfPG?= =?us-ascii?Q?4hamgaBx+sxmpnlIzJrBmqCroDypY2woReg+Y3HlpZasWLMa45+7Q95BXbMC?= =?us-ascii?Q?k3L4y3qBk9fLeDTef8m03JOmBiJtfMho/Tr/KX6gobK7znJkDh5YbVG3X+NF?= =?us-ascii?Q?M0D/8kePd1wT4tQFIIVbOlAWzHLif5Ip5T6IyhZdlVBMx/TOp1GAeJCAirGA?= =?us-ascii?Q?e6rFGCOKY/Z7wyqq0hXzPpBWtc9tx4W2HIrDGm60CjynRJjeeplZu0qw5TcQ?= =?us-ascii?Q?D++9zlPiRj4u3wuen/2eRXrqjKvYBpTye1pYxXaY407PhUn+XXinVTOl54Bj?= =?us-ascii?Q?wGssUzEeZ2lBpENqNwd+snYkvtEkTFBxinEEgm651xbcxR7YvTz6Lta+FSZ6?= =?us-ascii?Q?4dBfoCAcumEfpOjNRWgJHZlpLRHXRbTBKPajL72e9UlDWEMNjmDBKqUoywc0?= =?us-ascii?Q?UWBmpRuylQsUjmuY3CMS0ydrj/I6lzL7In28ldFku8HPsFMehpgob/x++3Ly?= =?us-ascii?Q?yHYGEC+/GbtGXH80Y6g1RtNLrKN6kPSl0d7lcTaLhBfsIFRXcTWsr7GyGtvS?= =?us-ascii?Q?TrCNrGYL29NRoQ1k42yqQoRxEYsQFErIhfRZNS8QVPai2P8izFB3hjID/klJ?= =?us-ascii?Q?W3LsVP8TtHR2386hWgaVF6V/tP/yW0Z6uEnSCkcbBDT4pP6Nv8owIf+OEYTd?= =?us-ascii?Q?Y3TbKYngc5VgiFF2NRunC54krAMxApaMRudz2SJz6Sz9lJILyQjDMXrNJRl3?= =?us-ascii?Q?yfQ9EmuSN/vugRrNMawj0cgUKejq2gwWlgwKTx2VjHmUCRv8Ja6rY/OY751R?= =?us-ascii?Q?k+UZ5CEIiVZVZI5Nx+8l7kJqzL+e9+GevakgFFm3OLsTDPt5peG38ENLp4sV?= =?us-ascii?Q?WU9m1kzTJ5GIgez6ecXS//Ri/OggxWez1/UA/dviIHrv2OSBgHPCa5UckE7C?= =?us-ascii?Q?73GptiyT0sZQ3BlgYZk1qSbwBqEQveOTErCDBDTqA9/6ko88mOTcikWP6ffS?= =?us-ascii?Q?A2OUghBpGuOhmB64R8rDyeKfeNbCs5oMvLV8Gn3FEA/uZdhSW4F20PWSRs5A?= =?us-ascii?Q?6+m1m4FRLWwydEH5LnrL1GR2xdJVCpFPgBBdDFW+nqOfa+PEFfXJ?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: fdb15a4e-e5bc-48c2-1ed3-08deba2649a7 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 May 2026 06:24:34.1301 (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: KGHlswKmOQYzCHCG3B6xf16ZVSiRct70dXXfg1kmsUddRKkzxeeupEl6BA1VkxZ8ocJQYijlSpVF6NALh2L/eA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB4655 Content-Type: text/plain; charset="utf-8" Add a dma_request_channel() filter that matches a DesignWare eDMA write/read hardware channel by hardware channel number. PCI endpoint resource enumeration can describe hardware channel metadata and let consumers claim it through the normal DMAengine request path. This avoids returning an unclaimed dma_chan pointer to the caller and does not require making dma_get_slave_channel() public. Signed-off-by: Koichiro Den --- Changes in v2: - New patch. Replace the raw channel lookup helper with a dma_request_channel() filter. - Do not make dma_get_slave_channel() public. Patch 01/12 "dmaengine: Make dma_get_slave_channel() public" is dropped. drivers/dma/dw-edma/dw-edma-core.c | 15 +++++++++++++++ include/linux/dma/edma.h | 18 ++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/drivers/dma/dw-edma/dw-edma-core.c b/drivers/dma/dw-edma/dw-ed= ma-core.c index c2feb3adc79f..80b4a168225b 100644 --- a/drivers/dma/dw-edma/dw-edma-core.c +++ b/drivers/dma/dw-edma/dw-edma-core.c @@ -1189,6 +1189,21 @@ int dw_edma_remove(struct dw_edma_chip *chip) } EXPORT_SYMBOL_GPL(dw_edma_remove); =20 +bool dw_edma_filter_hw_chan(struct dma_chan *dchan, void *param) +{ + struct dw_edma_hw_chan_filter *filter =3D param; + struct dw_edma_chan *chan; + + if (!filter || dchan->device->dev !=3D filter->dma_dev) + return false; + + chan =3D dchan2dw_edma_chan(dchan); + + return chan->dir =3D=3D (filter->write ? EDMA_DIR_WRITE : EDMA_DIR_READ) = && + chan->id =3D=3D filter->id; +} +EXPORT_SYMBOL_GPL(dw_edma_filter_hw_chan); + 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..3e15cf83b784 100644 --- a/include/linux/dma/edma.h +++ b/include/linux/dma/edma.h @@ -106,10 +106,23 @@ struct dw_edma_chip { bool cfg_non_ll; }; =20 +/** + * struct dw_edma_hw_chan_filter - DesignWare eDMA hardware channel select= or + * @dma_dev: DMA controller device to match + * @write: true to select a write channel, false to select a read channel + * @id: hardware channel number within the selected direction + */ +struct dw_edma_hw_chan_filter { + struct device *dma_dev; + bool write; + u16 id; +}; + /* Export to the platform drivers */ #if IS_REACHABLE(CONFIG_DW_EDMA) int dw_edma_probe(struct dw_edma_chip *chip); int dw_edma_remove(struct dw_edma_chip *chip); +bool dw_edma_filter_hw_chan(struct dma_chan *chan, void *param); #else static inline int dw_edma_probe(struct dw_edma_chip *chip) { @@ -120,6 +133,11 @@ static inline int dw_edma_remove(struct dw_edma_chip *= chip) { return 0; } + +static inline bool dw_edma_filter_hw_chan(struct dma_chan *chan, void *par= am) +{ + return false; +} #endif /* CONFIG_DW_EDMA */ =20 #endif /* _DW_EDMA_H */ --=20 2.51.0 From nobody Tue Jun 9 01:01:19 2026 Received: from TY3P286CU002.outbound.protection.outlook.com (mail-japaneastazon11020141.outbound.protection.outlook.com [52.101.229.141]) (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 E01FF39B943; Mon, 25 May 2026 06:24:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.229.141 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779690281; cv=fail; b=HvHR2o7IDjeb5JmnLN2VqkHUHv38pEYmaOMsg5fAD9zJ5D3opqEVJSjnLv1bUug4Em+EoRZyzxXm85w7nO4+JWGIWHSU9QIoxdul422Z5Bcbp/lcWbwx3fZCpspC3oYuewXnv+WWMWw494rHzS2UiWCTNR+7yjrEa+pkHpi3X94= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779690281; c=relaxed/simple; bh=nmGkacwsYuV8N8ogXcftyywaGTD4Jfj2SzHIgjvB1Bg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=qfD4+JuZjCl1IMhOT/Zeqlw4Bp0MJZ3LyMfLp3ugyeM8HYJGu7E1qvaYCxf1e+dOakpagWVuOmumxuoEmldXSTvXu17ZY+1ldnbqTK9TMdb6JZMKPrkA1+lgOHen7wFYqI74jBCvoqYJk8nWejSBigl1898d5qp0JcG8N6iW/nA= 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=mTRo/Gf/; arc=fail smtp.client-ip=52.101.229.141 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="mTRo/Gf/" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Xz5m8Vt9kZLrI6MLCHNw7in3pIFnwFF1vAHuDPj2Fjv+ZpD0uurH1C5NOjGH82PbdCLaLOayAYPK4Me5YxWKL31WPoNcmN5ie1NZ3naRchTDeoS8Qs7KJUkNljNab/tk608QybwOx8tE8mg71nGb8AzJCESiPv+ilXFu+K8DRCDo3+G52WQbNLNA47GiBYiCbuz+rhoMmx6ZGvmFO8tH0qXia86mSk+OsPUax0CvOZegGMWodQUAoWHx/vwnFr2vb4Muv3d9kGw2L48E6k84aX09aDfVv0UhxgcYIqCaWkgJIxPUklPne/nR4e8FcU/M6CI0ughTFDWZgX6Ayd48Pw== 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=8dXyeSVOej2DUIW4wXN6Z7jUDUr7+fJzE0pJrvGDMYM=; b=f2YSMrHsNnpAdHnke82kVwE05Ugi6O0/kdDqPYz8ZSz/COXnt+gmLZj8KUe6nMpswSC0jWqHAKYNegp17433UHCeS2wegU4MI+CKaKidPXWRz093ws44mcBR4FBDtOTElT/c5Zi+6VSUQa6O73qcebNgUY3xiCskQGybNcuHWlPPIkdOiHESX4Ob98ZrsntEy4+75BJZha8NxikaWPNyEn3Nqk6xnHrJCBcKsEYisx41GPt5T1HUFt5/PZuslmglhxYfT5LQUzvwqaeiV0BXPbB1GAqbx47tM4YUXObjn77QDae9KrxjHI0p/k/ZB2JMyHRi80TF4RM1EFAguu+5RQ== 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=8dXyeSVOej2DUIW4wXN6Z7jUDUr7+fJzE0pJrvGDMYM=; b=mTRo/Gf/2HKommR28hegujP9hqi5RNcJdqbmu4zjpqHswsaj4ODaMQw7D8BpZ3Kz7teywhm2rw4pS2D/1lZicc20hO+35WMGfdYNgQ9+wgpIx0WyvCv7tClptnAPS1J5Gxc1nns3VgWXo7rEakUKkAQZC0R03JewhlK2Ghb7exI= 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 OS9P286MB4655.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:2fd::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.19; Mon, 25 May 2026 06:24:35 +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; Mon, 25 May 2026 06:24:34 +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 v2 02/12] dmaengine: dw-edma: Add per-channel interrupt routing control Date: Mon, 25 May 2026 15:24:10 +0900 Message-ID: <20260525062420.3315904-3-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260525062420.3315904-1-den@valinux.co.jp> References: <20260525062420.3315904-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0333.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:38e::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_|OS9P286MB4655:EE_ X-MS-Office365-Filtering-Correlation-Id: fcc89798-91d0-42cd-ab21-08deba264a26 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|10070799003|1800799024|376014|6133799003|3023799007|22082099003|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: uMvO9GY4xFQl7Y115V+3XRF1ZrnXS1sZbELLXcg3rif8lBn8i1St2muNlcnq7PqDNS7mvaVy6ESFwWM36StilusA9AKodu4fnQyLPa67DDA1aG/nEZAqEcyLD3bPTLEftAi7PnZvkG694kHhV0LoR/B/IsnYIfaJHDC2I4MO7hA5/tlwT0LR/Uvw6mGYFDpkPAtfy43TJeNFtnzowQnvYxputT5Fy9yhsBPLpppH6JvUIGQnqTta6d1Eh/puz2lHa9ANMfUqvDLAdKkxXTGLsJQrbq9IFtyZvmcPchf4a/yyukymgtdI8w9tg/cNmgwqEXs7ZfGtc51tlaiHtoAtBOQ6b/vJaoJACZ2ytr6qNLU5sXJQroVrEOGYUIe0kw0dyriPHY55fPordOWv8wVTpVPDAjLDWXVfN/XHv9v90tTCfKZ8FI0ekRNTgFRODETR2uwmsxPszLWnJow1kzn4uy5mchkK5/+zzDKQeAGqtxD980UaaJbJF0pL2zPllQAD6nrBNvAnUZiSr6Hcs8OF28LZHod1XiEJwEEyVBr/Zqub/IC4IMFrMsVdMKRpoK09VWKJtHx2r4bx1L4qo66dzODLIJ+ms2bwb3UbD8tETLTEqFrLkH0XfZuVTLnN4znCyekNIcAfU+tlaQUsozeqILEs1iOANuS4Rg5Cu1bqKb/K2BMh5RrQ8tFWW0Y+jliL 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)(10070799003)(1800799024)(376014)(6133799003)(3023799007)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?QNgGWFH/pJXflN/SKxI5jceylxT1s8DJxsqrnEJPD7VPlquvtxoh4R7zhq3O?= =?us-ascii?Q?pJn4BSVCPXlV85HUdFFwfp4GE7cjlJtPWQ26JVqgtQwaPLevlL7CqcZ32Cks?= =?us-ascii?Q?jXVF4jEILIDspuz1gWs/xPndo5BrnOUcjhUBohKTcm+1qcFANajyzPyB6ASY?= =?us-ascii?Q?KwFvDXKXVGPrVGqcrA2Ln78THYspYcBBoA7tnZ6xcIs/AbUfIB6hxpzqldHx?= =?us-ascii?Q?iHqnmj03XqN1NFVUZU1kzSqPwHsiJE/Zqai93GFLocqrjej9q/1+Ycv8THZ4?= =?us-ascii?Q?nu+2QVptMOl8SG10nPRNF2/t0OioGFutT34AZYhVh7j9wvTaGnBMU41BdFrq?= =?us-ascii?Q?kAEmtMBMlwl3Sb9Mlb4vhHbASHhV/yzYvO06gsX+MeyfWWcgYtNp65Z189rT?= =?us-ascii?Q?bI11JQK0NE5uqn9URH5uXd0Vs61/e8KDNnNbf4v7U8KUmN9p0F75LbMF43Hn?= =?us-ascii?Q?ARV20G+9rHetNSKRmrXu9FOfyUlSPWhCIYC3unrwM4SeZp5IgceMzHgzrZdo?= =?us-ascii?Q?7hinhPUo+fZcREK2w6lj3EXVW8M3hyZ0JkhrTF2LPBE36C1qKeMhA70MIPtD?= =?us-ascii?Q?f/mRIs7psoqoEdNdxjyoZZAfpvtbpiaXfxAW+PghDrKfNMDhq/IaAliSNCrK?= =?us-ascii?Q?pF6bbiNQJnZbCCHuKpqnTiztuguRc4DmILy2yrNkH7fKLxVaggjFuoGgCeEK?= =?us-ascii?Q?MUciKX9+rUBwyypW1YuYfCVWosQ+FXmhNUfBY9FTkqXB9oAqdXbEulI8/pYn?= =?us-ascii?Q?HrzDQwBmGw2WdlWEVSuJq8BzhyCeShO9m4fmvBqswMz4ttsqWAOfj0OdyPUF?= =?us-ascii?Q?7F4UQtZFoKf76poJvdgFlWWcFV0E70Ow+8c1ZmdPW+oY0+qwHANCe+Zw6DpY?= =?us-ascii?Q?XHX/7NvfZnZot1UCKFzoDelad+S0PohxonGT2cYoQIdM3zSJH4gWlnYqlpN5?= =?us-ascii?Q?PHVZhQKihkqocdc9WwAc3GsXHEvo02vLSOEnnIvTHY6WuFYXHxInN8pg8kdf?= =?us-ascii?Q?oyDWcB4kv/PAanj2q0oLFzjij50D66PqhdDBqAX0RppDWN4T+OSjTSpCW3+2?= =?us-ascii?Q?BZw7+nfOGDolpb8K6pj2QbTWApVDYsTs6Le3HZDzTRFJgdULcVaJWcDkf1zn?= =?us-ascii?Q?FF+dFd142ngBTqpfTtqjQvyoHj1TD5tnMqSIGY8MycFgjMDXuo8bq/C0KmGB?= =?us-ascii?Q?F6mmm28lAIo6QHvRsst1fJ9wkivPJDXXi+mRlFjsoKBW6xieZD35Qej24rTY?= =?us-ascii?Q?mRssoUGcHSqqDw/49hW6VrFO6Zxr2Wetjqp1OVxtxQAhA+pVVR3rbT66W836?= =?us-ascii?Q?nBmvVT26IZaJeTKAbASx+fDiQ3JKk5NCsm4xdUfjpuGLDUEop5Xlj3PEuNnP?= =?us-ascii?Q?U4MsfavpVL8u144EjDTu3u8sCw+BHyYzTIlA/3SJA8nGEcNEsa0eJdIF6mac?= =?us-ascii?Q?wC/kWBE62bvKzimO5Pg6dDe0WGAwYHn+0rNaVuD2TKqL9ZO+5DtXPK7UxQJG?= =?us-ascii?Q?/tNxFpRy633OuSX99IpviTQFmygp/FtgJ+2WmS62AenkEmbJ2NIzBElJsU6W?= =?us-ascii?Q?UwNaw4CGNvoajeAkIGVDkbTiWDIxafjC1MGZ4gS0PmYGZ25a9r7JBItBQVOk?= =?us-ascii?Q?3VfsL8mviD2Lv6FGxS8sMHb5Q3oYnwsKDho3CYwTECiIyz/qZuFKZ6MJlRcD?= =?us-ascii?Q?FGeRKlYjK4ztbmBhkTySQx7+ByBOM16kz6G1SITiDuVJxWYS+O1uwabAly0V?= =?us-ascii?Q?9UTxtRS3BFgKk0fezm41Nw6BqeBbBz8qCxo7D5+jtM0wSqlJRNRI?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: fcc89798-91d0-42cd-ab21-08deba264a26 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 May 2026 06:24:34.9502 (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: D14VIBxHCEpiRg2ApFWqPjE0ncwxpTSzsywbjAGmlE//Is4W1gP9c1q90+ItdmNUWs8WUGeSgJLh3/pxL7usNQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB4655 Content-Type: text/plain; charset="utf-8" DesignWare eDMA can signal completion locally through edma_int[] and remotely through IMWr/MSI. When channels are delegated to a remote frontend, the local endpoint side and the remote host side must not both service the same DONE/ABORT status. Add dw_edma_irq_config, carried through dma_slave_config, so a frontend can choose default, local, or remote IRQ handling per channel. Update the v0 path so linked-list interrupt generation and DONE/ABORT masking follow the selected mode. If a frontend does not supply the config, keep the existing behavior. HDMA native already uses dma_slave_config.peripheral_config as an int for non-LL mode selection. Keep that interface unchanged and reject the new IRQ config there until an IRQ routing model is implemented and validated. Signed-off-by: Koichiro Den --- Changes in v2: - Rename dw_edma_peripheral_config to dw_edma_irq_config. - Keep the IRQ config distinct from HDMA native's int config. - Reject remote-only IRQ mode on local instances. - Report IRQ_HANDLED only after servicing non-ignored status. - Drop the lockless irq_mode reset in free_chan_resources(). - Revise the commit message. - Drop Frank's Reviewed-by due to the above changes. drivers/dma/dw-edma/dw-edma-core.c | 66 +++++++++++++++++++++++++-- drivers/dma/dw-edma/dw-edma-core.h | 13 ++++++ drivers/dma/dw-edma/dw-edma-v0-core.c | 22 ++++++--- include/linux/dma/edma.h | 40 ++++++++++++++++ 4 files changed, 131 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 80b4a168225b..a70e0640d082 100644 --- a/drivers/dma/dw-edma/dw-edma-core.c +++ b/drivers/dma/dw-edma/dw-edma-core.c @@ -219,12 +219,66 @@ 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: + return chan->dw->chip->default_irq_mode; + case DW_EDMA_CH_IRQ_REMOTE: + if (!(chan->dw->chip->flags & DW_EDMA_CHIP_LOCAL)) + return DW_EDMA_CH_IRQ_REMOTE; + return DW_EDMA_CH_IRQ_DEFAULT; + 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_irq_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 !=3D sizeof(*pcfg)) + return -EINVAL; + + pcfg =3D config->peripheral_config; + if (pcfg->reserved) + return -EINVAL; + + switch (pcfg->irq_mode) { + case DW_EDMA_CH_IRQ_DEFAULT: + case DW_EDMA_CH_IRQ_LOCAL: + *mode =3D pcfg->irq_mode; + return 0; + case DW_EDMA_CH_IRQ_REMOTE: + if (chan->dw->chip->flags & DW_EDMA_CHIP_LOCAL) + return -EINVAL; + *mode =3D DW_EDMA_CH_IRQ_REMOTE; + 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 +309,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,6 +908,8 @@ static int dw_edma_alloc_chan_resources(struct dma_chan= *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 @@ -904,6 +961,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..08ec2bd7856e 100644 --- a/drivers/dma/dw-edma/dw-edma-v0-core.c +++ b/drivers/dma/dw-edma/dw-edma-v0-core.c @@ -256,9 +256,11 @@ 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 + if (dw_edma_core_ch_ignore_irq(chan)) + continue; + dw_edma_v0_core_clear_done_int(chan); done(chan); - ret =3D IRQ_HANDLED; } =20 @@ -267,9 +269,11 @@ 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 + if (dw_edma_core_ch_ignore_irq(chan)) + continue; + dw_edma_v0_core_clear_abort_int(chan); abort(chan); - ret =3D IRQ_HANDLED; } =20 @@ -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 3e15cf83b784..2bf2298711e1 100644 --- a/include/linux/dma/edma.h +++ b/include/linux/dma/edma.h @@ -60,6 +60,43 @@ 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_irq_config - dw-edma interrupt routing configuration + * @irq_mode: per-channel interrupt routing control. + * @reserved: must be zero. + * + * Pass this structure via dma_slave_config.peripheral_config and + * dma_slave_config.peripheral_size. + */ +struct dw_edma_irq_config { + enum dw_edma_ch_irq_mode irq_mode; + u32 reserved; +}; + /** * struct dw_edma_chip - representation of DesignWare eDMA controller hard= ware * @dev: struct device of the eDMA controller @@ -76,6 +113,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_irq_config * @dw: struct dw_edma that is filled by dw_edma_probe() */ struct dw_edma_chip { @@ -101,6 +140,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 Tue Jun 9 01:01:19 2026 Received: from TY3P286CU002.outbound.protection.outlook.com (mail-japaneastazon11020141.outbound.protection.outlook.com [52.101.229.141]) (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 B98053A1691; Mon, 25 May 2026 06:24:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.229.141 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779690283; cv=fail; b=SdCau1bXtezfaCoGIOYdsAghSt+W1hdvo3aH/f/HNXDHGljtUTacZLWQoE/oVyURWgvJM2fVKf+EwlDCQBgMizSGSVzkCd8vWulw2EEo2c8YFauszdbEQ0AO+Kiu72a8k/TRypy2nDRwrc0P/NcjrfUtFtDMej49LF2sMv967jk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779690283; c=relaxed/simple; bh=NZzEhMAWfzIWLDmN2TJg+sizGNaONbmviXKLcN8AWNg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=WBQ6s7oLpXWZsf0ZCTRYump3GyOORFQXWQg1dnhhMniIEI2PP8fuiIBo/SRcRJJKpgix7/cm+VWZRBKQlL//OjgwcQJ2Jjhysbccii7ccWW2ASiGC8hmD1LgAJBEfIrusl5HTqd1uJw1tgn4cXgvJKWEiD5V5lUx9L++cuSjBMU= 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=q3AdLC7z; arc=fail smtp.client-ip=52.101.229.141 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="q3AdLC7z" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fIvopsgyfMAmvh6tot1Da8lMiVB1vhxNnfDiZy3/9JbdbYs//CeZ/6QwIxh0cOQQcgod9nXTAl02zKIT9z8TPOqGbb9764E6Hvl1xHqJA1+9sAt2novFLo+kUn3BVOTMuKEKh4Gh8fUUJa5GVXH6qLRbJAPv71/TtBWLO3LDwDEApph0OCep5Ec0uDPtB4y4fUtTJ1F1VGfMUrU0aJlrKh2tINAEMmBCh3AANBgMIvmgKgFl7XI9FIMwKvzo/CRupEoAI9XZedye3XS64QCJIt1nwtmesD1/TaJFpFXXOrNLSq7n9HlV9OB6CrlzHXUgdYf+3/2ItNZrQ4rohGqwvA== 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=2mH/QQ8/foS/bSZfOg1/4x9zxO4E7uFVkN26SEC7NUY=; b=Zlb68MsU/2WYkA+1evpHO1lZuxOJkDaldbyvC5uMT2cHnOTwoJkvaWYDS2b3ubXJbMzqzITcF5Vjz80f0mBSfKeMFLH8SNkHhJQUMyAhxG27u72kVYvysLFqG5B8e1SZmrFZ9phkVGPFfXhjvr3dA1t12x4IhSHzCOdZOOHf7uBNdU/aQwduTY65t89k7Sfp+p8lIaj/V/qFTLE3r/hSM9rrtfmCLmKW4suKN2NTKOIuCLrAY4lWnO2nY/0mPuwd3leKp2ZlEJMGksWWiKaI1Fk3eMzx0E36fD1SoclJl+jMs2s5KWw1zrrlgt6FVxPIEWuE6jADzXgMgo4DFqOCAQ== 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=2mH/QQ8/foS/bSZfOg1/4x9zxO4E7uFVkN26SEC7NUY=; b=q3AdLC7znnF95sntticEGiO3zNtpEs7kJJBLwdhchcCglH2yi8ko4k3GFpv8My4/iRwInzr5Pz5PmDzMVmCcNsByCYxcLvHoTwdat0Shw1xhCUFp+O3uRhrilfmx5b+e8gMt3yiENUD/NOg5XxV31WenBwcgVSYfoBK7S7v1IUY= 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 OS9P286MB4655.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:2fd::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.19; Mon, 25 May 2026 06:24:35 +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; Mon, 25 May 2026 06:24:35 +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 v2 03/12] dmaengine: dw-edma: Add partial channel ownership mode Date: Mon, 25 May 2026 15:24:11 +0900 Message-ID: <20260525062420.3315904-4-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260525062420.3315904-1-den@valinux.co.jp> References: <20260525062420.3315904-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0067.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:31a::9) 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_|OS9P286MB4655:EE_ X-MS-Office365-Filtering-Correlation-Id: f7391120-e449-40a3-154b-08deba264aa3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|10070799003|1800799024|376014|6133799003|3023799007|22082099003|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: SNiLMGsKG1Cnb3TaOIhBuXG7anNgp5hGwxr1M1O+m1ScYRAWK1pJISSnjQgqZVtscY+sjCVPeYw074FvXcEF9GZ2eesR+UN+VTxS7ia1otN3Cjsrp7Y6Mp9fe49wtALtPoFGXxQYW+paU9Dd2sOMhf+BYXacgfxtC4/OZkRN1wIroJtCAlG6YFXack/tx37sTYeGuu/R1eIniJSyXyAZiObEz+z6WAQ8l98s1jS91/JhRl6+PoJnEUacQnIk7o5v1AJ4OECDOwNRRD1DnUfxd3W+9mse8oy8WDfRdUuHsKHU6sDUNHn6H2v+2nV2/MW6+1gSp4EHFUSRROlw9xE26OjCNeZg2lH5NlACGfMb8kYvNCLzngZc2IC8Ezw6eLXGuFhuJBPzCFjtM3bKvOxz2yrKFfS7TNFTa9dWQcIEMkCAPMExDy6MO1qBGADSTuwzNwReu3vY+ybn0wtcyfQPrwOHcKVs39cu5tjmsFXb0U6g8QPT7TzI25lNtLSHEPrhJA7yc/ioFFqRzyf6al4P1iXnVldgfuuiDE/IyClLgCGRuphwwzdpBeEId+IdpMkqspp1aapweY+mn36tU7GS/Uoy+wgKv7ITmDM7isJTS7KjC//rL2JqQ9/ZPMxxEB6YX/BZ40Nn8V+ZgjLPdSDUIEwUQ3t/DF+VzFSXtaHWnSHwVVGH4Z12HZl8ec6IRk0j 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)(10070799003)(1800799024)(376014)(6133799003)(3023799007)(22082099003)(18002099003)(56012099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kNDzvgGdwr5A56Xx6U9qOxzsWRlhspNVAUBBVxuvjIRXd9vBskK6/vel0dDZ?= =?us-ascii?Q?pb5eAlfEOuDyfzjmulCJ2WBKAWSywgeS5QwSlbXBp5QiOq5oRgV14ldbUQlA?= =?us-ascii?Q?utxpJHHL6a4xcNDcphynqXS3nVK5mYgCTF7LB9DPTnCEAmvYuHfwcZ/g6lWh?= =?us-ascii?Q?bztchlgKFeG7gkmfJGVGZkrr/9uo0cE1ft6vMDtDZp2j+wWYHcyus9+mN1EX?= =?us-ascii?Q?ED/4pvo94XdIEBI/w49I3e14rAh/jX3tRasTZjD9Iev/pGS05nB+Yxz8FQIQ?= =?us-ascii?Q?ME9Ju6Nm29oj1LnlorB/tEwmekgV43MPsiYU70ZcdYe16zV06bXQPiVwu2ar?= =?us-ascii?Q?EDoOToNr31DMGlP/kQMrWzQe7GoN/+G0zSloSObnbu2kIKfRzZMFt0ROH4GV?= =?us-ascii?Q?vxvB+uISWY4oElbvr6OkRxvcKhc4/9rMeuFjYN64p4ZmPQjZPCtKmHl59YLb?= =?us-ascii?Q?OgMT2zAy+CVaga4MTduWlnGf0uByfzsK5IDQ/NVvvsQXypHBPoqqEpN2y/cM?= =?us-ascii?Q?P5EkO8wo5CowPOI6jVkkNsk8jrD4B/B+GwqVLvmXTkoq3tJKrcbv1fV6FHh8?= =?us-ascii?Q?nNEII9AKbuiHqXAOkA1niYMj9YxG7dIUmQy1D2TZqO4PWhOH4s8PgiKkOsnl?= =?us-ascii?Q?ldy2tCUX1JgjSNCJGuXD4BDDrnAIn4iFYtmaDiU4yanJVQ7N/U4ZldM3Kl5L?= =?us-ascii?Q?OaiHyCPVgMKlMLwLbdXUv9VidkZK4gj3yH+fn7d1ArmYbGXiuphKDhVUj9vq?= =?us-ascii?Q?rhEiyRVh23JIiygDIBr9WqAFS1XfkEXqvsYDHV0C5Us6DA0kz/7wUKeHG6zM?= =?us-ascii?Q?2kNkL6ftRlZlBBzwBZd+1ji/fveofKo0nAY81+MfK9dnxWESfN9zyhXDNpdS?= =?us-ascii?Q?6fuGgPjgbliUfYs4XZ7rlic1IU8707HfCWBbN774wqxTiLdlNh78I8JrUK9h?= =?us-ascii?Q?KqUIL8dCxWzAJR66X9Yu7YAmOfJzueFKVvO4DHTdEMxSva/ddb43/Zhk1iKc?= =?us-ascii?Q?IxnPsWpjj8BQug0TbB/ewuwzESLshVxVt/liXvk8yZzWp1tV9UAt0FqLRzse?= =?us-ascii?Q?2DnQMEIhtlsbbQsX75xRgtQy5WajDeZxo8QUYr1+OSWhBXuVYiXLW5zOZdv3?= =?us-ascii?Q?vFATOqPIIqD399VDqRndtFvKBVLUJP+LuBz7Ig4biUL6Qd6FaJYamKyal5m+?= =?us-ascii?Q?OUP3ubR2+u5QwCPpIgN9KMvLdl8bOZAoS/b7KHNOJkG3xvVhJ6B8OlnbxZOC?= =?us-ascii?Q?qhOu1HxojdYEu5OVsVmc8W+/ugXuAumnsk5iXvCFZ4EQsmv0tUPGaJl5FlKK?= =?us-ascii?Q?F2rCy7CP8WX/xnzPzo0HM6GZJh7nW5Z7l/Vmj5w2mrFD1vbeZiiTivVjPuH2?= =?us-ascii?Q?iOMKkUNMa6hHrg8ZGMhq2nhIQ1brdRoBcH1th9TJTwXTcBmGiLugZdToRlq+?= =?us-ascii?Q?bAEYTeu4sbkbpAsc6Oi0n8gT3WaHQIT5qOfQaIgoeyk0dqub3uqK6c6NTQya?= =?us-ascii?Q?UXkaK3earIu3Cvwf4zUbDqk49NNtSpAuz12MLn9EaLjLP8PudANMjl2D0mw2?= =?us-ascii?Q?8ZBvliCINvoJNAe1g2n3nMRVkUnL5n4CiDtzYRlwQdRLwslav7JR5t+3+V29?= =?us-ascii?Q?6dP6nNThwNfnTnUxj5H2bTS0XeaxZNLy5eCyNGUHEz/PB/PjjJgnEvKSChbo?= =?us-ascii?Q?s08tfRwv1VuuLIalxzXhKRyPNYVMUw4lDsgnwL1lgojd0LOx0mDr7SdBNb8X?= =?us-ascii?Q?TPXTW5dVGY2dZWyetAfF4lCmXKjTl9MpPRW1X4JCJkTytZ+I17ps?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: f7391120-e449-40a3-154b-08deba264aa3 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 May 2026 06:24:35.7728 (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: pki3prrsH1B7xMTxq+p1Hf4M2LlSSzR/Sb1YWXWAwvsRrUtvTDxmrM7qBC0SVVhACRnzpnKQFXbfzZei9bmXFA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB4655 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 partial instances for map formats that this driver cannot safely share. 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 --- Changes in v2: - Reject partial ownership for unsupported map formats up front, keep direction-granularity validation limited to supported formats. - Revise the commit message accordingly. drivers/dma/dw-edma/dw-edma-core.c | 47 +++++++++++++++++++++++------- include/linux/dma/edma.h | 6 ++++ 2 files changed, 43 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 a70e0640d082..fcef9a27b6ce 100644 --- a/drivers/dma/dw-edma/dw-edma-core.c +++ b/drivers/dma/dw-edma/dw-edma-core.c @@ -794,6 +794,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. @@ -1135,6 +1138,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; @@ -1146,6 +1151,16 @@ int dw_edma_probe(struct dw_edma_chip *chip) if (!dev || !chip->ops) return -EINVAL; =20 + if (chip->flags & DW_EDMA_CHIP_PARTIAL) { + switch (chip->mf) { + case EDMA_MF_EDMA_UNROLL: + case EDMA_MF_HDMA_COMPAT: + break; + default: + return -EOPNOTSUPP; + } + } + dw =3D devm_kzalloc(dev, sizeof(*dw), GFP_KERNEL); if (!dw) return -ENOMEM; @@ -1159,13 +1174,23 @@ 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); + + 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->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; + } =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); + 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; @@ -1182,8 +1207,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); @@ -1227,8 +1254,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 2bf2298711e1..84f0e728d300 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 Tue Jun 9 01:01:19 2026 Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11021139.outbound.protection.outlook.com [52.101.125.139]) (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 5712639AD51; Mon, 25 May 2026 06:24:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.139 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779690280; cv=fail; b=ZzwEq82UPeXXxDVxFG5f1mTQQ1hJEExoqcqWQChR8PP78Mymvxt6emxEPbqgR45MvsI2zbcGQdeK8Q0HAsdEie5IHhLdNxJe/uf7h5CdtDcW5M45Aee6cIIg72DTklRakwMTzMrAomutKITLn6LmVru8Xhc7PlA93oaAQl9SCq0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779690280; c=relaxed/simple; bh=aEzJUU5qqmOdnnGHT7yfOOaIMKdecQh6SOws1eP9YSA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=gRrbt/su8xkV4IlSjMUrubOMovcfp/7ztRrS/kjhhnaPYxDoPjktLJTtcQNKu1OyP648ybd1vY77ZB14DLYtlwsuQYScRwrkn1tJyDR4yaLsF8hFTWls/CkocX3HCkLdDq1hIjxSZu4g3iLRvpQon/8ONIPpg3Mow6jHeXAwZIo= 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=F1Nk4PfK; arc=fail smtp.client-ip=52.101.125.139 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="F1Nk4PfK" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gK2r1UEEaLrg84W9gfAqPUSsOn71mDWNTdQl/3oJfPIbQMl+B0f6Cp2q5Z+PKJKfbDlASBoEeArxH3QMRiY2WXKl3vEdMSmfbnNSI0u23C/a3XD/1pBap8kr1jyMCw6A5g8WTaPn2E3k0TXDUtRyuhs6jrsHxgRKAENoHqvc5bKdWfYt17ymy3cKOTjE+U0tZ8nHV6VDAtyMNRtlp+LQLQE5gUiGwG+zOOVG82YnzGFIcZhn/W8LaPbZIMPtcgmMo1FDbfngWe+kouc/rpib19gGe/qmHAz0CvZdOajtPx0a5ktfxtmmWoXfmyqpXfYoPK64MgFiNv2SuWL1x09ugw== 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=KddqGTnPnZoICr9X6RRjrjjWV2weoLREqdWZM3t8rYs=; b=iBG1Pae7ct0rfycO2sDEm4McadMV331TJsFbFdQXWawG7wjy5jiaNDno5YABQL3xmE+Ky6RQ59K6qc6VoALLQjChuJkeGBbF3vYzB6C2K6HBc1oOu5EplHBbYTPZ2tTvanAP11Zpi3JpNVXX6DhSyElpFTldiGnbDXz/Yx9jgt5zuAECgo7JbM4AHbvwAykaSA2mykodhu7u8WsNZwQCMGO41w/5bU82fAW67ZV49j+bKSx1O2J57ubvuzLw1l9cCK/vd0ectQpxsx1cAkBy/TvEyrfQyMh30faQ6foN52UTs1SGp79VC6Sjjz6Kqm/Dep66j/VGQyyqYSQ9XprA8w== 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=KddqGTnPnZoICr9X6RRjrjjWV2weoLREqdWZM3t8rYs=; b=F1Nk4PfK4wIplJNsGCMyvDkLBa6Pn00uxl7r8U1udH9SKYr/BbHznHgLjO0HztSONux0rZG5vVxQgln7m+/RU3BkF2i9zabXfbG5Zi0gZcSn/WCNwkASC7GN/MmByqHkBcdjTG5zDluk4jD3+fifMdC6Gn5plD9+06s+VQvOY9g= 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 OS7P286MB7796.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:441::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.19; Mon, 25 May 2026 06:24:36 +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; Mon, 25 May 2026 06:24:36 +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 v2 04/12] dmaengine: dw-edma-pcie: Track non-LL mode in DMA data Date: Mon, 25 May 2026 15:24:12 +0900 Message-ID: <20260525062420.3315904-5-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260525062420.3315904-1-den@valinux.co.jp> References: <20260525062420.3315904-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP301CA0086.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:7b::12) 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_|OS7P286MB7796:EE_ X-MS-Office365-Filtering-Correlation-Id: b9993feb-0de9-4e49-f7d4-08deba264b3d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|10070799003|376014|366016|22082099003|56012099003|18002099003|3023799007; X-Microsoft-Antispam-Message-Info: XfA/BcHnJPBMd4pJfTAhr1YfR+F0++19ZBF6LbZb8dRc9vNb1fXPZulGeg8RTsHAtMn6N/lCdkTEIoa0srl+BnqDYKZ8qdnnrmGr5q57aVxGZ9YcCfSmJbQ7cNsJhljLRh7CqTHYVHmaqeM6nB8ZSOYtZF9iNt9FSlCai1xHSSR6UKV1NalqC0+kIxs8x+nyZ1FTcH7LYQkzzFTrslNgKaOMn6v114Yid67HZm/X6sbD2fB+KvzISzl0ig3Z8E8YLqItTlglw4ikKwDNjjCOPfnMRmuxoW0T42muMcSAgGJ4kciuuYRs7lHCLz4YCDTSOAQjKdvkRaDwRCAZ9mwNSP+s+I2pA8i+kkKoKTIAV2us/J+8tSo2h0+VXXPhxDtaEk1l+o3VY4X+BQvuevEZCChLVZ0JHMcrZFDNbhD+Dl+lft7K916JtA2Jwkt5716oay7HBI848XrNlCn7J2dU4MkyIEw/Q+GukMsRuJfpG/80b2k3QOS7LbD65g9O/vMuzZZy4yDX+m5SWHWsYnnhqQKymb3BRiGXl5CG4iO1ebS1bE8yEKjL4UyICZZlF54pyweXEzkLQINEurum7DHQVH3G4mBedORueLE0N1dr6roBQrMvgcwmcbh3mSF9CYSjaTUG2de7EKQFVHxxlTCH0Mn/kzY/u2nmjQckIOBw5EpqL95JsiWDYVFpQqPDGxg0 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)(10070799003)(376014)(366016)(22082099003)(56012099003)(18002099003)(3023799007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?pFTt4fa+Fex3V0Bd7OD+bEPe1npUJFPzDc30WQGRODW0zi2EHpdU9+FjrkkM?= =?us-ascii?Q?jTxFRKptT4Fk3QQmIovB+pMgPhbbnuWIsxvLBPkdHIRU9/2iRF3mBremCcjL?= =?us-ascii?Q?2sdV/nIwvpTBs0qg/4RExZhFLIRmCgX4CHrye9YHnOqQu4aR6fSSfbFrWW4R?= =?us-ascii?Q?MvdaPEbDHjdcz1q8m2wjcqluxQmsG5fg7xjkp7c38M8ZCuuBkPPBWZ+6eHqH?= =?us-ascii?Q?GCKnMqlIsXFY2Y9hdOMbMraDCTmDG78X9TNv5w+CronyMv6EkUxn+iT+5cxS?= =?us-ascii?Q?Kiot4o/FmfhKyM1yK9V2rIw8o9iIv2vl2DYlu1LCpT5dPZfDDWAAFJNnUS7H?= =?us-ascii?Q?pqXvSiNr6l5PUIdNbD9Ww5aYThsrVO9Qjl1XrSBLFsUqLmjM/8YJ33c0ofbC?= =?us-ascii?Q?DbBbmzvrvk+YaCvA3mclCJ+GTH/aUOdXIaEUw3dSThLmDgl2Bun6PdHR+YJH?= =?us-ascii?Q?BJK3r0NVbwPoh86gGqEzIYKXrNgnsBhwmBgSpzFMBcohZu9135q0F//uvAk5?= =?us-ascii?Q?U40cM9oFezpPyxtT7Kq8cOvQ3ectPXXxCKiz18mkTKrGKiAVQ5BB14eNDLOx?= =?us-ascii?Q?ehD0SvvLxOtkncn/evFvyH1izkeyS3UVkg4+TO12Diljo9QWgTHsV2P8TFqS?= =?us-ascii?Q?kMvNp8HfxmRyh+3MU62J7Z2Rsjje14tiuG67VoEGWBrSa8FvSLwB2x2Jbvqv?= =?us-ascii?Q?SAXm3BDKOysE9Z+/TN20Mbsov1V1rPev5fZ+ZF/rjaMRLPKkzY/1EcNUHNtn?= =?us-ascii?Q?Js0u+21jjzknm6F6sRX+rLD6BoJcSdom9Yr43CaAv0hDea53uS8PAiKZ81gN?= =?us-ascii?Q?EnEgj/kr/Rsv/XB9WHua4/oDAS/jHVJ4nXbcLvoEOeuZUJ9hBEAJpTZxW7lZ?= =?us-ascii?Q?Sq/tejr2EX84kvPnbyvvAtAhnj/6P++qkKlBuzSgycbq/ScDOpalB1KbOCOY?= =?us-ascii?Q?FvGOo2mRMtUDQw9gZpt3FfUyb6VJeSplvIS0KmDcapcMkMjXfMGUnx6r1cTB?= =?us-ascii?Q?iw/XkHCMeiSi0Rvgsljz7YY9u0IdRbST4rtQGs4A9IDD/BmUqz56HrFyjjnq?= =?us-ascii?Q?BIuIWaJ32uVRpQoWkLbRml4u50PUsNns0AbkWV8InuOHHQMfh0IjHgirHLDI?= =?us-ascii?Q?zxTJr3aN3t6XCSV9gcwRKsFVPJu21JnKryLk6XOgVDH8S7trjw8olh0JWcig?= =?us-ascii?Q?qnqJUbi+6UWjMLyal5cJOGGZen9FDTAFNy3k1XdcWGO7lhWqtHijMh9lJCww?= =?us-ascii?Q?H8ILvTjQU3u/hIdXRDmprKe6JwQwZP1V+AcUOKAqDkcmSxVZ8hwUSbobbcDY?= =?us-ascii?Q?ooHcazjOucwHJnjeoyQjghN+Y4VT+BHx0ndbEVlXcv5OkhUvEiKwbQJaSJFi?= =?us-ascii?Q?a3ReXc2qJ6XXzqtCo82lN98mW/AATcPTudY39ZHYMA53NJ7zddAlqZa4CmUG?= =?us-ascii?Q?ELjXl3PExFLWSaFfLOvu6Ya/zaJ20LH1+06vgjCk6m8Tw21tWmDz0zzTIKpw?= =?us-ascii?Q?5IHqNF6ed34mRSFr8cvZqR7wKbgKiE3ff80xDeVcQOfETGKwNDWUhuXrUIA7?= =?us-ascii?Q?4xGSpOySZN//5jbnauBQdMzyMiApo1mPmN9HVqH5Rp0BdRJXtcjG/rz1/SfL?= =?us-ascii?Q?hA0XQmxjd8Xcszbw9aKjtlymPZUXapU0FQiiBTkbomAk2oSwTJOz4pC1DIew?= =?us-ascii?Q?vxTy7RtWVaTCahwlgddF08J5Bn7KpCXd8dVhMrxA+fAXYYco+KZYibmcBQ5K?= =?us-ascii?Q?/stQnpj3ujIXPmh6LQkWu3N+b7CnhH+llxl0BWhxfXJwawKPPtyF?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: b9993feb-0de9-4e49-f7d4-08deba264b3d X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 May 2026 06:24:36.7722 (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: iRJfzBVw1waQSJdPuCi3ErnYqc6jszCSDCIoklGxKPC2yyhRx9rsrUe+6g38T1kZ/0HYvTSyWdYMTIMmC9k9fQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS7P286MB7796 Content-Type: text/plain; charset="utf-8" The dw-edma-pcie driver copies static template data into a mutable dw_edma_pcie_data instance before applying capability-derived updates. Keep the derived non-LL mode in that copy as well, instead of only tracking it in a local variable in dw_edma_pcie_probe(). This prepares for keeping capability parsing behind match data without a separate non-LL output parameter. No functional change intended. Suggested-by: Frank Li Signed-off-by: Koichiro Den Reviewed-by: Frank Li --- Changes in v2: - New patch, per Frank's feedback. drivers/dma/dw-edma/dw-edma-pcie.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/dma/dw-edma/dw-edma-pcie.c b/drivers/dma/dw-edma/dw-ed= ma-pcie.c index 0b30ce138503..e92ff5dc6f67 100644 --- a/drivers/dma/dw-edma/dw-edma-pcie.c +++ b/drivers/dma/dw-edma/dw-edma-pcie.c @@ -72,6 +72,7 @@ struct dw_edma_pcie_data { u16 wr_ch_cnt; u16 rd_ch_cnt; u64 devmem_phys_off; + bool cfg_non_ll; }; =20 static const struct dw_edma_pcie_data snps_edda_data =3D { @@ -312,7 +313,6 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, struct dw_edma_chip *chip; int err, nr_irqs; int i, mask; - bool non_ll =3D false; =20 struct dw_edma_pcie_data *vsec_data __free(kfree) =3D kmalloc_obj(*vsec_data); @@ -344,14 +344,14 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, * the HDMA IP. */ if (vsec_data->devmem_phys_off =3D=3D DW_PCIE_XILINX_MDB_INVALID_ADDR) - non_ll =3D true; + vsec_data->cfg_non_ll =3D true; =20 /* * 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) + if (!vsec_data->cfg_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, @@ -404,7 +404,7 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, chip->mf =3D vsec_data->mf; chip->nr_irqs =3D nr_irqs; chip->ops =3D &dw_edma_pcie_plat_ops; - chip->cfg_non_ll =3D non_ll; + chip->cfg_non_ll =3D vsec_data->cfg_non_ll; =20 chip->ll_wr_cnt =3D vsec_data->wr_ch_cnt; chip->ll_rd_cnt =3D vsec_data->rd_ch_cnt; @@ -413,7 +413,7 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, if (!chip->reg_base) return -ENOMEM; =20 - for (i =3D 0; i < chip->ll_wr_cnt && !non_ll; i++) { + for (i =3D 0; i < chip->ll_wr_cnt && !vsec_data->cfg_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]; @@ -440,7 +440,7 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, dt_region->sz =3D dt_block->sz; } =20 - for (i =3D 0; i < chip->ll_rd_cnt && !non_ll; i++) { + for (i =3D 0; i < chip->ll_rd_cnt && !vsec_data->cfg_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]; --=20 2.51.0 From nobody Tue Jun 9 01:01:19 2026 Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11021139.outbound.protection.outlook.com [52.101.125.139]) (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 E9ACF39E171; Mon, 25 May 2026 06:24:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.139 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779690282; cv=fail; b=c/4Fu3izArzNAie6Aek9dG4cllMhNS/TlxkWP8Y/8XIpFGvqfZOWaH29f0CNsWyl2p+sFjnyJyFP2EHP62rsK8f3xpOwUW5+92eWSxbSSvzw5Bb2k2bve0v3IwfqRo2/CBgSeSOQ0AWqySobHjqHA3xIT/JBUtOziYQt1Do58NQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779690282; c=relaxed/simple; bh=PYT9d4FUJCKzVIb5US5Y/CXxgtaxcSPnziTIKEiEvTY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=S5GtCPqT3h5pdHvjUXRuXD94Qm3bHDZq+8zSTmSZehEpHLGhARLWyWfee2bQKKA9NVNvpoV/twQa2jBhja0erTNQ1nS61gKVyZKKmxKFyxTAck6VG//TtGDE4Fb6uw0Pj8sZbv+cdsdz8kreg0hZd1w7uq4czcAGwkuJtlEd9xc= 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=fWhMqAmO; arc=fail smtp.client-ip=52.101.125.139 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="fWhMqAmO" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=W5BQC7dZ+exRhEjhv4JVEhhBuEc+lPEw9HoXXVyos2VudVy2lAjfHMy1cegWZCAnDoBAKGH8s6zZezt41goS3pnU3t4JwVDy6QFiA5mt/GAsRuFwwhEx6Tp3y2goWRMpuQztthCglXZNoFpcLJlOtguCNYlQtpSLGfjAw7p8cpTISHesJG8ZYKS8RR7yLopDaFzUQcmv1e3/jX+GlpLaOqmdcgt+9Rt3azz32BMFzu1QuJ8VWa/0IiCAtinIz3Eb4s1p3VlD5wr52Xmo580h4597mm+t65vjZGeIVX+N0XCzHoUuwVhPsPkKHtJksHqBTZ0hR+TQMaiLDRjhoGu88A== 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=Yq5gshzXgKo0AWF8OcKMp2dfP46dM1LZRy2CBLjubOA=; b=SObQZ3iXf8axGxA8/CyPevDMGuiSEJvZ0gin5qvBKJdMdryvUUkzTAj50nlzocjjIh4v+vIGkcxZybfXZMYYobkLxMz/lO34CwOyhM80tTjun102TEqXhlqLFUncn53pAvyq0vY0BOFK8AXuYRhQgCauysuTopA3InE3znYoJvV5mHJb+XnKjS0ZmI3o5CUjclQLEaLGWV3MDwM2Xe4SfWN5EzdOe9odUPrQn6aBecNzpqFhvPuMGVqol831N9OM/zMs7aPBygbWf7Fw3uKRxI+YPtbgnTc8fDmyd0Xp39YmUSi/m44drGuykfijd7OiArdo+6GwGTF0kcKXrdKZWg== 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=Yq5gshzXgKo0AWF8OcKMp2dfP46dM1LZRy2CBLjubOA=; b=fWhMqAmO8PSIPb+zCHcZwzeDex8ahxKreW78AclqmXkT8g+fPabaZph1n5D/VkBtfVY6gS12Rgial2dBWtl6VvJTU3eE62mUG4CHdoz5wWRl1LM94pbMgExcOyhml6IKucWRG8+kIvMZFPl0on3t3eTy97WbnW+J8GiqDgoNgrY= 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 OS7P286MB7796.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:441::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.19; Mon, 25 May 2026 06:24:37 +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; Mon, 25 May 2026 06:24:37 +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 v2 05/12] dmaengine: dw-edma-pcie: Add capability match data Date: Mon, 25 May 2026 15:24:13 +0900 Message-ID: <20260525062420.3315904-6-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260525062420.3315904-1-den@valinux.co.jp> References: <20260525062420.3315904-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0147.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:31b::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_|OS7P286MB7796:EE_ X-MS-Office365-Filtering-Correlation-Id: 3507db32-c583-4c37-15d0-08deba264bba X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|10070799003|376014|366016|22082099003|56012099003|18002099003|3023799007; X-Microsoft-Antispam-Message-Info: VAiyBHBOV4dbGWXUo5xgpTPYmyuXoVHw5bMkVfwnIycyXUZN2vPFTpPWiIRsVymFdjgfIYNJQUkLde+kVF1vTh776IbJxCTtKV00xAPoxUOsBlA3QZ6RStNjdzJAYN9reo6MqefxwdDj85ZCUsy9Qhaa9dUzwGE5CxZE9svxzC1AN6m8Z0psLjXmh4Vi0XenRgixvjS41bqh5Zn1Yy9daw9rdrV+TKLPMfc818VoAHsNdxrAU79afJKwAzU/QGBAzOOg9UDIKVclrZyNR0fZnvHaVhVdmhvewQCSq00Ipxu1kK6jojX06mEmh0AFQGmG7gCOqAEPG/peWutwYeEbJQ8dBAxW1u7nzg/Mdm9TrQmkDOs/51YRtlbn5ibvHsuNO+NSWeR0r1kpopRhR3p6AfjGCOBtze0d9pw+oex6VDf9zngZa8vfOE9ZpuNYVdODdqoQa3hoyWXaLrgRSnSzk3xFJ4t3J0qjwxSChPk4MgxeCqBrax8OhqJhDrzFdZQaC4s8dlPqYfJ9CGrcHPrL0qR6AYoKdOJqGKnIA8A5OoAyIkhyHzGhdNzYeJD8B1CjG0YppEdljxGklRrD0ODh53iTRRON81ygnAShGocsE4C2jBzuEKOxNxSAk4bVu+PD4JrKd315FsVF3eCBuwb4wbdRvC3LDOkGOcsEGvkd+ueENo99fB54jTabdAwN+iTy 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)(10070799003)(376014)(366016)(22082099003)(56012099003)(18002099003)(3023799007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?zp416oZa3TLNpjKnN3NgDul/wNGosoxnWCgFLxsG/gIWwD2w+JtlD9rFv93w?= =?us-ascii?Q?FxsAoCGd9hzgzXoRn4uvjpJZSlf4yX6GGNSiogZcpV5idbuI/BvuFUK13OEn?= =?us-ascii?Q?gEqulpddGNOSwPNZUIwJUmwT6EC+l2ktXV42HmvISY8lCbzefssGfXJgwUB5?= =?us-ascii?Q?wzNz2a8hrUiOgCTt/6Lrdvdqe3zVxQcKTs+CYt2oFubtKOmiY4p9oPYTMOrn?= =?us-ascii?Q?UIbqW87qih9Py3mkhqtcZisZY9EW//uV/aKWL/aUH8ZePqI2h1or9IVVMxtD?= =?us-ascii?Q?9AmR1en4ixJX/RS6WvkD2jMvnpzZaG8ZO0oQ0wSupiw6PM9IziDpO18sNbVY?= =?us-ascii?Q?IOZUM0+NygNkrvbn9b6Xs5ESQ4lCQDWwLjPRSly9SnxnySYGXZQJBWK/lY1F?= =?us-ascii?Q?GMSgivuwjuTL0t0K4dkHTvOyocoNTfH2DzgTejSMulzUngPUktUXZPVtDTsT?= =?us-ascii?Q?iLBt8PbVBkvEDb3pk+T3ckZZ02kcc62IltxvSZE8KwE2lv+8z0Rp8YiOeBKv?= =?us-ascii?Q?DWqt3WgkhvFTVVcdoqnDLSl8tFgNPwx0gC0axjYf4EAq2n2rzCmorSrSB5eT?= =?us-ascii?Q?CzeA1OmGzneCyJVCXxicKEW36A0e2lDIyDvXvxCdel45cUkQd49ctrQxpMOm?= =?us-ascii?Q?02TQAIiUvBgMSgC+5P7sXibUPFqSBS8kT/fyU9wfJAUY8ojwUwb2/oQIXLhJ?= =?us-ascii?Q?bZaZ+2ZLQRaym8RYAqqER2MGbuaMr+jj2nOB+U1oeHgfUJucPw+DWzM1Yog1?= =?us-ascii?Q?pY3P6IHqpNTygZU/4dvnKJFYfaPxxAo9Id69h3/VTE5LFW8qPdfACeU4fNDS?= =?us-ascii?Q?Ghod47X+mmqq/xUu077mB6g4IftKQYere2u1ENPoZvrH4b+3e9hQw4ofys4a?= =?us-ascii?Q?Qc6sZfKopWkTXHIqdiD4nTYuc8wT2+Yl7etu2WpFRn6FZ+a5ibt74e3mnuox?= =?us-ascii?Q?yEOM5vGFHkZy+gvMzzE8zvHKRcoYfxMW2XxkWmBhEmyhNcGftS7ZBa36VG2F?= =?us-ascii?Q?NIy7y20OYOAsdBmL2+FyCpztFg/HgJXtmwUOpknSTm4fCh4Yzq+dwfFZDm3f?= =?us-ascii?Q?xLGFKFstk5BaQDDkD5fij4gEfE5aWbZSPe/oFj3sRQmKW4p2pw/ZUZagkWPH?= =?us-ascii?Q?Dkvv6qnEPjBAHaS9F7MVdDQxfJaoFcVSXnb08X/a7rOQ9ZOnuMUfu8EBUWap?= =?us-ascii?Q?bAd6l6/HAv9Ozwo96vY4QNnKAlQmVmgY7wNsM5vbX9ydSGD7ie5ztrpLWrDi?= =?us-ascii?Q?Jz7qZVGYWlWJDL4K+CivN9HVpDrry5+FYp5U+0uNvHBe0BDi3yizo1kmtCm6?= =?us-ascii?Q?0lY1OR4qWf9rKUe+LJIPsIAVhd0UZKtdDEj0qJ8Yn54dq5caRtCDSkwKaxf2?= =?us-ascii?Q?Sl6BgZAEdt94GedNGwQDNzDKqiYtgq2KwFpsMSiLv4Ulrgs8MG1YVpl5339h?= =?us-ascii?Q?LHal64CZgChgd9Cnh0jIg9HgcSWKMNrqtnP+lBkCL7+E+sB7RnAhhyGNsT8K?= =?us-ascii?Q?184W/BhxTpEgWMsOEu9Rc17YTEbsCJStW6Sx+Brj3emzc0xY6yqkuKweyVCg?= =?us-ascii?Q?Ew1EZgimU77iibDWEFv4ZYifxEZ3u5Y5yNUAenWH2YAYQjJrhtpGf4qkBseK?= =?us-ascii?Q?RjJMXQ1MTDz2te4iRhqJntZPQ1nI1uZ8AS/D5ArWhm182sGNIQPHefF370SP?= =?us-ascii?Q?ODeyB0FRuPi2iUN/UWfHDGoa7/KOkv07Arfa+tAdUu3gfmDSlmpOhEkv4edX?= =?us-ascii?Q?DbXNvs3X1Tl9sYTfMgPQS2l3kBimgv8rRHyBqckJKenSJQddwXoi?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 3507db32-c583-4c37-15d0-08deba264bba X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 May 2026 06:24:37.6108 (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: Mkau258GayQgUyvyFhiQeq+doWiAg5ZxgfzrLiZ1u5rFdehOJd3VYq33t1uOYKpqr8uIocdks5KvuEecdDl3iQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS7P286MB7796 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. Suggested-by: Frank Li Signed-off-by: Koichiro Den Reviewed-by: Frank Li --- Changes in v2: - Keep non-LL mode in dw_edma_pcie_data instead of a separate parse_caps() output parameter. - While at here, use a named .driver_data initializer for the Xilinx MDB = ID entry, per Frank's suggestion. 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 e92ff5dc6f67..5a6f5af358d0 100644 --- a/drivers/dma/dw-edma/dw-edma-pcie.c +++ b/drivers/dma/dw-edma/dw-edma-pcie.c @@ -75,6 +75,19 @@ struct dw_edma_pcie_data { bool cfg_non_ll; }; =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); + 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, @@ -296,19 +309,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) +{ + 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) +{ + 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) { + pdata->cfg_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) - vsec_data->cfg_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 (!vsec_data->cfg_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); + 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 }, + .driver_data =3D (kernel_ulong_t)&xilinx_mdb_match_data }, { } }; MODULE_DEVICE_TABLE(pci, dw_edma_pcie_id_table); --=20 2.51.0 From nobody Tue Jun 9 01:01:19 2026 Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11021139.outbound.protection.outlook.com [52.101.125.139]) (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 B36CE3A3E72; Mon, 25 May 2026 06:24:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.139 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779690284; cv=fail; b=QaGrFc+FvIPNDPOEAejdtajxf2ykpghXfGjUEAoScZY6S7Hgaa0mmmGGSRGcKUKPz0KOXipo8h5ceOcW5lqa/fle48eXOkO1n963cFDofzptdK/a2r3gZ9NxTV2J7I2rRX1SVWAjRXVMI99L3TMlx5vrkhazrVOGSIFwQIvEBdY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779690284; c=relaxed/simple; bh=rRP+PDwvr2b+Imexx/zPXVV6xNLjpMLY3hbn/10a3k0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=sV93gge0l6tHbMHIUMW2j67ybkbDr0fx8m/DnxwS0hqSGi0y87M7yKCPgSEOXTVcFQu+8jEihW9gJvrLF4FZKEvHmEu6JomypD0jqDM1ArlbwTsV+fIlnaQ6mzLRZQJnKDHJ73t2EUutL0DS7hjVzCPZOimXAdRY8RHi4MxYS2A= 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=Ea1q0cgz; arc=fail smtp.client-ip=52.101.125.139 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="Ea1q0cgz" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=eizt+Ji2sblPyWifQOU2TfD+DqUefboYu/Ij8eeDZ1zohTiT9KCS7+uZNvvODLDkrY9777Nkk7bMjI3IR8iF5jyMGwyRxB8HlMmvYGq5hOIo6vYExxz8DsludgykaFcMx5BxRX1xPT4mRdIjlnQeN3eeuXUxI9YXT9K2ufjB257J7SfDXeYMURY5xzgz8SM/YZQOwfLS/D437WpNDnmglBO6vgkPD8Awzz0DSylOJdSESl6HGc9Kxo42Hd1if3QfYy0UarxdNOD5duB0Rx57ux90h0Js+pHCHkl+O/fSXbLsOqiETxopDROri85dCqGVXgK8ulXZi3+JrsiLlUgXQg== 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=HnSfefuvb2K0iHOeUjSuQAQ8tg/8kv3LBkAyOGoPm5k=; b=TbO+jA7mxqKBVAnCS8BBM9Wuts6aTmzJ6Posf8A4Xh5cX4+7xlIG5rIV6/xtirYtIZ2ZW+Ynf6aTH2AjoKjYiZ8WjMVKUKjARJg+DXtRX0pxpKwwAl3ONVTi/RCswYGqBIht5Gn+4Yx+1MAC+Enxu7R7iUupnlHYJxX2EyBdSL+8q5lp99sNqrI95ym0ubv7F4FzptOhVMIsYjEE6/Zs2/B1ukMzjaYwzDQa3lESNya5fROBQvEXnbCeClkiMA37g5DoPWVKeMSdaSFmPy1RKgwCVMH/otAwjlm9T4nbm3RSjsVUaKfMNroMJkPVKcWMwKpUVmMg+RsqkCvpnHS1Uw== 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=HnSfefuvb2K0iHOeUjSuQAQ8tg/8kv3LBkAyOGoPm5k=; b=Ea1q0cgzXENItt3maajUrEZvXTwZ1gHrKhEATteKZk7kQ5QxzKVm8G1cMBMqLv9dpDJmvWfTVu7WPyX5Gse07N+MAXnV5FRGbyFYp2DHNOKE2rgnDI2ZXhtVfzvNSgzPg+hPKcK9AF6XQ+socwQ/OzR4fNkMCXBGw/9GVDibrKg= 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 OS7P286MB7796.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:441::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.19; Mon, 25 May 2026 06:24:38 +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; Mon, 25 May 2026 06:24:38 +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 v2 06/12] dmaengine: dw-edma-pcie: Rename vsec_data to dma_data Date: Mon, 25 May 2026 15:24:14 +0900 Message-ID: <20260525062420.3315904-7-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260525062420.3315904-1-den@valinux.co.jp> References: <20260525062420.3315904-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0068.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:31a::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_|OS7P286MB7796:EE_ X-MS-Office365-Filtering-Correlation-Id: 6444a021-fc54-4d97-5093-08deba264c3a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|10070799003|376014|366016|22082099003|56012099003|18002099003|3023799007|6133799003; X-Microsoft-Antispam-Message-Info: 3QJf25mxZYTlE4Dz4GgZJQ3n7xB+LeQ9jZUCjMhNAnx/nXbJvfWyJjQ9bMxW9T2bFOVeNT4Llg1RsLD0rcBEJ2lj5wxZE0qcDkFfm+76lwGtonf5C8SHOjn7j6YSHli4x7GVtBQ99ZLRxZb8Uc/KHYcYY5p8RhU9rbZhpnU/WyFBlHwP1OIl8/d4N/L6ttfiZ3su/41R27Oy/IM6G4BKtrKRA5DEa0pBeZpPEdb0IHu1zwn2C3XXfFzk6bqvqxEoO/n3+B3eUzoDwyNb9GN6gh6liWkfdbJc6ICw/TEBZUR9VirexlILNMiuxyDwCkMjTNWrDbGkgvkTLa3cLruIRo0c+rDDvhrWXq8lJwUGP0PyuhlcvB5OL83kq9yTLwJr/FRarsEYeBnT0nxi+UBLyWS8T97036aSwW+7DIXsrxbCZld5A+124Zyzzsk+isVp2g6TKsG5AH8Uc7YdXdboTLAaKGn3e52F1IGbvD/lLTkFKmIULvsv2gyCROqwqtnB70SZiPNWayZYp0npq+1u43rbfC4q/nbiADeMwFe6dNDcCoq8vMcR0XiMZquuoy9Q3A4kBlfXHbrDq9MOKnSb6EFvp7sn4wrGrekNGq0KPRsrk79qeL4LiVcH1gHxlIqx3MxZO7rdYWHoOCM1AnCGhTYussyfLag3mV5q12SiPQa8wi8mO5rWqBLcc7vR8nCv 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)(10070799003)(376014)(366016)(22082099003)(56012099003)(18002099003)(3023799007)(6133799003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?mAK9MEpTE8ozEpnjuXRLojlch3fVIxcHhJgRjXQkdzGKHuo8diqKg4OZNgxr?= =?us-ascii?Q?eihlv0f9tFQufl6smiK9fCNxUKqcx0PFR7Vfs91XO2oB0g8N4aH0hb2E6auS?= =?us-ascii?Q?LcstF8igkvV3QHPxwBTOR33nJqEFC+TQ39iTn6MtKs9F4gSVczXJBEfYboMF?= =?us-ascii?Q?aeWp2HZfrfSFfYhiGMKzaOG9x5ct5usCWnbKIuq7Rsdrn9r0uiPO4dd/zZlo?= =?us-ascii?Q?FjrMCfNTykvvuEl4lllZJfT9VKrhuXlZYc8nldOVG90SpTXPUyWP39FG+4t1?= =?us-ascii?Q?SzomE4ItEceDKRROcJUsY93aYUSMVR1Jw5uTyhFEysK4E7AaMgw0z6AkZUa9?= =?us-ascii?Q?sCAuLNp5mA+ROSSEGr/tGfwytbbs26PHzqJc9iOGosy7KfHMVNz4vOjWcCUt?= =?us-ascii?Q?Mvxn/MLBQSGPszgFaEZJZ8UUP1Q/egfbrEFbFc1is3NAjNw8ONsNFosZ35JD?= =?us-ascii?Q?oMMNUoLPjj9PpJNsjbrpniHUn1xfNys2nTOeNroBh2rn9LO7Rn8UriDE94FI?= =?us-ascii?Q?cRB4rCBaTBjSMevVbFEuO7x4mnYd/D/45ImAw07ipduimrhcMIoj8NbOz/pV?= =?us-ascii?Q?ek3qgHWmX12xA6VYbtpyqIAk4yYiZlxAqJQ9N/gC1aIrH06SfaEEbb2dkJmy?= =?us-ascii?Q?ccEAnTV6wmrJMncimN1rxg05MAniP5mWwJf5isLV5+0I1M1JjG0feUX8dBP+?= =?us-ascii?Q?i7ibLMKIEuk9BvoMQptwkzlSw1iNXjMR6P0bonol9PGGwqLfNve6zwkp3PHD?= =?us-ascii?Q?iqDHvvUJBrzzSnWy/e4KQ/+Olcnqh/a3KCs8ITOA9ycniln5jWcZNulUgzVI?= =?us-ascii?Q?GUwWAyGdNTXU8fisTeNZJut4NbV26d0gSvG6ja7J0cwrDDUkAJ9Ral97qQOr?= =?us-ascii?Q?/EZh4XH+fpTiaEYx5sI8ZbqRq392JC6J6PbSvhm0NFjCU9C94GNZsg42LSvQ?= =?us-ascii?Q?2awyLi2iCNCqA7tMcZSojzAGSQqXvQGx+G8pVzvW/Nsgzs8fi7+uvR8qCRl1?= =?us-ascii?Q?maKer5QvlXMk2hQsmoo4hcyCbIeZZDCAzgf1wTYsK86oLWt0svaguP3hk8At?= =?us-ascii?Q?n1L9Qgb5PW4j8GwR8JZuesPz9jK6vp9E7yJZ527Zgpdp9QuaOrEAiVmPma74?= =?us-ascii?Q?YmyQgYMbGGbWvJTxrY/1a6Tjb7W4txjJ/o4fMB8Fd9iOlIBqizhfL2m6rCmB?= =?us-ascii?Q?T5YudoC5lbJ8WH2av9j1+mA5v/GvCxGXKCxLAZrHlZ0HsXZwGb61IbaF4QZx?= =?us-ascii?Q?VEiz64uaO6fX2Fdg3YkM+kiUWLneBoZLFG37OzF1A4oZVYiMIp+GUPUgVHEm?= =?us-ascii?Q?cBNEST5otB2Y/ffAgmfoxPxNlKO7bpYmOE0LMYTO6toQAnzvulpa+kAMeT0L?= =?us-ascii?Q?avkb8mNXMrZtwdznvQHZ6QVe+QTmY6wYPImJmOEB3nA9rvUtDhkcL1HmERu3?= =?us-ascii?Q?uLTqezpovLcdclZEjclNB1/CWPiDb33e+PRZKcA3H8A1b8fkxhJm6pURCXT4?= =?us-ascii?Q?cRol1MrGjcDRYstQm8d0OE68AlMaqOqLMQVKvbnGP7Sltj5f3J1chezJIDyt?= =?us-ascii?Q?k2Dm/SsZh5bPCh77nz3MBxqkWQO58/QKelY+DM/Lk7tKE4HQurHNfrGKUJ++?= =?us-ascii?Q?uAsOK3V1PH6v8m9GRYUCIrUWbrA29n6RaAg62irE8m221n0XD1OVI7JQ+7Zl?= =?us-ascii?Q?TQ2z/i2sgMKxRGqy+jLUf0cCrA6k7NZ7/f2wQlG3a8pVbI+u5qd7GNfW4hCu?= =?us-ascii?Q?wdd2UXagJBt1RZBCFnNKMoP8ByhWE/VHgev+VPXR7vlC4/ocMwyN?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 6444a021-fc54-4d97-5093-08deba264c3a X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 May 2026 06:24:38.4316 (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: meF8feiSHO5xAu81BMxojWRKW7DIrJ6IrL96LudrHVLoqqV6v3Pp9d8+hawaJC6i9ejfAW3ZuYAb/mXiwoslDA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS7P286MB7796 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 Reviewed-by: Frank Li --- Changes in v2: - Fix the commit title as Frank pointed out. drivers/dma/dw-edma/dw-edma-pcie.c | 76 +++++++++++++++--------------- 1 file changed, 37 insertions(+), 39 deletions(-) diff --git a/drivers/dma/dw-edma/dw-edma-pcie.c b/drivers/dma/dw-edma/dw-ed= ma-pcie.c index 5a6f5af358d0..c7362f1bf80c 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 err, nr_irqs; int i, mask; =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); + err =3D match->parse_caps(pdev, dma_data); 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 vsec_data->cfg_non_ll; + chip->cfg_non_ll =3D dma_data->cfg_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 && !vsec_data->cfg_non_ll; i++) { + for (i =3D 0; i < chip->ll_wr_cnt && !dma_data->cfg_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,16 +465,16 @@ 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; } =20 - for (i =3D 0; i < chip->ll_rd_cnt && !vsec_data->cfg_non_ll; i++) { + for (i =3D 0; i < chip->ll_rd_cnt && !dma_data->cfg_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 Tue Jun 9 01:01:19 2026 Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11021139.outbound.protection.outlook.com [52.101.125.139]) (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 7C92E3A718D; Mon, 25 May 2026 06:24:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.139 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779690285; cv=fail; b=XGD0x5m0rxVlKAYFwtKPm9YlpM+24/7PjRll/AB+hLeDCK2xAmN05yPQEPRkUQsyp92Bh973c/WAiWCgXmVGr3iaiNLHT77tN0DvlS9j2VgH6TwUSTFnm94gry5oaREMjHkK7eZdAzLvKrLONhPBr30typEbj5IlKHX7OA6RsfI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779690285; c=relaxed/simple; bh=dmdG/+D2uGA7SaG7RBncNPhsySvfqw5PM+PLeGI9sss=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=QIokbNpapphGEQVE3osrPk/HYXlEIsCK9ZhkoM8rJQKKclF4GODmJfpD1CkMgF8OgBsTMu1t+FfykSK/+IJQ9/1Ru5K7NNq2T5efnwYptt7QyYHbfTgpx6Hl/qtmVsOWb/z63SW4aDiYaogVaMp/rZphcJ91nmq3RuL/Gb1FPGI= 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=i11KuafK; arc=fail smtp.client-ip=52.101.125.139 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="i11KuafK" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RJbgFeOeA0NtLBnYpybG/JqKKpXIEujsZVzcHjYyRVUyf5oKHqahwFTz0C6Ee3T8+EUIZc/iHhzThtBZ0uECI4WV01dhLffJ16NvaSKYHhmLEFFwySZRjMYjQCqv6vKTMyF6HrnSujl5YW4eLCp/XcWSYEY2UfRqEPXTg0xcfBnC91YdxwjUd78SZTJOP7sr3rmQ7tYTPyp+RMnAFzj2/T3dHN7XT4v5hrqekhzNHyT1C2YgAwws3kG+ibYYKUIE1LC2zjl1CKl8P2aBzWBN3y8T1pPiVTgKuRWFChMUS4xxFEzNPUabaJz5NdkexHbOs2r7AisANEL/+2Ocb0Ok9Q== 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=gN/wg6M5BDdqgCbCpw9BvjvwjBvCqKAAf/R2PC2LiwY=; b=QwiDEt4bqwpxKtUBXUvB/diQAH/Vawx/hKQ1VDUvWRvzMyQpy2LRDPSO07kjFCGsfYM/uYvzdLmpVzlfAxd+nwjPvDMXquc0zdSx32q6wYgJTKPaDXTEcYvwR5QBVk5Q3/awTipTW3GlgqacZyAfmAb21YoA8nYVqd7CgDZ5jyiW3JsAdaj/D2ArILrC0fJ/ykVPCF2LyZyiA3SoKQEyk7GFUDv/FMvCE3phhZUMpjjb3O20pSEAmPalXSBaiqLVfSSRMaFxWqmav7c1PRv8b63WvXxjYfx8417kNPobu1DkFGL11q7/KXrXmly9KaJ4vXSkiBcFzn/aq5tW2arXbw== 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=gN/wg6M5BDdqgCbCpw9BvjvwjBvCqKAAf/R2PC2LiwY=; b=i11KuafKCCaHUW9hfpvLz0szoOFP4tU3CYAelXu5Leq/m1zosgweIcVh8Ng/oukdibH4JT+TKf+R03exJFr66ijH8cyrtVbUfUq0i62pvRD3CM5qiOVMuQPifvpUY1vbX71uJ2/4EQWioZgWfDoPIpLJU2u81OCnyUZGY8Rm1VU= 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 OS7P286MB7796.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:441::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.19; Mon, 25 May 2026 06:24:39 +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; Mon, 25 May 2026 06:24:39 +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 v2 07/12] dmaengine: dw-edma-pcie: Add default IRQ mode to match data Date: Mon, 25 May 2026 15:24:15 +0900 Message-ID: <20260525062420.3315904-8-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260525062420.3315904-1-den@valinux.co.jp> References: <20260525062420.3315904-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0149.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:31b::12) 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_|OS7P286MB7796:EE_ X-MS-Office365-Filtering-Correlation-Id: 50bec342-a88b-4dca-78f2-08deba264cd9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|10070799003|376014|366016|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: 8TRy6T3AtCCXv/PfUt0hvNKcetS255M9879WlCUvy0xfml2Cj7kfZ5CBc1tzZaj0rd+dTtGg0pu0V8OQ2Skvu29HFIratILCM/Gdp3l3cpia6nORNRaDSdEV9h1OXG1NMMo/uBKv7YG7OW2JGk05jtbKzj0CrIxcX6Gn/w/RdqefunY9bz6YcglhdtGuN85b/SJfCYYdBBZ3dkNj4Bc1OTKdrBQ5mCmiM4ICGx3oVOuqL13ogmmQcQaMjgUvfaqfqa8aSOwHjrLIW0nTXPN5gQ56xtOMJ6w/ZQ80WxmLDtfc2kQ/uXVLSXSFqQ19ld/YK/cZsXzPsknUbpqjkTLySj8xRApt7tjdkOqc+DTMxxaXl+g4mBjr/HNbPd7JA/RZ/1kWSIQ9IDYOsqsuxYUSNJhTfvd4V6mIrV0fPHq5xioF0czwpgeGD9VcsmFv98cRtc7vZyTPeOMSuMKN+nxvOZvGktdiXMqPTw+DjJIA7IHj2H/a0Xz6mKDODPy/LrJvgL959HvPQpHEktiBmSO7y39Lz96Mh3B3j0Q7PYs3auV8BPGNAzZ8McPRGWbypLp0lv5vC4W7lx28WCX2oj0geDBiDNvD7N/zb4Z2shWUFtojHlAye5q51cR1hNxnp8IEysqsZ0aYnsBQUn/yiYqZNPIUuO47LzJbfLghVoQK3rOWTW+ipmO7+A0BGHrQk1yR 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)(10070799003)(376014)(366016)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?rfNiJecu1oF8ZkEBenQDBFM6VuK8roSNwYOOWnEktGMa2fchAz2MWH2PTJY6?= =?us-ascii?Q?1W1vJhCNs3ffbbwGQBqKDXYEsQXduWY2RIhtV+6BLSUeTNmmAKQr1Wh9ZCIR?= =?us-ascii?Q?QEl/Ddcvh75ia9sDvx42j0l7GCnzDp7KwuXyhrxCW/cYuSuKmIenixriM6h2?= =?us-ascii?Q?4Xg95QidoQNqoIj1+MbNsQvSHRDg/m9TY6bITDxc46QtgD4GwD3wzAbWXZDu?= =?us-ascii?Q?MEoloO4u54X///iYrvWdGHd6C0uvMeAqTnFN/qqv9JsObI+9zP0eVLHM5k1H?= =?us-ascii?Q?AoA0wQX4cLXpCNjtOJUg0z9atMSBbyZAKmqE/w5Dm9ZHfogFrsxExG90rFVU?= =?us-ascii?Q?idN0o+iD8d59p0JbcA9qSzf3pJucdberfcTl9w5e01yOj8tYfmOQVpo9N7Po?= =?us-ascii?Q?sTYririK96MHqX/AJA0fXtwnmffi5z3Yq6/CFFwOe3+Rxn2LXEX7w4EFbdH2?= =?us-ascii?Q?DzL4H4PjaFF8CF70iitG4mw9qnSkj0nrqWYUt4z+PY9CjzLIrv+qCDQinR9W?= =?us-ascii?Q?h8VkD/4pZGNMsJYH0m0njKYg+dFCoVjtxx/T/PyHOfvTWTq6pRFD5HxMzMmK?= =?us-ascii?Q?wXde7fjzqn2SwdXPo9CWmtlqM0CMzU5f142Q6+jJVP4kflzkWZhLVo9o1/hu?= =?us-ascii?Q?I3GNlz662wiNMi5/I8AyetEe+IvXVrQzd+CXuyMxB4PCCgDb4oINC24APtbw?= =?us-ascii?Q?CJAn1BBE4+52rkDUDBmvVDU+/F35M1S750hpfW/YIMsSxcSAClM1s+3SlNr4?= =?us-ascii?Q?YLVVcg94xrIaA0yKInt+S5u8RWij3aJ+fa7WtLcfyHgqXidg/5Vm5raQiWNv?= =?us-ascii?Q?8GUdGwX5tBj97Amq0d/Omu6kAm4wPI7FNbUtpuIs4Wxu6wENC06DuYyNX3O4?= =?us-ascii?Q?/lurthANrwFl6QxlH2V79zx6csjalOMWfVmHRk++1kQrrhLckvCv8pYYs0Cz?= =?us-ascii?Q?6nsE2knR0FBYZVMbw1xS0E5qApp1d+8GT6DpJUTT4FQ96g0fBbJg7jv+aQZ1?= =?us-ascii?Q?SU3STlBlsgx0GE39rwwRaI1Q0kef5BVbJqyVnVqdbVyLRb7eqpWDtSicjKpD?= =?us-ascii?Q?5oHUxKTEPi+xIhyefwMdKNZ5roEy7SZtLivMMQD39SygeucHdvnHyP8D+35B?= =?us-ascii?Q?8oVhr4heKzdx2zCj9usUaWIUYw6Pkbwu60vK4fls5cAc1Pk/307aHk3kK1XB?= =?us-ascii?Q?uN/5Qz4e60cPqz8jylUjTyYdGFTW45I48hoqF4eelHdCtYNswDQxTAHxnX17?= =?us-ascii?Q?rBYtKVeiRopvB3NZj8KU66oIpPGSwkaNq8jjxaslX1O9EXnf4qYeAgHHMEqA?= =?us-ascii?Q?oH5vr/RBGGlNsYf97glPpWLyoz85iWJh/g+vbLXvcU9LpXCqv+kZx3JPeDJy?= =?us-ascii?Q?M2dqPLf9+L7ZESm3Y/9tb+quvts8vT8R2TGS3dvjmlEiJ68ghU+XIbn4TU7A?= =?us-ascii?Q?QvNCiqllIReLHPauRkdcIoBnhOtMWo7Yj+l89PH94ymW/uuLZXV+8v4Hv6+D?= =?us-ascii?Q?Gt/eRL4tpqCjwfTSy4XtRa/lNdnJbiJpNd44byESxTXuAUQIMU9RC4hrwwFj?= =?us-ascii?Q?S8hUD46I4JoLQy9ZMmix5L6ppLlERblDh7oz5xE76jt6Lue815lCGVYPp/4i?= =?us-ascii?Q?5470/PSQjYSsYZVX2kydN3eU+x5Jdp1eT1SXcJ94xOe0k3+SeE5DqoCkLr/w?= =?us-ascii?Q?cnqBZcOnTNs/I7nVeE/LFYNIpu/tVALOvbDdpUyyeEWJpnBhlQD0Q1mkMirf?= =?us-ascii?Q?FNYlcQe0FzT/41ew3hEV5TK1X6c+FBb3cgUPEXH21Wsz4Lff/WPW?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 50bec342-a88b-4dca-78f2-08deba264cd9 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 May 2026 06:24:39.4669 (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: Cp1fqURhkrVs0/g2NutqHuNYgOeDycEvoJBHqvmzY1IYVUDA7D0/1h/iubXXOsaUFhOsj2qJUMOsGiTKQWEwDA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS7P286MB7796 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. Reviewed-by: Frank Li Signed-off-by: Koichiro Den --- Changes in v2: - Refine the commit title. 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 c7362f1bf80c..9aed1005854d 100644 --- a/drivers/dma/dw-edma/dw-edma-pcie.c +++ b/drivers/dma/dw-edma/dw-edma-pcie.c @@ -84,6 +84,7 @@ struct dw_edma_pcie_match_data { int (*parse_caps)(struct pci_dev *pdev, struct dw_edma_pcie_data *pdata); 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 dma_data->cfg_non_ll; --=20 2.51.0 From nobody Tue Jun 9 01:01:19 2026 Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11021139.outbound.protection.outlook.com [52.101.125.139]) (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 232AB3A7F5E; Mon, 25 May 2026 06:24:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.139 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779690287; cv=fail; b=YuD57oBzdzvMdH2v6MpnuyZdpNld2Jm4EibF0FaalctoyT+YbQIRECS1pypZ4zHZIE7ees0OEbuJx8MKmZIpaiq2Bqd835hM6N6Tr7jiNaGhKntgjnX1llhNcFMTGzh2ogX2rojcXbkizmWPhrlHtY6IxKy/lXLbzfQQS/ikYbo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779690287; c=relaxed/simple; bh=PI3h4AyF1fB08hphQXho/raeD1WC2JATYDg/RGYRnEM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=DFsyIqn8e0UUS0QNA47BPIPJHlVxP+iSD56T6Wq5wTMjScowFhn2uppHrd5SReuD3eIxRjsqloD7Xm7ReWyj6Wu8/ROhx3ijqnph14p8ecuEU46UaKPdtsNU7VJUVf84K0XzR3Oz6g11/vB9Yr7B5OuLtK6YaVk11p+jz1/5+xo= 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=AuWcwp1x; arc=fail smtp.client-ip=52.101.125.139 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="AuWcwp1x" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gx9TY3IuaIVO1P8cPomIs7qDWezys8AquCuMbgFYYAEI5lyhg9zcMJMZgjwMJpYOvF0V+oFzlqSvjgNU47BQCLQB6t1Y5expjuZHPIO+iHiyL6/rRUPNaB5AIZ1yrhe0bKHb37xnzHud0aZD0nfJU7z6Q6TfYFICtYVC6IDPeBb3Pq9RF3G7bpKLX6PQPzCyFntpucgHI8BZc+hl2pGDsHHgo6pJw70zxBWxYnwVY8thoU/Ml/ER0LZjxjyJfefiHz7+UKsSTaYfgxvzvO1G4EtDW8ecT+MPWhptZ2b9I+hPp353+wdbzsAUcDr6Z3pA2QAiTgezXXqHI6dGtuL82Q== 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=HK39eZP/INF6UxePMW3fwhmSXSAjyIErRnDAfK+FBM0=; b=SdPhGSorQzmn2Nk9B1Rug8k0osrJxLnSqTO+zXWiUqLTA5nO8er+0g7IqF1J9PtV4eu0EnRw1J2ejInKE9GMA+m31qtWW1vtXEkxW1fWvjbUJ2EG+gpFdUnO45xzkXBjGsySqUV4x0kIuvdtHi2sc7jmnBv0OJZQA/WKvl/zsF9E6PXYjjujq3EV4Pv2UUIVNnBZgG9Zfh11NPQPwkMC/Chrj5J1O0a6xTAQIqRkx9BaTo9DXYOEo7zvNZJyME8HmmmTMmYyKABqGJsZPsVAFcZBgzNEGjxqvXNg41qhhLdRGSIveiY346diKG8yUgq3kt8iT4C1KSZacWqnwt2Tbw== 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=HK39eZP/INF6UxePMW3fwhmSXSAjyIErRnDAfK+FBM0=; b=AuWcwp1xuFrjKnozof7gmonDBRk1Q7OODNcxgSvq/eAJ9QJRJXlgC3vuPjoiwehHiuU78xQ35yYHZ0/50R2hX2blL0ltzrT3x9uIi+0Ce7h10cLjTbmwBxY5ej07IZNPiNV4GrfZfB2qt7DfugRW1R/dOp7RI6X7J1Y99xv8gdU= 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 OS7P286MB7796.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:441::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.19; Mon, 25 May 2026 06:24:40 +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; Mon, 25 May 2026 06:24:40 +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 v2 08/12] dmaengine: dw-edma-pcie: Add platform ops to match data Date: Mon, 25 May 2026 15:24:16 +0900 Message-ID: <20260525062420.3315904-9-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260525062420.3315904-1-den@valinux.co.jp> References: <20260525062420.3315904-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0146.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:31b::11) 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_|OS7P286MB7796:EE_ X-MS-Office365-Filtering-Correlation-Id: f8e616ea-97ce-4c89-02ee-08deba264d65 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|10070799003|376014|366016|22082099003|56012099003|18002099003|3023799007; X-Microsoft-Antispam-Message-Info: khvKpkHB/wpEqeq+So9jzcRgSQl7/w5Cpqc1NTNuqTSl6V5TUhhq345YVRuUoqZaP6rawu1i8DS5WADKL3ZcmokIw/t3NFjwn9d1GJccNUePrNqb4VVKLb255SKuuvVqNNkWPUKp3DaUYy+21mlDxQtB3WS9lj55XVKE8LtNW3EuXblao8wkxY1q1RjXbvbFv7emDxeqmcdbz8ZLNgqM8BVp12VdICtU7pUfdYXlk0QVt7nh91IIj4Wixv9QkaW6X+UYHJPxtOYupNswb8jgrgvpigppv9JGLoH5AZMDyYV7hZZFZLlODi77lL2mN794fJuD+ph2p5LUNm+pnAy7prAch9wVPNipRLNVwiwwdWPGLGqVRwJTuJGcxZ72YZ0+EXSl7tGwSw+p9DTxiA0/uw7KrEOiEKAQQ82S8huZgXGDFTgUJQyPcMFEhkMWj1WJI7c46onm7RzAPN1mvRmd/YjKNZci2dNCTEnlWlfCe0RkdT5bEO3YBRVwfpT76yc94FThyS3ypM+kHHdbBw7IL9p3+qVucqiuFOfKsU10sJ6HALeT2lOp5EBjgebHdseFZzcU/jn3GY95fDWvhfsA/v+oDecce2+O8xWq6jri66HjZv4PrYIyzkci9bl0h6bkhWB9yNV9WdHVIK94ps0SD04jIDa+xoJ6aJe5SL98MDtcvyOOzfvtbuPD4T3cM6gK 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)(10070799003)(376014)(366016)(22082099003)(56012099003)(18002099003)(3023799007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?SVDinhGNHifOak1Z6UcZAYfAaVmE52lpmUo6PPHGoHBWV1rHSyOCn1BHXmwA?= =?us-ascii?Q?G3ZPARqFSWgBijjUpijBd2PSj2bTEWGCovAxRJZQ2ugh6tNGqFHwGChF0WG0?= =?us-ascii?Q?mbNobNb5M6gSkFsiXttrXzpl+O4sjpUzJSaWa4BtlC7FS+hYCbGJ6ujF7SA5?= =?us-ascii?Q?H/MF5zSvX2bjS4Ju/xc5Dt/GuYHur/CFiJGiCtcVQpGZhV5uPy3I7eueBMw0?= =?us-ascii?Q?9OcSfv5wBa4MPE7O/zalFgT2EiUZ3z2ZBJ0WRQlBMHAvQmSCmSmPQd/QIdYU?= =?us-ascii?Q?okILHFXPhrfUjOZNpBnDxrXXqoPjfP7ABZ4ZOGAGviRFLRrfb0HX8g/LTa5g?= =?us-ascii?Q?qPjPZNgBOSPQ4pNRRk7OCQJMSazsXpziBx3i2+dHEiu80S43yGpoUpVDA6dN?= =?us-ascii?Q?iUDCWPpsPQSSHgKhgumeY7rXKPwc5ytFB7PG+OvIyxMO/BvnV3lV5ss8OPQn?= =?us-ascii?Q?fZZ0LLwPMhsFQIzriZu6Vh7U83FU2Nx7boe44bUCAt0XsgoefyzFYvxFZhAG?= =?us-ascii?Q?3yrVzpPTZc2nb9Erh43upbuffS1hvvrfvyUd0ESLnyTV5BBp95TAxh3G6sk/?= =?us-ascii?Q?yVnRFXJi9GJefCG4u3Aty+Tx+BRoI5aMop0yJbJBLAfR4utC8LCwPsvptWJg?= =?us-ascii?Q?AshYlup2Wi43hvTslDv1rvfyO8LzrRzSn5O1OUqSL4O2oia25zggV4x+FRS0?= =?us-ascii?Q?7SvJJamqQDcAARtwl15P7xhTC4OLAHAppx5fUMy3dqGhXqGShjVBK8n6crYn?= =?us-ascii?Q?T0SmphrIb24Kz3QFKp0Jg1YN5TlhwwJRlaTrgxJcStPPGaFBQBffzbr4JbJE?= =?us-ascii?Q?WXTufJIV4nq/Adr1uLHuxzdDFeFD1T8XhClU/AtI4Up17NmHRri9CfUxKvri?= =?us-ascii?Q?xgOuPcDln6ezPb7SLh5ejqwQaAtZ8Nd9tOjU3U92J3Q5hkaHDu/OTSWhFjOo?= =?us-ascii?Q?CGuf/uyQomX5Ml7jhgORekQOwLYGX0uKzzYYvBgs4+2stl077n24N7UvdYJU?= =?us-ascii?Q?TiHmZOoyDU3PP+7CEmO5lDfelgw4XSlZSpj9/eW2jij2vaTGFa/khV1KMdRb?= =?us-ascii?Q?JJxonmwrQ1Z7Bqq3PEVm0GEGBOo3SR9m6CpYMK9oZPrqQmbLO8+m0qW+LTzs?= =?us-ascii?Q?BjYPBHnIi59EpgMxc9qH2KgxB6Yra1aj//uEeL+CD69Cs3mES3MO+Dhi8FqA?= =?us-ascii?Q?jgIGPmpCj3+7BDk+ZCjobZyuZD06/wbJGBMtp6DE26EyaX9xmUi2OO+0pfTu?= =?us-ascii?Q?nblMq4kd4S1foN79C/mCwdsTTlcIQXQqPBzAfy9sjPNcGQm3kj6bEHEhSnOo?= =?us-ascii?Q?vVyMrBxxNMPX9ymQsgYo7Aw9nLFousS1QddX9BVMhsAR7qav6GY12U4i20D8?= =?us-ascii?Q?B047dc0loTohQcD5nFyIVM3AsyEod5XeHQiXdzsfdWyCXTyn/g3MXvCfRXlW?= =?us-ascii?Q?r/2dzUCX2GI3hzVYFNXKkAcoHgcPriC0YSjj95ULXgJiV+LWl2kMyr+2fzBF?= =?us-ascii?Q?tGyiv8eqAUbMYgQmK2ohiqv/E8Muc0AS9bR7jEH3EwEjQkKJr/YYBwFMhxhY?= =?us-ascii?Q?SrrO4UsgHuKoo+KM40cIwvXvea1Wl3wmRjAEriuYLWlYG/Gt62tRy5ep/StF?= =?us-ascii?Q?XpbsfJZftI4/l10sTskES7MTVFA9sB7TLnmxwxXWf/l2WQI0+/ol7mh+Cvei?= =?us-ascii?Q?q9O3uqoqBqPpd/4haTN0v6vHmClQ+Q4yJdnS1TYI+yNoSdivCgwYuDCDKbhA?= =?us-ascii?Q?mwIXo/4E8rmN21GmiwF0yKyrKPfbVSV6WJDZhp8gwQdvnqNS8CjM?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: f8e616ea-97ce-4c89-02ee-08deba264d65 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 May 2026 06:24:40.3762 (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: 1O8srzTANOtyaZpP6EAFzwObTo5sIjrnXXHMnJ/PEHwU+hGAvLBdIk841sxFRbSCtB/0YLZMN6CwTbcZo/bhFQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS7P286MB7796 Content-Type: text/plain; charset="utf-8" Move the platform ops pointer into match data. Existing EDDA/MDB matches keep using dw_edma_pcie_plat_ops. No functional changes intended. Suggested-by: Frank Li Signed-off-by: Koichiro Den Reviewed-by: Frank Li --- Changes in v2: - New patch. The original commit "dmaengine: dw-edma-pcie: Add raw slave address ops" is dropped per Frank's suggestion. DW_EDMA_PCIE_F_RAW_SLAVE_ADDR is no longer needed. drivers/dma/dw-edma/dw-edma-pcie.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/dma/dw-edma/dw-edma-pcie.c b/drivers/dma/dw-edma/dw-ed= ma-pcie.c index 9aed1005854d..1d63b07723f9 100644 --- a/drivers/dma/dw-edma/dw-edma-pcie.c +++ b/drivers/dma/dw-edma/dw-edma-pcie.c @@ -77,6 +77,7 @@ struct dw_edma_pcie_data { =20 struct dw_edma_pcie_match_data { const struct dw_edma_pcie_data *data; + const struct dw_edma_plat_ops *plat_ops; /* * Mandatory callback. It may leave @pdata unchanged when the static * template already describes the device. @@ -383,7 +384,7 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, return -ENOMEM; =20 /* Let device-specific discovery override the static template data. */ - if (!match->parse_caps) + if (!match->parse_caps || !match->plat_ops) return -EINVAL; =20 err =3D match->parse_caps(pdev, dma_data); @@ -435,7 +436,7 @@ 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->plat_ops; chip->cfg_non_ll =3D dma_data->cfg_non_ll; =20 chip->ll_wr_cnt =3D dma_data->wr_ch_cnt; @@ -577,11 +578,13 @@ static void dw_edma_pcie_remove(struct pci_dev *pdev) =20 static const struct dw_edma_pcie_match_data snps_edda_match_data =3D { .data =3D &snps_edda_data, + .plat_ops =3D &dw_edma_pcie_plat_ops, .parse_caps =3D dw_edma_pcie_parse_synopsys_caps, }; =20 static const struct dw_edma_pcie_match_data xilinx_mdb_match_data =3D { .data =3D &xilinx_mdb_data, + .plat_ops =3D &dw_edma_pcie_plat_ops, .parse_caps =3D dw_edma_pcie_parse_xilinx_caps, .flags =3D DW_EDMA_PCIE_F_DEVMEM_PHYS_OFF, }; --=20 2.51.0 From nobody Tue Jun 9 01:01:19 2026 Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11021139.outbound.protection.outlook.com [52.101.125.139]) (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 C7A1239E184; Mon, 25 May 2026 06:24:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.139 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779690289; cv=fail; b=RCwIYytjuVc2AVOsL8F8ZDP11Ru8E1LwG5RFrsbTxtcEaim3YL8lFEgCeFedJdqkblWkYK0wa+0fERHjCpwXrR6glOUT6MttpaFOBl1tU6DQqMZbIYVIS8GQ/EwEtBPSj/IAwDy+dS+nKpe0ngxJIW96EAJc/9kf5SG6VPry7uU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779690289; c=relaxed/simple; bh=aNh2gUSYGcqYj5AEvANPJzA1Xju8eQPeojHq/SPquBI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=dTnZItDnDhasVa4G48SDK1soiXeqaTTHKs2KGpmU6dcSVojDLit+rH0nLyhVEZBFbh0HuziZNKZoYOSsusEN4ish83lxhMHgSLHw6JKDV9E2HYKwIuqJXHeFbOrxxLYXsbLFFL2C73KAXgO3TeszYfuNGEuSDKvpU0kCUMW+uXA= 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=AXLd672u; arc=fail smtp.client-ip=52.101.125.139 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="AXLd672u" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XaALXjZg1QYcHEmZBnSizs0rKmj0BHb8S22s7pn7OPrnc6ywTgF4oz9+IzTrXh0+KdS1IIfgJjJ/F5B5r5Q08IVAWxkR2g0jvm4UYfSLQ9V8TVTE7lYA9DK4lM1DZOAiS6UoSmkM0LMchHmjMGjlse1BcX+nmjuuDtFBXq6a5GDD/XmYBcRYSbp/qcDF962yyPQO3Hl0EV6iNKUyBlI3t4cNiJMNJegAKMEpn5OjKRc0lnCMGUGXITnZSY+/pKNFrn1nCaQxXse3F3ujMIyzGhtcfOZxa80JTuV88HerP5APRSmDU227BSMhokTRg/li0nVPaUKmYMv0JKpywR1nCw== 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=9fIOmihF7eWEPiJAHLKrVtafUTWJZK8OdQbJiOUwCdY=; b=LHRuhyaZUuWDLRrwuKNfjY346QPBVnP5QMMC5nqAYGGdnbMGGttvFozNoiK/5+JnfO7hqjeIjnJA35hXk+RixGCT/d+hD215UqnRU2U+WtaashhdHAPWAj7tRT5378aDIwekZkDQE7ow7gTgA786dKVi+q8sICUSCfQH+cdYbp0iZQJ77/n9MlXUeLdSCJGfgIfYCuxIA1t+dnwfr6yYDCCkqMOj40JwKovRnUl0krtbHaHcMdCp+eMfG42mggX0T2zu/PRmDYdYUcjlF92tgmgty293zNf5zJOPbg8rmQI6R/j5CGTi0jjBdzpM4d+YXsZ/9XsjZ3fVrfZfGyv0aQ== 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=9fIOmihF7eWEPiJAHLKrVtafUTWJZK8OdQbJiOUwCdY=; b=AXLd672uMAgY7DFEcTKPKdBxqSgtKA/8lNChpEa6tOMtVNXYJZKO80uop04fV3SxYvkanEne1VBaGfCv9mKv3xKkedDY9GqRyokIY2idZNWTMXUlP9YZ72O6ImvgGr4ApBOs0lVlU5ixz0gx64XROXuxC2pvu68rdRO/wGD44As= 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 OS7P286MB7796.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:441::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.19; Mon, 25 May 2026 06:24:41 +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; Mon, 25 May 2026 06:24:41 +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 v2 09/12] dmaengine: dw-edma-pcie: Add register offset match flag Date: Mon, 25 May 2026 15:24:17 +0900 Message-ID: <20260525062420.3315904-10-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260525062420.3315904-1-den@valinux.co.jp> References: <20260525062420.3315904-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0331.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:38e::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_|OS7P286MB7796:EE_ X-MS-Office365-Filtering-Correlation-Id: 3f80dbf2-c62b-451c-caae-08deba264de3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|10070799003|376014|366016|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: SJUEiVOzsyAM4SGmo1wd7NA1I4MTq47NID7cLcI3UUVhr0mzt2LeCyhT9nLZrrTsDKRiKVOAY/QpsVruNYckXAhC3TDPgxsCX9hV1CTvnBlZBIccvk2SfCClLtCX0oY1PYOiuZlrv53tTB64yVosgXZIWras36i9cnfbv0+xcSw7lJeUEpFHnLOQAlQYpMsA/0a8HAohyz1Fw33M4BFbOlhWGaP8HEUIG3MLOloZPs3vtYtQ+/7EihjVN/DwoJnNzG7r2jLkWvI/MJA4Vr6MYU5Ltxmk3t8SVStjmlnvzt31EI/yvDO7CA0hVN8svp3fO36C3pEOBbWJiz96pB9+5wIMcLuafNCCSRzU/sUgfM8gCH+Rqdam2D9yvWer3qkVhrPHzKs6BlXQqPr6nt/Ad71n0Ievxvnwu6MKIfeTsjONgaDveAXXDKl1vwQSmKweKyh81c7uEPocEoURh2VCp7VCkSQmHHpZbD0zTBZDuhM0VzrIH1CO06E35/7oikPW5WTxKPG/VNcPSrJPiG8X5YW/8Y6mMZaxmVP/7iH0lB1d1JzXaLqGx6ZTP0SKFSpBPTCmHS0LXwdYqEmHQzA/zigWWn+xndCAXVXngDxVX+gexZK5h+eHgruu7nDg20FSwW3xsF2VMLo6T79bNyWn34fSFK5vbzVFvbAZA8GSfYgjf4Ue0SNgQZJs3oRwLI1S 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)(10070799003)(376014)(366016)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Skg+u/+mhPTCwTiXjtt6rNACbocYnsLKs7E/yqhBPo39IYn1IYRkH5orVcau?= =?us-ascii?Q?oSISvrfv2sNjIM/PUsQKxD8G5krAzXiEPt6ESyjhr109EHzr11cdupKV+YWE?= =?us-ascii?Q?QpdwcPwlPLGJUc06+KjcCb2Ng0JLKPmUraS//lU1toH364HUGY/QEMRmn2Yc?= =?us-ascii?Q?U2kTzBdYtOaUBAwfSZ1tYO+Dzwtv/QfJT+zhAwwSw3otYhpfCLM4oTdnv34q?= =?us-ascii?Q?W2KkNha2FHrj3lMNWVQO9IMqLsOMZBykf70V+T9N3IIPfqNRbMx9uHSxJICK?= =?us-ascii?Q?s6GuOnDjGelPCi9RQcuBu8NtIPmRb5f3xR6dP11YFs2nNoLrtQ7hA7FbKyu2?= =?us-ascii?Q?IBFgLHuS9pVFZLss+c0sWdezJ8F7Pkicb/X/Qas0X5hmNsSdHsRsU6Juoruh?= =?us-ascii?Q?IYCCq7Zj/kK0fv/DJS6bcZ8wxmYrsPI12OLHfczC2LOV1U5eeTdMFUzrXM1j?= =?us-ascii?Q?7sf36YtTbzmuwRtot54R6VUeIwTuPBTph3Hgqr/aoXkxuwrauxGgPQIEncyk?= =?us-ascii?Q?rDR+n9cqcIriHljieSzt1vQq8GMQmTxnnI8WolMspBuW2AR9wran+s0Bccu7?= =?us-ascii?Q?Pa5esPjPioI4wF9sKs6vlF+Lqr3CPhedQlfaI4uoMArXRMvdOC9narvAN/TX?= =?us-ascii?Q?P7JKfHmeoEb5ZEwSb1cROJLVeIZ6Yh1ZewrooVQew3ptFa2/UA8DoH2TS41H?= =?us-ascii?Q?tzh8qcfGmICe6lkmkZ/yNFaIzWpZIp6Zs5DNLRq56+YUugakSgMsUgVJefmg?= =?us-ascii?Q?1lN96tSynsXFDyXLM1qfxAr9FCUdJ7aipRkibV6cFy0LniiildZqqckDZQir?= =?us-ascii?Q?NuZk8bedJ48e/6OgHBd86Ud8s79AkJUAMtMz0AB9OcnGLk3LgVCY0Mde6PGI?= =?us-ascii?Q?w4atTnKpbAKLn5GblgHHnPhR5bh/48ofzKyDcisnqBKFFtqvCYy+MAKF3ncZ?= =?us-ascii?Q?c/uWgGcSFlivzT+bKGKG7o3Rj2O7gDkf06CzMaRd8vMWj21YLOiLTAMq7eAZ?= =?us-ascii?Q?4E+taU6JF7/p8buErCxcbtlTdqabg06rpwAA4HVhoZ+Lz+7MKIHd5Trpmt8A?= =?us-ascii?Q?BX9X2qZdr9yP2I2XeKo89ipliyk2mupP2n+G2w8rttvuxnIO56MSRiLG1g6M?= =?us-ascii?Q?0XCowWUHlywLwLaIx+Dzo5wG/iQfw44uxBH4DiRtRr+501gCALj745w2IY23?= =?us-ascii?Q?CbWVCQWven3dVNn6ie5BK4Kpw3sgAb26HNpCg+zyg9d42ixn0/IJOmpglk7b?= =?us-ascii?Q?mnD4Wj+JYzN35oxHLlQEQw+6FF9cEp0iSmUyElDuMiqoonixr0pcdu4/eAAv?= =?us-ascii?Q?rNW36ZSJCLn25259z2UHpsld1JiGSigowq72jhIiPks70LLUrfLL5wXpj5AC?= =?us-ascii?Q?qlEfIx5rbiJD57ZyXjxYVYxTHjguEk9tR+vrzZgiphChxtUXI0sFSRyczDDR?= =?us-ascii?Q?I4WOPcn+06yW5jrA4VH09uS8Z8lb5ARCo/Z/dcm3LK0h5QMGQJxAraTUQDRY?= =?us-ascii?Q?qNHQH5taBEo8u9JoBWONbnSm4fPkPtuh3AsU7IZjrZ/Lc61u1Bg+FUbKFs4J?= =?us-ascii?Q?0jqgWirEu8U/wy+w6nNyldbV5GyX04bDAQ6X4SbBgCZr5Huncp1F85nEQBOZ?= =?us-ascii?Q?tvWLhToMMmRa6hCj4d5P/NaNNrJCATIXa1ZZqLvyUZPmUCSdiuZ92hxWPsbo?= =?us-ascii?Q?/jR/QhiqoVD2/6KdMt9T9yHQ/R56J+30hrQmpxOzTr/9+Dze4xbAonLOiG0E?= =?us-ascii?Q?lYQg+z1yvZKRNtr4WaItL22XLnSgJi+sjKHLgInQZ0kh8nijc2K+?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 3f80dbf2-c62b-451c-caae-08deba264de3 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 May 2026 06:24:41.2446 (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: hw7QFaZcifIhW2zhs6KBnufj1fIdV3Rw3TzG7ZO49mVkcdiFZ0n1xFOZ40zK5yZnpkLBUrBs5uaP+hwxuus2Lg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS7P286MB7796 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. Reviewed-by: Frank Li Signed-off-by: Koichiro Den --- 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 1d63b07723f9..8ba2b3917f05 100644 --- a/drivers/dma/dw-edma/dw-edma-pcie.c +++ b/drivers/dma/dw-edma/dw-edma-pcie.c @@ -89,6 +89,7 @@ struct dw_edma_pcie_match_data { }; =20 #define DW_EDMA_PCIE_F_DEVMEM_PHYS_OFF BIT(0) +#define DW_EDMA_PCIE_F_REG_OFFSET BIT(1) =20 static const struct dw_edma_pcie_data snps_edda_data =3D { /* eDMA registers location */ @@ -445,6 +446,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 && !dma_data->cfg_non_ll; i++) { struct dw_edma_region *ll_region =3D &chip->ll_region_wr[i]; --=20 2.51.0 From nobody Tue Jun 9 01:01:19 2026 Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11021138.outbound.protection.outlook.com [52.101.125.138]) (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 B14D73AB276; Mon, 25 May 2026 06:24:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.138 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779690295; cv=fail; b=ifCcejHHdTjUfVwuRtNJuJmFRNCBP4/Ne1kiuJkhYA2TuMXAp/H1F3hvJRW3fFkNRAPSePlMtxoAYspMMgiurJVri/Zdai0kXTaGSyHvpn0BR6pYBFst8gJDAaQ3NKhR/35zMbr5nXdwobEsQJ7HM0ypLHsRU4n42RfavSMOcU0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779690295; c=relaxed/simple; bh=RROVMQuVKl7s3MgsegWKxvp+X/yrLCqTTu6IbK3DMhs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=tOtldIdMfOSQVYdMYYS1lOQVKD6id1u2L2QUj7cOXUmvhG1k0UsfA3Sl5cBrDmRUhElLwmUzk5QsaKPly7uqkOKWFxAJS4vsefTfhMQXCsgaxhb894Jd9Qw7Ub1X2zXk1MKZKuMHvyAfI2l2ikL6sYzIrSI8ZyEoTQL/BD49Vlg= 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=oeO/539j; arc=fail smtp.client-ip=52.101.125.138 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="oeO/539j" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Tm8aJuK4CcfHAYoG84v+rH/KTU4e5hYWZq0Kpibewox9YljGlO39Zl9mv1rq96FPIOKrJS2ReQg81V46XTZh7gqamnv0IXavacYGs250RTCngJoCZfDqc2KNfD1/wuBVVfQxOVfyUzyEzWLy7+bhDekwJHrv32A/a/EAMcA9xf1M9BrHWOP0JnThqTYr+5JdywKXftet56DJY4V4kWRJVcmjxsGgZD1LGKXvyvDNN9ib0VlmmZS03BvGGxZLhiDHtBXFmJ/5dUhLIBCi3UMQNUsq0AQ9tE/vBFMluIKbr7OD4pDE+LMMjKgz9zZDCoj/i3//A+pmsbO+yQwOG6wrcw== 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=4MVGSda3FlOa9i//RdDPt62M1NgLSFQDDNG9ZqXp5Fk=; b=UhmNw8a2d3ipjH/+8Tq0RxHVxQ1A37PTKohevj/hafNFa3eBFCb2OCgYadu3IIYWFT+QihoE9D59NySzuy6R3b87JG9wWCdovqZ4GnlxVpWszXdPP8vFMeuZVqepdbg3RGtOYNYDS4XZmU0oDYVQpXSUpBDuc+AJHaXoJkfUXXjZUesoUTxoWcDag9TvAxoyBu/K0ZtLSFkPLtEuj937lN8dkeblyb7RAAnxmyyfvtcVxA+ZHI+I0rrXSr3/0h1HwtDl/Y3lsPfrJI3fRoqmQFh7uudtOdRjUh2CpnuPqaPt4lhJUOA2vsShE65nCBNEpzvSnvRRLwO19jKNJCBGKg== 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=4MVGSda3FlOa9i//RdDPt62M1NgLSFQDDNG9ZqXp5Fk=; b=oeO/539j5FCLB7LRK3TSTaff93W8GKNCRT1JAVy9FG08fzjjBjor7qBi6fqokx1BYuvwijglzWKJPkpKnzzxU4TmdoZdr2HXFtVDE6Z8qG10e67uMng8DFPK3H+wZo+U82jul6m7uW0BZMa6XYgN7su8NzZ5+4/Wm5ZochZZ7f4= 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 OS7P286MB7796.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:441::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.19; Mon, 25 May 2026 06:24:42 +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; Mon, 25 May 2026 06:24:42 +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 v2 10/12] dmaengine: dw-edma-pcie: Factor out descriptor block address lookup Date: Mon, 25 May 2026 15:24:18 +0900 Message-ID: <20260525062420.3315904-11-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260525062420.3315904-1-den@valinux.co.jp> References: <20260525062420.3315904-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP301CA0087.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:7b::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_|OS7P286MB7796:EE_ X-MS-Office365-Filtering-Correlation-Id: 1654dbbc-c3d2-4bd8-1f63-08deba264e63 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|10070799003|376014|366016|22082099003|56012099003|18002099003|3023799007; X-Microsoft-Antispam-Message-Info: hFr210L9sW1hExBD2vnvUEMr7VAh5XabsEvGw/8EKhAmCrxnPybw1C5z9yVIrmMb6T/P+7mxMcGK+4J6nI1P4fVZYaNIF2oDUTaxLhlmsHxwEIoudAvpe6dJc+iisbtq0nZ9WT3OFyCeb3EsqBDzjeJTWgwfNfMVw6syRzeKKIjTNn3SMjtRED4Jyv7GqHfha6ldlZn5xbCBwszl1zXGGtXvi1b14fSbCA63PWyMOH9tBExYE5hUWy0hz8RkJ3GQJ0VrKCmy8Ftns14U3iCkYFukBYSmS3lOc3WBgXbwkK3f3kWOVSiV1veFALnCGMgNLvPVTleQAh6pDflYAGt/YQCTvMwsNWbnrsQ/DRi7PB/69wna9k+m7u/sv+9D2qyNb0kuMcr4XgyRW8hTOtGciQPkozbvBgD0JckNEyXaMRlVl2KjKRzdX0Smx7rFbD2EINV1TIsZiI0/W1XPiqdjfGwqiaiL/RQThJUyj6NgkW3JkHmIJ1q/cjvPufbwZD8L/lRAr2YVUiaYI78DYqMQtyUhHabZc/ilZ6NBMqKR5Zl6OJljvgxTozWY1AAyC3agqNbDJAiG3Lsf5YbAdlnK9dwUxyURH5GwbM0jdIVUd/QEjtQ5ip6u+FWd/ZE7tQO6XjZCm7NEEX0Ko/PFMfHw79HJx1rnHcu4FXjbZhYo4Kh5jK7D5AAczOLZUAY2Z/OK 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)(10070799003)(376014)(366016)(22082099003)(56012099003)(18002099003)(3023799007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?URvNApLv/LUbRdl9Wj5s5hUMLjpFAIj7D9f3IVPDNjxIXWTCXKjmC5pX3Qfl?= =?us-ascii?Q?7mto68Ncwkk3b2TYcorb0MC4i3w9BxXicsr6RSwpZLRMvJrtM1xmYDpH530G?= =?us-ascii?Q?dwuKjf8tkdE5FU7gFXXGcsF+T2vFgfTnw9ByZZYIdcEZtSyqtob5wRIP7ONC?= =?us-ascii?Q?StYTa1jFmhZwkKEKa1sL4s2xfW8zUIqvrVEHDRuLIitbc0Gnd1BQHPftsTeg?= =?us-ascii?Q?/aRIF4WD038tMPom9yZjJOL1uDGeT8JXYPglp1jQfbEm0+Qw51nhJ/ht81c5?= =?us-ascii?Q?c+BZYQvZf3pbdML5MfdOjW6+p9HYEIG93i80OOtLroaif1bKpOTHiTLje+tn?= =?us-ascii?Q?Hw0aB5658tMo5emet1in4/cyRzIuC3IpTyg8x7n15Wc0PrW/Bt3wiRzAWBpA?= =?us-ascii?Q?LoJQfEK4XEARUIexOdtxksMjhuyL2NJo04hvp7/SSaCQJ1TmBTjl+V1wFAs8?= =?us-ascii?Q?C+kmA+TuOSViDc49p9Y9AIQSSRXcZUrk7fUC4Fo5xSuK4+jeGbaEOkpPgNHP?= =?us-ascii?Q?+bvESqABKiefJb6CLDv3DuSae5vxsocyKOmSPRj1KhueNkYWELOEqVkVuxGF?= =?us-ascii?Q?BNhoBJqc0yyiXDxlF1B6T/4A9YV5slH1Nv32qeihq9UX87Ux1RYe8L4TnCjc?= =?us-ascii?Q?WkKPje4AZvixtCpi8n/h/uHCSgSb0wZGiG7ZCxANfwvOdHMSdAKo45Mh28uL?= =?us-ascii?Q?I5qhiH++MIKYWPSUUX2yPWLt31Q6MdFvdnzHLGk0QuxSDA1JqRb16aAN4PER?= =?us-ascii?Q?AQPNuspDpV/kwTX4iMOXd5nE6/U5HH8/pJThjPQOnqwIY2KXVryD75DD+Zf1?= =?us-ascii?Q?Uj6ogak6oSdWwbycal35EzRjRyC6/gtpWtwyU3ObU7BL7cqJdmqIP9iMJq/W?= =?us-ascii?Q?Z+AigBQ4COGthWU17DF6WR9eNgU+bmFNWYbJUtj7Eu3Z1Wj1h0Hx0leS9Rd9?= =?us-ascii?Q?srx1Uo7UyzgrA9YBhcrB9I+SR4wmcLhyH6e307KAE/yLprbhmeaF0KhdfjFT?= =?us-ascii?Q?yZGK/6CIRf4aghJJqKKOZ1gAYXtieYxKwPz9VOsfVwNfe5WYoIs+iaMlyPSt?= =?us-ascii?Q?ji2RQfvLpDOSXOhzeGYR4/98mwnzTCdnOCBEcvonlR5t8j9tBzix2hIyao6A?= =?us-ascii?Q?MLFnH+QoxCiTvJpVX8Qrw9EG5mPuiB5Sy/W7jMeuz+z1GA7aYoTCbykrFcD3?= =?us-ascii?Q?KpQRe4UU9GM0PgHepbsECzXkKhjzV08VlWt997hqaWkeJ2SCKzjX1JUggn9z?= =?us-ascii?Q?Nds4a5Njh92wsS8p1nVAmxq5kiGUoF+kKUvCP/L0rwnzjLraUD4Ut8He0Aaa?= =?us-ascii?Q?d5p3I9YYA5XnYZs48hFWT0xcIzzjUVK3P8EbnBH8t26yBrg/rapjMcpYfwJr?= =?us-ascii?Q?+zH0ihhCoXn7Y0U2wF59jD7IoTMChR9tRYZm5xfwX4EKNhzDUTuo9NrBcT6r?= =?us-ascii?Q?pNAB7xGP9qbwxumClh+XROEnJREx2suEqGd//eD3lR6MLuhI5isOer57hWSc?= =?us-ascii?Q?fatNUnhcLviokoW4k5heQyzulI8XhrTwbUr8NiT0PPCFRvLMfApmDFnBqFAX?= =?us-ascii?Q?4FEWOntyKUU5UixNFaSkWgiROR1jaxaiIo+S6BLGSoJaIkmEI9MiVuCpceCU?= =?us-ascii?Q?pLM9Te/x885YFnTE92YXpgzvlTvFlahUnFNsfBNexYF61xEGjR7US4atH7Gp?= =?us-ascii?Q?zt2Fe+eE9XswEWK9C4JbMqODxUIS0eBowpFHyAto0rXKFv/ozSLNtNh0bCbv?= =?us-ascii?Q?CDHgMBP6fPQ3f7fLViOTVXtYUHVuZIK4u9BEwFZBhwYvrim6bqsS?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 1654dbbc-c3d2-4bd8-1f63-08deba264e63 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 May 2026 06:24:42.0552 (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: ouKMcfjbcLTi3CgXyf7JQHXtONx+wqQ2tOE1C/BqgISlVXdM+yabB3iN/xAjd6v24CbY7cI80v8le6Pfkr+zIA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS7P286MB7796 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. Reviewed-by: Frank Li Signed-off-by: Koichiro Den --- Changes in v2: - Refine the commit title. 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 8ba2b3917f05..c2be43170e02 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 @@ -362,6 +364,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) { @@ -460,9 +474,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]; @@ -470,9 +483,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 @@ -487,9 +499,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]; @@ -497,9 +508,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 Tue Jun 9 01:01:19 2026 Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11021138.outbound.protection.outlook.com [52.101.125.138]) (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 A609D3AA50B; Mon, 25 May 2026 06:24:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.138 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779690292; cv=fail; b=n0WxhS60g2vqpWuvdkYVpM51VdBv7LObTbW1qkF8Lf4SRpRbNtRUJfKH16iMroWCMtxCEX3bIJLdzEGLOoSJ/7ItCWdfbWsprvZX2Va733ziQRQhU+OW3x4+A/VgqPGg08iMDnEu4q1EaHrHFx4PsbV+vOhb+UidLMU4MzLPEE8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779690292; c=relaxed/simple; bh=vWxt0Lw/RZqU/FSLufFDn4R/8kIHnmhapFw2Jw82JRs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=qYSrvIRxAIOOB1WzwCmjAFXTMdayXUsWJmo2ZdTaNDWz8UY2oFTr5mm4Cob6qPYJvaNzlVarvZ2AfZ0nFBGCYPnd9i/7VKsEJrK7j+wCsLq/RbA2bs9b1ITGPE/iY0L1yZvsuxA7p+KAQQC7HH7QIaMzmCNUo72RuhQNyY0d4HE= 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=S89ICSpQ; arc=fail smtp.client-ip=52.101.125.138 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="S89ICSpQ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=knKum/M0IVqkVtHiwG8E8Gvzvjs4IKDRzJO0fi6+I426SMvRJPhcvtNmIlz8mxITqwXRmfuEB12iKj+N4iWwdRRf6u+KhpxVHaK9EDOHaGcrcTli6sVVIBeNeV4OUiszMkoBtuE6QlrKR1ajRuj7Ejx4fC8ByUvCzjnWXm0d9TEKDXK9OoiZKS0KNPXOFMXFpmcWcnstSvAU+oG6LQQiKTZUxYhGAY9tA2PsJdbuesf3jfR8aLtTE8hqnC4ihTp9u1Ib6XwOsyJn77xzDrJt4PicRpoQiLZrA6cWGx+S20yYyQxpzuLoJ6IkK69r4X0szkB5QrMa8/oicQYeZUsiZQ== 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=TJrSYzdKuYhZDq7PpiP02aH4pCooKCgCGpcQ0HAZczU=; b=ICIxfnRPRUvElqLqygTtH921Stp0fY3LCre1/XPy/TGOnwOpPP50Mfoq9bkY4E/YlLV6QzZ/daCOGo+z0qkMqGOEGD0ksazkxHCiojCw/Mhle7FystTlWTpjlTxedjxnuRG6bQllZmmT8Wqxp0iNw0fnOnAfvU4XUTEkR/NexTzBSg0sX/uzTVJpz9vTwjxSafKjXqQ5uKdVNjX+i+AGL1zlQHNlUNnmd3zyiqJXXGsHX/cQVkZdwsRKRhqUpe6M7dzlsG4Sc3UvM7jhDQn9HYZpA9JoMRdrqbaQJue1z6H4vTJTzmcwvm8wz3v2nKv3h6tapwSgjYEyiGd3gOeytA== 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=TJrSYzdKuYhZDq7PpiP02aH4pCooKCgCGpcQ0HAZczU=; b=S89ICSpQagbWK9raL0Ku65SN7OKVDQXum31EcbLFJJOX2Wod7jo9nWOMZ2xeJ3BUCBp5juHvtZsin1CV3uOcvl8L46IrAINHKOTrNB6nsD4jp0+IsU7MvXU5U6dH2IcZPXGmba9rE7irF4HS0JuqG3CItozQNG7tf14kD6Mb1Xk= 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 OS7P286MB7796.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:441::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.19; Mon, 25 May 2026 06:24:43 +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; Mon, 25 May 2026 06:24:43 +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 v2 11/12] dmaengine: dw-edma-pcie: Handle optional data blocks Date: Mon, 25 May 2026 15:24:19 +0900 Message-ID: <20260525062420.3315904-12-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260525062420.3315904-1-den@valinux.co.jp> References: <20260525062420.3315904-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_|OS7P286MB7796:EE_ X-MS-Office365-Filtering-Correlation-Id: 0617ecf8-24a2-4dbc-61cb-08deba264eea X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|10070799003|376014|366016|22082099003|56012099003|18002099003|3023799007|6133799003; X-Microsoft-Antispam-Message-Info: dRivp+x+TsCcIjl3pSGgaX+Tdv6VM6DEhIIGOrneFu/rScs9rDQbZ5EZAbGMQOaOrOzrluiftgwDSDouSdpyIP5VVKyfKDi4CpIivzExtskNL95fu5FZIz1Rt2U1bf2vwfL3/Q9wIGDkajPr0MIvT2QbN9PTXjYOLQTgDdlBqZhuP8yBJ9J/YNMCWGzTExsEE3zc+QJYLha/eQovmlFQ5lBuHYo/FOtVHUQ+GmHmNkMYwXobJDW8vZZIN4vakLhBDMlRHBNufNNOKHFqIgxoQNoERkjIPm+bi81yKNB7qQ4K+JuA3o9Tv0SzHUp0ULUmxsglBjVKTGHxxlmVkj1BVehbR2ld1GbeY0bbY6DQA31m6+mt9PWC54xegzCk/kZHb/MQdvkuZjDimpUYLKN25qnMCHNnjewmHwNHUfrIVc4Z6xSOMV6IXxyd2TlNrU8vg0D4Kpe3X6R2aIbqaA7wqEZp2ykf1+UELcxuJ/RF1IJlAbDlt4Ez6ldJB65lGkc6nwNw0b9Uk/HmE6mnIyOBSeVvkvJZKhzFd5q1+FY28fXjXX3VBVJ67KdGK2F+pIgLCkMB5FUHgJvBXLh5v9DeRhXOZW34jjlNuIdo784iKshNv9MXjqHy2OghmzmaHnXPNXd8rXtvLzlLDeSGl1rB2aUGjpQf0GeRBHfIB4L1YzXfRx358YuQpFgSSp0AAYmn 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)(10070799003)(376014)(366016)(22082099003)(56012099003)(18002099003)(3023799007)(6133799003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?d1tkCt+gBIDT0NvAEHIU5cJw2VN+35TWIQcOtMPLVtL3TPYzZMjJugVfh9Ki?= =?us-ascii?Q?1aLhIhI8fsD25kIas9xAZ8qEeqKAyyRpdLPRasV+fzT+cZQCZ+y43kc6hbuS?= =?us-ascii?Q?t8hLnreiV95LzHLFyspwzUSwDizltPbBtEubroPA3onm3F3dFr2zAdxcs2iu?= =?us-ascii?Q?9EM3jvoAaaU5lQsWd7COQyQXXdEHHHu3a9LZcUb0VeVHJzaTDweX9bCk+SQq?= =?us-ascii?Q?0oPHPnOpqFoR19uOxMQHgL8w7nIj7VqWM1gZpRCJ5X8jKKWNs1ev4bj6h6mc?= =?us-ascii?Q?euGmL1vOhA68jwmH9tDBXV4Ti6uDuLkupResRSWhaViXkqsbnGxFNVEkGouU?= =?us-ascii?Q?RzUXQ2yNYOUVgcnI1WAATC+JJekjuqpNW0YsUpnejYcazO4TcIAnwHGqIXI2?= =?us-ascii?Q?cDKI1fdhryATYxLMVv/Bz8KGHAH/L+5kpiidtLJMeX6My+vNFMWTXUr+s5yO?= =?us-ascii?Q?safWYfg9dQTtoXxt6h/7WYbJ6C6iQtKOoQjHnDH4QEaOxzPdZcSTmZ+9sJ2z?= =?us-ascii?Q?AKnwXHJuAvd4KdRU4J1DF799DmuyxWdL1lhXr0WKhv6eosmoWBkHHx+AoVzw?= =?us-ascii?Q?hyrQUiwxGy7yD7GGRNN/zPYHGM0pwI7pZ1qwRJHlvl/FNrpO9bb4EOvyA9wS?= =?us-ascii?Q?aXS4NptJJSaOkJiMf7GDVcE4Rw00F3YPlNoUvf/eTVTJLKVo0cVJyd+07Xf0?= =?us-ascii?Q?daisweIUnRZ+5MdQWR96Kuv2A/a7TDheKpriLH6p2tuzfyprqtAnNi8y6g9a?= =?us-ascii?Q?pdmqHT43Pv2J8VQx97x7/wpfu/rxJxj26rDNjTBmnSzZBZ30pv6msJd+p5qr?= =?us-ascii?Q?P8RfzaT5/In3lXKpLkIoEmcQo/3k8qfUI137Iu2rOIFl0dHMkIgps5C8uTaq?= =?us-ascii?Q?BxcWvE0/kS+Rb3sgRVPb7AjHBVSV4Q3RulLhmmWP+FaS16sovsaBtyaJcXAi?= =?us-ascii?Q?xqS36Etm6CA4aAaiU/GTCMK7NbhSW0BtLhxs77keo+w8n5RMGY7jcingUpY0?= =?us-ascii?Q?ws9evt6vmOEXKSooTiieLxsy4i2QgPj5B0xZBntYjXNdAAUKLLGRkgozgLFV?= =?us-ascii?Q?HZRHJsxacYEUymOwJPpZeEE8FWNKEaTuW5leqTNLHOtGiumFEULU0OPHeuZ6?= =?us-ascii?Q?VR+4F4j/mh1z/H6/vPBTJm8g3/ugZr3CedNWloDOLfILs2WjG8/pgU+moITK?= =?us-ascii?Q?i4DrWQ7Tr+mjgYa3cEByeuEi5jupmEoCr5wKyneJ6pxz1NkMpVTAPqCPYviA?= =?us-ascii?Q?B9HIshS/rG6ETKXKO8AvWrHGTF0L5sjQryV/3mc3VnGSV64fcatvCx19pJyF?= =?us-ascii?Q?dgQxFQZWajJhwEw8TUAKQZ9mf4cheS2RF2cAbJ/M2AwU1BLl1ggE8LslZTUg?= =?us-ascii?Q?iAreH6Hvn6ZvS0oGY4/R+KepeewrbWCnbKGKfhjkqkbHbNc0o45BpluV8Dbr?= =?us-ascii?Q?JcQJ2rvm1WeU06jOUHY4Tl1vND7cNp0rLjzNHOz/mumo8vs40+GpmDLS9+ro?= =?us-ascii?Q?J3tKwLlPpEMI6uWrF+JRrq8QHs78noiApgJUwosHQKo63ANYuiCeiqknsUYq?= =?us-ascii?Q?D3INaYcqKXIq4HBv0fnnlL64c3LIAnvvcFk4W6bveItYs5UoXVIkeljI8V3J?= =?us-ascii?Q?Nn3kZowb8thIIjfdaYSwbzvAZmaY234FV0ENv1i+ikA0A2a1lR0mFw0pnl8m?= =?us-ascii?Q?56TiYULggKzw7oZHbCFo/0LzPAxossKAY16kCR66zTtpATgXI+at3KtvR1Mo?= =?us-ascii?Q?JDFaHgo1U0Rniy+gusqvye6IdQdGMgoDwwbIPb14K67vtVaRN5a0?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 0617ecf8-24a2-4dbc-61cb-08deba264eea X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 May 2026 06:24:42.9619 (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: 4SR4B+YT+HH+1r5AGVtN/kjpbbFTAtqf8NYcdLHd3ZSm4tyo5jL21rBtJXu0xRdhQr1IPi1JaSLUQfrg5LGdFQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS7P286MB7796 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. Reviewed-by: Frank Li Signed-off-by: Koichiro Den --- 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 c2be43170e02..00e9c9775e3e 100644 --- a/drivers/dma/dw-edma/dw-edma-pcie.c +++ b/drivers/dma/dw-edma/dw-edma-pcie.c @@ -410,11 +410,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) { @@ -478,6 +480,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; @@ -503,6 +508,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; @@ -536,10 +544,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++) { @@ -548,10 +560,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 Tue Jun 9 01:01:19 2026 Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11021138.outbound.protection.outlook.com [52.101.125.138]) (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 3D5DF3AA9DA; Mon, 25 May 2026 06:24:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.138 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779690293; cv=fail; b=AZA2TsqoxO7UckgR1wvnL4PsP3VPtXt5BA1fLml7vOM6Gms1z+5/ckCBo2lCgW0ie7cYouumJ9gxFki/+vewh5ryJjPvygTwrT3tBBSB6URUf5Rwf7CtWhCfaWUvadCUwNG2VJKJrAQVXTF0rAaedkRakDp5wwMXH0b/grV3uZM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779690293; c=relaxed/simple; bh=b6Hj4IwoE6650ZWzm+LeIgx/bSn0m65GeStGqKRB7fU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=srkiAn2+0/imgqLFy4UIvIX1vafuMQ/wraQCNJjsBKYSmzV7wu3gmJj8/0P4kYHZGHvvDh/37BMxda4zm4Tow6o07BGfRstn7egejCOEhmQMF5VGurotP0iob4r2y21b907uk89lfvgInFSejZo43k5EN2n4zFPnf4yTFkud0n4= 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=oI4hFCmj; arc=fail smtp.client-ip=52.101.125.138 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="oI4hFCmj" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=f7dz1/5TxT4Ec/0o2mAaJnoUgv8PEXRwl3dL2DMYZ7scZiveywbxiSUmwVoSMYHOFzcs/iXh1DN6KyXJPgnxwS3oZLaBNjGDD6APwAWSuIAfCZFTovr+HCf16Mb+bDC8OECUp/eDLaLLlCaebg3M6WeBRXMHQlGxzYRdylISBB3SFTxG0LLokP3LV5aa2YBCdQKklyLzvHVllXQRHT4cfVf+1cB9wzwVBHWLRjqOKfw+7CeAlwqkNjEOOSrTQv7CSz0LXC7ka/+gTfsictl5S8rKbKbPROxJAVS+q75mE/BlwmzZjN6ThG+vZRymNcs0N4Mv+BZM183IaRVM+KduYQ== 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=TedH9z3u2BejPGVP0vHxbI4xD8cn1/8v4mwkq+xK9Nc=; b=mf2cEWauSDLxQ6wym7LlJtXVSb8hTBQR4nAUxu8XXmkm0ZzQ+pis4cGVdwpkv+xcGD/OGz1CamkzPTiUWSi+MIm4ybkaGJRt+Q4DrNuLx9yBeOMEN/P7OGhXRVAaHaBUX0G4QvGKLIdG85K0yxVsvCncWOLo3yvbqv//MqqKTHaZOe5yQl4xQlQDxKehbMuKmP8PehjI0BOcYCQCU0N2kbS5iwWat2D0J5jCrcpVWLTZo5rlzHAgWn2kcUN32dTgN2O6rDzXqpyxt/dUhHQxRWClPK/K7+TI/Xfe5O0Ebr0A+b/8yVxXE23xfZCnRdU3A6H6KulSOpvjswY6tHO2yg== 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=TedH9z3u2BejPGVP0vHxbI4xD8cn1/8v4mwkq+xK9Nc=; b=oI4hFCmj0JfFjXbl/uaTwNiBiowjrU13Pt2SOGLTYfGgs0tpE9QXPQUlJGcMMCf7A8XyZNHT8Hs6lUdhjJG3J2l8qcPSj/qlzRWfUlSTZaTKJj5OImD3B4bHbq/l8INa8nVu/F+K48oTkoY5OockLgN8gld4N2zMpGveJwPwOBA= 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 OS7P286MB7796.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:441::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.19; Mon, 25 May 2026 06:24:44 +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; Mon, 25 May 2026 06:24:44 +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 v2 12/12] dmaengine: dw-edma-pcie: Add chip flags to match data Date: Mon, 25 May 2026 15:24:20 +0900 Message-ID: <20260525062420.3315904-13-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260525062420.3315904-1-den@valinux.co.jp> References: <20260525062420.3315904-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY4P286CA0017.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:2b0::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_|OS7P286MB7796:EE_ X-MS-Office365-Filtering-Correlation-Id: 5c91f8f4-f230-4e83-2ff1-08deba264f93 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|10070799003|376014|366016|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: VQmmLNq0SBV2PpwPIbvzMHDl91zwa3xDlqeFsSEwe32JayIQrLeUgJUvq7WUd+IN5jP2FNTKgW147Is4T+TjhEi5cn8DlfPxXWDoEOIUdsL6Rr2i7rPiRblaXBD0Jt7XgU5X4zKGWFJrtO9b2MFy+JZrTbSBCpzvMLxJf8D7TK82shQAtpPxbZvxSoX7cX49OJvNtWsDqJSQCVpM3jz5CW3oP957IgJohF1T37ve9Iym0uwBrncpH7EJffNTsyTl/QR/WPjU/D6jRD0PeNIT9goUYXleTWEYh1n2MFOQoruPEThAiAJqwZ0Q1Ac08XmXC5qQUfGw9uwD+K4r5nJzLLadsyLHOLisy5ug6KmdeGgfE1Yd7EQGIPK1CsDgzqfTNsOoPLyWJYeJSYPgn6IfyYZXwvc2o4BeaUGEUXqrZ3CEPRMFQs2f0vxqyuF+ZYZ3NpYnHDLNoTXkGV6YKQTyh2ua5HTs5yinjzMXSZOJpykRc0zpzEhytmU8Owc0tibgLN1HUMHXhk4KAPeUOd+wkfTGYNFC1h/FOal9RHhcx7xD7BXNKNe1RXXZH0Wt2AcZACmiS96ej51W2ieu3gZBasd2eHDAt0tXVpRp9+u/tcfzOwmZyULaZJOi4jt/HQg3jLm1xHqUv2fEbhRN957uM1L9+Cw/bD6bqD4NuKrMYRHKUTOoaZxDpFtudticpONv 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)(10070799003)(376014)(366016)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?BAo8SId3FijZ/6UJFNzV3w4xnTzG05G0mLWv0tTjGw5y1/HSGRVqdUuHWnlL?= =?us-ascii?Q?pLQTMVmZGpWVvwPnUqWN3sPj4twaTlmx3TfE1QBPAWa1zQ1z7An4PbfZnAqb?= =?us-ascii?Q?SeAjvMU9hG0cxEBotyCebkXr18nJ3kuYiEw8piJNvSBRXv3QXS2snhk+J3i0?= =?us-ascii?Q?DBNtFeZEsfDbFbIIA6qgTMcyajtWryeOFQxaVH+h43lZViF5Dn+f8pc78weE?= =?us-ascii?Q?Z+OfoHaJGKqMVms43ucIjv/gAj5/PakberJ4BPPyWFIWhtHbcKB1pTemF85L?= =?us-ascii?Q?9E9pAnRWLZNRFwxq3ELJIbj8qUV0MYJnB4DxGw3r6fsCh7UCGvkxg8Wg/wdd?= =?us-ascii?Q?4SzzoI8KU04dA1Z+TYRH3INvkwerMJ881wOf0bm5xljVxzK5SXAChmC58Vjw?= =?us-ascii?Q?59nVu8uxbzzn9DxrZ1SquXK90X6cUP7X5/7zcU4nJG3U2rPZmjajmMSlst6M?= =?us-ascii?Q?8XMYNWtUYXtz/6mzNvaFBC4VF0sWOHt4pOrZZPcRJzO4qTm2BECIVyqHpIEx?= =?us-ascii?Q?qrXRaxYGaXulbxf2p7WJCQhYKSzKsptL8A9Dgf2p1zW3aN+WEnYb7JEePH0E?= =?us-ascii?Q?H5M7oKvKa1XE0Z26nZ2vOGhz2Go//UbDocYdGLPAtXCt/Je93SnOsxwhRUfR?= =?us-ascii?Q?IbeQhds5E0mhMktG/e8J/MQulDz/3D5fvPMsgwHqdgSwwNAO8gOknkk8nGr/?= =?us-ascii?Q?0pLQxknS4UvKxxV2Z/LnzXdLDIQpcMI3UoDluQD6ChguPCFjCJFWaiLOdsJ1?= =?us-ascii?Q?Z42M7XWrPqx4fdVqGbk+20VlofXH6XV7it5rQ/+21wJwym7ljRHLMYHPwRgK?= =?us-ascii?Q?hdWVafwQQuRJxYpVDvDNKIGY2OqZ02QoYz2qeO0EZb5bC8Hx4oUnvr+ePXT5?= =?us-ascii?Q?Hzx8g7K3ttRErLGfDmwk3+FPWjcsuPcaFjl3sqCwgu+6MjhN1All5pYvSIGl?= =?us-ascii?Q?9jtyjSpOuFh3JrEWlK1iOShss+xBidrs0zWOeI2mfUGC0Tg+u/EC9HoXwK2T?= =?us-ascii?Q?tlpP2qQqXyqkDNaqoBF6NXDF4jeFyeLdP/wDP2U2U6RddOIgqeIm03UnJ4jD?= =?us-ascii?Q?Pne98qYnm3MyXizMA6G0gh/ddnOeBRjvfcsqSy816McNEpcRFkxLGezt161u?= =?us-ascii?Q?M8jSIp36PqCogxst7VrfTKWPh5oi+Q9EdwndeX2JkTm1Gi9fSZPbAOn7VGrr?= =?us-ascii?Q?LFybDYdoZVJFwu5LkfpuyUOjRi0xSrJ/3O2+4wPYkueG8Imx+EB7Zvs7kOAz?= =?us-ascii?Q?9Aj6ygZH2Rb7UwmXBhtSHADiYvLKk5ThxWE9NigGkiMIKo9o1J3yPyQsuoM9?= =?us-ascii?Q?i5+79p/IQ8HzOz9vzyJIei7CgJ34IGd68shaJnVlZ7O+LhQHAF2LWyuchWMR?= =?us-ascii?Q?bbMmafwwxRkl1ndkkKQo0AdTqtOEmHtk3vLeZRFVm++DhfXaHhhkMIh9uAT3?= =?us-ascii?Q?K93KK+DExbiDrajGcGvkrP0jskVdNubksX+EkAzubvg1Za+MFvvRXc/xirCr?= =?us-ascii?Q?wjPzubPElqCydh0E1bu3LfObd8APl7u2GIhpFYeuwh0eGb/aGzS8OuAC1gB9?= =?us-ascii?Q?D8widM2PRW6hsEAiKX296Vn9kdfvv+Og5TXfqxCuz0au4Vh6M/E+xrwx13BA?= =?us-ascii?Q?gPAAVNBSLaMGYcH1kAz/NcjaCQd611FxQOtFDPNDXF4LCy2Zqd2IkNxQW1yM?= =?us-ascii?Q?gxbvxBaeDveJpDyw7IgZH3wgYiW/CLaqRz9Ee8lbRSr8VNznW3EaJGldSv/+?= =?us-ascii?Q?J/MlOiciDMWF/SMU+OPpC5BlMLs6Acaw1a2mZRSsRy0VoylzZIKr?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 5c91f8f4-f230-4e83-2ff1-08deba264f93 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 May 2026 06:24:44.1142 (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: o4jqZBAPGS7O54dzX5NwvFqGALXLEeXsQgCqtIvbWQnlMUTowPG+x+b5q4j2hQXEh140ZZwdIWr8p9kBH5ny2g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS7P286MB7796 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(). Reviewed-by: Frank Li Signed-off-by: Koichiro Den --- Changes in v2: - Refine the commit title. 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 00e9c9775e3e..12229a9301cd 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 { int (*parse_caps)(struct pci_dev *pdev, struct dw_edma_pcie_data *pdata); unsigned long flags; + u32 chip_flags; enum dw_edma_ch_irq_mode default_irq_mode; }; =20 @@ -451,6 +452,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->plat_ops; --=20 2.51.0