From patchwork Thu Nov 17 12:16:49 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sanchayan X-Patchwork-Id: 9435167 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 7311A60469 for ; Thu, 17 Nov 2016 18:48:22 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 66C3A294A9 for ; Thu, 17 Nov 2016 18:48:22 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5AD1429697; Thu, 17 Nov 2016 18:48:22 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 003D1294A9 for ; Thu, 17 Nov 2016 18:48:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753449AbcKQSsV (ORCPT ); Thu, 17 Nov 2016 13:48:21 -0500 Received: from mail-pg0-f67.google.com ([74.125.83.67]:36258 "EHLO mail-pg0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752672AbcKQSsU (ORCPT ); Thu, 17 Nov 2016 13:48:20 -0500 Received: by mail-pg0-f67.google.com with SMTP id x23so18241215pgx.3; Thu, 17 Nov 2016 10:48:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=y66ygaZm7/2ZgBplyDw6vdX+PVCJcnCidYee96bASGo=; b=MqH8oLKvxvOruNtEYK8P+/o7tDCdYBYBDCinCN0Jm6hvP364qupbyNWCz3FEc4egRT fvkdvBBYOFMFBnYwSFdoVRX+L+KKS/6Vg2DuIcrKuvAyA1ZqXSogUzioN93LdP9BIeMX F/MYzw2BcjcZ4KyobQs95cntwzgzZrz9SBG21ZB76p+KKeElm8lsshAbo5Lh000RgJR1 InK26b79ARewIbvXUYSWYmDDCuzYRzumnrg1muaFhFIpc1sQLchDHrpjkR4jxKho1PMv +yiUb0tBfhb+69RsHfxoK5S50OBxFQ/e+wDEe2xbDtQFddrVqRYzNTXelTm+4TR6Qn4x UbBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=y66ygaZm7/2ZgBplyDw6vdX+PVCJcnCidYee96bASGo=; b=A1GChQcm6vh1O3urdIQNIZe2V9AU9wx0Ew89a7EE48FgTXvk/h167eT+53uFOOdnef qF9QeQTR7WzU1/tRidYaOLJl3/q55w7Qo+2HOvH8XEnyfMv+oBDyKSKKVhEpDi2ndJKc Y4RqUMquiD+Jut0UVmxCab5P/kvLZ+pBiaP3/nzuY1/QS6Tr5MCPuanH+Gy/mcQjuQi5 Hq1B6apG+cflkZRKHWOaEHlSKNXJgdgzMzWefNuK5HdSfwB/h5/Igzw6f7WboWeOrNhv P1M0cUAq8OllFbcxKCXTGHU/VWrM4fhAVmEHmYIdXTxS669Vy2N22B/YzgmE0Tr9wgaT Eqwg== X-Gm-Message-State: ABUngve3rWjOJf4iREybeyVL9KpkdUDwMi2wcgzUddI/Z+0rhzojobmYuZ9QM5b/IE8KYw== X-Received: by 10.99.219.21 with SMTP id e21mr7077957pgg.136.1479385554832; Thu, 17 Nov 2016 04:25:54 -0800 (PST) Received: from localhost ([115.115.243.34]) by smtp.gmail.com with ESMTPSA id u1sm7147272pfb.96.2016.11.17.04.25.53 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 17 Nov 2016 04:25:54 -0800 (PST) From: Sanchayan Maity To: broonie@kernel.org Cc: stefan@agner.ch, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-spi@vger.kernel.org, Sanchayan Maity Subject: [PATCH 2/4] spi: spi-fsl-dspi: Fix incorrect DMA setup Date: Thu, 17 Nov 2016 17:46:49 +0530 Message-Id: X-Mailer: git-send-email 2.10.2 In-Reply-To: References: <20161111122036.fubv7b4jc5vkdxhc@sirena.org.uk> In-Reply-To: References: Sender: linux-spi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-spi@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Currently dmaengine_prep_slave_single was being called with length set to the complete DMA buffer size. This resulted in unwanted bytes being transferred to the SPI register leading to clock and MOSI lines having unwanted data even after chip select got deasserted and the required bytes having been transferred. Signed-off-by: Sanchayan Maity --- drivers/spi/spi-fsl-dspi.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/spi/spi-fsl-dspi.c b/drivers/spi/spi-fsl-dspi.c index b1ee1f5..aee8c88 100644 --- a/drivers/spi/spi-fsl-dspi.c +++ b/drivers/spi/spi-fsl-dspi.c @@ -265,7 +265,10 @@ static int dspi_next_xfer_dma_submit(struct fsl_dspi *dspi) dma->tx_desc = dmaengine_prep_slave_single(dma->chan_tx, dma->tx_dma_phys, - DSPI_DMA_BUFSIZE, DMA_MEM_TO_DEV, + dma->curr_xfer_len * + DMA_SLAVE_BUSWIDTH_4_BYTES / + (tx_word ? 2 : 1), + DMA_MEM_TO_DEV, DMA_PREP_INTERRUPT | DMA_CTRL_ACK); if (!dma->tx_desc) { dev_err(dev, "Not able to get desc for DMA xfer\n"); @@ -281,7 +284,10 @@ static int dspi_next_xfer_dma_submit(struct fsl_dspi *dspi) dma->rx_desc = dmaengine_prep_slave_single(dma->chan_rx, dma->rx_dma_phys, - DSPI_DMA_BUFSIZE, DMA_DEV_TO_MEM, + dma->curr_xfer_len * + DMA_SLAVE_BUSWIDTH_4_BYTES / + (tx_word ? 2 : 1), + DMA_DEV_TO_MEM, DMA_PREP_INTERRUPT | DMA_CTRL_ACK); if (!dma->rx_desc) { dev_err(dev, "Not able to get desc for DMA xfer\n");