From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 069F4C43458 for ; Mon, 13 Jul 2026 09:50:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version: Content-Transfer-Encoding:Content-Type:In-Reply-To:From:References:Cc:To: Subject:Date:Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=AOvGy1KCn8qD+l1g7q9q1FoO24CHFo3HFQCAWzwqy3k=; b=OhmZtgtSg5b4110GRpShBzP0sd D/glJa+Mf9KMtMjbnQjrW/h2lKRc0KZmJU3l+K6o2glp+LnRj+cSJwGcu9gJJrU9NXp7hAJ6/UsGK 9w7UZCVNo5gq/Gi1z0bJjgbavjJoZrgfD6Oo2BaFeRWtxsxhDDvjNHRZ49Xu6rRHAUBhYhI6z76le lFzh+BWYJvmUHwYMjAiv4jfC1pVo67Yf6eBN9T76zsmU0JE99JGhA+oiTiq8WyjihVmNRnHWKROnV DKSRSabrg5u05TPtQ5Zf0kQoMltC+TyPo7Fojedw1lQM4ELWzVeNnJXWQ66ulMkXm0+jqhPClOKaV CCKqZ7bQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wjDJ2-00000008mwy-15fl; Mon, 13 Jul 2026 09:50:33 +0000 Received: from mail-northcentralusazon11012062.outbound.protection.outlook.com ([40.107.200.62] helo=CH5PR02CU005.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1wjDIz-00000008mwG-1CH7 for linux-arm-kernel@lists.infradead.org; Mon, 13 Jul 2026 09:50:30 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=eFP75uQSiSXlYd6i272ZDXc+L0OmBjM0qbRj9bwSOPqS7YENdFtRXHTHZ7ShgvTTtXVP+ICwGsK7IaAtaChqEm6Ik0A0QN+kKmzffjYbs9NebqYTbkLJDzG0QetQMXkIPAR1IONilLtu46ieH74XkxKUtyFZaP2hiOqHoyi9l0oRZhfPZsUQov1BUwJXNa9mSePi4SBRMQj2IUlu1Nbw7DDtMJ9XTX9LJNiftl4m48C7DQ4Ilq+hKIUQuHLSoBhp0nau/5kTqs7RxnZ3cHvHLmk139CEtcw8RpNXZJvcIw3abBXzCMaFi/u/oiZHnvGMLrSGV3sooD3mKTpm3cT7yg== 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=AOvGy1KCn8qD+l1g7q9q1FoO24CHFo3HFQCAWzwqy3k=; b=E7zup212L8ToK3xz8BDt7Y2sU0RVpsL53t6kLtSqxvZFKq1/xXDoldH7r3DP60XJAS8tXv1SL00qhpnKAPwPzWsYrGJEBwjdgC+y4tHNTIZiPLdW/Cq/nzeS5nhLamCyVEAl5g+3c0i0K/RKBKQ7KcDYKBqX7QVRSlhrQ4FVBesz7ALcdUBr5FZZ0s4cya697pFnbWrrmKBWosagKZ//91nslJQNRxm3A98xCtozeD+Ou+pL2UFzRZk41e1H2/73YzMl5A39aCpXB8C8N2P8VaqhU10VljybaAuV6QUdC6yaX1O9qUv82mlDxOcFS/2AhE1UZh/QH32LO3QYLxRAfw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AOvGy1KCn8qD+l1g7q9q1FoO24CHFo3HFQCAWzwqy3k=; b=WphZrTq832HKAsLJFnqSA5KT8xkW95e76vEodFIFhNjD68v5yUKn87n2XjGoItomnwp+QaY7sw0m0qyUxtieDKQ6JHPN3B48AIhogTsmMjPbHPun2TkMGaTunsKrWH5n3ihzrhcUAY5hq5oouuqg2mFpmPproZrWHRlpojuSqok= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from CY1PR12MB9697.namprd12.prod.outlook.com (2603:10b6:930:107::6) by MN0PR12MB6272.namprd12.prod.outlook.com (2603:10b6:208:3c0::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.202.18; Mon, 13 Jul 2026 09:50:14 +0000 Received: from CY1PR12MB9697.namprd12.prod.outlook.com ([fe80::3a41:55a0:8203:596d]) by CY1PR12MB9697.namprd12.prod.outlook.com ([fe80::3a41:55a0:8203:596d%5]) with mapi id 15.21.0202.014; Mon, 13 Jul 2026 09:50:14 +0000 Message-ID: <5a23062c-cdbf-4c82-980e-392e431aea55@amd.com> Date: Mon, 13 Jul 2026 15:20:03 +0530 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v4 4/4] dmaengine: xilinx_dma: Extend metadata handling for AXI DMA and MCDMA To: Srinivas Neeli , Vinod Koul , Radhey Shyam Pandey Cc: Frank Li , Michal Simek , Andrew Lunn , "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Suraj Gupta , Marek Vasut , Tomi Valkeinen , Alex Bereza , Folker Schwesinger , dmaengine@vger.kernel.org, netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, git@amd.com References: <20260713072146.45269-1-srinivas.neeli@amd.com> <20260713072146.45269-5-srinivas.neeli@amd.com> Content-Language: en-US From: "Pandey, Radhey Shyam" In-Reply-To: <20260713072146.45269-5-srinivas.neeli@amd.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: PN2P287CA0012.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:21b::9) To CY1PR12MB9697.namprd12.prod.outlook.com (2603:10b6:930:107::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY1PR12MB9697:EE_|MN0PR12MB6272:EE_ X-MS-Office365-Filtering-Correlation-Id: 2a82ae41-dc4f-4901-8c6c-08dee0c42365 X-LD-Processed: 3dd8961f-e488-4e60-8e11-a82d994e183d,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|23010399003|366016|1800799024|18002099003|22082099003|6133799003|4143699003|56012099006|11063799006; X-Microsoft-Antispam-Message-Info: p1NnlBMh2MN4UsZ0KWwNVNA0v7m38oicBJXbhn7Ro24EHSUCf4mbbpyW7G8yoWfs6sEdd6TUA3isbEmGzyZnwFqB7Ayn3A0jAdi4InDHjhGInG1w0AZjP24yJmCTNHCFXL59UpNw8Rosd6JqS1JyZKSCSW3+TXya22Y7RehXWhUuBUdTmpHGE3EEbwcPGaU8evNgh2+3a1BU4Muqp28eG+oVKjgd9zL7cS/yZQziANob3tHx+fAAzJr0LI94MXm9TCqb5yA5LrFFRsCAzo+niPvcq5VqlxZ70QsnpneJDSwHQnxOhUob7LVD6wQwy0pGKxqHSoskxcVpxLtIvr4TYUUbyF0SYU9IAhQOleXlojQ1rwOy+xOx4YNnG8ve5iIjQLmBUpZXGYMkzTAQDCzwEz3klhpXrPmIvO1fKAklPN+cXeuX3K3lHgA9Uj7r7LEU7yTDkaJz43d9b3Kfv3YAUwRbWElaTVmE4ORpLVmNIa/kT1KaPpNE76qAp1/V+ycUPktFKqSqVB3kdbrqFLjFHIzM8C30uBMpWGjqipJnaNBaGm96s8q8D2dPNMrEpUkOgG7DTEDrda/Cfwmln3COyxI/hPg0onr5C2R0RcAMds4a0A+NUQl75PIJhisYrpAjiqAGw512w9LWAeCZWUJM4tP4yBEuii9/Tdod32psrvc= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY1PR12MB9697.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(23010399003)(366016)(1800799024)(18002099003)(22082099003)(6133799003)(4143699003)(56012099006)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VjRrSHRlWERDZTBuM0pEZ1NOWHhSOHJsWHdxak5uYVZ2T29mUkxKcmFuMmMw?= =?utf-8?B?SnJ3Q3kwQlgxdzl2czlZdWNCS3A0d0RwcVgxbjZZcjVSc2FWVGU5ZERsVUVx?= =?utf-8?B?NGs1cU8wM20weHgxWkJWMHI2elBGNk95R2FuZUNOV3RSQ25LUlNXRTRlMU9R?= =?utf-8?B?UFFEeXVWcy85NERyVEU0QlZzRDZMaXRzSHVPZGdOTk5DWktOLy9IQnJ3Wkwy?= =?utf-8?B?dzczYmwvYzd2T25GSllhTWZoSlZ2YVZVKzFPeTltTktCR0l6V0JscWdoMzB5?= =?utf-8?B?cCtOUFNXVzN5OStLMHVxK21OMi9WQ1NJakRjYi91VDlWR0JiUVhCRVdPYmxO?= =?utf-8?B?Z2JNSVdLQmJINDJIbFNQNFZoYzJXNlZ3RkNhcjl2T2REREdjVnJ3RCtiUnlQ?= =?utf-8?B?SGRkVjhzYnA5TTZWcldPVFd2Y2dkU3lLaXB5bnYwYXI4a1g0b29WVVZxNEY5?= =?utf-8?B?TGJoRUZoNklQd2RwY2hjak9wcTA3V2tyZjJIWDZKUEY2cytzZm9OZWNJUy9n?= =?utf-8?B?WTRVUklRSWFkRVA4OXQ3Z1BRMXQ3cnQ5RWV1cmUvSTdOZWlhazduTTh4T05Y?= =?utf-8?B?dCs4ZTU0cW5INkdON1dmQ0tYazBaeXBmOS9PTVdLbTYvL2ZUWFR5U3RsRjNY?= =?utf-8?B?RjNudmE2UTE0cWg4UEs0TlB6Qmc4TWx0WjNnODYzZ0x1cHBWRjF4Sk91alJv?= =?utf-8?B?MU9JQnZSRXhDWjJGVGJKOSttZ0VEdFlDREtHU0NDSjlvYjM4U2lKd0pIQXdm?= =?utf-8?B?MmJ4Z0cwVzhGNmRnVzJaVGhlaUUwQzFhYU8wdU8xTkdEdzArV3ZwQ0ZJSHJQ?= =?utf-8?B?SzgvbmRWclp2Wm5qL3lSM29KaFRiY29adkJmUWVsOUJhd2lPeTl0bTUrNEVy?= =?utf-8?B?MGc3RnlVZElXenFkWGNYckhmc0h1UUx5WTc2d2xNRG5nNnR4WDlqNHdCOHdE?= =?utf-8?B?M0s5cGxtVkxRT0lCSEdTbGNNMUNNUDVGVGs2MFRVclBhQlAwMjhBNE9FcXFl?= =?utf-8?B?S25VSXN6TitGVWZta1Arby9kcW1lWVN1NlUzelJMcUd0T1lWajFhM2NHRTRF?= =?utf-8?B?YzBWZnNVODJMNWlkMDNoRU1LTFlZNDFjeUVwMnhQN1U2ZmN3eURIOGlVUnNH?= =?utf-8?B?bUZVUTFEeDdBM21qeTR4VTBGU0RoZk9iQ3UzblQyOFI3TFIwdG55c3dMRC9C?= =?utf-8?B?UUJOcUJaWXF5UVBUY1NFaU12dXVkdFU1cXlIVnYzSmxZWUlCUTcxRFhRT3BY?= =?utf-8?B?SDhzRUQ0bDNYVjVreXRrWU92Znl2NjRJaUsyNVNnMEM2MEdSNStoTWZySTU3?= =?utf-8?B?L3BLK2UxbitSd2p2SHkxSHFINjJNK1dFeWFQRzVGcTZRalNWL1RGaWUzdmIr?= =?utf-8?B?VGhjME9GS1JubmJneVM1T0tabkt3Q0d6N2RXUkJxVWJmU25HTHgrK0c1dW5Q?= =?utf-8?B?UmJ6ZmUrbEpnUGJIV2czYjkvQnMzNis2aVdWbktWTm9IRzg2YldBaFMzOWdq?= =?utf-8?B?YWV0eVNxN1o4V3lxZ2R6Q2dmVXVRN1lkYlh5N2NpT3kxWnNQVmowRDRHQ1V4?= =?utf-8?B?dVBBWW9LeWdiMmVhNU42ek9JeEIyelJXSE5qUElCRFgyNnZnTkcvNzY2VmFk?= =?utf-8?B?cnZqOFpZRm5BTVlxKytabmlXK0E2THZTV2tuRkJGQW9vS1gyMGpuay8zQXA4?= =?utf-8?B?MmwyNlZESVJuai9iQzZzZWo4aHN0SVNkK21aUzByMldFeXNYZ3JKL0ltQmhj?= =?utf-8?B?TEY1L2x6eVRNNFczbjQ0aFdCTzltZUJSdjdsVmZlaXUrY2NiUzc2ZE5PbURR?= =?utf-8?B?eUlYQ0JoM05rakd5UmpHQXB5QVVVSTFoL0hmVDRwNkk3K21IWENkMWl0c2Jl?= =?utf-8?B?WE1UM2JnWkdxeS95cjhGUjVvZXZpbEkrQUh5Vko2alZacDhtb3I4SWw5bWxY?= =?utf-8?B?OVRBaUZHLy92d0tNUnE3VE1FRzU1OVNhNjNpWjMwbWVyYnZ0K0VXdmh2SXR5?= =?utf-8?B?SjdlSkFGeWtSNjBaakZqSDd4bU93akFqRzQxdSs5MlR4UlJFTSt2ZllaYS8z?= =?utf-8?B?Smg2bDRtYWdSRVY0MnVlU3AwTmpBNzB4a040VWpyNk9uaFpNYmZ0SklFL3Nu?= =?utf-8?B?S0JwYlMzdEZreEJScjNqQnI4Q1JoQ0Nza3ZzdGkrbGRFRGo2RFNlNXFBaU1D?= =?utf-8?B?eitkdGJDcVQyMDVtSE5ZakNBTWhJbGZ2emtxSmFpbDNyaXY5QSt6a2w0VEE0?= =?utf-8?B?SDhST1NocWhNY0E2am9kR1RUZ0I4bEN1Zk1vckY3SGU0YTZLTlV5T011VWEv?= =?utf-8?B?NDlyWW5NWmhzUnQ0bTZBWnh0aU1mbU04MThjTFJWRkp4ZGs0MXd2Zz09?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2a82ae41-dc4f-4901-8c6c-08dee0c42365 X-MS-Exchange-CrossTenant-AuthSource: CY1PR12MB9697.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jul 2026 09:50:14.6382 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 95SymfNz9jQV74PvwB2t89mQajcjhjOFsawkQCD7tIaHZdsGC0g8BZAQGpgrDWLD X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6272 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260713_025029_385962_09FD85EE X-CRM114-Status: GOOD ( 32.24 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org > From: Suraj Gupta > > xilinx_dma_get_metadata_ptr() exposed only the descriptor APP fields. > Each descriptor also carries a status word, and AXI MCDMA carries an > AXI4-Stream sideband word holding TID, TDEST and TUSER that clients may > need. Return a pointer to the status word so clients can read the status, > the sideband and the APP fields together. The exact index layout is > documented at the function. > > Take the pointer from the End-Of-Frame descriptor, where the hardware > writes these fields. For AXI DMA the pointer now starts at the status word > of the EOF descriptor instead of the APP fields of the first descriptor, > and the payload grows from 20 to 24 bytes. No in-tree consumer is affected, > since axienet reads the RX frame length from result->residue rather than > the APP fields. > > Read xlnx,axistream-connected for MCDMA as well, and attach metadata_ops > in xilinx_mcdma_prep_slave_sg() when an AXI Stream interface is present, > so MCDMA clients use the metadata API the same way as AXI DMA clients. > > Signed-off-by: Suraj Gupta > Co-developed-by: Srinivas Neeli > Signed-off-by: Srinivas Neeli Reviewed-by: Radhey Shyam Pandey Thanks! > --- > Changes in V4: > - Restructured xilinx_dma_get_metadata_ptr(): AXIDMA is now the > fall-through path instead of a separate branch guarded by > WARN_ON_ONCE()/ERR_PTR(). > - Rewrote the kernel-doc as an index table covering AXI DMA, MCDMA S2MM > and MCDMA MM2S, and documented that the pointer and payload length are > the same for both MCDMA directions. > - Added an inline comment explaining the union aliasing. > - Condensed the commit message. > > Changes in V3: > - Renamed subject to include "AXI DMA and MCDMA" (was "AXI MCDMA" only). > - Complete rewrite of commit message and implementation. > - Metadata pointer now returns status field at index 0 instead of APP > fields, exposing status and sideband information to clients. > - Changed from list_first_entry to list_last_entry to return the EOF > descriptor where hardware writes status and APP fields. > - Added explicit handling for both AXIDMA and MCDMA types with proper > payload length calculation. > - Added WARN_ON_ONCE for unsupported DMA types. > - Removed the 'chan' field from struct xilinx_dma_tx_descriptor (was > added in V2) as it's no longer needed; channel is obtained from > tx->chan instead. > - Dropped V2 patches 4/5 (dt-bindings xlnx,include-stscntrl-strm) and > 5/5 (xferred_bytes support) as the approach changed to use residue. > > Changes in V2: > - Added support for MCDMA metadata handling alongside AXIDMA. > - Added 'chan' field to struct xilinx_dma_tx_descriptor. > --- > drivers/dma/xilinx/xilinx_dma.c | 49 ++++++++++++++++++++++++++++----- > 1 file changed, 42 insertions(+), 7 deletions(-) > > diff --git a/drivers/dma/xilinx/xilinx_dma.c b/drivers/dma/xilinx/xilinx_dma.c > index 1b5b00f08c5f..2be95f0ba3ea 100644 > --- a/drivers/dma/xilinx/xilinx_dma.c > +++ b/drivers/dma/xilinx/xilinx_dma.c > @@ -651,18 +651,49 @@ static inline void xilinx_aximcdma_buf(struct xilinx_dma_chan *chan, > * @tx: async transaction descriptor > * @payload_len: metadata payload length > * @max_len: metadata max length > - * Return: The app field pointer. > + * > + * The hardware writes the status, sideband and APP fields into the last > + * (End-Of-Frame) descriptor. These words are contiguous, so a client reads > + * them by index from the returned pointer: > + * > + * AXI DMA: [0] status, [1..] app > + * AXI MCDMA (S2MM): [0] status, [1] sideband (TID/TDEST/TUSER), [2..] app > + * AXI MCDMA (MM2S): [0] ctrl sideband, [1] status, [2..] app > + * > + * For MCDMA the pointer and payload length are the same in both directions > + * because the union members overlay the same descriptor words. > + * > + * Return: Pointer to the first metadata word. > */ > static void *xilinx_dma_get_metadata_ptr(struct dma_async_tx_descriptor *tx, > size_t *payload_len, size_t *max_len) > { > struct xilinx_dma_tx_descriptor *desc = to_dma_tx_descriptor(tx); > - struct xilinx_axidma_tx_segment *seg; > + struct xilinx_dma_chan *chan = to_xilinx_chan(tx->chan); > + > + if (chan->xdev->dma_config->dmatype == XDMA_TYPE_AXIMCDMA) { > + struct xilinx_aximcdma_tx_segment *seg = > + list_last_entry(&desc->segments, > + struct xilinx_aximcdma_tx_segment, node); > > - *max_len = *payload_len = sizeof(u32) * XILINX_DMA_NUM_APP_WORDS; > - seg = list_first_entry(&desc->segments, > - struct xilinx_axidma_tx_segment, node); > - return seg->hw.app; > + /* > + * The union members overlay the same words, so one pointer and > + * length cover both directions (see the layout above). > + */ > + *max_len = *payload_len = sizeof(seg->hw.s2mm_status) + > + sizeof(seg->hw.s2mm_sideband_status) + > + sizeof(seg->hw.app); > + return &seg->hw.s2mm_status; > + } > + > + /* Only AXIDMA and MCDMA attach metadata_ops, so this is AXIDMA. */ > + struct xilinx_axidma_tx_segment *seg = > + list_last_entry(&desc->segments, > + struct xilinx_axidma_tx_segment, node); > + > + *max_len = *payload_len = sizeof(seg->hw.status) + > + sizeof(seg->hw.app); > + return &seg->hw.status; > } > > static struct dma_descriptor_metadata_ops xilinx_dma_metadata_ops = { > @@ -2639,6 +2670,9 @@ xilinx_mcdma_prep_slave_sg(struct dma_chan *dchan, struct scatterlist *sgl, > segment->hw.control |= XILINX_MCDMA_BD_EOP; > } > > + if (chan->xdev->has_axistream_connected) > + desc->async_tx.metadata_ops = &xilinx_dma_metadata_ops; > + > return &desc->async_tx; > > error: > @@ -3287,7 +3321,8 @@ static int xilinx_dma_probe(struct platform_device *pdev) > > dma_set_max_seg_size(xdev->dev, xdev->max_buffer_len); > > - if (xdev->dma_config->dmatype == XDMA_TYPE_AXIDMA) { > + if (xdev->dma_config->dmatype == XDMA_TYPE_AXIDMA || > + xdev->dma_config->dmatype == XDMA_TYPE_AXIMCDMA) { > xdev->has_axistream_connected = > of_property_read_bool(node, "xlnx,axistream-connected"); > }