Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp199644pxb; Thu, 12 Nov 2020 01:09:35 -0800 (PST) X-Google-Smtp-Source: ABdhPJxSur4PelVxnEtIfa7UWDuHLvnJdUHloma6BoI0KmeuUyY8Q7eyj7RIfdg3fS6TPXcbnd2t X-Received: by 2002:a50:aa84:: with SMTP id q4mr4136033edc.331.1605172175610; Thu, 12 Nov 2020 01:09:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1605172175; cv=none; d=google.com; s=arc-20160816; b=XxVVBFzlszVfOswwYqEzd4t4PAzS1brFl4CozgcIFE5yWVjeK4W7xLZNac8VJO2bGm zGVUqdWwD030DIApLRDQeDtrZNgqgUZ3wWF8vRZ6KQ9eH9LIDqGJ4UxG8irxI/N1RI6V eR1N/HZM3lK+J4TA2Ew67JOYnclqMnE+ruTvDJ/6K+TJ+4335A9lfyyJ9Tc1DD3U60SB NwtSqQHSYhB9mIT1Bf+qQxows7oShsRGz8ZfJaj3Vp+cBd9KED3VvUxKZm2R7W5DmViz b1scT4QhsYH58HhJLXzhh7X8tgD9MOfYM5RRw9b5HZScyYV+FLgaNzVvbk+vPGPgv6TS htbA== 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=qzsIggfummBsRt+er/ICMTjliFuA29f2pZJXH2jXzms=; b=N5ebiWlxcqLfxsdF9yc1cCXbJR6+Oi58DYAkgoGXQIdNoObMTrll5hAPyHo+KFakUK TEa2/N3GBjk5VF8izJ475BysfwEAmOntY9EPgRzy2FTl+3UJL9Jvsg2K1qasU4eB6h6W U96PbP6/M8qbVJ0lpYHTVRccNOG8arhVA6ftG4ph4/onJYbUffB/93ilfnJYBBH+REkx shEE3Wy19Yr7e6uRwimSXyoHKrZpZy0eFeK8kauRcOY+9/bK0sc5oMGojBMcldcKsp3M UWceHGOSkDf/LO/04w+w4WcVdxgUf24ZDGpW6RpWebB+suMW3B8EVgyutO6jQDJkI2vj liow== 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 x15si3234738ejf.349.2020.11.12.01.09.12; Thu, 12 Nov 2020 01:09:35 -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 S1727876AbgKLJHN (ORCPT + 99 others); Thu, 12 Nov 2020 04:07:13 -0500 Received: from mga05.intel.com ([192.55.52.43]:38735 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727845AbgKLJHI (ORCPT ); Thu, 12 Nov 2020 04:07:08 -0500 IronPort-SDR: +H+1Xz+qSgGpdE70EiZbdI02B/IaluvgbBXXyv1aJA7K32Ps4vsflw7vVYwqZnBOiYH/D69ZsB NA52fdw7HhtQ== X-IronPort-AV: E=McAfee;i="6000,8403,9802"; a="254988333" X-IronPort-AV: E=Sophos;i="5.77,471,1596524400"; d="scan'208";a="254988333" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Nov 2020 01:07:08 -0800 IronPort-SDR: /exYc94LmtEFWbbmjyIFNbgIZqmFnaaL8C2lYCI1MigXZRDdUCF37XiyclEerDI7zW4abJG1UO HnLbs3oMKX4Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,471,1596524400"; d="scan'208";a="360911782" Received: from jsia-hp-z620-workstation.png.intel.com ([10.221.118.135]) by fmsmga002.fm.intel.com with ESMTP; 12 Nov 2020 01:07:06 -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 v3 15/15] dmaengine: dw-axi-dmac: Set constraint to the Max segment size Date: Thu, 12 Nov 2020 16:49:53 +0800 Message-Id: <20201112084953.21629-16-jee.heng.sia@intel.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20201112084953.21629-1-jee.heng.sia@intel.com> References: <20201112084953.21629-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 812f51c717e6..7e00d9df4d4d 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 @@ -1353,6 +1354,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