Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp1107621iog; Sat, 25 Jun 2022 00:45:49 -0700 (PDT) X-Google-Smtp-Source: AGRyM1t8aWVnVJ6a037y9THS5kbCO5Kb8u5h/NRp8z3X9DMKGYdnl6rh1SIFp4yzWY/nswrt9PLZ X-Received: by 2002:a17:902:a9c7:b0:168:ec21:2e25 with SMTP id b7-20020a170902a9c700b00168ec212e25mr3151351plr.24.1656143149684; Sat, 25 Jun 2022 00:45:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1656143149; cv=none; d=google.com; s=arc-20160816; b=VWuEYYXtatcDonx6d19fc7JsHY95MgVCws1BCp6Nu5YBsxkdvzOo0y+Cum2pq7I7U6 SdIOj/8fIxHOpynVpGrabn+6iYz69XtSe13V+NgAEXHwDXbpn+wdu7GAYVTgCpx2E8kR G3dU5bX7ds7mLSqfw8VfOS8VagGZWiFYfZ+WlDVXz2tYJtSJ5wRDZ/XgWIEh5AntwNca 6H4FG1Vezin98IcpLSwUruzuFEQgSUMtwdF1oZDD0JtvefCMkWJ3dakTyszhlYGTwkq9 j2cuNfmNbLMc1U3mL3au0NVgaw5mDYkT2DELucuG7gJs0wCynfL/J2Y6iu7MVPGgoMZR kMEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=8JJmY8+FBfu1TFL8FPmOyGnAS+KDRTL6FuOhlgZ+Bg8=; b=LrsdjVc2C9ULHZJSzmUrXDiByMCwOfH9JXDdOoweIGdDAk99sSPh+Tuf0jh0TglV6h oA37mHC2rnm8OOJz8oBnm8o95aKF5j7FHGFjVr8rQPiu8Svs2rsYaVsA2fxmSrkia/Sp VeOFf16vYcCQCVjqFU7RiB06mFz22tr01UGTBRgcwB3XCwfqbucPxChAovAwGKhLWsKT FrLq5fAIgP2nEE1baTPP7ZG+9K3GwXUKe24ZkzIzJpUPNfgzOAEr0fLxvSDD3tMGPATZ zfivSbD797TVK0kb9z8Y/0qqvXosnQsOF8KwQAa6BdnBLpsKGxlKszeyFAGGOT7v03VS dtoQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z4-20020a17090a66c400b001ec9d364ec6si6548223pjl.50.2022.06.25.00.45.37; Sat, 25 Jun 2022 00:45:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232140AbiFYHo5 (ORCPT + 99 others); Sat, 25 Jun 2022 03:44:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54614 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229593AbiFYHoz (ORCPT ); Sat, 25 Jun 2022 03:44:55 -0400 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 03BBC47380; Sat, 25 Jun 2022 00:44:53 -0700 (PDT) Received: from dggemv703-chm.china.huawei.com (unknown [172.30.72.56]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4LVQw66lnYzkWpk; Sat, 25 Jun 2022 15:43:34 +0800 (CST) Received: from kwepemm600007.china.huawei.com (7.193.23.208) by dggemv703-chm.china.huawei.com (10.3.19.46) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Sat, 25 Jun 2022 15:44:50 +0800 Received: from localhost.localdomain (10.67.165.2) by kwepemm600007.china.huawei.com (7.193.23.208) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Sat, 25 Jun 2022 15:44:50 +0800 From: Jie Hai To: , CC: , Subject: [PATCH 2/8] dmaengine: hisilicon: Fix CQ head update Date: Sat, 25 Jun 2022 15:44:16 +0800 Message-ID: <20220625074422.3479591-3-haijie1@huawei.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20220625074422.3479591-1-haijie1@huawei.com> References: <20220625074422.3479591-1-haijie1@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [10.67.165.2] X-ClientProxiedBy: dggems701-chm.china.huawei.com (10.3.19.178) To kwepemm600007.china.huawei.com (7.193.23.208) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org After completion of data transfer of one or multiple descriptors, the completion status and the current head pointer to submission queue are written into the CQ and interrupt can be generated to inform the software. In interrupt process CQ is read and cq_head is updated. hisi_dma_irq updates cq_head only when the completion status is success. When an abnormal interrupt reports, cq_head will not update which will cause subsequent interrupt processes read the error CQ and never report the correct status. This patch updates cq_head whenever CQ is accessed. Fixes: e9f08b65250d ("dmaengine: hisilicon: Add Kunpeng DMA engine support") Signed-off-by: Jie Hai --- drivers/dma/hisi_dma.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/dma/hisi_dma.c b/drivers/dma/hisi_dma.c index 98bc488893cc..0a0f8a4d168a 100644 --- a/drivers/dma/hisi_dma.c +++ b/drivers/dma/hisi_dma.c @@ -436,12 +436,11 @@ static irqreturn_t hisi_dma_irq(int irq, void *data) desc = chan->desc; cqe = chan->cq + chan->cq_head; if (desc) { + chan->cq_head = (chan->cq_head + 1) % + hdma_dev->chan_depth; + hisi_dma_chan_write(q_base, HISI_DMA_Q_CQ_HEAD_PTR, + chan->qp_num, chan->cq_head); if (FIELD_GET(STATUS_MASK, cqe->w0) == STATUS_SUCC) { - chan->cq_head = (chan->cq_head + 1) % - hdma_dev->chan_depth; - hisi_dma_chan_write(hdma_dev->base, - HISI_DMA_CQ_HEAD_PTR, chan->qp_num, - chan->cq_head); vchan_cookie_complete(&desc->vd); } else { dev_err(&hdma_dev->pdev->dev, "task error!\n"); -- 2.33.0