Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp14228282pxu; Mon, 4 Jan 2021 17:05:01 -0800 (PST) X-Google-Smtp-Source: ABdhPJwrXAttMd7mSn+SVeC8w7A/njLblCk2ymp0CPtRa3PweEtQ8BVnKtJwSOgjvZid6sRODZXN X-Received: by 2002:a17:907:417f:: with SMTP id oe23mr66524296ejb.259.1609808700816; Mon, 04 Jan 2021 17:05:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1609808700; cv=none; d=google.com; s=arc-20160816; b=cTyJza1UnxkdTh35A9iqGbxBtMVfm6gkUBIfScR1Iy2jWe4Khs8jNrua+RW1/0AMlT nv/LXYRuJHs7nKWB66VDOXwdlJzwZM1WSkE5SEA+6IsFfpEWRXTqBgYUJIC5Kbs+CI44 EnK5f7q+PNzKWVhH6NAbdjLg3j158coVE/lMpfWw3dTkqH1mYxZGHpb3gjA6mIvk63td nrxEUAJt85FQhUJkvkEeHL/GyId7X1k5/GnQphgdeoZz02bfOHBf73pbxP2FaHxbh6xI vKDFKF8Dt8dYrY4DWBSQ0SgJaCnEeDpI9UxR/UhfH7fP3V2P184xIm/+k+Pj7yt624nP R3AA== 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=yyxTxs29ONKTAXt0nSJGOI3kwLI8NJvMVhsZT1zhAEE=; b=Kv/LJU66pTHyS1foRlDLBkr1kq9YXuJ5YC4BHvQ2rZ9JqzOfElPEi5ASQAsCMoSO2b H31j9+Yjx/84R7Nzr2yyuBl1BVUuvQDX2Ah8WKEBoWdY6OWZxXX8YhjMxsyI3ytphimT M6qFlfWrwNmSs59TOkQ/Qgz9T7Hz8nlNQGOddvBXmClhlDXvp4Wb+gKSIefUE88eFkwK 7SmEMTrwpVIW2aWV0ZNZA5SlFHBK1KpojZ12fXQeC1eJngdzOGNWS0r0COvO2bOU45uI HFuBJMw2r2z2opZZZBbMFJWBZ+wGyP7Lq4o2rb3GgyRRn2wqEpFXVZ3hcNrYYgbzqQX6 G50g== 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 y26si28848806ejb.149.2021.01.04.17.04.37; Mon, 04 Jan 2021 17:05:00 -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 S1728683AbhAEBCK (ORCPT + 99 others); Mon, 4 Jan 2021 20:02:10 -0500 Received: from mga05.intel.com ([192.55.52.43]:29963 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727826AbhAEBCJ (ORCPT ); Mon, 4 Jan 2021 20:02:09 -0500 IronPort-SDR: e7oabH+3YJlECN9wc0+1pQPjL5G0EmtQaz/52KsnXZkfVWotTZ9gzbIg+894sMugdHOT/ofRsA AWe6o8kNDZzQ== X-IronPort-AV: E=McAfee;i="6000,8403,9854"; a="261794180" X-IronPort-AV: E=Sophos;i="5.78,475,1599548400"; d="scan'208";a="261794180" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Jan 2021 17:00:50 -0800 IronPort-SDR: kFFMcBBlaKvD8JfXzpyaRAXGh5AKTQl5L8NAr1vEj3D3AF0XY7dZUDMhAsuzLNPQksVcZOdR3n 9rasL9wr/r0Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,475,1599548400"; d="scan'208";a="569540348" Received: from jsia-hp-z620-workstation.png.intel.com ([10.221.118.135]) by fmsmga005.fm.intel.com with ESMTP; 04 Jan 2021 17:00:48 -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 v9 15/16] dmaengine: dw-axi-dmac: Set constraint to the Max segment size Date: Tue, 5 Jan 2021 08:43:05 +0800 Message-Id: <20210105004306.13588-16-jee.heng.sia@intel.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20210105004306.13588-1-jee.heng.sia@intel.com> References: <20210105004306.13588-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 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