Received: by 2002:a25:b323:0:0:0:0:0 with SMTP id l35csp968056ybj; Fri, 20 Sep 2019 02:58:53 -0700 (PDT) X-Google-Smtp-Source: APXvYqxb5UgljR8BbArKTBvG/83cFfgkP3/ryep9GctU6O4yiqhYdi0oFDhJk20Em4TNMHFokXFE X-Received: by 2002:a05:6402:1688:: with SMTP id a8mr11813045edv.225.1568973533290; Fri, 20 Sep 2019 02:58:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1568973533; cv=none; d=google.com; s=arc-20160816; b=RiGgsdbKv3EIojHPZu5KdeWsvRxtv5d7cbnXiVLy1NHFTlG3vS6uRW0oUKRsB4c1wJ WcjSuGoaE9EVwm4kH+uCwmnsCVAMoMkHJrV6BmWXbWf/iHfxd/Vl5fBtbvqo3ZKkIahU w0GT53oc0K9PcrBGJhwnTRfUyPaKboKAwPQHCczN43QIHHUUDiaP+Q0GFnmfcIEK/l1r tMDqfQptjflZW6gOFuRhdXieNbTr3uRYtfPLZH74UKBiEUF3YvjGu5pmmQTwoqdb+vHF dLDahwILOgvqsCM02qwoCNta2EXGuOrZVNrlGUZdVs02fPOuIBketuLv31hwCrBNY2hP /FGw== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Pcn+GOKTNWrFwjXk7v1m0P6r9iL/hVUDzvnxgWCwqvo=; b=t76RqCExPfDeKdvyoLRnF73Z/+oTf95PCLYFoWjhPKDKqJ8d+KtT2em4rEm1AC6FBg XFb5tsOsQ5r+QJPhst2I2CFB2sivgaacsIRyatUEBGfp1i1NuBLJrkeWwdGsVWgEvTwj pA5UOIriGFJv6rxHHh7rIvUHB9CmlFpEeGUtZaVz2WAAs4LmVg3THHlE9qyC4lt9oVj7 iaRsA+ApiOvbIJlIhPNmEr9olq1oNd/su7P1xdFeSEJ9Sg8Vc23yrmfGkRRPWuVI9lVw 0vviBSDb+m0dUW2AULl4hs4GUcrEO1tt1nyl9r1npn/9Ryt7H0SsUKo3DwFD2Na3dE3Z IvMg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=TTvvfKOZ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q16si794537ejm.267.2019.09.20.02.58.26; Fri, 20 Sep 2019 02:58:53 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=TTvvfKOZ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389706AbfISWLI (ORCPT + 99 others); Thu, 19 Sep 2019 18:11:08 -0400 Received: from mail.kernel.org ([198.145.29.99]:49660 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2405830AbfISWLE (ORCPT ); Thu, 19 Sep 2019 18:11:04 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 082EB21920; Thu, 19 Sep 2019 22:11:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1568931063; bh=sjobayxK8BQV7kAzsBZ5thsoTl6H6cbirtCozGkDE30=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TTvvfKOZ0ylUnD5G4TN/8oKr3zVDpD8/Zj9KjRAXkIp+b/V3SjWMAkCbUtGhQ3UCD leV2U38QxZry5l776hMM/Mpw7IciJvTOO4f5viBJ2HturQHrg7gZgEpVYwLOqcRqyl UiQZLrH535tYKWRQ3voW5XPs6k2ZT1rIE3SxAilE= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Baolin Wang , Vinod Koul , Sasha Levin Subject: [PATCH 5.2 115/124] dmaengine: sprd: Fix the DMA link-list configuration Date: Fri, 20 Sep 2019 00:03:23 +0200 Message-Id: <20190919214823.367143978@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20190919214819.198419517@linuxfoundation.org> References: <20190919214819.198419517@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Baolin Wang [ Upstream commit 689379c2f383b1fdfdff03e84cf659daf62f2088 ] For the Spreadtrum DMA link-list mode, when the DMA engine got a slave hardware request, which will trigger the DMA engine to load the DMA configuration from the link-list memory automatically. But before the slave hardware request, the slave will get an incorrect residue due to the first node used to trigger the link-list was configured as the last source address and destination address. Thus we should make sure the first node was configured the start source address and destination address, which can fix this issue. Fixes: 4ac695464763 ("dmaengine: sprd: Support DMA link-list mode") Signed-off-by: Baolin Wang Link: https://lore.kernel.org/r/77868edb7aff9d5cb12ac3af8827ef2e244441a6.1567150471.git.baolin.wang@linaro.org Signed-off-by: Vinod Koul Signed-off-by: Sasha Levin --- drivers/dma/sprd-dma.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/dma/sprd-dma.c b/drivers/dma/sprd-dma.c index baac476c86224..525dc7338fe3b 100644 --- a/drivers/dma/sprd-dma.c +++ b/drivers/dma/sprd-dma.c @@ -908,6 +908,7 @@ sprd_dma_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl, struct sprd_dma_chn *schan = to_sprd_dma_chan(chan); struct dma_slave_config *slave_cfg = &schan->slave_cfg; dma_addr_t src = 0, dst = 0; + dma_addr_t start_src = 0, start_dst = 0; struct sprd_dma_desc *sdesc; struct scatterlist *sg; u32 len = 0; @@ -954,6 +955,11 @@ sprd_dma_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl, dst = sg_dma_address(sg); } + if (!i) { + start_src = src; + start_dst = dst; + } + /* * The link-list mode needs at least 2 link-list * configurations. If there is only one sg, it doesn't @@ -970,8 +976,8 @@ sprd_dma_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl, } } - ret = sprd_dma_fill_desc(chan, &sdesc->chn_hw, 0, 0, src, dst, len, - dir, flags, slave_cfg); + ret = sprd_dma_fill_desc(chan, &sdesc->chn_hw, 0, 0, start_src, + start_dst, len, dir, flags, slave_cfg); if (ret) { kfree(sdesc); return NULL; -- 2.20.1