Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp306986pxu; Fri, 11 Dec 2020 02:51:15 -0800 (PST) X-Google-Smtp-Source: ABdhPJyWb6kBe7DLes9D1YU6nR1QT2E2R1KJ+/NXHuHBnp2weHAXxo07rFrGonBJLKTInLEsIHq5 X-Received: by 2002:a17:907:3e85:: with SMTP id hs5mr10710968ejc.548.1607683875499; Fri, 11 Dec 2020 02:51:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1607683875; cv=none; d=google.com; s=arc-20160816; b=LBoKz/LPXR2zOugV4JhfihzBMqK5FA7wXL3j7vAhzOYu3nORmDTt+OflL94En60lDi mUfpA9+Zet8582HCeGiTABQqywHxkiJ/HUZrKAyb3ne+3DYIaPgBFjo0lcUVWFUPXRqu 6DbwZ4JdR0FFumS0vI7ykPLLW/DFkOfKdJnH8Q5R1ujg7NIhBuZVaActyjgeqWvnWzfP OllweqwGRMLXg8mQ+BTaKbgZ5Y9IqKgEGRaCDf0H9fsTIQqxy+h8pzpyCOlD3dY7Ys9C Na1/JrLQdZ8Rgt4lko1xrrBL4bTYv1LWvS+ro3O0xGFSdqRgFCaquHvFseP7A3WhVrxn wpGA== 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=7xgzgDJ5dymcAXxiOqOhjW9XbLKTsgkGvLadfPxCvBQ=; b=wEKYgY8rC8Fo0qZwgWQ+T63rBrSudYxua4KLlQt2eNb8kaOScdoKSEX9OpmFw6Fpkp htANngDq9Ar7/R5FgULP8kWPSqziN8X/y6D61T/4B5PflIS47njlX3+uIaOw5moiTEtZ gFHtG4SC/2tG1jfi2X9aKP+IJaYSGTfTFFnGYMlpOt2pDtU8NaS51tNmirqui9z7skHp 0/wbbkYei7f4I17XzWmLpWUiTthC1MGJEYqznUiNaDRoGQp2Aahxc42avSW3Jw86Y+IP d9nPMR76MLYMsQfTCaXzS0/gpgG1xeaAuNE3AQE5RsnfVuHBOWEW3ECbPP+y4XoNwZW7 Oz5w== 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 j20si4196977ejs.76.2020.12.11.02.50.53; Fri, 11 Dec 2020 02:51:15 -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 S2404336AbgLKBGn (ORCPT + 99 others); Thu, 10 Dec 2020 20:06:43 -0500 Received: from mga14.intel.com ([192.55.52.115]:12002 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2394494AbgLKBGF (ORCPT ); Thu, 10 Dec 2020 20:06:05 -0500 IronPort-SDR: M34OJbCASkXesWRyMbfxa/2KTaYQ98VGTJjdS+cr79yWMGDub4DqOGJ7OQcCTieqxmz2olgTy5 KaG9kS+hM2hQ== X-IronPort-AV: E=McAfee;i="6000,8403,9831"; a="173596150" X-IronPort-AV: E=Sophos;i="5.78,409,1599548400"; d="scan'208";a="173596150" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Dec 2020 17:04:58 -0800 IronPort-SDR: z4EMfQzf6MfFze2frUIERYT10GdUEhwvfJk+D2oHWR+N7p9Pj3UGeHlcJfqRpQfxmULGFZc+C4 DQMe8e1sgHNQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,409,1599548400"; d="scan'208";a="320965873" Received: from jsia-hp-z620-workstation.png.intel.com ([10.221.118.135]) by fmsmga007.fm.intel.com with ESMTP; 10 Dec 2020 17:04:56 -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 v6 15/16] dmaengine: dw-axi-dmac: Set constraint to the Max segment size Date: Fri, 11 Dec 2020 08:46:41 +0800 Message-Id: <20201211004642.25393-16-jee.heng.sia@intel.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20201211004642.25393-1-jee.heng.sia@intel.com> References: <20201211004642.25393-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 dc7ddf98fd04..1a218fcdbb16 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