Received: by 2002:a05:6a10:9e8c:0:0:0:0 with SMTP id y12csp1436046pxx; Tue, 27 Oct 2020 17:37:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy2ZA5KVe1orBySvEwH3muE2p9fyfIDhnnhS9O0cU9Cd4ztJ9cfH0pFNNPom7xcKGjue2sq X-Received: by 2002:a17:906:d8b0:: with SMTP id qc16mr161970ejb.268.1603845459825; Tue, 27 Oct 2020 17:37:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603845459; cv=none; d=google.com; s=arc-20160816; b=FlCDETz80fh1VuoZno0OKV29ujOtZH+dEMXZWukMRrjfj/q3fquI76prvic4zZprfN 9P7EKqpgnu75hkqpbItOOUqvhSx2orX0ggxoqvs54TdGNuWVI2Llvcp4ZJzRn1b7Fjky 9y8x2OJXlul6KFfvrQ3J+3ipF+k9sovmL2ZIbWvqGwRTcoa8FgGFTiSBLjlJyf1YEBT6 9UmC0EmTaJlhX0SnfA3SDll1d6jaVZNyn2u7LnM4/KKXpwjmR2Dlf022HIsDTOWHhujX NYJr7uwwyokDcfkb/ZtUUukoijU+t9WryLzfZTAr+s/yrNuX753HPZQE5yISfKkbjqMx eD9Q== 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=Z74QUgdys3QkLnHZaUmYXp/BO+0A7lRIvP6K6Gustj8=; b=aceQgpjX3T0VAIN428lRPnMBEvkoXTnruTisxzVYfxG1mDWXjXb7+yGhUpPKTAfqnK G7LhLxF/+0mxrgvZJufkGvHs7IbTCT+mUruWtJ6pJGegVKPZWesZHGvnm0jy7QyLKv0n WyZW7J2H30/D1p37gt7+6EVIMQ6rj6my8bj+eMe0bcFllpuuA2Mymc+4WclUbj9365HH W0DvMiyajYaKnUuMDtbmcbY/RqyzIBzaRtFL+US7iGy6C/yymzGWOJ8pQQCe4u9e+unh mnTYGU1C2JXWbcaAqo+0ojB6keWhSyw9CzgSux83rhpEPqbl4oeztcLXsrUcdun6xfIl s1XQ== 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 a6si2187965ejd.276.2020.10.27.17.37.18; Tue, 27 Oct 2020 17:37:39 -0700 (PDT) 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 S2506915AbgJ0Gze (ORCPT + 99 others); Tue, 27 Oct 2020 02:55:34 -0400 Received: from mga02.intel.com ([134.134.136.20]:42071 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2506906AbgJ0Gzc (ORCPT ); Tue, 27 Oct 2020 02:55:32 -0400 IronPort-SDR: OejG2p/D1XzDdN+bN/yHT3ar04UoET0eEEetvfzIc8K0SHrXiEyXqRm21KiYXtEVC1kaj/FA0t WNEeHZr5krVg== X-IronPort-AV: E=McAfee;i="6000,8403,9786"; a="155004151" X-IronPort-AV: E=Sophos;i="5.77,422,1596524400"; d="scan'208";a="155004151" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Oct 2020 23:55:32 -0700 IronPort-SDR: AzfNElvIe+6ZAVFltlPpCPBijUmDhPs3fOgJlUkdVffGwbIWsR/EI+6p+L69OpPrZYSXTYvSEL cqo1+3qV81ig== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,422,1596524400"; d="scan'208";a="350175852" Received: from jsia-hp-z620-workstation.png.intel.com ([10.221.118.135]) by orsmga008.jf.intel.com with ESMTP; 26 Oct 2020 23:55:30 -0700 From: Sia Jee Heng To: vkoul@kernel.org, Eugeniy.Paltsev@synopsys.com Cc: andriy.shevchenko@linux.intel.com, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 05/15] dmaengine: dw-axi-dmac: Add device_config operation Date: Tue, 27 Oct 2020 14:38:48 +0800 Message-Id: <20201027063858.4877-6-jee.heng.sia@intel.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20201027063858.4877-1-jee.heng.sia@intel.com> References: <20201027063858.4877-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 56b213211341..16e6934ae9a1 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