Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp304667pxu; Fri, 11 Dec 2020 02:46:56 -0800 (PST) X-Google-Smtp-Source: ABdhPJwxdFUDVLcyQq3zCiaD44fb3SnOd9Lp/4qZjHyNaJg1uPhqm0yuJyO3vV/usFtjGVjJxjqg X-Received: by 2002:a17:906:c04b:: with SMTP id bm11mr9943507ejb.394.1607683616438; Fri, 11 Dec 2020 02:46:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1607683616; cv=none; d=google.com; s=arc-20160816; b=nXAa9uOntaq8aJYkqQEX1ad2l+u1FqYWKctFRphy8u0VIcug4PgO2uZtT8e+B+9UEi DjMf7zrE8rr2gbYyrKRQtHMTMN6frHhozebE2EFolEJVTSzyU5DTfpVb8N3jDkO8urq8 agtUfh35NvwJYd3DRZ5O96q8i5iWCBklR2kewkjrVG5guS87Ix84SLWrlw3gYtPOBw+N 5MxrHH7KDgJaakkHQ1Nwn/QAjh2FGlwSxTYVo4Gv+x4DQr6GbaqoT51hKdPCsOVrwLjL yT/LJpIRCcKjX4MHFcOP9UeWWmsWLglGfH8Hr0lOK8eV2rwGOSDYVNQCmeqX4Syexk84 3B9A== 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=RZlA7DVBteomSkwtfoSf2i0d6IaURF23sIMZ6xP7SCSgRdqDO5x0hR9qkzNqGYRTPT bAdhWVwGvhxsS0e2aM7Ieeeejk/aMUbVvtdi7ilqDnvQd74C/UiTjuqZlSmnczz0Sb/g dsBfqu/arHuhhtUIfVtN5ykKl6geE8bZm2T1H+BJNdNZeMAyuXzbsq1XEdmwogaJwNIP BT/t7mOFar5XCLDvVISvFETsPGSFoHFh8Dnmz9Uhig3LZIWIEL4+pdYZhV64p4Yy4u2T zw2OhOshxe6+G/iRg4rYFtxaxvvfedpLjffctyURyBnW7BHwF2h9Dq02ye7NgUlbFhIo ufhg== 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 zc2si4472842ejb.427.2020.12.11.02.46.33; Fri, 11 Dec 2020 02:46:56 -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 S2394260AbgLKBFr (ORCPT + 99 others); Thu, 10 Dec 2020 20:05:47 -0500 Received: from mga18.intel.com ([134.134.136.126]:13345 "EHLO mga18.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388461AbgLKBEj (ORCPT ); Thu, 10 Dec 2020 20:04:39 -0500 IronPort-SDR: k/rM9/n5mj5sZPlNS4isttNRqU+6oc5HE+NCXYyNfgWpNT8qicVFzTUcrbK2Fg1PvKx/yfKPgO A9iemu7K/Uyg== X-IronPort-AV: E=McAfee;i="6000,8403,9831"; a="162117468" X-IronPort-AV: E=Sophos;i="5.78,409,1599548400"; d="scan'208";a="162117468" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Dec 2020 17:03:55 -0800 IronPort-SDR: e7nhlPLL5vuH7/usqpzRwdxepHScV53DTiU3z/FkhpEf7tRN8OpsCJ6zMvbCT2WJ7q6toMno5t OIcURQ1bXGSg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,409,1599548400"; d="scan'208";a="320965671" Received: from jsia-hp-z620-workstation.png.intel.com ([10.221.118.135]) by fmsmga007.fm.intel.com with ESMTP; 10 Dec 2020 17:03:53 -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 v6 05/16] dmaengine: dw-axi-dmac: Add device_config operation Date: Fri, 11 Dec 2020 08:46:31 +0800 Message-Id: <20201211004642.25393-6-jee.heng.sia@intel.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20201211004642.25393-1-jee.heng.sia@intel.com> References: <20201211004642.25393-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