Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp9553680pxu; Mon, 28 Dec 2020 21:07:18 -0800 (PST) X-Google-Smtp-Source: ABdhPJyBr5ammVF9DlAteuVfNXey5GtqthlLg/WBhSwJxieFJ8LyzKZfl4YgC5WCeO+rJv3lNs2M X-Received: by 2002:a17:906:a181:: with SMTP id s1mr45375430ejy.60.1609218438667; Mon, 28 Dec 2020 21:07:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1609218438; cv=none; d=google.com; s=arc-20160816; b=dElYU7p1rUEwA8MOIzBUurl8y5PsGK3kdKOmSNp/kQr3RbtA5I7ihwAmRDCLoTU3Im lRatQt1xiQUD/64SSUQCEBOQdrTaZQJgdcntWmtudoIWzV75xe9iRjdcP4nyCuti8q+h LMWpeQ3u8E3aKiuqvhYJaH+KQ0k3aFlGxl0gufI9VyClK/kdCjCyGoxsvEKZqAVMrG9G Lyl1kq16d+t4UwDIuVlRrj4g1byWQZCQZ2mAxl3dVRS71UdInELqWU0KCpM40uT1gYEH OCNrF350aXm/wOQbXy9Peq266I6+ufLqKv1z1BfqUSP8SNrEaJy/HQacAgaufC3hKL8T QVmA== 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=s9UdNsEexEZv2pVMDVBVWRPPqd1KOJ8fCjcdEWU7C5Zs6g78ItZePXoTLmcrIirkOD hnh4v2tVoNzhXUJoutryXETGwVjlKLfWAeJcmr5UZlTrj2sYIWqU3ys28SwSVJq8Ga3B YPv8gLm3h/yE6rq01LsQzBU5USdqP0r96yl7Kr4F7RDrCnwkCPa2mMVh724ENTcHbHSs L/wQ6me9j4HKx6L9cpGzmVb8CYFdPDnMVBeXc8DcmWyzszaEd9QDevErztfA90PQmcfV 17voQmLEdGSSfUWbmCOVE4iG2M3BozgzvmslV0QjNy0M21GRABsFxduhEkj1KIUH+BUG XukA== 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 a1si19245710ejk.634.2020.12.28.21.06.56; Mon, 28 Dec 2020 21:07:18 -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 S1726396AbgL2FFN (ORCPT + 99 others); Tue, 29 Dec 2020 00:05:13 -0500 Received: from mga03.intel.com ([134.134.136.65]:37344 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726060AbgL2FFM (ORCPT ); Tue, 29 Dec 2020 00:05:12 -0500 IronPort-SDR: cGw2P4cQ7nzTVzYVII9YY6Ow+ihhikkuwy7ykxRmFdvMwqA9uEOrp0jTfaOe+sTCu5kZqxtwX/ PHhn0ZLvbqLw== X-IronPort-AV: E=McAfee;i="6000,8403,9848"; a="176554702" X-IronPort-AV: E=Sophos;i="5.78,457,1599548400"; d="scan'208";a="176554702" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Dec 2020 21:04:24 -0800 IronPort-SDR: uGtMd/7B0KeFLsACJAKDOBMvbW7beyWFpTtVCT+xSDD4lOBbEw/Sy5l8MX7RZAib6MfPJ//TIg RxLC/pjsizwQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,457,1599548400"; d="scan'208";a="347249769" Received: from jsia-hp-z620-workstation.png.intel.com ([10.221.118.135]) by fmsmga008.fm.intel.com with ESMTP; 28 Dec 2020 21:04:22 -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 v8 05/16] dmaengine: dw-axi-dmac: Add device_config operation Date: Tue, 29 Dec 2020 12:47:02 +0800 Message-Id: <20201229044713.28464-6-jee.heng.sia@intel.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20201229044713.28464-1-jee.heng.sia@intel.com> References: <20201229044713.28464-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