Received: by 2002:a05:7412:8d10:b0:f3:1519:9f41 with SMTP id bj16csp3927696rdb; Mon, 11 Dec 2023 04:21:39 -0800 (PST) X-Google-Smtp-Source: AGHT+IGyC+8xDP4PgGQfrsKy8LI3Ngp5AT/sV4vlBPlOvsB+XXsS11g+x1LCZ0x3lPTFfnCLinCG X-Received: by 2002:a17:902:e54e:b0:1d0:b42f:e41b with SMTP id n14-20020a170902e54e00b001d0b42fe41bmr5392645plf.64.1702297298978; Mon, 11 Dec 2023 04:21:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702297298; cv=none; d=google.com; s=arc-20160816; b=zx82/sQvt0TjqDiJkIL1753Asqtaas5HQSxDWf3jbFjl4cCVSHlnChtAL7r4319X4O Hni1Ykmo+xGno0AkSmQ5a7nB50+6RlJ/RFenYMVbGAT8GOvvyX7b9NjCmSaynxekDhcV 5UfouVfvmcnTB1GxeYehNZWld5o+wqAeKkD66IpxGEvQWDQNVs3q31L1WSbp0Dfy4Cit P3reXLRe8D9GuxS8d982nqyIcq5Q2f0sGhmPkrlwDt+C5hKXgHz4qBmfBkRKm/iK3on+ hyBwM6EY/JdoqMsIL3KjlpvJGeMNZXC0PwLSh5W+MZP1Z6BT5tKQsgO5IxVMMrGZwkQm 3AoA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding:autocrypt :references:in-reply-to:date:cc:to:from:subject:message-id :dkim-signature; bh=5PUQntp9MfQXMF/o3JsAZeuDX9zDVymP5JQbOOqzVG4=; fh=mDvlrqUne1z09fRwxTk5Q1R3VsrH67XQb+39tHoA3bc=; b=hq8r0Scv0Ow6WcWhRe60gHruBeZ/HRS3ZgCooi1V3/t8QOzpgXXNUud+zoOSNOgXyZ 7NgrfyTymw72frDx3DD2DQJ/BYvwpaLE2wuQKAqKdehzCq4T/mHDpn3HKU7e+PLdv2gk 7e0W4jC2/jY4I9DOAH+C3cIT9qIhjrUa6wLSlpCjwBJxms5tOafgtE87AgE5xgDZ47bB t50VGzYRKN9BqfQ0nfB14pNFBxhht4XBhJas26IX3sHff1dAPCELxJiA/xQOUWXza+L5 7FNq+F4/0yllgU4YfyY5YVV4HNCoJn2pLUxenxrRKJWUWb4OohT3Mk90Rge8SfHnf0SG k3SA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@crapouillou.net header.s=mail header.b=bd8pBHIj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=crapouillou.net Return-Path: Received: from morse.vger.email (morse.vger.email. [23.128.96.31]) by mx.google.com with ESMTPS id 13-20020a170902c20d00b001cfee3a039bsi5981136pll.24.2023.12.11.04.21.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Dec 2023 04:21:38 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) client-ip=23.128.96.31; Authentication-Results: mx.google.com; dkim=pass header.i=@crapouillou.net header.s=mail header.b=bd8pBHIj; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=crapouillou.net Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by morse.vger.email (Postfix) with ESMTP id 897AD8042D08; Mon, 11 Dec 2023 04:21:36 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1343539AbjLKMVH (ORCPT + 99 others); Mon, 11 Dec 2023 07:21:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56192 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234998AbjLKMUl (ORCPT ); Mon, 11 Dec 2023 07:20:41 -0500 Received: from aposti.net (aposti.net [89.234.176.197]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 687F51BB; Mon, 11 Dec 2023 04:20:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=crapouillou.net; s=mail; t=1702297239; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=5PUQntp9MfQXMF/o3JsAZeuDX9zDVymP5JQbOOqzVG4=; b=bd8pBHIjpQVk2PjI7aE3jVxZcuLys8R+uLcu3rQchIbm/IdNmt5nlLLRgl8xF0E9dDFzGw kwg4ZlRmQQawLkzU600RwEOTMeU++hpAbTnGd1vGdMKvsE8gHhQFoYBPKdKnsJi5lyZZht dPlqzjsWQI5uZ6nhpA/mA+raoK/Xcwg= Message-ID: <381267f0a20d162f87b83c0af6949a9f997ea83e.camel@crapouillou.net> Subject: Re: [PATCH 4/4] dmaengine: axi-dmac: Use only EOT interrupts when doing scatter-gather From: Paul Cercueil To: Vinod Koul Cc: Lars-Peter Clausen , Nuno =?ISO-8859-1?Q?S=E1?= , Michael Hennerich , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Date: Mon, 11 Dec 2023 13:20:38 +0100 In-Reply-To: References: <20231204140352.30420-1-paul@crapouillou.net> <20231204140352.30420-5-paul@crapouillou.net> Autocrypt: addr=paul@crapouillou.net; prefer-encrypt=mutual; keydata=mQENBF0KhcEBCADkfmrzdTOp/gFOMQX0QwKE2WgeCJiHPWkpEuPH81/HB2dpjPZNW03ZMLQfECbbaEkdbN4YnPfXgcc1uBe5mwOAPV1MBlaZcEt4M67iYQwSNrP7maPS3IaQJ18ES8JJ5Uf5UzFZaUawgH+oipYGW+v31cX6L3k+dGsPRM0Pyo0sQt52fsopNPZ9iag0iY7dGNuKenaEqkYNjwEgTtNz8dt6s3hMpHIKZFL3OhAGi88wF/21isv0zkF4J0wlf9gYUTEEY3Eulx80PTVqGIcHZzfavlWIdzhe+rxHTDGVwseR2Y1WjgFGQ2F+vXetAB8NEeygXee+i9nY5qt9c07m8mzjABEBAAG0JFBhdWwgQ2VyY3VlaWwgPHBhdWxAY3JhcG91aWxsb3UubmV0PokBTgQTAQoAOBYhBNdHYd8OeCBwpMuVxnPua9InSr1BBQJdCoXBAhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEHPua9InSr1BgvIH/0kLyrI3V0f33a6D3BJwc1grbygPVYGuC5l5eMnAI+rDmLR19E2yvibRpgUc87NmPEQPpbbtAZt8On/2WZoE5OIPdlId/AHNpdgAtGXo0ZX4LGeVPjxjdkbrKVHxbcdcnY+zzaFglpbVSvp76pxqgVg8PgxkAAeeJV+ET4t0823Gz2HzCL/6JZhvKAEtHVulOWoBh368SYdolp1TSfORWmHzvQiCCCA+j0cMkYVGzIQzEQhX7Urf9N/nhU5/SGLFEi9DcBfXoGzhyQyLXflhJtKm3XGB1K/pPulbKaPcKAl6rIDWPuFpHkSbmZ9r4KFlBwgAhlGy6nqP7O3u7q23hRW5AQ0EXQqFwQEIAMo+MgvYHsyjX3Ja4Oolg1Txzm8woj30ch2nACFCqaO0R/1kLj2VVeLrDyQUOlXx9PD6IQI4M8wy8m0sR4wV2p/g/paw7k65cjzYYLh+FdLNyO7IW YXndJO+wDPi3aK/YKUYepqlP+QsmaHNYNdXEQDRKqNfJg8t0f5rfzp9ryxd1tCnbV+tG8VHQWiZXNqN7062DygSNXFUfQ0vZ3J2D4oAcIAEXTymRQ2+hr3Hf7I61KMHWeSkCvCG2decTYsHlw5Erix/jYWqVOtX0roOOLqWkqpQQJWtU+biWrAksmFmCp5fXIg1Nlg39v21xCXBGxJkxyTYuhdWyu1yDQ+LSIUAEQEAAYkBNgQYAQoAIBYhBNdHYd8OeCBwpMuVxnPua9InSr1BBQJdCoXBAhsMAAoJEHPua9InSr1B4wsH/Az767YCT0FSsMNt1jkkdLCBi7nY0GTW+PLP1a4zvVqFMo/vD6uz1ZflVTUAEvcTi3VHYZrlgjcxmcGu239oruqUS8Qy/xgZBp9KF0NTWQSl1iBfVbIU5VV1vHS6r77W5x0qXgfvAUWOH4gmN3MnF01SH2zMcLiaUGF+mcwl15rHbjnT3Nu2399aSE6cep86igfCAyFUOXjYEGlJy+c6UyT+DUylpjQg0nl8MlZ/7Whg2fAU9+FALIbQYQzGlT4c71SibR9T741jnegHhlmV4WXXUD6roFt54t0MSAFSVxzG8mLcSjR2cLUJ3NIPXixYUSEn3tQhfZj07xIIjWxAYZo= Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on morse.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (morse.vger.email [0.0.0.0]); Mon, 11 Dec 2023 04:21:36 -0800 (PST) Hi Vinod, Le lundi 11 d=C3=A9cembre 2023 =C3=A0 17:31 +0530, Vinod Koul a =C3=A9crit= =C2=A0: > On 04-12-23, 15:03, Paul Cercueil wrote: > > Instead of notifying userspace in the end-of-transfer (EOT) > > interrupt > > and program the hardware in the start-of-transfer (SOT) interrupt, > > we > > can do both things in the EOT, allowing us to mask the SOT, and > > halve > > the number of interrupts sent by the HDL core. > >=20 > > Signed-off-by: Paul Cercueil > > --- > > =C2=A0drivers/dma/dma-axi-dmac.c | 7 ++++++- > > =C2=A01 file changed, 6 insertions(+), 1 deletion(-) > >=20 > > diff --git a/drivers/dma/dma-axi-dmac.c b/drivers/dma/dma-axi- > > dmac.c > > index 5109530b66de..beed91a8238c 100644 > > --- a/drivers/dma/dma-axi-dmac.c > > +++ b/drivers/dma/dma-axi-dmac.c > > @@ -415,6 +415,7 @@ static bool axi_dmac_transfer_done(struct > > axi_dmac_chan *chan, > > =C2=A0 list_del(&active->vdesc.node); > > =C2=A0 vchan_cookie_complete(&active->vdesc); > > =C2=A0 active =3D axi_dmac_active_desc(chan); > > + start_next =3D !!active; >=20 > Should this be in current patch, sounds like this should be a > different > patch? It belongs here. This line is what allows a new transfer to be programmed from the EOT. Since we disable the SOT interrupt, if we remove that line, the driver won't work. Cheers, -Paul >=20 > > =C2=A0 } > > =C2=A0 } else { > > =C2=A0 do { > > @@ -1000,6 +1001,7 @@ static int axi_dmac_probe(struct > > platform_device *pdev) > > =C2=A0 struct axi_dmac *dmac; > > =C2=A0 struct regmap *regmap; > > =C2=A0 unsigned int version; > > + u32 irq_mask =3D 0; > > =C2=A0 int ret; > > =C2=A0 > > =C2=A0 dmac =3D devm_kzalloc(&pdev->dev, sizeof(*dmac), > > GFP_KERNEL); > > @@ -1067,7 +1069,10 @@ static int axi_dmac_probe(struct > > platform_device *pdev) > > =C2=A0 > > =C2=A0 dma_dev->copy_align =3D (dmac->chan.address_align_mask + 1); > > =C2=A0 > > - axi_dmac_write(dmac, AXI_DMAC_REG_IRQ_MASK, 0x00); > > + if (dmac->chan.hw_sg) > > + irq_mask |=3D AXI_DMAC_IRQ_SOT; > > + > > + axi_dmac_write(dmac, AXI_DMAC_REG_IRQ_MASK, irq_mask); > > =C2=A0 > > =C2=A0 if (of_dma_is_coherent(pdev->dev.of_node)) { > > =C2=A0 ret =3D axi_dmac_read(dmac, > > AXI_DMAC_REG_COHERENCY_DESC); > > --=20 > > 2.42.0 > >=20 >=20