Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp117434pxb; Thu, 21 Jan 2021 02:53:55 -0800 (PST) X-Google-Smtp-Source: ABdhPJx7I5Aug78hKuYYVEMoOXQZUah6Iv+3SONiDTn7ZZ1jPJk9FkKcsE9gpy2BOqZTRBWPLb40 X-Received: by 2002:a17:906:dfce:: with SMTP id jt14mr7853067ejc.435.1611226435701; Thu, 21 Jan 2021 02:53:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1611226435; cv=none; d=google.com; s=arc-20160816; b=DQhApUiw+Niop687Cuai5Wy0ZM0CCWtX4gUYpzJ00TgWJVF7nh82TalngKh6X8p+6R +rvapkQVzMsX+e/QKTeafd/gASSj9B4XsEhcXBV/l43AQXbK6L+MSo5aOSGl+CCupdPO MTcNWDTK0Q33UiXK+VSOLXLEtfgzrVsBwF/lSt7KajkyoYY0pTJ4XPEPd7WnuKef/nIW xojcHwd6rBHnmBEMXPl2pK0pvVKjjFGenpNV/k6M/1OxMOstaqLqqKVILYpEebMU2/QU mC53/yk7lJDCpmu9kCytDEkykTZc/Kse6qb4T1C3rYnrXLOq1gaNO5iE2Q98s7QI6h+K eleA== 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=JSMi4JnmmfDXMVJ3V+FO5I9YvM6lsQNqrtEmqeZdx+I=; b=k3TUlfhuIGYvjHkAM2eiHPk95k1HOhF9xjR6drmbJQzy/mvg4jINSfLfAQOJK8CEHQ WjjYW43bdqBENRiFE9U9nafpWJX8kDJB81Dx82AH7S4Uu+VPBItI+mL5kdNB/u8hKiTt gOfgjx4D/FC+ULSAS1ifElDpXLcftVcsONiX03gxNkpGlA4Drkgqk1ZtLg2yPepoW2ZG C+IXnR6+vGRqC7Hps6jOHpiL5WusJstYSDiY9D4ccifgUJTPjQo1lYF7xPASHp6HpQ+Q m6QazjFPAcDJeyCSaG+ajfYgQbk1bImIqtm8Id5Yp+PJj/mLXDmBARRRq+kcK4/+bZRY U0ug== 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 y90si2234317edy.314.2021.01.21.02.53.31; Thu, 21 Jan 2021 02:53:55 -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 S1729784AbhAUKvo (ORCPT + 99 others); Thu, 21 Jan 2021 05:51:44 -0500 Received: from mga06.intel.com ([134.134.136.31]:36489 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729720AbhAUKsD (ORCPT ); Thu, 21 Jan 2021 05:48:03 -0500 IronPort-SDR: w1a+4HRnqdrYPwHsIRf+MQnrmuipbfKZLF7TXREptSAs+TkxW3jmK591sZkVXAKZQkKVaCSNgN 3/WDWkTYbpLA== X-IronPort-AV: E=McAfee;i="6000,8403,9870"; a="240790330" X-IronPort-AV: E=Sophos;i="5.79,363,1602572400"; d="scan'208";a="240790330" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jan 2021 02:45:37 -0800 IronPort-SDR: +TqVBntajYlL2itz4Y9PteQ5PlN7o2n0+tdKV6u77D1AF+9zxtbVQwFgODSZDxkF7a82hRZ+3z o3qqC4lr5mhA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,363,1602572400"; d="scan'208";a="356417821" Received: from jsia-hp-z620-workstation.png.intel.com ([10.221.118.135]) by fmsmga008.fm.intel.com with ESMTP; 21 Jan 2021 02:45:35 -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 v11 15/16] dmaengine: dw-axi-dmac: Set constraint to the Max segment size Date: Thu, 21 Jan 2021 18:27:25 +0800 Message-Id: <20210121102726.22805-16-jee.heng.sia@intel.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20210121102726.22805-1-jee.heng.sia@intel.com> References: <20210121102726.22805-1-jee.heng.sia@intel.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add support for DMA Scatter-Gather (SG) constraint so that DMA clients can handle the AxiDMA limitation. Without supporting DMA constraint the default Max segment size reported by dmaengine is 64KB, which is not supported by Intel KeemBay AxiDMA. 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 | 8 ++++++++ drivers/dma/dw-axi-dmac/dw-axi-dmac.h | 1 + 2 files changed, 9 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 a1dddec95316..88d4923dee6c 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -1340,6 +1341,13 @@ static int dw_probe(struct platform_device *pdev) dw->dma.device_prep_slave_sg = dw_axi_dma_chan_prep_slave_sg; dw->dma.device_prep_dma_cyclic = dw_axi_dma_chan_prep_cyclic; + /* + * Synopsis DesignWare AxiDMA datasheet mentioned Maximum + * supported blocks is 1024. Device register width is 4 bytes. + * Therefore, set constraint to 1024 * 4. + */ + dw->dma.dev->dma_parms = &dw->dma_parms; + dma_set_max_seg_size(&pdev->dev, MAX_BLOCK_SIZE); platform_set_drvdata(pdev, chip); pm_runtime_enable(chip->dev); diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac.h b/drivers/dma/dw-axi-dmac/dw-axi-dmac.h index 3a357f7fda02..1e937ea2a96d 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac.h +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac.h @@ -54,6 +54,7 @@ struct axi_dma_chan { struct dw_axi_dma { struct dma_device dma; struct dw_axi_dma_hcfg *hdata; + struct device_dma_parameters dma_parms; /* channels */ struct axi_dma_chan *chan; -- 2.18.0