Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp778717pxb; Wed, 20 Jan 2021 22:19:43 -0800 (PST) X-Google-Smtp-Source: ABdhPJxXsAIaARryQG9FyEfRqhpfRVO75zGJ+k0tYUOqcZFHydOp5kfPjq8KCrVsAvgNAjIIcXoD X-Received: by 2002:a17:906:9342:: with SMTP id p2mr8516695ejw.300.1611209983736; Wed, 20 Jan 2021 22:19:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1611209983; cv=none; d=google.com; s=arc-20160816; b=zk7mWMXf3yQ4XyBo0KY1oDtPsn7Q33+UgPGJVwuLpQOyhz6sydT0wU5I0FU9R9iV6q LBNiPEgikcYmBBjltywHA5SDfc8j/T8wwEIdzDGZnC7VB+2kiaOnpY7jFXFsVm02d8h5 TlAXRYm7nEQ9tHtEup2la/+0IycN8nrwRgqyXWS3C1BTCCwDTid8DLPEvV/ErwvLM7v4 OWRPzvOaPqha1SkjCmdH8uQqgHjCo1cTrGQLjSGhrqfyczkRBgt1e9jFb86KpCsreg49 706QHX1CrHRfVj9kSUCGNy+OI9MI1VhnSdLZr1aWW7W1jm03Qlo+un24E9Ema6OjsILt e4MA== 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=vMJmPkQ7pnP/r2GDjxVDEdKYbEnptEZrbPIBqgZGnV4=; b=qwpjJJgLRs9sCn7SssT2T7CH9vyNF1WwjTxy7n9TO6A0XFLndku0R16zcIPFNt3tbX n9HE+UYxEvEhoOHViqhK0wWZJ59w3g2OE00A0Uj1MDE9mGhkSn2LiwqWKdBqHkc7JVlY n4W2cKaQsQTyfxYV5+F+M8+jf4o4iolmyCCHZl8D7j9u2uOd8Ahi0OWMd6+Wj8/dpUP1 P2/15q6HnBcXErehLSmktRYDX63VnInGtBzhvL/u6C1IzBSB6deVQwNMJtcJhChabehP 2UEVGFRpw1z9DbMwoun6zhCElSMeo5jLNH6wD0Pub4YQwWTw6YAe3rf/E7gnRR/bI9BP tp7Q== 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 e13si1608434edz.214.2021.01.20.22.19.20; Wed, 20 Jan 2021 22:19:43 -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 S1726871AbhAUGSR (ORCPT + 99 others); Thu, 21 Jan 2021 01:18:17 -0500 Received: from mga11.intel.com ([192.55.52.93]:10404 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726724AbhAUGQP (ORCPT ); Thu, 21 Jan 2021 01:16:15 -0500 IronPort-SDR: 8QqokuIrJXm48QzH/vj+6yKB5g7Afs2KNXjqJ6VTnpmrskYq5G7nZ2nvy+bDwMZhapJV7TzoHe htBwf2g5lH1g== X-IronPort-AV: E=McAfee;i="6000,8403,9870"; a="175716815" X-IronPort-AV: E=Sophos;i="5.79,363,1602572400"; d="scan'208";a="175716815" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Jan 2021 22:14:54 -0800 IronPort-SDR: 3xpx+J2u163qDxPrgEonAgolcHSD1WK5BvQUlYyMo4o1Ytv+hfGN1VsACMusWqwjOlQd3KRe6e 6T+rqs1Ccgwg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,363,1602572400"; d="scan'208";a="427201504" Received: from jsia-hp-z620-workstation.png.intel.com ([10.221.118.135]) by orsmga001.jf.intel.com with ESMTP; 20 Jan 2021 22:14:51 -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 v10 15/16] dmaengine: dw-axi-dmac: Set constraint to the Max segment size Date: Thu, 21 Jan 2021 13:56:40 +0800 Message-Id: <20210121055641.6307-16-jee.heng.sia@intel.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20210121055641.6307-1-jee.heng.sia@intel.com> References: <20210121055641.6307-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 ea527b92e0fc..1f9522caf876 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 @@ -1341,6 +1342,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