Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp2712281pxb; Sun, 24 Jan 2021 17:57:55 -0800 (PST) X-Google-Smtp-Source: ABdhPJwKXHV2WPKM1MlzLSWJkdvmgKV/M3v5FKfJAuQfTAQO07z2SvJ4aXkJ2YwsvRwq0z5sfBYz X-Received: by 2002:a05:6402:1546:: with SMTP id p6mr209931edx.66.1611539874922; Sun, 24 Jan 2021 17:57:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1611539874; cv=none; d=google.com; s=arc-20160816; b=oXXo90LbCrBRx82VVrBDNabtZvkSrvXh+ttYFo2/k3qpKVn9m8sAnZN+w5eTScZ+nE +/91HxK53E6wla02tkUUmXKzH5xiXsycM29AbjfJLGYpzL3Oj0BMON7lnd14w+rytPxt 8l8yeLtVR20f/tOE61bCVWNK8SXdovLJZ7IiKhpH/H0l6ZqnDX1OrgFtIkb3nb0ZphB7 MWgHgCIUf2bzFLhtkbhWMt9VgGPMg/oCxBrtKJKtRfTUuVD7QQG1Zki0WLyHUBFdp+7r jUFpr7ff675aopx9/nZslxikHC//MTnMPSB1hjreAk4ibJlhvOL7oeGFQVG2P/r7VnOF +s5w== 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=pZriA9LGquLGMqda2UEIJAwI5GiNP5FOZYa0OyGKLcA=; b=q5nLMeFO08Cc45qiBlSLfgbWhvHeA2qvPyGYRvuk2i7W+XdIRvvkrRQLoeOFvwBrSX d1MSS2vLXxWGoOXgspC3k7zOo+/Bl3Z6wIis+Av+I4P0MtI0HBuz9L7/fNfsikTmDoi3 cb2V28TypZ2qfl/XKRj9pqglVPN5Nz3Hd9aY8lp+SPPFr7MrXpiTfgNbdlZWBtt0M8pi rKA3mj3AZ/qXUkWZ8gZ27fwNpiZV58Ybm7PMszokxIZpXP8Ah6GdCPXOtfOT36olSwYH vbYnkQc2wb4QRVTPWX+nwwbVnU4cw++lSwmSFLKVbrQwsX2JjODIKj/qTkzrFSrk7xFV HBNA== 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 t7si5468243ejr.383.2021.01.24.17.57.31; Sun, 24 Jan 2021 17:57:54 -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 S1726699AbhAYBzY (ORCPT + 99 others); Sun, 24 Jan 2021 20:55:24 -0500 Received: from mga11.intel.com ([192.55.52.93]:4252 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726700AbhAYBve (ORCPT ); Sun, 24 Jan 2021 20:51:34 -0500 IronPort-SDR: X9oZLV5lqK8A1IUL9Rkh3OEGSsI2IROAMgZSmUhBjMCvAz1RbTLZ2c1rgmpAcajxo4HW8/dJ0z eBdUOe/SjDAg== X-IronPort-AV: E=McAfee;i="6000,8403,9874"; a="176137804" X-IronPort-AV: E=Sophos;i="5.79,372,1602572400"; d="scan'208";a="176137804" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jan 2021 17:50:35 -0800 IronPort-SDR: W6BjhYkfpKYa1mkIc/8WB1ifGWqITyrixXI7sVS9b5XqdLTutnsJHaKYr4VyNJUbsFSS/uaI2f Mp9qV416zDMg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,372,1602572400"; d="scan'208";a="352795916" Received: from jsia-hp-z620-workstation.png.intel.com ([10.221.118.135]) by orsmga003.jf.intel.com with ESMTP; 24 Jan 2021 17:50:33 -0800 From: Sia Jee Heng To: vkoul@kernel.org, Eugeniy.Paltsev@synopsys.com, robh+dt@kernel.org Cc: andriy.shevchenko@linux.intel.com, jee.heng.sia@intel.com, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH v12 05/17] dmaengine: dw-axi-dmac: Add device_config operation Date: Mon, 25 Jan 2021 09:32:43 +0800 Message-Id: <20210125013255.25799-6-jee.heng.sia@intel.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20210125013255.25799-1-jee.heng.sia@intel.com> References: <20210125013255.25799-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. Signed-off-by: Sia Jee Heng Reviewed-by: Andy Shevchenko Reviewed-by: Eugeniy Paltsev Tested-by: Eugeniy Paltsev --- 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