Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp3547946pxb; Mon, 16 Nov 2020 18:44:12 -0800 (PST) X-Google-Smtp-Source: ABdhPJy1nPZ3nAWG4aVEemQAWbA+CR/Q7OQ61oTH/POH+FVZRiAujhf7/gSl9AB5OJyfDBco5qw2 X-Received: by 2002:a17:906:e2c3:: with SMTP id gr3mr16973769ejb.471.1605581052484; Mon, 16 Nov 2020 18:44:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1605581052; cv=none; d=google.com; s=arc-20160816; b=Momv8LhP0FLHGENhgJpYIfFmae9qA08fMUT0GEMsE17ThqiQYkrRr1LqhTC4fqaIDi +xyWyECnVszNcuczBAyDcvZgezPsAR4FUQ3iCG4OqXGg4yyB6CVNTqvkgyNrYphmVx4Z 51dFG+RpiFneY3TdaBt+TCHnYHbws7MNNRM9hdR+8vqclJjOUDugCTGae0PGU8mLOl6Z 4XFlnoXMVF+EOa7D74bk770KpGYWD6GQkJiUlnLvvfQcBgJLE/l+FewIWQbQ+4gvKbed 9v6rwuT41sF/BvMWk5FyFq/KADvk7x6p3CqdngY9whRE0O9m3Wzu8YTWJfyVsmce5boO rfgA== 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=QYmu4rZYKtqR4cETqYxTLocRdwPZsvgb0zzjzs7+5gM=; b=SiARfXrnU++gXhDdtgqG/SmJUa72keP8CIc4vGhDa6gH0RReJAekq79W34crc4ner4 IpqTtwYofOF6VZOKY9ReO3YLGJKVbG1dUdpiVxtrKGNEOD3uWxYuxsVXgbGNvMQ5v1XZ /tnz70ux1E3a3PgOWBJhuuy5Ei5mOI+PbgAgQ+tEpOAPN/4kTO2Z+c3h8cLmyOPfXkNA /nVfH0O24suc5tSPDLtf0Ivta1Ruvbul3MbLD3VJx/DHlOjgObjk+lx/ulhgeHSNIBCt LPsv8vj+9L18q3yM7xZXJlLggNmk3Ylw2s+56VQMD4w7toHMHN1nonDECSyeQdiI1MJR lWZw== 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 jr7si13754781ejb.592.2020.11.16.18.43.50; Mon, 16 Nov 2020 18:44:12 -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 S1727558AbgKQCjY (ORCPT + 99 others); Mon, 16 Nov 2020 21:39:24 -0500 Received: from mga04.intel.com ([192.55.52.120]:52576 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727482AbgKQCjX (ORCPT ); Mon, 16 Nov 2020 21:39:23 -0500 IronPort-SDR: rI1IP4Nmlgs9G9NHAKTJV0lOd7RwtgMHKBMKn2OZu8dqzCLnGnNh2o70KU6knzljgCdM1IWu1b TFBApSpZJsSw== X-IronPort-AV: E=McAfee;i="6000,8403,9807"; a="168274117" X-IronPort-AV: E=Sophos;i="5.77,484,1596524400"; d="scan'208";a="168274117" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Nov 2020 18:39:23 -0800 IronPort-SDR: pnQnnQoUht6oCx03o1gFgST3/vExmvYCidK67wZqAoN72d+Av75JUVeJZ727/XlEb+KICfusIC /Au0COsKUwGA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,484,1596524400"; d="scan'208";a="358706155" Received: from jsia-hp-z620-workstation.png.intel.com ([10.221.118.135]) by fmsmga004.fm.intel.com with ESMTP; 16 Nov 2020 18:39:21 -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 v4 15/15] dmaengine: dw-axi-dmac: Set constraint to the Max segment size Date: Tue, 17 Nov 2020 10:22:15 +0800 Message-Id: <20201117022215.2461-16-jee.heng.sia@intel.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20201117022215.2461-1-jee.heng.sia@intel.com> References: <20201117022215.2461-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 cc05f66c7a4f..e20d8d4b1dff 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 @@ -1347,6 +1348,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 f64e8d33b127..67669049cead 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