Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp544287pxu; Sun, 22 Nov 2020 18:56:20 -0800 (PST) X-Google-Smtp-Source: ABdhPJynBR09ynphM/HeNUjMyjDW/ZNLywBisX3e4nDq+Z00WRCb7r8+eU5EciIv/XFho1XCmnS4 X-Received: by 2002:aa7:d298:: with SMTP id w24mr3628344edq.82.1606100180234; Sun, 22 Nov 2020 18:56:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1606100180; cv=none; d=google.com; s=arc-20160816; b=J9tvlcxix5Y36+TxA8DZ/7isOUSw0tQS/nxrUAGIbleCTWHo9CWBIux9ztYWK2DUW2 YkiM7nLNd9ibhq35Z5riqH1oyyWVh9wbW7WVoYuea2A4yB91K9mXIZ+iVhgbMq7BmzyL MPvfmYYyeijIm5wmdC4reOiN5meWn8UFo5xZnaMf32DX+Lrp3HT18LDv+iTY57ruBKws zocOGwT0sj937HPAdcei91+NgGNkWMGEYfcxMcEIwkZYjVHjiG3dse3r+6nMs1uwHdRS ysEvyvU+2sjnFSVYLkiPrq5ZMDuyKe6+AlrR+rdyt+B2bSzY9ufl43MiVovLhDdxwbta YzSA== 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=7xgzgDJ5dymcAXxiOqOhjW9XbLKTsgkGvLadfPxCvBQ=; b=snK4+f08VzY8OfNMlLnJiNIMgpp8++vLsvhESGQCU1WX3MKINmCpNWlSGjJSRcpJQD 16Mm0bUwK99M+JcGdqmkLzG5Fm/vTX0lA0iImLImbEdtJqdtS9kEn5fOvL6445o1o1yS hRNZZXK7XjNAF/ilFTtHJHV5Ok1PWnd8tJP5Dcz1x1T4SGguss8bfrVkcxCn4xjJaL0O MU2V/iUSqP6IYrtDzjPcqHnx9Pev6Ii/5zVpzZkRRhpt8mjP2Ch5/Vcek4aji4yB23T3 A8EEzGwHGeQZKEAcdOXbw2TPwwYDmrAqrI7FyZ5TkIL8xNHxVPgqMwvLvNncDwlQanJw ThUg== 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 dn6si5624068ejc.234.2020.11.22.18.55.58; Sun, 22 Nov 2020 18:56:20 -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 S1727861AbgKWCwT (ORCPT + 99 others); Sun, 22 Nov 2020 21:52:19 -0500 Received: from mga18.intel.com ([134.134.136.126]:60192 "EHLO mga18.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727852AbgKWCwS (ORCPT ); Sun, 22 Nov 2020 21:52:18 -0500 IronPort-SDR: rxVnvIdyuSp/hKEqE8zA9PQ3CueMrxmwAYz8bsVo5rGu5zoRvVmeRZ5AMl6vFUCqIDkTS1ftL/ zULMAz3Bwx0g== X-IronPort-AV: E=McAfee;i="6000,8403,9813"; a="159460054" X-IronPort-AV: E=Sophos;i="5.78,361,1599548400"; d="scan'208";a="159460054" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Nov 2020 18:52:17 -0800 IronPort-SDR: a9h0Sh8OqF7YBefKpUYiYR/iqJ+rBS/UM71e3RRFH0xyEpT54jc16Ggkkv2JO+1rFXAiSAsz/6 8b/H8+YldfMg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,361,1599548400"; d="scan'208";a="369879945" Received: from jsia-hp-z620-workstation.png.intel.com ([10.221.118.135]) by FMSMGA003.fm.intel.com with ESMTP; 22 Nov 2020 18:52:15 -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 v5 15/16] dmaengine: dw-axi-dmac: Set constraint to the Max segment size Date: Mon, 23 Nov 2020 10:34:51 +0800 Message-Id: <20201123023452.7894-16-jee.heng.sia@intel.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20201123023452.7894-1-jee.heng.sia@intel.com> References: <20201123023452.7894-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. Reviewed-by: Andy Shevchenko Signed-off-by: Sia Jee Heng --- 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 dc7ddf98fd04..1a218fcdbb16 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 @@ -1350,6 +1351,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