Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932279AbcKRTdU (ORCPT ); Fri, 18 Nov 2016 14:33:20 -0500 Received: from mga09.intel.com ([134.134.136.24]:23339 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752280AbcKRTdS (ORCPT ); Fri, 18 Nov 2016 14:33:18 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,659,1473145200"; d="scan'208";a="903033175" Message-ID: <1479497593.22212.45.camel@linux.intel.com> Subject: Re: [PATCH v3 2/2] DW DMAC: add multi-block property to device tree From: Andy Shevchenko To: Eugeniy Paltsev , devicetree@vger.kernel.org Cc: robh+dt@kernel.org, mark.rutland@arm.com, linux-kernel@vger.kernel.org, vinod.koul@intel.com, dmaengine@vger.kernel.org, linux-snps-arc@lists.infradead.org Date: Fri, 18 Nov 2016 21:33:13 +0200 In-Reply-To: <1479496356-27834-3-git-send-email-Eugeniy.Paltsev@synopsys.com> References: <1479496356-27834-1-git-send-email-Eugeniy.Paltsev@synopsys.com> <1479496356-27834-3-git-send-email-Eugeniy.Paltsev@synopsys.com> Organization: Intel Finland Oy Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.22.2-1 Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2576 Lines: 69 On Fri, 2016-11-18 at 22:12 +0300, Eugeniy Paltsev wrote: > Several versions of DW DMAC have multi block transfers hardware > support. Hardware support of multi block transfers is disabled > by default if we use DT to configure DMAC and software emulation > of multi block transfers used instead. > Add multi-block property, so it is possible to enable hardware > multi block transfers (if present) via DT. > > Switch from per device is_nollp variable to multi_block array > to be able enable/disable multi block transfers separately per > channel. > > Update DT documentation. > > Update existing platform data. Kinda useless for commit message, but might go after --- delimiter. > > Signed-off-by: Eugeniy Paltsev > --- >  Documentation/devicetree/bindings/dma/snps-dma.txt | 2 ++ >  drivers/dma/dw/core.c                              | 2 +- >  drivers/dma/dw/platform.c                          | 5 +++++ >  drivers/tty/serial/8250/8250_lpss.c                | 2 +- >  include/linux/platform_data/dma-dw.h               | 4 ++-- >  5 files changed, 11 insertions(+), 4 deletions(-) > --- a/Documentation/devicetree/bindings/dma/snps-dma.txt > +++ b/Documentation/devicetree/bindings/dma/snps-dma.txt > @@ -27,6 +27,8 @@ Optional properties: >    that services interrupts for this device >  - is_private: The device channels should be marked as private and not > for by the >    general purpose DMA channel allocator. False if not passed. > +- multi-block: Multi block transfers supported by hardware per AHB > master. > +  0 (default): not supported, 1: supported. >   >  Example: >   > diff --git a/drivers/dma/dw/core.c b/drivers/dma/dw/core.c > index c2c0a61..f2a3d06 100644 > --- a/drivers/dma/dw/core.c > +++ b/drivers/dma/dw/core.c > @@ -1569,7 +1569,7 @@ int dw_dma_probe(struct dw_dma_chip *chip) >   (dwc_params >> DWC_PARAMS_MBLK_EN & > 0x1) == 0; >   } else { >   dwc->block_size = pdata->block_size; > - dwc->nollp = pdata->is_nollp; > + dwc->nollp = pdata->multi_block[i]; You missed the point. You assign positive value to negative variable. It's a bug. Have you tested this? How? In case of positive property you have to update DTS. By the way, I'm pretty sure that spare13xx boards has auto configuration enabled, though it has to be checked with vendor (I assume you may have fast response from them). >   } >   } >   -- Andy Shevchenko Intel Finland Oy