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 4A26D1075281 for ; Thu, 19 Mar 2026 09:17:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version: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=TCnjFbwL94agGTVUKlt3/+YQri857qNSm9phVRHPBME=; b=h2MAumpe58GRGq5Na8f7rUUH2j zSqpSK3tlwVxWpsCWfhX6YDBzmjgl6fzMgBASzzELiPbk6fqQhlP1ZJrlTygAdxHS1q7FpxiX1P+t UvQJ09MWFipBPcW+1zYY9JPL1UWsLnUgAvokPyZ5kv1EkKxuiVDsMMDEvTxWea2ZJ0DDIwTBXM9DF oJiO0ZGWIFXWlP3jSJ68sUqJU0rN/2XSA5mcYn2pHUAt/aXildsdAAmJpuHrfngj/5TiHHOgpwX1n 8Y4KfVVEdYIjjxyFsB9qHgOUESwfBdbGvMhNcNNloZmz8Vp1nHe+AdOP67P1d5Fy6LdAB80hkuOU1 1WznPGxQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1w39VM-0000000AJSP-1sqE; Thu, 19 Mar 2026 09:17:24 +0000 Received: from mail-japaneastazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c405::7] helo=TYDPR03CU002.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1w39VK-0000000AJRf-0mNn for linux-amlogic@lists.infradead.org; Thu, 19 Mar 2026 09:17:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IaBzXM8TK5bqXAPym9iJZgwrd0Cfxq/PkWePkEysKrFLPdol/R+yc8/FRNL6rkf9n0l42gmmVJwnf+7luwBdyq5J1RcVVmIxPL9vrQ7PKsh2TSRZSeItr4Ylpp6zE81y+89a74HCMGXMykKklT2YAQJ58Pp0asBar1O5zLI88AG6n6mas1bpxxUbGoR1PfHhV6j5lTehIr3m12zqztUXqGD7e5lkBTXTMHxcfoGbmpjsHJf8GujIZgvLONkQtH0p9Ub/7MM0SwEpsGhnVQKlOAHdacvoIZ8uOzgoBo7s6yVgdFvqXWU9wng5z7TstroxlgKTngpt7aBMHu+sV0oaXQ== 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=Ro8Lvos7gjp8WE8rthHbsSe1Y84ro7puloUOoV2ySvQ=; b=HZFSP7BU9z+7K8SGlPPebLGJyrq1QPNIQUtcHyv8AxLyQI4vgSL0xe1BB7UwPGwNy7L5jvOY0w2+/p+ltFbR61wRELHva2ArhqDZDk6RjwaQ3jLpxo3Hm71Q1T3rA9yduWY99RDe5pgcsCwFvi+jO0ROqiWezVQ2sEqhvGB2hLleXGTNEh/zRdRKBRpUf262AVHAIkxYV1EMBRMdKggCBhaJXF6BDgd+AWKQ1Fx9Mmke131RNE3gaAHXzQYAxg70ayKrpGRt1aOCmIBsfvT7bBmcnY2wCzjf7OzNsIgy/UFhESQB40x+3YmeDdZC6IGB/3dJklBD2o1EGgXYq5cumA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amlogic.com; dmarc=pass action=none header.from=amlogic.com; dkim=pass header.d=amlogic.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amlogic.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ro8Lvos7gjp8WE8rthHbsSe1Y84ro7puloUOoV2ySvQ=; b=IqkevzXw2qTMrM2oMsKO0tjPA++jXN7PAura/sKKsU1O5kaGc+s7XqLp3Do4LeXNMAh5WNjr52+KeUb1kH27fptLdnqy2v/9viKnEcfxWwwNv6bDhbE9zC5Ge32pOw1Okgvfj8v/63U+HItBQzfPxRbFumwRSYNEmwPnsnHbl1w2K66iBAjyH3YuX926aBcHO6NsihXFODOmgENqyQnSjdP21iv+I1h23HJQBG4auJHJnXd1mgTA4x2P4MUyIZgLcHcUMhGrzW3sJG9FZVW1l731eTPpNfZUevL8oU/m6hyCTY7MpjIJLAn9Gl2JJFG+ZJZ5vH9BvzBLTHUh2Y2LoA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amlogic.com; Received: from TYZPR03MB6896.apcprd03.prod.outlook.com (2603:1096:400:289::14) by TYZPR03MB7845.apcprd03.prod.outlook.com (2603:1096:400:44e::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Thu, 19 Mar 2026 09:17:14 +0000 Received: from TYZPR03MB6896.apcprd03.prod.outlook.com ([fe80::78d4:9dee:2e32:d1e4]) by TYZPR03MB6896.apcprd03.prod.outlook.com ([fe80::78d4:9dee:2e32:d1e4%3]) with mapi id 15.20.9723.018; Thu, 19 Mar 2026 09:17:14 +0000 Message-ID: <7ad0af10-5999-4cc1-88da-089c4174bcde@amlogic.com> Date: Thu, 19 Mar 2026 17:17:10 +0800 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v6 2/3] dmaengine: amlogic: Add general DMA driver for A9 Content-Language: en-US To: Vinod Koul Cc: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Kees Cook , "Gustavo A. R. Silva" , Frank Li , linux-amlogic@lists.infradead.org, dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-hardening@vger.kernel.org References: <20260309-amlogic-dma-v6-0-63349d23bd4b@amlogic.com> <20260309-amlogic-dma-v6-2-63349d23bd4b@amlogic.com> From: Xianwei Zhao In-Reply-To: X-ClientProxiedBy: TP0P295CA0042.TWNP295.PROD.OUTLOOK.COM (2603:1096:910:4::10) To TYZPR03MB6896.apcprd03.prod.outlook.com (2603:1096:400:289::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYZPR03MB6896:EE_|TYZPR03MB7845:EE_ X-MS-Office365-Filtering-Correlation-Id: a14b8da6-5b14-487c-796a-08de85984ef8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|366016|1800799024|376014|22082099003|56012099003|18002099003; X-Microsoft-Antispam-Message-Info: FVUv2i3McGS6uNMH2YrRgHPt9wVLef6WJd/DobMgRDbIQWHG/f7Y4Wsn0pJ46SxrcX80c8sZgmHg3zK8LEl4p2lwhbwzfZ2MJyw8Hk1IK96VnqkWaywWe5vf6ilmTdX7+jJ7oEQ46YWdYnl/nUSVW3vG4z8oYc1EV04xaQqUQDuEprSJzX4kqgJHimzT8XmNgEr/RPmGKpuk1nxpoQUNSCtxUwjEUsZ+1DCtGQcmiXhIid118Tg4Az+IiNsZ7wOqmhuQ2tirduosda/nQ1CNd5Q54pE0ZeV8n+nhlb58XFTUj5k7IRei3oHxNTkKL9dl+JcxUFLq3FRuxObCpqKOIdkgdX0iT2mwRuQwnhGl1gvsuPUOlgL433BdvoBQUXoNLBvOOOl1TQAs5tNNEsDfpJSk+woHTbVC3p/MxeteN2ZKlaZvdTZlrwYXjZX/PFZqbe1evBnjrqsIXVD7SGcHXibf51+7+qgQypYdcOIuvnIhSsFVSl4W8LK9BuT9yAt8FsxQN/p6qRSQJt+E+EyImUCrOqIgRaBtSfFaXCUJUXDIhKgfrkDGHUJ4gREEcMWCn8SoyCYbFk4XUisIApjssESFlYDWTU8UaD0uvNGEMcT7+OMXyxfs/ONd9AjxmngzQpnJV1O2qyu0+Yg3E7uCAjSK0BcumaVE+zUliz536Ju4pHcYIpoRAkRab3A3NWq+2zLjdS8q63zD1mr1AYBsG1f6jCnfTVVcNQQ3obI5ZTk= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYZPR03MB6896.apcprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(1800799024)(376014)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cFp5WE8rNzdaS0dGWk9FNU5WOWtLdTB0YTBFN0IxdytxZk9nVEl6N3JJV0Qw?= =?utf-8?B?RHpqUndoeGUyU3Q2a0FWblZiaENWOUtvOGlEcUY2ZGxHQ2JhOEFqdEE2eVRl?= =?utf-8?B?akdMNVVpNWE0NWx2SkNqZUg2eXdSdDZ4RFlSQlRXK3BoMDUzRjFWeGdWVVBP?= =?utf-8?B?MUN4V3VPellmdzB4bjUvT1lndHVIZDA5cVNZc0NOVlR1ejJoekxKZkpSNUY5?= =?utf-8?B?TXdRaURyMmVGcXlENVVXSmMrV2pVTkY2QWpqUHp0ckI5UjlXNVpqeTJxbWhX?= =?utf-8?B?UVFaUUdnR21oSHl3NUtmOHcvQUltQVJKVU8vRnhRSEpBaGppM3ZWZmNVNlBw?= =?utf-8?B?WDd1RDRsNHVIS2xrNlNIVFYyNlc2M2twZ2wzQW4ramNvdjdGMjVRVENoYXlM?= =?utf-8?B?U2p3emp5a05uN1RUS0Z1eHF0ZmFNcDEvajJoTHE5ak4xQ2J1MU01eUYveGhK?= =?utf-8?B?cGhoUHpEdFJyRDYxZmJZZ0ZjcEJyamFXaG5DckdNTUIxdFczSWt0WlJhMDBJ?= =?utf-8?B?OGY4SC8yQzZTQ0haZm9sRW8rZ21VNlVMZ29zd3o1bi9EQzFSSGNrYlVzWVdY?= =?utf-8?B?d1NDWnhpQlRpd2VLMDU1RHJvUVl6YTgyRmxGL015ZkJuMmNZQUcxTE9BSzZV?= =?utf-8?B?cmJkMVNzRys1aW5mVXNjV2l3T1lzT3hXRTFjcTFsTlJSWk9DVmcwbGRsaGt2?= =?utf-8?B?cDFwOGxIaFc3VGZrVXdicmE1eVZsaUNmc0x0a1J5djRFczVjc09lbkVXaHBD?= =?utf-8?B?cGZLVzBEdUdMU2tpZ1A4RytHYWQ1bWJ4OTRkTmlvbXBMekR6dmx1MkNGNWli?= =?utf-8?B?Y05BSmx5dHJ5SjhyYzV1WUU2WUpQN1JkY2ZJcUlMajJEc25CN21ZWFZkVDJH?= =?utf-8?B?T0lhdmJIY0lkQ1kyN2ZZQjdDZGZ6YmFDcXd1SFlGTHdSd3A4S25Ca0QrNVQx?= =?utf-8?B?M0NJTk50ZTNzWENiM2ZsOFErWXhtYmFuL3lmaDVsWUpwazBDZ3c4RWt4S1hM?= =?utf-8?B?UDREY2ZmWTNLbkp3UDBzYW1ybmJwVVU1TFh2ejE1NkgvOEFocTJxNkk0TXZM?= =?utf-8?B?ZFYxNm1PM0hLNVhPUXd2WVcxS21tVGRwclVrMFFSNkVGMkIrcSs2ZU94TkVq?= =?utf-8?B?WTM2VHRKbVUwekJuR0FPRUZVOUg4VWQrZnk5bko2aVEvODZSK3pHRVRyd0lx?= =?utf-8?B?RjZRWmVQajg4QTRRR28wcWhVWWNKZjBCZ1M2L2x0NmJlMkNLV2RBaVN3S25n?= =?utf-8?B?ZWJGQUNhTVpZeDYxdjdFNWY0VzNSMnNFZitjNTBJTkRlWkN4VnBlS3J5V0U0?= =?utf-8?B?OU9mUHVoYU4xc2xzbms5K28rWFU2eXFGUW8xdlVUYjlGbVFhOE1jbWlRSUJz?= =?utf-8?B?MlphR1NoSW1paitSUmRNdW9uNXhTSjZ4aTZzZzIzazlteUZ1QzZucGtjNzRl?= =?utf-8?B?RmpFb1BpNUswUDZHdWxEa1RseW4ybUhWU1QrMEJLejJ1dUtpQk1ITFhJZWlk?= =?utf-8?B?T3B6VWNOOHdjNXoxblRUeTBSR3JGNHJNK2JEUWZhNGE1bVVtZCtFQzZvNE9U?= =?utf-8?B?enZWU1RPYWJIZHRsS3FDSDYvT2srQ00vaGNNQXNCdWQreWNwNWtCZVIxRVlp?= =?utf-8?B?Q1FCaElWZ2cyV0psTzZWSlFzeWJpWUQ0bXo1dFo0TUNDV0Jpa3VHV3FlQTFm?= =?utf-8?B?bmoyMXp3dCt6WWhwbjVHNUhaQ0dzem1DVzdnb3hGQitadlEvc3RsZUtuRy9Y?= =?utf-8?B?RU9WQytDMWw2M3A3R21rbTEyRkhVemtRK1IreGIwS1Y3R1ZEamx2R0oyMlpC?= =?utf-8?B?bXlSSGZHUllhTHhqQ0xUN2lWckl5ZGQraXh0UWFFQ3JFWktsRjhhWHptc3Bk?= =?utf-8?B?ZUdITjN2SGF4RDlESVZIandqZ0tXQlVDdUswQmJ5R09kTjlUaWRLNU92MkZp?= =?utf-8?B?WXp2RlprdnVoV1BEa0pORmdLdG41c2cyWjZ2cnJvSGlkdmVzZDRWRVRRdzAv?= =?utf-8?B?ZHM5WjRaQzJBWHVCb0RHdm4vWkMvM1U0ZE4xOURqbHFUMzJEbnAyRGZwdlBB?= =?utf-8?B?YlpWYXpuOXhFZWFIQ3MvUy81SXRFYTBaUTFjVWpNdmpRUjl1SmgwWnZ3c3dG?= =?utf-8?B?eWtwQWE3WkFrVzlDbnc3ZVFhbloxSVc4QWcrdVZIeUYvWm92Um8zZHVJK2k0?= =?utf-8?B?MDA1OHFrR0ROL3Qrbm9BWWl3dmE1Qm1mNndHalo1SExrY0dibkd5N0RHSXZw?= =?utf-8?B?bXhNdi8vOHkyVUhFU3RIYlVneHR5TkdOT3BaWThTZ01wdkwybWpZeGVXZEFj?= =?utf-8?B?cng0ZEJ4N0wyVW5PdGxEWVJCN3pUUUllVk5zSWk2YlZ1bXRoRHh0QT09?= X-OriginatorOrg: amlogic.com X-MS-Exchange-CrossTenant-Network-Message-Id: a14b8da6-5b14-487c-796a-08de85984ef8 X-MS-Exchange-CrossTenant-AuthSource: TYZPR03MB6896.apcprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2026 09:17:14.1762 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0df2add9-25ca-4b3a-acb4-c99ddf0b1114 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: fYvCEZZVS7abbZ+yYAQ8n3LvQe7gQCBLJDO5CBtkUem2qjig5k8DfqIZtURABWJhsJczekS0sl8OzgHnovVW2qk0g2MhfjRkLzgCtFRHlqk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYZPR03MB7845 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260319_021722_239358_2F0ED492 X-CRM114-Status: GOOD ( 15.96 ) X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org Hi Vinod, Thanks for your advice. On 2026/3/17 19:13, Vinod Koul wrote: > On 09-03-26, 06:33, Xianwei Zhao via B4 Relay wrote: >> From: Xianwei Zhao >> +static dma_cookie_t aml_dma_tx_submit(struct dma_async_tx_descriptor *tx) >> +{ >> + return dma_cookie_assign(tx); >> +} > You lost tx, why was it not saved into a queue? > >> +static struct dma_async_tx_descriptor *aml_dma_prep_slave_sg >> + (struct dma_chan *chan, struct scatterlist *sgl, >> + unsigned int sg_len, enum dma_transfer_direction direction, >> + unsigned long flags, void *context) >> +{ >> + struct aml_dma_chan *aml_chan = to_aml_dma_chan(chan); >> + struct aml_dma_dev *aml_dma = aml_chan->aml_dma; >> + struct aml_dma_sg_link *sg_link; >> + struct scatterlist *sg; >> + int idx = 0; >> + u64 paddr; >> + u32 reg, link_count, avail, chan_id; >> + u32 i; >> + >> + if (aml_chan->direction != direction) { >> + dev_err(aml_dma->dma_device.dev, "direction not support\n"); >> + return NULL; >> + } >> + >> + switch (aml_chan->status) { >> + case DMA_IN_PROGRESS: >> + dev_err(aml_dma->dma_device.dev, "not support multi tx_desciptor\n"); >> + return NULL; > And why is that. You are preparing a descriptor and keep it ready and > submit after the current one finishes > > >> + >> + case DMA_COMPLETE: >> + aml_chan->data_len = 0; >> + chan_id = aml_chan->chan_id; >> + reg = (direction == DMA_DEV_TO_MEM) ? WCH_INT_MASK : RCH_INT_MASK; >> + regmap_set_bits(aml_dma->regmap, reg, BIT(chan_id)); >> + >> + break; >> + default: >> + dev_err(aml_dma->dma_device.dev, "status error\n"); >> + return NULL; >> + } >> + >> + link_count = sg_nents_for_dma(sgl, sg_len, SG_MAX_LEN); >> + >> + if (link_count > DMA_MAX_LINK) { >> + dev_err(aml_dma->dma_device.dev, >> + "maximum number of sg exceeded: %d > %d\n", >> + sg_len, DMA_MAX_LINK); >> + aml_chan->status = DMA_ERROR; >> + return NULL; >> + } >> + >> + aml_chan->status = DMA_IN_PROGRESS; >> + >> + for_each_sg(sgl, sg, sg_len, i) { >> + avail = sg_dma_len(sg); >> + paddr = sg->dma_address; >> + while (avail > SG_MAX_LEN) { >> + sg_link = &aml_chan->sg_link[idx++]; >> + /* set dma address and len to sglink*/ >> + sg_link->address = paddr; >> + sg_link->ctl = FIELD_PREP(LINK_LEN, SG_MAX_LEN); >> + paddr = paddr + SG_MAX_LEN; >> + avail = avail - SG_MAX_LEN; >> + } >> + sg_link = &aml_chan->sg_link[idx++]; >> + /* set dma address and len to sglink*/ >> + sg_link->address = paddr; >> + sg_link->ctl = FIELD_PREP(LINK_LEN, avail); >> + >> + aml_chan->data_len += sg_dma_len(sg); >> + } >> + aml_chan->sg_link_cnt = idx; > There is no descriptor management here. You are directly writing to > channel. This is_very_ inefficient and defeats the use of dmaengine. > > Please revise the driver. Implement queues to manage multiple txns and > we have vchan to help you implement these, so take use of that > I will take use vchan to support mltiple txns. > -- > ~Vinod _______________________________________________ linux-amlogic mailing list linux-amlogic@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-amlogic