Received: by 2002:a25:ef43:0:0:0:0:0 with SMTP id w3csp214149ybm; Thu, 28 May 2020 21:03:51 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyNO0he4HeCLQOnPxOUjhC9ZGhXF9bOwwBIwT2mwjRi8/A4rlepIsYXHZgKihhNmvDLOZ0W X-Received: by 2002:aa7:d7ca:: with SMTP id e10mr5010929eds.45.1590725030857; Thu, 28 May 2020 21:03:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1590725030; cv=none; d=google.com; s=arc-20160816; b=eyxVrTynfPyhKJb4zwwbB3gZZc//BbVEDfiBe1UE1K4OVaE7rLhWjHWwOhyC/nJVNg 14kyd2vIdPayMZEBMzWWBGpeKpim4TswWBAIILq0qS7PuR6nvgYJxLkgYpx5vmQnZdSo ZD31va606L/3kIlP0eix9ftD+BxVhwTy29BAvoqMh6aHoC5ATbfch17C+27f/ObYpt5x ecjZwPy/PHCFpQIdLiL/4pHx6ofUDgSlXuCC7bDNNXEA6f23pEQ5GXpYOyLfrOuSpM7G PL8HmTA4FKaxuuXuNfX+gvTYoF8K/C/gN4zUYe6hZn41RP2GFS8wFWqIJJSVLi5BUyZU M2mA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=MHcmfzRQ3nJ9ZJ1kjCEkWjEuPhTQMa6AhHcR5Llb8KU=; b=sIIxryJvsl6MvMmgypgHYcTL4pjuEHjswI1i7RgWV9S6KGOKatK7Ns04MkzSI2N3Vj /GNL3RvJxn75t+LvMXhRnRQiWBieesx/pkaxDwJ0sum4nOqFL8HTsfbu3F3qCuldtxA7 F+7dCgGQikUI22sVfFq17hvLR1ZBPLw1NaPfE5oRfGmHUikeodsAy1TQXt/gdqQCyEOc F9gFaGqAR7fAXSo6PBvi5l5JRrOfHdvhAneDaDyok0mpjS+axF0BJyBzbj1YV4EfGHqn 1POhiqhLNB6RaVtwgmkxT5dwgXXYZEMIZDaRyKRF8FtL7lhQZTZcEFz4kGIdrWYyRNLK Q1Qg== 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d6si4729964edo.493.2020.05.28.21.03.27; Thu, 28 May 2020 21:03:50 -0700 (PDT) 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389354AbgE2D7i (ORCPT + 99 others); Thu, 28 May 2020 23:59:38 -0400 Received: from mail.baikalelectronics.com ([87.245.175.226]:45330 "EHLO mail.baikalelectronics.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388513AbgE2D7f (ORCPT ); Thu, 28 May 2020 23:59:35 -0400 Received: from localhost (unknown [127.0.0.1]) by mail.baikalelectronics.ru (Postfix) with ESMTP id 5E3B78030807; Fri, 29 May 2020 03:59:32 +0000 (UTC) X-Virus-Scanned: amavisd-new at baikalelectronics.ru Received: from mail.baikalelectronics.ru ([127.0.0.1]) by localhost (mail.baikalelectronics.ru [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id IZwmH6hUhcpO; Fri, 29 May 2020 06:59:31 +0300 (MSK) From: Serge Semin To: Mark Brown CC: Serge Semin , Serge Semin , Georgy Vlasov , Ramil Zaripov , Alexey Malahov , Thomas Bogendoerfer , Arnd Bergmann , Andy Shevchenko , Feng Tang , Rob Herring , , , , Subject: [PATCH v5 02/16] spi: dw: Return any value retrieved from the dma_transfer callback Date: Fri, 29 May 2020 06:59:00 +0300 Message-ID: <20200529035915.20790-3-Sergey.Semin@baikalelectronics.ru> In-Reply-To: <20200529035915.20790-1-Sergey.Semin@baikalelectronics.ru> References: <20200529035915.20790-1-Sergey.Semin@baikalelectronics.ru> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-ClientProxiedBy: MAIL.baikal.int (192.168.51.25) To mail (192.168.51.25) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org DW APB SSI DMA may need to perform the synchronous operations. In that case the dma_transfer() callback will return 0 as a marker of the SPI transfer being finished so the SPI core can proceed with the SPI message trasnfers pumping procedure. This will be needed to fix the problem when DMA transactions are finished, but there is still data left in the SPI Tx/Rx buffers. But for now make dma_transfer to return 1 as the normal dw_spi_transfer_one() method. Signed-off-by: Serge Semin Cc: Georgy Vlasov Cc: Ramil Zaripov Cc: Alexey Malahov Cc: Thomas Bogendoerfer Cc: Arnd Bergmann Cc: Andy Shevchenko Cc: Feng Tang Cc: Rob Herring Cc: linux-mips@vger.kernel.org Cc: devicetree@vger.kernel.org --- drivers/spi/spi-dw-mid.c | 2 +- drivers/spi/spi-dw.c | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/spi/spi-dw-mid.c b/drivers/spi/spi-dw-mid.c index b1710132b7b2..7ff1acaa55f8 100644 --- a/drivers/spi/spi-dw-mid.c +++ b/drivers/spi/spi-dw-mid.c @@ -288,7 +288,7 @@ static int mid_spi_dma_transfer(struct dw_spi *dws, struct spi_transfer *xfer) dma_async_issue_pending(dws->txchan); } - return 0; + return 1; } static void mid_spi_dma_stop(struct dw_spi *dws) diff --git a/drivers/spi/spi-dw.c b/drivers/spi/spi-dw.c index 050cb2ea0812..6939e003e3e9 100644 --- a/drivers/spi/spi-dw.c +++ b/drivers/spi/spi-dw.c @@ -389,11 +389,8 @@ static int dw_spi_transfer_one(struct spi_controller *master, spi_enable_chip(dws, 1); - if (dws->dma_mapped) { - ret = dws->dma_ops->dma_transfer(dws, transfer); - if (ret < 0) - return ret; - } + if (dws->dma_mapped) + return dws->dma_ops->dma_transfer(dws, transfer); return 1; } -- 2.26.2