From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [4/7] dmaengine: sprd: Set cur_desc as NULL when free or terminate one dma channel From: Baolin Wang Message-Id: <3a42dff7df19aa14d61b95f81ff22a7e16939ecd.1538199697.git.baolin.wang@linaro.org> Date: Sat, 29 Sep 2018 13:49:02 +0800 To: dan.j.williams@intel.com, vkoul@kernel.org, eric.long@spreadtrum.com Cc: broonie@kernel.org, baolin.wang@linaro.org, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org List-ID: RnJvbTogRXJpYyBMb25nIDxlcmljLmxvbmdAc3ByZWFkdHJ1bS5jb20+CgpJdCB3aWxsIGJlIGZh aWxlZCB0byBzdGFydCBvbmUgbmV3IHRyYW5zZmVyIGlmIHRoZSBjaGFubmVsIHN0YXJ0ZWQgb25l Cm5vbmUgaW50ZXJydXB0IHRyYW5zZmVyIGJlZm9yZSwgc2luY2Ugd2Ugd2lsbCBvbmx5IHNldCB0 aGUgc2NoYW4tPmN1cl9kZXNjCmFzIE5VTEwgZGVwZW5kaW5nIG9uIHRoZSB0cmFuc2ZlciBpbnRl cnJ1cHQgbm93LiBUaHVzIHdlIHNob3VsZCBzZXQKc2NoYW4tPmN1cl9kZXNjIGFzIE5VTEwgd2hl biBmcmVlIG9yIHRlcm1pbmF0ZSBvbmUgZG1hIGNoYW5uZWwgdG8KYXZvaWQgdGhpcyBpc3N1ZS4K ClNpZ25lZC1vZmYtYnk6IEVyaWMgTG9uZyA8ZXJpYy5sb25nQHNwcmVhZHRydW0uY29tPgpTaWdu ZWQtb2ZmLWJ5OiBCYW9saW4gV2FuZyA8YmFvbGluLndhbmdAbGluYXJvLm9yZz4KLS0tCiBkcml2 ZXJzL2RtYS9zcHJkLWRtYS5jIHwgICAgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24o KykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS9zcHJkLWRtYS5jIGIvZHJpdmVycy9kbWEvc3By ZC1kbWEuYwppbmRleCBlNmE3NGRjLi4xYjM5NjYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2RtYS9z cHJkLWRtYS5jCisrKyBiL2RyaXZlcnMvZG1hL3NwcmQtZG1hLmMKQEAgLTQzOSw2ICs0MzksNyBA QCBzdGF0aWMgdm9pZCBzcHJkX2RtYV9zdG9wKHN0cnVjdCBzcHJkX2RtYV9jaG4gKnNjaGFuKQog CXNwcmRfZG1hX3N0b3BfYW5kX2Rpc2FibGUoc2NoYW4pOwogCXNwcmRfZG1hX3Vuc2V0X3VpZChz Y2hhbik7CiAJc3ByZF9kbWFfY2xlYXJfaW50KHNjaGFuKTsKKwlzY2hhbi0+Y3VyX2Rlc2MgPSBO VUxMOwogfQogCiBzdGF0aWMgYm9vbCBzcHJkX2RtYV9jaGVja190cmFuc19kb25lKHN0cnVjdCBz cHJkX2RtYV9kZXNjICpzZGVzYywK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.9 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 68363C004D5 for ; Sat, 29 Sep 2018 05:50:16 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 22B7B20879 for ; Sat, 29 Sep 2018 05:50:16 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=linaro.org header.i=@linaro.org header.b="Qb2H0IiX" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 22B7B20879 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727581AbeI2MRS (ORCPT ); Sat, 29 Sep 2018 08:17:18 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:36550 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727422AbeI2MRQ (ORCPT ); Sat, 29 Sep 2018 08:17:16 -0400 Received: by mail-pf1-f194.google.com with SMTP id b7-v6so5679253pfo.3 for ; Fri, 28 Sep 2018 22:50:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=VKu6Lyuuq1HCg2vjK0SKqBKedEZKBAaQkFejaBLFPf0=; b=Qb2H0IiXPCuD8odQfq1Yamo/SKGFNg2b7kL6xEAWg3+elPiIo4YbrXHFPwc3cSSSfb q5M3wEb87m24TQLVuaaEphVnaC/QLNnL+kolsOklPoVk6MvA7pYqVwOf67gY4YrNAfoy rUtJiy++oR54JMpkDsSVi0K12BLUvfCetQB+I= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=VKu6Lyuuq1HCg2vjK0SKqBKedEZKBAaQkFejaBLFPf0=; b=ZWW/12uDNaNO6n2fZ14w3n54F3WfNUdegKb0QZdB4Nb1ZTr5VDVoV0Y6mHYyZsICV4 9vCOfYRWH5OB0HPtvM3HFVRcoU7nx1qtsQqnJc4W3fcCn9qyfsQbjcUlwbwRYWPjE3qu xvC8Ir6gsjHV/AFk6zc9HJqXRyVtFTB3cRWOrb88+qz/lI3UiO2Ywp/F04GM8t4kIlmb C3ejOiOEmT3KVbUEdFAkbVYct2pesoYuX8/pk0/YyK8SCBurxfDtMBgqPnMXIsq1YFvM 6YKP+e7O7OAgN08YNGIijdv+oPmITSuoi5/FnjjtOxNtUaS8uRsZly97qWTD6hu+Y+vc 4QxQ== X-Gm-Message-State: ABuFfoj6cD5gRZ9NGgJqweSgxfbkxxwQz9dPPYCPQf6fst/RWZ2lE+tc eXel2ULePgY9wWzGSc2HreP06w== X-Google-Smtp-Source: ACcGV62p0TnV0Ef3aU3Sb3L6W68nW4G+RXzxp5MCaDUMdkRK8A6Xn5DbjYLFWZ99MOi5QAf51kfc3Q== X-Received: by 2002:a62:c42:: with SMTP id u63-v6mr1737797pfi.43.1538200212273; Fri, 28 Sep 2018 22:50:12 -0700 (PDT) Received: from baolinwangubtpc.spreadtrum.com ([117.18.48.102]) by smtp.gmail.com with ESMTPSA id i80-v6sm11118049pfi.87.2018.09.28.22.50.09 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 28 Sep 2018 22:50:11 -0700 (PDT) From: Baolin Wang To: dan.j.williams@intel.com, vkoul@kernel.org, eric.long@spreadtrum.com Cc: broonie@kernel.org, baolin.wang@linaro.org, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/7] dmaengine: sprd: Set cur_desc as NULL when free or terminate one dma channel Date: Sat, 29 Sep 2018 13:49:02 +0800 Message-Id: <3a42dff7df19aa14d61b95f81ff22a7e16939ecd.1538199697.git.baolin.wang@linaro.org> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: References: In-Reply-To: References: Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Eric Long It will be failed to start one new transfer if the channel started one none interrupt transfer before, since we will only set the schan->cur_desc as NULL depending on the transfer interrupt now. Thus we should set schan->cur_desc as NULL when free or terminate one dma channel to avoid this issue. Signed-off-by: Eric Long Signed-off-by: Baolin Wang --- drivers/dma/sprd-dma.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/dma/sprd-dma.c b/drivers/dma/sprd-dma.c index e6a74dc..1b39661 100644 --- a/drivers/dma/sprd-dma.c +++ b/drivers/dma/sprd-dma.c @@ -439,6 +439,7 @@ static void sprd_dma_stop(struct sprd_dma_chn *schan) sprd_dma_stop_and_disable(schan); sprd_dma_unset_uid(schan); sprd_dma_clear_int(schan); + schan->cur_desc = NULL; } static bool sprd_dma_check_trans_done(struct sprd_dma_desc *sdesc, -- 1.7.9.5