Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.0/patches/2175217/?format=api
{ "id": 2175217, "url": "http://patchwork.ozlabs.org/api/1.0/patches/2175217/?format=api", "project": { "id": 28, "url": "http://patchwork.ozlabs.org/api/1.0/projects/28/?format=api", "name": "Linux PCI development", "link_name": "linux-pci", "list_id": "linux-pci.vger.kernel.org", "list_email": "linux-pci@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null }, "msgid": "<20251217151609.3162665-21-den@valinux.co.jp>", "date": "2025-12-17T15:15:54", "name": "[RFC,v3,20/35] dmaengine: dw-edma: Add notify-only channels support", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "aea03251ed0f5d4b4798b7fe9b15aac721f89fc0", "submitter": { "id": 91573, "url": "http://patchwork.ozlabs.org/api/1.0/people/91573/?format=api", "name": "Koichiro Den", "email": "den@valinux.co.jp" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linux-pci/patch/20251217151609.3162665-21-den@valinux.co.jp/mbox/", "series": [ { "id": 485709, "url": "http://patchwork.ozlabs.org/api/1.0/series/485709/?format=api", "date": "2025-12-17T15:15:53", "name": "NTB transport backed by endpoint DW eDMA", "version": 3, "mbox": "http://patchwork.ozlabs.org/series/485709/mbox/" } ], "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2175217/checks/", "tags": {}, "headers": { "Return-Path": "\n <linux-pci+bounces-43191-incoming=patchwork.ozlabs.org@vger.kernel.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "linux-pci@vger.kernel.org" ], "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=valinux.co.jp header.i=@valinux.co.jp\n header.a=rsa-sha256 header.s=selector1 header.b=U6lkX6n3;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c04:e001:36c::12fc:5321; helo=tor.lore.kernel.org;\n envelope-from=linux-pci+bounces-43191-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)", "smtp.subspace.kernel.org;\n\tdkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp\n header.b=\"U6lkX6n3\"", "smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=52.101.228.20", "smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=valinux.co.jp", "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=valinux.co.jp", "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=valinux.co.jp;" ], "Received": [ "from tor.lore.kernel.org (tor.lore.kernel.org\n [IPv6:2600:3c04:e001:36c::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4dWdK60bwpz1xty\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 18 Dec 2025 02:39:54 +1100 (AEDT)", "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id E89BF322AF18\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 17 Dec 2025 15:24:35 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 0DD70361DA6;\n\tWed, 17 Dec 2025 15:17:49 +0000 (UTC)", "from OS0P286CU011.outbound.protection.outlook.com\n (mail-japanwestazon11010020.outbound.protection.outlook.com [52.101.228.20])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id ECBC235CBD5;\n\tWed, 17 Dec 2025 15:17:45 +0000 (UTC)", "from TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:24c::11)\n by TYCP286MB2863.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:306::14) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Wed, 17 Dec\n 2025 15:16:31 +0000", "from TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM\n ([fe80::fb7e:f4ed:a580:9d03]) by TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM\n ([fe80::fb7e:f4ed:a580:9d03%5]) with mapi id 15.20.9434.001; Wed, 17 Dec 2025\n 15:16:31 +0000" ], "ARC-Seal": [ "i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1765984668; cv=fail;\n b=sSYBGF9fmfL+LU4pLcNfRdonjjN4U4HbYGa9MjgrYSWXIoV+HCd6SKMP4nnt9nBNp28BQQO6kNKPfUhZ5KhxaI7IXZMsU02xz5Gb02CVUXM2TOHswywAJGcw7UCOie+7ktDr14RsMeyIDa/xn/+5DD1Zdxytmigsfp5S9ucAdjo=", "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=Vd0UONTDQ4BaW6fSB9nnnugAV+GPq8lJ6IDqx6OGbh2MTgT1Bwiu+HLkHLxiqux0VmCnrCKIIX8CocuFmWX0ltV5jKCDWhVdrq6y9DiSjjljTKNRmH8DFjSOQAk03cpCIk5rH+LcOUF54rvvKvt3WaTvysf5emn+JnRVrX7dIb2xAbm35b5B/cozKTMteWqMXywjLZyrK8kTnUJ+tOEA72cLDelqlB6FHobD8zp9rtLRF9BxFgPfBtYdG4RhpAeO4aLtcvG6MjAc2ShMEr7vf7W4jCI14eNiT8NHZb2Pc7uMTJNsxDdKd5FNxpsY/VLk+PGXs46mp1AAu0KzYscxUw==" ], "ARC-Message-Signature": [ "i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1765984668; c=relaxed/simple;\n\tbh=1Y9bU92YdEUA/d81fMwuTKdzIC3gHlad9y6sgvRh99A=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t Content-Type:MIME-Version;\n b=sgG9EFjM7p95/gM+74FIN0D5r0yCXXAE+OJMojqCE5K9xCzqBVjUbRveoObyUoCSmbSzLHo//R4ny1y/JcMhfBWf9z9fBY53PGZUweNBSQjHbo7cHHWRYACpZOxxR6wahCHDPkw2cVpL22G+A71tZ6aXhuKkydc0Todlqc6GijQ=", "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=lBHhV8flWb08jkfgSrsYDEjcKE4stA0DKcw1IQNChX8=;\n b=QMS7UAWHmbfHjHBOjUPXu+SCmfWMIa21li9O4YOY+ccMURjj8Imi4iqkVYVgOua+9K0koRanhzF1wDiuG2aI39HL0neneUGpI61Tijy4rto4Yt4rDqc70tKF4RJkWtYVXsvZnDbzfpQ3UHUqBtYuaXQaws/F1Ru58OgMPdrK7WKZ+nTNm1NElJyoZUntF/2RU29LfIw2FKrNzo22XvWbWUr+u5ElDbDHUt/tQQvhJh8aeqbB7UJtQqxWVjrX4rtG4MFbaKVTwvnznO6RSf0qZiAudFXDyBAZLPlofe+qWVlbUNz3ys5lbW7UHBO8zq4AB0LveiGfxe9p/GhBmfIZ2Q==" ], "ARC-Authentication-Results": [ "i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=valinux.co.jp;\n spf=pass smtp.mailfrom=valinux.co.jp;\n dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp\n header.b=U6lkX6n3; arc=fail smtp.client-ip=52.101.228.20", "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=valinux.co.jp; dmarc=pass action=none\n 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;\n s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=lBHhV8flWb08jkfgSrsYDEjcKE4stA0DKcw1IQNChX8=;\n b=U6lkX6n3xMtDG1BIz4td3w98KjelghQqPwv/zKoXJcwETn5DHcxnF1zOawyjojTOqfaX+1rfdMgo9FupxtVfi846/jFTo9OaLWrEh369dSf7P4pkood9YeSwS3q8cTLX75lSwQRht2CuoL54KAIYuo377ie6TQbxfI+5tjmDlJk=", "From": "Koichiro Den <den@valinux.co.jp>", "To": "Frank.Li@nxp.com,\n\tdave.jiang@intel.com,\n\tntb@lists.linux.dev,\n\tlinux-pci@vger.kernel.org,\n\tdmaengine@vger.kernel.org,\n\tlinux-renesas-soc@vger.kernel.org,\n\tnetdev@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org", "Cc": "mani@kernel.org,\n\tkwilczynski@kernel.org,\n\tkishon@kernel.org,\n\tbhelgaas@google.com,\n\tcorbet@lwn.net,\n\tgeert+renesas@glider.be,\n\tmagnus.damm@gmail.com,\n\trobh@kernel.org,\n\tkrzk+dt@kernel.org,\n\tconor+dt@kernel.org,\n\tvkoul@kernel.org,\n\tjoro@8bytes.org,\n\twill@kernel.org,\n\trobin.murphy@arm.com,\n\tjdmason@kudzu.us,\n\tallenbh@gmail.com,\n\tandrew+netdev@lunn.ch,\n\tdavem@davemloft.net,\n\tedumazet@google.com,\n\tkuba@kernel.org,\n\tpabeni@redhat.com,\n\tBasavaraj.Natikar@amd.com,\n\tShyam-sundar.S-k@amd.com,\n\tkurt.schwemmer@microsemi.com,\n\tlogang@deltatee.com,\n\tjingoohan1@gmail.com,\n\tlpieralisi@kernel.org,\n\tutkarsh02t@gmail.com,\n\tjbrunet@baylibre.com,\n\tdlemoal@kernel.org,\n\tarnd@arndb.de,\n\telfring@users.sourceforge.net,\n\tden@valinux.co.jp", "Subject": "[RFC PATCH v3 20/35] dmaengine: dw-edma: Add notify-only channels\n support", "Date": "Thu, 18 Dec 2025 00:15:54 +0900", "Message-ID": "<20251217151609.3162665-21-den@valinux.co.jp>", "X-Mailer": "git-send-email 2.51.0", "In-Reply-To": "<20251217151609.3162665-1-den@valinux.co.jp>", "References": "<20251217151609.3162665-1-den@valinux.co.jp>", "Content-Transfer-Encoding": "8bit", "Content-Type": "text/plain", "X-ClientProxiedBy": "TYCPR01CA0119.jpnprd01.prod.outlook.com\n (2603:1096:405:4::35) To TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM\n (2603:1096:400:24c::11)", "Precedence": "bulk", "X-Mailing-List": "linux-pci@vger.kernel.org", "List-Id": "<linux-pci.vger.kernel.org>", "List-Subscribe": "<mailto:linux-pci+subscribe@vger.kernel.org>", "List-Unsubscribe": "<mailto:linux-pci+unsubscribe@vger.kernel.org>", "MIME-Version": "1.0", "X-MS-PublicTrafficType": "Email", "X-MS-TrafficTypeDiagnostic": "TYWP286MB2697:EE_|TYCP286MB2863:EE_", "X-MS-Office365-Filtering-Correlation-Id": "0b848c19-2894-4397-792c-08de3d7f4249", "X-MS-Exchange-SenderADCheck": "1", "X-MS-Exchange-AntiSpam-Relay": "0", "X-Microsoft-Antispam": "\n\tBCL:0;ARA:13230040|7416014|376014|10070799003|1800799024|366016;", "X-Microsoft-Antispam-Message-Info": "\n sLG43AwZPQPuvufAMICIVDhtA8iR+tcq8JAZjDcin8dEIopfQRAohtEgdg7HOiC8UmIJB3BeMgFg299O5DpQW2Y9ws/6VGBLERC4hxfbeHWoYooBw0j4Ij9yX2AFBjdv/LsXz7bH0645pnbcOUNmYsdl7CKFHcijxXPIOxoliM+L+dKZXFCLI+l1lw07x0ds/2U3TwZMyP15VGd4oPB6nDurOPWVukT8upnSHlkmsFW1ZUxAl7FR+a1tGy/ztC5x78mInDDBxnFlh0IKvh4K1fdVyWJjE32VacZY4vpQGIeogJ/Fy16xKMwBpYeH+z5q65CNilJw3CuCFJCAfzG4y+j49I5q+E9jexOeVWfzYTTlwmeAsLFV49fODXV567nWVSbthuWot9NKJKW1f15xWyzJ1dkZ5qzxpLTo3rXeOU/+MxLINKHmVq0i3DMvWvHwUPtf/M67AyT7VCDLivbsDu3uq7J8X4Z/tUTB+IdHQj6MStkVTKra7VKF01EF1enpeXeTJy0CN6rsz68kZ4oLF0Kk5YtIK3p0XfNHZQJjDAAFzDfhY708TwoKd7NC9dZDK9IZ8R6ziyHkfVWiHumQW2wzzVQMMqUaj1ll/ag5KHqeyb0d7meHxNbFv8TtyP2f+JPaSmV0O0+2WyyzSB9bTthNYia7WSa2jWk6/5Wp8IdymSMLhrhQO/98xs4xuakt5nTQJn84ybLlXV8V+n2lTrqW0CL3PTuV7V6sToNBY3OJ7Gms0LLezTYe2bJTsH7iv8d9og2vqDdDUHL9tV4YRTGZiUfJUSX/v5aGK6Bk0btRHnOW83Rq1lfncczctQVyIxpZ6E9NJio2hdshgsr6S2W0VM9zafx+Lu/pWRmMwSmNFGlbJAgvjRt6rT3YT73JaTz/uYw4okecCV5QZdeY+SHwNjKyB+G8rPVAPGaTUQYEx5J4ucifrhuZidDGO5GUOSICO70W6AA9BQjMQsYjDf8YZkK7dbadgoVOArGmvlcJg36Xmq7wdQTeMRKY5MZqcSGaa7YNic5ZWrQq/L0FOHJuPTTJqX9aiPol7F/PyTdrRn28BNaxFtav4kHeq1MAN3dWuQ+YpuKIGuEbyjCCaXg3XcT/W9DT9O9LEYVnzg0BY4cR0uKvRyQ9IJWQHGSW19by+cZXnj+9ed45f0xHdDuc7u3dZx917CQlLHYyzhgm57mjRHXCoe0s9TkTW7+zm2Z4G7CzMS+c3NYeXN6YNOIySM3K0iOKtgBPvlBQQZqd4GyqDUmbe5FFJyxeRid9/kZmvKCdsAH2hUND2SyijHdzxC/+vxL3USI+bvy1bimcv/wWDCGsFORRonHH43hPcmyY1qaLKcPt5wOE7TCBJxqFmDz5Jil9Me6KstpMAobCNskyP18BM6enUhvt9e/aALrosPtOxF219dIVsSnH4LyluzZyZ7fjiQvE7rHejwLjubclmc1TFLG/v1UVxz6b", "X-Forefront-Antispam-Report": "\n\tCIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(10070799003)(1800799024)(366016);DIR:OUT;SFP:1101;", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1", "X-MS-Exchange-AntiSpam-MessageData-0": "\n TCzE4IQEv8z7TILvR7w2acsGkwtyUpJLMyNh/Wqhpbb/D3Y1jNP3HHf29HzZV6/TrLFHn9uxCbafnWlew7WfstugtoGby0pKdLo9CIikcuEmZOofjhVwYAWz0xnG23ud88JEBTlAR/hogEdqLulltRA6r5Wxv/+G5oYIX056osoNAiK0D0ERMFAy0Xr4FV0monTC93wqOYTNs25Oqh5Xb04StzpYZBFUbghQe2NyPf5I7p7UmUXKRxOC0DzBwy618EHQ3gyWjY9QvZ2L7aqvQ8lHDTumHxTnGg7dYxrCqIv4cXpQ10M1U3aSob4we/nt5s2EoIQe7lclGu+ZUesM783QNu8M6bVqT38no1B9He7cWp5THiKvf6PcVYq5uiQKYOmHH9H2RjNaI2YKbaufkllWpQvy46qhoq9Sroq9K2Nhe8i9161MlAqfDo5qFHvWMcAJbj3UlCtlecIPK09cGj65tKtygKN9mPOHhm9vxDTtMN02zSIRDb2uXdwIHKkFcz2JsSwWN2IxxYtH3lmuaxPw2fsbZF47chqE74y6+tN1at6k5NiRqXD3cDZxgAqIVaWkrq5+1JDZoR32jkMG3tM8HTRrjnMnjeIjw8k0ovXFTMz+5SG3f0/JdCYbG2Z4gaYucuIyF33+ehCj7BtyoRF0wWZyQUtkhx6tn4KVx3Ac7QQpLxVEmsgPFiEwOF64m/gNaHSxf+UVvyu7nhOl9Z1CgaZmBHSb640GRd+8NAHtUENCR7iDcC+pDzXVJq4R5VybYQV7o+YwwxnOXGJw1TrMdk1V6GLILDlVmbTEOpUiS14ssrMBhGCwqhMFYKL++EwxDzy4eowv94JcsCOB7xNqDwQ5YhqIxGRCFvbWr8hMcbjwXYwVKUe3Hg9q37WKt8u9ijkPhCLQcdaOZxu0o6fchZwCzHtWHYYB+/ZDtkvorU97n225yti5bfY72uUKI1mYmjoyxRXnDTNsLNLVEd2iE8btU1dJPfz43Ee/0GOac/8Ae5zDnfIozxRol25BPlWWrjMXKdzCVcTYGdtRjjsFPEdVF4VWLroHE35cjoEIQN9SPS+LRzkQocBDXCaV+n3wM0o8YkAl2YZqfDrKnGSYJjlIdV7eXENHb0zwXda2f7ZwNZo7RfnUNP4Te6Xe+z689ArWsedp7AsjPu9ZDoERPhvGakuqPYeYyPJIjtNzEpWEj5d/cPafXTMvkUtaGTOs6z2sPxhjdhzZ1PxVPdym+OZr07g/V/lvQiwU2DACjOQrMkaZ8DdEuNdjfynzUWsDtWnuVBFBT5kq0hknWswxmPWNQLVmiDkPp2p42bxQjUnrDTo6kzk9suDlIFAqoz/vTw0X0Cy8GCrDLCPCGrSeIqRAwgRIzysIGkqVecOybhdwVjFsMHbeXJYYX8rpSynPcRJcqZMbrbPYKenRoTyIGOHO8cMqF6MvH3yqSkAeGVXoVRNS0bkC31XT9uT8PrbBA17AsEbhYlfDTq03vq26qZkw0zuJxTzqGYG06Bva/63S9AqJja88WCRLSEeH/nIk4YL4agJ0slE1ky2rISLqqirJrOd21azKN2TtxnnFYLZS56ilHM3K2Wa0ihElqdkHxbh86HYc3mLhfZA8LVcloDpRoq0y0jsNEW3q+7E=", "X-OriginatorOrg": "valinux.co.jp", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 0b848c19-2894-4397-792c-08de3d7f4249", "X-MS-Exchange-CrossTenant-AuthSource": "TYWP286MB2697.JPNP286.PROD.OUTLOOK.COM", "X-MS-Exchange-CrossTenant-AuthAs": "Internal", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "17 Dec 2025 15:16:31.6140\n (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": "\n 2cgrHeotYXTbPDtpiFU54i+YqoA87nMT3B45UosmgeROQ9vzpbLXvLKEuShFuhyh3nlh9aI+nfHyXF0yQU3xnQ==", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "TYCP286MB2863" }, "content": "Remote eDMA users may want to prepare descriptors on the remote side while\nthe local side only needs completion notifications (no cookie-based\naccounting).\n\nProvide a lightweight per-channel notification callback infrastructure.\n\nSigned-off-by: Koichiro Den <den@valinux.co.jp>\n---\n drivers/dma/dw-edma/dw-edma-core.c | 32 ++++++++++++++++++++++++++++++\n drivers/dma/dw-edma/dw-edma-core.h | 4 ++++\n include/linux/dma/edma.h | 22 ++++++++++++++++++++\n 3 files changed, 58 insertions(+)", "diff": "diff --git a/drivers/dma/dw-edma/dw-edma-core.c b/drivers/dma/dw-edma/dw-edma-core.c\nindex 09b10ad1f38a..8e262f61f02d 100644\n--- a/drivers/dma/dw-edma/dw-edma-core.c\n+++ b/drivers/dma/dw-edma/dw-edma-core.c\n@@ -608,6 +608,13 @@ static void dw_edma_done_interrupt(struct dw_edma_chan *chan)\n \tstruct virt_dma_desc *vd;\n \tunsigned long flags;\n \n+\tif (chan->notify_only) {\n+\t\tif (chan->notify_cb)\n+\t\t\tchan->notify_cb(&chan->vc.chan, chan->notify_cb_param);\n+\t\t/* no cookie on this side, just return */\n+\t\treturn;\n+\t}\n+\n \tspin_lock_irqsave(&chan->vc.lock, flags);\n \tvd = vchan_next_desc(&chan->vc);\n \tif (vd) {\n@@ -811,6 +818,9 @@ static int dw_edma_channel_setup(struct dw_edma *dw, u32 wr_alloc, u32 rd_alloc)\n \t\tchan->request = EDMA_REQ_NONE;\n \t\tchan->status = EDMA_ST_IDLE;\n \t\tchan->irq_mode = DW_EDMA_CH_IRQ_DEFAULT;\n+\t\tchan->notify_cb = NULL;\n+\t\tchan->notify_cb_param = NULL;\n+\t\tchan->notify_only = false;\n \n \t\tif (chan->dir == EDMA_DIR_WRITE)\n \t\t\tchan->ll_max = (chip->ll_region_wr[chan->id].sz / EDMA_LL_SZ);\n@@ -1171,6 +1181,28 @@ bool dw_edma_chan_ignore_irq(struct dma_chan *dchan)\n }\n EXPORT_SYMBOL_GPL(dw_edma_chan_ignore_irq);\n \n+int dw_edma_chan_register_notify(struct dma_chan *dchan,\n+\t\t\t\t void (*cb)(struct dma_chan *chan, void *user),\n+\t\t\t\t void *user)\n+{\n+\tstruct dw_edma_chan *chan;\n+\n+\tif (!dchan || !dchan->device ||\n+\t dchan->device->device_prep_slave_sg_config != dw_edma_device_prep_slave_sg_config)\n+\t\treturn -ENODEV;\n+\n+\tchan = dchan2dw_edma_chan(dchan);\n+\tif (!chan)\n+\t\treturn -ENODEV;\n+\n+\tchan->notify_cb = cb;\n+\tchan->notify_cb_param = user;\n+\tchan->notify_only = !!cb;\n+\n+\treturn dw_edma_chan_irq_config(dchan, DW_EDMA_CH_IRQ_LOCAL);\n+}\n+EXPORT_SYMBOL_GPL(dw_edma_chan_register_notify);\n+\n MODULE_LICENSE(\"GPL v2\");\n MODULE_DESCRIPTION(\"Synopsys DesignWare eDMA controller core driver\");\n MODULE_AUTHOR(\"Gustavo Pimentel <gustavo.pimentel@synopsys.com>\");\ndiff --git a/drivers/dma/dw-edma/dw-edma-core.h b/drivers/dma/dw-edma/dw-edma-core.h\nindex 11fe4532f0bf..f652d2e38843 100644\n--- a/drivers/dma/dw-edma/dw-edma-core.h\n+++ b/drivers/dma/dw-edma/dw-edma-core.h\n@@ -84,6 +84,10 @@ struct dw_edma_chan {\n \n \tenum dw_edma_ch_irq_mode\tirq_mode;\n \n+\tvoid (*notify_cb)(struct dma_chan *chan, void *user);\n+\tvoid *notify_cb_param;\n+\tbool notify_only;\n+\n \tstruct delayed_work\t\tpoll_work;\n \tspinlock_t\t\t\tpoll_lock;\n \ndiff --git a/include/linux/dma/edma.h b/include/linux/dma/edma.h\nindex 8c1b1d25fa44..4caf5cc5c368 100644\n--- a/include/linux/dma/edma.h\n+++ b/include/linux/dma/edma.h\n@@ -95,6 +95,21 @@ int dw_edma_chan_irq_config(struct dma_chan *chan,\n */\n bool dw_edma_chan_ignore_irq(struct dma_chan *chan);\n \n+/**\n+ * dw_edma_chan_register_notify - register local completion callback for a\n+ * notification-only channel\n+ * @chan: DMA channel obtained from dma_request_channel()\n+ * @cb: callback invoked in hardirq context when LIE interrupt is raised\n+ * @user: opaque pointer passed back to @cb\n+ *\n+ * Intended for channels where descriptors are prepared on the remote side and\n+ * the local side only wants completion notifications. This forces LOCAL mode\n+ * so that the local side receives LIE interrupts.\n+ */\n+int dw_edma_chan_register_notify(struct dma_chan *chan,\n+\t\t\t\t void (*cb)(struct dma_chan *chan, void *user),\n+\t\t\t\t void *user);\n+\n #if IS_REACHABLE(CONFIG_PCIE_DW)\n /**\n * dw_edma_get_reg_window - get eDMA register base and size\n@@ -185,6 +200,13 @@ static inline bool dw_edma_chan_ignore_irq(struct dma_chan *chan)\n {\n \treturn false;\n }\n+static inline int dw_edma_chan_register_notify(struct dma_chan *chan,\n+\t\t\t\t\t void (*cb)(struct dma_chan *chan,\n+\t\t\t\t\t\t\t void *user),\n+\t\t\t\t\t void *user)\n+{\n+\treturn -ENODEV;\n+}\n #endif\n \n #endif /* _DW_EDMA_H */\n", "prefixes": [ "RFC", "v3", "20/35" ] }