Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp424280iog; Wed, 29 Jun 2022 03:07:59 -0700 (PDT) X-Google-Smtp-Source: AGRyM1uLJg6dyX2zTifqX/R2Fl7jp4nxVPGcUISOY7TDTxSkgZR3ShhRSS7zXHog8w6r95r5Ch+M X-Received: by 2002:a17:90a:5e42:b0:1ef:17a4:b05 with SMTP id u2-20020a17090a5e4200b001ef17a40b05mr4337624pji.159.1656497279074; Wed, 29 Jun 2022 03:07:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1656497279; cv=none; d=google.com; s=arc-20160816; b=wl4f5a2ZgpcbMmzVcjwMvWN2+A14RWiJcLQD9xwVOYNe9nOtoZ2RCBxmpImY6GA+C7 +ovDwEtn5G6mvEd5WQFlHcBv5E4ivAcMqV6SLBzz9MBR76+EWa2nF0Vc90mEptlaSQcT gB6IPfs4q5n6BT9US1aPVndhRRhth2eSf8/W7qQ/WgX6zlP9F0y4IiKaw1YuPc/dhGoV aqagftKTUKj5+NHSWJM2WxCMWJ0bE5s8ZNXmSe7t43BQ3Zuw5tKp5YWh7CJW/IgAahWc VtcM9K4gNZJbAeSVr/kSxByTrPwx5tOQghwCNdqegifR5jEVRY9tjkKurOteVJSSYrjf 3Zjw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from; bh=P6N7ezYiT7CASyZY5SIuby9lgBc8am0AHlMSwRyCQfw=; b=GLloher4rA2mxhKoK7K1xb23zM0MwcwAhA5I2e0HFHkgia54qrZe3ibuHjz8Tzg+LC ZpecLDiFOnGegj+vYf1Vb4whYvDLz1Q/hQ1+EEwHIqpqato4/lvhgELCeFaQNa+0sePA Gab1w/mzVNxZHZcH/fSPYUDOIZ7hFAq1/L2dUMQzLWy+RG+HlmgOqxxyaUDbAMf3pqnB PiVileUdSqPhU6U+Z/eK6u61TG1+F+IXA1TifZcuM57ue0FYYmC81kJJcCfBdyaSl0nJ /QCaCZanVJXkAPmN8mQLrWO9pQnjeDnrpv+Zt+WlyvBMVZCJqCKuCcCDibeiC1vhph15 syJg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w4-20020a63c104000000b0040d3e6f0ee2si1981492pgf.656.2022.06.29.03.07.48; Wed, 29 Jun 2022 03:07:59 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232901AbiF2Jab (ORCPT + 99 others); Wed, 29 Jun 2022 05:30:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42860 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232883AbiF2JaT (ORCPT ); Wed, 29 Jun 2022 05:30:19 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 606133A187; Wed, 29 Jun 2022 02:30:16 -0700 (PDT) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 678C91477; Wed, 29 Jun 2022 02:30:16 -0700 (PDT) Received: from usa.arm.com (unknown [10.162.16.71]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 7E4C23F792; Wed, 29 Jun 2022 02:30:14 -0700 (PDT) From: Vivek Gautam To: dmaengine@vger.kernel.org, vkoul@kernel.org Cc: linux-kernel@vger.kernel.org, robin.murphy@arm.com, Vivek Gautam Subject: [PATCH] dmaengine: pl330: Set DMA_INTERRUPT capability and add related callback Date: Wed, 29 Jun 2022 15:00:03 +0530 Message-Id: <20220629093003.19440-1-vivek.gautam@arm.com> X-Mailer: git-send-email 2.17.1 X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org With the verification for DMA_INTERRUPT capability added to the dmatest module, the dmatest fails to start for various channels of pl330 dma controller. So, set the DMA_INTERRUPT capability and add the required callback method to set the transaction descriptor flags. Signed-off-by: Vivek Gautam --- drivers/dma/pl330.c | 24 ++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c index 858400e42ec0..b80e48f0970b 100644 --- a/drivers/dma/pl330.c +++ b/drivers/dma/pl330.c @@ -2757,6 +2757,28 @@ static struct dma_async_tx_descriptor *pl330_prep_dma_cyclic( return &desc->txd; } +static struct dma_async_tx_descriptor * +pl330_dma_prep_interrupt(struct dma_chan *chan, unsigned long flags) +{ + struct dma_pl330_chan *pch = to_pchan(chan); + struct dma_pl330_desc *desc; + + if (unlikely(!pch)) + return NULL; + + desc = pl330_get_desc(pch); + if (!desc) { + dev_err(pch->dmac->ddma.dev, "%s:%d Unable to fetch desc\n", + __func__, __LINE__); + return NULL; + } + + /* Set the flags that are passed downstream */ + desc->txd.flags = flags; + + return &desc->txd; +} + static struct dma_async_tx_descriptor * pl330_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dst, dma_addr_t src, size_t len, unsigned long flags) @@ -3111,6 +3133,7 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id) } dma_cap_set(DMA_MEMCPY, pd->cap_mask); + dma_cap_set(DMA_INTERRUPT, pd->cap_mask); if (pcfg->num_peri) { dma_cap_set(DMA_SLAVE, pd->cap_mask); dma_cap_set(DMA_CYCLIC, pd->cap_mask); @@ -3121,6 +3144,7 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id) pd->device_free_chan_resources = pl330_free_chan_resources; pd->device_prep_dma_memcpy = pl330_prep_dma_memcpy; pd->device_prep_dma_cyclic = pl330_prep_dma_cyclic; + pd->device_prep_dma_interrupt = pl330_dma_prep_interrupt; pd->device_tx_status = pl330_tx_status; pd->device_prep_slave_sg = pl330_prep_slave_sg; pd->device_config = pl330_config; -- 2.17.1