Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp14227186pxu; Mon, 4 Jan 2021 17:03:20 -0800 (PST) X-Google-Smtp-Source: ABdhPJwtVeG3MjQsjDIWOHhZWo9Se8pLMxykP+Wo8Yvuwz3PQnYk7xLiSJlmsIT3GQ6++im2R/5s X-Received: by 2002:a50:9310:: with SMTP id m16mr73939000eda.94.1609808599921; Mon, 04 Jan 2021 17:03:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1609808599; cv=none; d=google.com; s=arc-20160816; b=vhxZ+rwvAyzMOPyVNoQnwyJi2LlEpeqEiRIzlGHc8qCt78q2LQEORw2OOEfOTRjyId XagDkif22GD8rDv5wm+lE5VIGjNDlYdJsCkRPl82P0QOmIFHA/3UvoJFVhzub3EM+nf5 Ci1x2k+/SocXou9DyQyAlVjyRhK8NwxBRVbcg4pcEErczf9X2VQYjhRu4X9DHMnYpOFd hEyKb14jPxiL3Cf4oIEUZE5i0ztz2hgP+BJY9DWZ6L8eQ17JDmUh1Q9cmi3TI1rSIEA7 NWdLit7Exbarc3OcTGoix0BFOTZ6EjY8la3jC2BoARJdxlODS231q50HQbbXNE92osiU pfsQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from:ironport-sdr:ironport-sdr; bh=4PW0IyRfztcDYbFCS+LXetJ/ko/qSeLU8JlRE8xbsMg=; b=WiWYdZpOpJvkb2U8RTMbLvo/7Z4FsSl/MYL4iruYJpE9XHrBPfRBCTWQzyfS7NmKOK rTB04RKXrrHogpnRO+kbxKCTI3isUqEEUNPOQpV21Jk+elX75W4uQHnHbsTZEUhl2M65 KGWdakfqZNwAUeNM7ZF7SCSPRRYQPyem7qG7SrSOUk3Iswe6No5KKEtHoFIWZhrxRO6g 4u9LldRiNvPsoZ0HFt9yGcddij2k6jYEorPUtybnclz78vFm9lotOoXvon62rPe8tp1Y S5SPY8GjglbuNEyDAyno47icppN+wBorEdaTMrQib2rsxvtIlY67mlVuHOEElH4Q6YbL YemQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z14si32262422edr.470.2021.01.04.17.02.56; Mon, 04 Jan 2021 17:03:19 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728473AbhAEBBZ (ORCPT + 99 others); Mon, 4 Jan 2021 20:01:25 -0500 Received: from mga05.intel.com ([192.55.52.43]:29975 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728375AbhAEBBN (ORCPT ); Mon, 4 Jan 2021 20:01:13 -0500 IronPort-SDR: lsVOJBGXBQ59uJwscXAk80y1sch9L+SjsxUr/sdsPURddOfehKaJuJNAkGnpdIjfxntCUgPBg5 7zHvrfelufpQ== X-IronPort-AV: E=McAfee;i="6000,8403,9854"; a="261794113" X-IronPort-AV: E=Sophos;i="5.78,475,1599548400"; d="scan'208";a="261794113" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Jan 2021 17:00:22 -0800 IronPort-SDR: UHuQPlVzoYpDFAViwYEPKB/ZMOLJ0tL/cmNKO3ncDUYUdKZaLG6tpRM4G0XW2ZXiydha9FAyda DkTgvexLbkCw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,475,1599548400"; d="scan'208";a="569540203" Received: from jsia-hp-z620-workstation.png.intel.com ([10.221.118.135]) by fmsmga005.fm.intel.com with ESMTP; 04 Jan 2021 17:00:20 -0800 From: Sia Jee Heng To: vkoul@kernel.org, Eugeniy.Paltsev@synopsys.com, robh+dt@kernel.org Cc: andriy.shevchenko@linux.intel.com, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH v9 05/16] dmaengine: dw-axi-dmac: Add device_config operation Date: Tue, 5 Jan 2021 08:42:55 +0800 Message-Id: <20210105004306.13588-6-jee.heng.sia@intel.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20210105004306.13588-1-jee.heng.sia@intel.com> References: <20210105004306.13588-1-jee.heng.sia@intel.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add device_config() callback function so that the device address can be passed to the dma driver. DMA clients use this interface to pass in the device address to the AxiDMA. Without this interface, data transfer between device to memory and memory to device would failed. Reviewed-by: Andy Shevchenko Signed-off-by: Sia Jee Heng --- drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c | 11 +++++++++++ drivers/dma/dw-axi-dmac/dw-axi-dmac.h | 1 + 2 files changed, 12 insertions(+) diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c index 241ab7a24e2a..eaa7c4c404ca 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -559,6 +559,16 @@ dma_chan_prep_dma_memcpy(struct dma_chan *dchan, dma_addr_t dst_adr, return NULL; } +static int dw_axi_dma_chan_slave_config(struct dma_chan *dchan, + struct dma_slave_config *config) +{ + struct axi_dma_chan *chan = dchan_to_axi_dma_chan(dchan); + + memcpy(&chan->config, config, sizeof(*config)); + + return 0; +} + static void axi_chan_dump_lli(struct axi_dma_chan *chan, struct axi_dma_hw_desc *desc) { @@ -948,6 +958,7 @@ static int dw_probe(struct platform_device *pdev) dw->dma.device_prep_dma_memcpy = dma_chan_prep_dma_memcpy; dw->dma.device_synchronize = dw_axi_dma_synchronize; + dw->dma.device_config = dw_axi_dma_chan_slave_config; platform_set_drvdata(pdev, chip); diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac.h b/drivers/dma/dw-axi-dmac/dw-axi-dmac.h index f886b2bb75de..a75b921d6b1a 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac.h +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac.h @@ -43,6 +43,7 @@ struct axi_dma_chan { struct virt_dma_chan vc; struct axi_dma_desc *desc; + struct dma_slave_config config; /* these other elements are all protected by vc.lock */ bool is_paused; }; -- 2.18.0