Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp9554541pxu; Mon, 28 Dec 2020 21:09:21 -0800 (PST) X-Google-Smtp-Source: ABdhPJyNHwjlsCb4TziGFoR8GL3/WdlEsWijy1r+YelW4DGqCXsHL1Hi2RYCgSG5vw2uTudJNDup X-Received: by 2002:a17:906:cc9c:: with SMTP id oq28mr44468966ejb.224.1609218561814; Mon, 28 Dec 2020 21:09:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1609218561; cv=none; d=google.com; s=arc-20160816; b=G2kNGt+R/kJDvz1GLCct65I1LdanZwKscOs4pGgiQZQCP9W31y8QdPONMzqV01L/ui mDSdiwhVuWP9oprGBOCQHvZUYJFGMKdGeNMsaBIJlKmAA96ERzB0bvyV2N8UdDLuUb+d w+4I33LXcyPqh9WhiPbfoJ6qfP3lPKadrXKYFkH1uPMBzd4qI27XlUOd/RznzqGd65F7 UPyKmpVj3kf8/BM9hPKnF05xZIis+zzQHYP6I1u7ypmZUE5Xn8hjzjukepn12Vw8mOjq g8lCSq5VIUUa9pU51Sz9rBD4SOZVqXqQqe/wVzWxcFZW2/HwUA6seZfFp+7336PY03+r T0sA== 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=nsy9ZKGQBLAGqBWrX3cnbdrwHbNz5G8UerrkI8HI76U=; b=gop4wWE4/RwjyvPnaDtTDGlmIJ42GdT0UIXF5DY42QtBSAUhkScojgNBhDaM3ecN2M 4AX/pg8nG2Sk8bdOCq+hhRHaAuiRTzCn+rHLPghpG8OOjx0lO5fKeMVy2a1KxlUMwtYC ixhPGX+zcii7p36JUMwQWrtUHePPHJ2GIK3//XHxN05US0wtwpLspe0Po/tYyXI2MLw1 8CNLBYmQYxkUhQEvWeTy5KP46K9o/7SdGd/Ol/Dvk/JarELbhHkGRnKNytHdpLccrajP qfQYvWRUNN6sxxucad3n9Jq6/pKOgJlfTQT4nsSXGHF2k6yROh9Ee0NcwZbUM9Ro3ln7 jhtg== 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 p18si19577218ejd.518.2020.12.28.21.08.59; Mon, 28 Dec 2020 21:09:21 -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 S1726799AbgL2FGJ (ORCPT + 99 others); Tue, 29 Dec 2020 00:06:09 -0500 Received: from mga03.intel.com ([134.134.136.65]:37338 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726060AbgL2FGI (ORCPT ); Tue, 29 Dec 2020 00:06:08 -0500 IronPort-SDR: ypHHyBEYLNbiKLy+y0qrs3JFChdSkGnif68H7WWMAKiiiZW1k67ZU6I7HapcgW7EGoy4+WN07R FwgxuYQkkMdg== X-IronPort-AV: E=McAfee;i="6000,8403,9848"; a="176554732" X-IronPort-AV: E=Sophos;i="5.78,457,1599548400"; d="scan'208";a="176554732" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Dec 2020 21:04:52 -0800 IronPort-SDR: q6j0VLc2yf1YUlbNdE9bsYcMkZZLbER3APoN9mbSrLQH5WqOJys4wXbw7hry3Devf859ZNMZBY awFf1L6x2Khw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,457,1599548400"; d="scan'208";a="347249854" Received: from jsia-hp-z620-workstation.png.intel.com ([10.221.118.135]) by fmsmga008.fm.intel.com with ESMTP; 28 Dec 2020 21:04:51 -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 v8 15/16] dmaengine: dw-axi-dmac: Set constraint to the Max segment size Date: Tue, 29 Dec 2020 12:47:12 +0800 Message-Id: <20201229044713.28464-16-jee.heng.sia@intel.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20201229044713.28464-1-jee.heng.sia@intel.com> References: <20201229044713.28464-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 ab145a84b0c0..58845b058d9d 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