From nobody Mon Sep 16 19:15:34 2024 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 22A23153803; Tue, 23 Jul 2024 13:19:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1721740796; cv=none; b=deo2+5y2aPQ2VwBPwoGLKYRkconBe50CV5XQr7BLlUBmiaee/NuX/0h5T4UDIXralVoB1OuBIuMA4mnL4cd/cfxPAjnZKmYuEWXInN5I1IHmu7TRGpgM5Ar+bkQpO5A/sRYQHReezrEwN1B4W0jzqTI9Dzvp8BqjqICqb1IgR8g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1721740796; c=relaxed/simple; bh=Bll5H5v993IeqkWlydA+jqNxchMOMzxU2IgellDICXM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References; b=TJeNE8P4uWNavYOnvWDAyzF77npNrprXP3yaNctbLv5JUst7rkq3vZKNHlvMF48KHzTvnGIIwoFE9Dz7CUc/iuZxEHCOsSSUqzU7aayZPfPWeBd5Wo8UGQ0ZukopDUVTY0BFtOpbKiqi7kZsmZeYa+2BFobSNXxhBXRmg7+pvZ8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=qualcomm.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=I+YoUEWt; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="I+YoUEWt" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46NBDTIf032520; Tue, 23 Jul 2024 13:19:40 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h= cc:date:from:in-reply-to:message-id:references:subject:to; s= qcppdkim1; bh=nhcAXTxzaTGesQYfMlJa5VIwcFFT8n2SiRW4vqD7rzo=; b=I+ YoUEWtaZnWmvFaW5t6JEpz/iCSWaGw+c8qdMKbfAXWPpdwC3Fbzgk/0lSnEUyEGd U7FeyEC4cFvgPRCjfWcKH9XHUTqJ9AlCfedjPEZEyQQiUg2YTvtG1Ji/UFBhbChj LVr8FVf/xUhK5dRaB0JM/dyHk+/6Js1f2aJOZzoxzx58wUzk5bPINtlX79qAUz24 NtrithlsYiDgx3AGbrdaGGltpwFFS1QTeHJGP11OSMUQlPVHPNvA+UKyRx6xp7Tc a+HoOA+/UugQ/JlO2Uprmmg+LA8HGsR4S8FA2IWsfcL2s1BWG+pcy7F9Cf2aqssA nFjs+2hq0b2IKZX2M8wQ== Received: from apblrppmta01.qualcomm.com (blr-bdr-fw-01_GlobalNAT_AllZones-Outside.qualcomm.com [103.229.18.19]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 40g487et9g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 23 Jul 2024 13:19:39 +0000 (GMT) Received: from pps.filterd (APBLRPPMTA01.qualcomm.com [127.0.0.1]) by APBLRPPMTA01.qualcomm.com (8.17.1.19/8.17.1.19) with ESMTP id 46NDJapK019993; Tue, 23 Jul 2024 13:19:36 GMT Received: from pps.reinject (localhost [127.0.0.1]) by APBLRPPMTA01.qualcomm.com (PPS) with ESMTP id 40g6akuxrb-1; Tue, 23 Jul 2024 13:19:36 +0000 Received: from APBLRPPMTA01.qualcomm.com (APBLRPPMTA01.qualcomm.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 46NDJaIr019986; Tue, 23 Jul 2024 13:19:36 GMT Received: from hu-sgudaval-hyd.qualcomm.com (hu-msarkar-hyd.qualcomm.com [10.213.111.194]) by APBLRPPMTA01.qualcomm.com (PPS) with ESMTP id 46NDJacA019985; Tue, 23 Jul 2024 13:19:36 +0000 Received: by hu-sgudaval-hyd.qualcomm.com (Postfix, from userid 3891782) id 8811B1548; Tue, 23 Jul 2024 18:49:35 +0530 (+0530) From: Mrinmay Sarkar To: manivannan.sadhasivam@linaro.org, fancer.lancer@gmail.com, vkoul@kernel.org Cc: quic_shazhuss@quicinc.com, quic_nitegupt@quicinc.com, quic_ramkri@quicinc.com, quic_nayiluri@quicinc.com, quic_krichai@quicinc.com, quic_vbadigan@quicinc.com, stable@vger.kernel.org, Mrinmay Sarkar , Cai Huoqing , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 1/2] dmaengine: dw-edma: Fix unmasking STOP and ABORT interrupts for HDMA Date: Tue, 23 Jul 2024 18:49:31 +0530 Message-Id: <1721740773-23181-2-git-send-email-quic_msarkar@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1721740773-23181-1-git-send-email-quic_msarkar@quicinc.com> References: <1721740773-23181-1-git-send-email-quic_msarkar@quicinc.com> X-QCInternal: smtphost X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: ZtTiKoSCCPcNDDfHVdXEbEjUUCZ1bJvE X-Proofpoint-GUID: ZtTiKoSCCPcNDDfHVdXEbEjUUCZ1bJvE X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-23_02,2024-07-23_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 spamscore=0 suspectscore=0 phishscore=0 priorityscore=1501 mlxlogscore=581 malwarescore=0 adultscore=0 impostorscore=0 clxscore=1015 lowpriorityscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2407110000 definitions=main-2407230095 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" The current logic is enabling both STOP_INT_MASK and ABORT_INT_MASK bit. This is apparently masking those particular interrupts rather than unmasking the same. If the interrupts are masked, they would never get triggered. So fix the issue by unmasking the STOP and ABORT interrupts properly. Fixes: e74c39573d35 ("dmaengine: dw-edma: Add support for native HDMA") cc: stable@vger.kernel.org Signed-off-by: Mrinmay Sarkar Reviewed-by: Manivannan Sadhasivam --- drivers/dma/dw-edma/dw-hdma-v0-core.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/dma/dw-edma/dw-hdma-v0-core.c b/drivers/dma/dw-edma/dw= -hdma-v0-core.c index 10e8f07..fa89b3a 100644 --- a/drivers/dma/dw-edma/dw-hdma-v0-core.c +++ b/drivers/dma/dw-edma/dw-hdma-v0-core.c @@ -247,10 +247,11 @@ static void dw_hdma_v0_core_start(struct dw_edma_chun= k *chunk, bool first) if (first) { /* Enable engine */ SET_CH_32(dw, chan->dir, chan->id, ch_en, BIT(0)); - /* Interrupt enable&unmask - done, abort */ - tmp =3D GET_CH_32(dw, chan->dir, chan->id, int_setup) | - HDMA_V0_STOP_INT_MASK | HDMA_V0_ABORT_INT_MASK | - HDMA_V0_LOCAL_STOP_INT_EN | HDMA_V0_LOCAL_ABORT_INT_EN; + /* Interrupt unmask - STOP, ABORT */ + tmp =3D GET_CH_32(dw, chan->dir, chan->id, int_setup) & + ~HDMA_V0_STOP_INT_MASK & ~HDMA_V0_ABORT_INT_MASK; + /* Interrupt enable - STOP, ABORT */ + tmp |=3D HDMA_V0_LOCAL_STOP_INT_EN | HDMA_V0_LOCAL_ABORT_INT_EN; if (!(dw->chip->flags & DW_EDMA_CHIP_LOCAL)) tmp |=3D HDMA_V0_REMOTE_STOP_INT_EN | HDMA_V0_REMOTE_ABORT_INT_EN; SET_CH_32(dw, chan->dir, chan->id, int_setup, tmp); --=20 2.7.4 From nobody Mon Sep 16 19:15:34 2024 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 22994153800; Tue, 23 Jul 2024 13:19:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1721740795; cv=none; b=GOQWBiF8B+Hxa6g/fzAGBXiTrDH/CukHpnOADt/k0+MqUgByFA9doTvzeBNyDA2LmwHW5MEFjcFdYBm1eX9eKkYQdun6NOD5bpeav8SgfkgtIXY60sTDBG9iV8Ep7VGV1pUmJrxUanF3EFBy2S8wuPnAMPCvdPbYmZi7oZjFYdU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1721740795; c=relaxed/simple; bh=IMr7YJGbOdix0fpteQaCKeaWLy/Ja8V7oLgGw6GKR8o=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References; b=XyxoPYnrBKMkUO7UpcJtRZ938kraqVlO2bRw4fZiyQ8dvAC9jsHCKQ4inpOkBlgEGX1gUbh4Q2iAf8fb1U0jeL+3Y14V8/8wYTdpQeI61eJHd6EMIaFc9Ko7oJr2RuxDBTvEW2gLS5JSXAk9+1KeykZQa6evpR27WaTp/vl4MaY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=qualcomm.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=dqvnJXTI; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="dqvnJXTI" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46NBXL9C010043; Tue, 23 Jul 2024 13:19:41 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h= cc:date:from:in-reply-to:message-id:references:subject:to; s= qcppdkim1; bh=UJ1TFD8YzJbPs1iEy88g5SWQ2FliNIBdUSwHTKmzLIw=; b=dq vnJXTI1ZYDtRvunhlhCB+nrbLLt+X0cK5q3bgTlLXYqhMpNLFW8hrwk6Z+1/UEPY yw8nMEughXmKg68I10fnrBMbjSWUaChJ5cm3NqtB6yZsmkMQghaQVgB7IGymhNSw d5qPXXOg06w3s/716a5RWz0F5Sr3jfOvjNCGCLs088COibLuguVbCcEhDSdrLP1J v2oWVPlCh7C5hXRPITbwUdJhKQgxSIKgwiE9KZxBXEyZZsbvZkSvRoLKsk9hyU7n COtgeF/u+NMVBWBe5M+LQ99qaugz+PzpSpAKQ5vwXcZyjWIB9X8Fcc/Br/u1VOdy tiyX18UkYMtKxlCtf29Q== Received: from apblrppmta01.qualcomm.com (blr-bdr-fw-01_GlobalNAT_AllZones-Outside.qualcomm.com [103.229.18.19]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 40gurtnhjg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 23 Jul 2024 13:19:40 +0000 (GMT) Received: from pps.filterd (APBLRPPMTA01.qualcomm.com [127.0.0.1]) by APBLRPPMTA01.qualcomm.com (8.17.1.19/8.17.1.19) with ESMTP id 46NDJapL019993; Tue, 23 Jul 2024 13:19:37 GMT Received: from pps.reinject (localhost [127.0.0.1]) by APBLRPPMTA01.qualcomm.com (PPS) with ESMTP id 40g6akuxrf-1; Tue, 23 Jul 2024 13:19:37 +0000 Received: from APBLRPPMTA01.qualcomm.com (APBLRPPMTA01.qualcomm.com [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 46NDJaIt019986; Tue, 23 Jul 2024 13:19:37 GMT Received: from hu-sgudaval-hyd.qualcomm.com (hu-msarkar-hyd.qualcomm.com [10.213.111.194]) by APBLRPPMTA01.qualcomm.com (PPS) with ESMTP id 46NDJbGm019996; Tue, 23 Jul 2024 13:19:37 +0000 Received: by hu-sgudaval-hyd.qualcomm.com (Postfix, from userid 3891782) id 9DD331534; Tue, 23 Jul 2024 18:49:36 +0530 (+0530) From: Mrinmay Sarkar To: manivannan.sadhasivam@linaro.org, fancer.lancer@gmail.com, vkoul@kernel.org Cc: quic_shazhuss@quicinc.com, quic_nitegupt@quicinc.com, quic_ramkri@quicinc.com, quic_nayiluri@quicinc.com, quic_krichai@quicinc.com, quic_vbadigan@quicinc.com, stable@vger.kernel.org, Mrinmay Sarkar , Cai Huoqing , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 2/2] dmaengine: dw-edma: Do not enable watermark interrupts for HDMA Date: Tue, 23 Jul 2024 18:49:32 +0530 Message-Id: <1721740773-23181-3-git-send-email-quic_msarkar@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1721740773-23181-1-git-send-email-quic_msarkar@quicinc.com> References: <1721740773-23181-1-git-send-email-quic_msarkar@quicinc.com> X-QCInternal: smtphost X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: z8rzuDKD3ZBDn_skkJwZ2cxvce5QkZL_ X-Proofpoint-ORIG-GUID: z8rzuDKD3ZBDn_skkJwZ2cxvce5QkZL_ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-23_02,2024-07-23_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 mlxscore=0 phishscore=0 adultscore=0 priorityscore=1501 suspectscore=0 lowpriorityscore=0 bulkscore=0 spamscore=0 impostorscore=0 mlxlogscore=442 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2407110000 definitions=main-2407230095 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" DW_HDMA_V0_LIE and DW_HDMA_V0_RIE are initialized as BIT(3) and BIT(4) respectively in dw_hdma_control enum. But as per HDMA register these bits are corresponds to LWIE and RWIE bit i.e local watermark interrupt enable and remote watermarek interrupt enable. In linked list mode LWIE and RWIE bits only enable the local and remote watermark interrupt. Since the watermark interrupts are not used but enabled, this leads to spurious interrupts getting generated. So remove the code that enables them to avoid generating spurious watermark interrupts. And also rename DW_HDMA_V0_LIE to DW_HDMA_V0_LWIE and DW_HDMA_V0_RIE to DW_HDMA_V0_RWIE as there is no LIE and RIE bits in HDMA and those bits are corresponds to LWIE and RWIE bits. Fixes: e74c39573d35 ("dmaengine: dw-edma: Add support for native HDMA") cc: stable@vger.kernel.org Signed-off-by: Mrinmay Sarkar Reviewed-by: Manivannan Sadhasivam Reviewed-by: Serge Semin --- drivers/dma/dw-edma/dw-hdma-v0-core.c | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/drivers/dma/dw-edma/dw-hdma-v0-core.c b/drivers/dma/dw-edma/dw= -hdma-v0-core.c index fa89b3a..9ad2e28 100644 --- a/drivers/dma/dw-edma/dw-hdma-v0-core.c +++ b/drivers/dma/dw-edma/dw-hdma-v0-core.c @@ -17,8 +17,8 @@ enum dw_hdma_control { DW_HDMA_V0_CB =3D BIT(0), DW_HDMA_V0_TCB =3D BIT(1), DW_HDMA_V0_LLP =3D BIT(2), - DW_HDMA_V0_LIE =3D BIT(3), - DW_HDMA_V0_RIE =3D BIT(4), + DW_HDMA_V0_LWIE =3D BIT(3), + DW_HDMA_V0_RWIE =3D BIT(4), DW_HDMA_V0_CCS =3D BIT(8), DW_HDMA_V0_LLE =3D BIT(9), }; @@ -195,25 +195,14 @@ static void dw_hdma_v0_write_ll_link(struct dw_edma_c= hunk *chunk, static void dw_hdma_v0_core_write_chunk(struct dw_edma_chunk *chunk) { struct dw_edma_burst *child; - struct dw_edma_chan *chan =3D chunk->chan; u32 control =3D 0, i =3D 0; - int j; =20 if (chunk->cb) control =3D DW_HDMA_V0_CB; =20 - j =3D chunk->bursts_alloc; - list_for_each_entry(child, &chunk->burst->list, list) { - j--; - if (!j) { - control |=3D DW_HDMA_V0_LIE; - if (!(chan->dw->chip->flags & DW_EDMA_CHIP_LOCAL)) - control |=3D DW_HDMA_V0_RIE; - } - + list_for_each_entry(child, &chunk->burst->list, list) dw_hdma_v0_write_ll_data(chunk, i++, control, child->sz, child->sar, child->dar); - } =20 control =3D DW_HDMA_V0_LLP | DW_HDMA_V0_TCB; if (!chunk->cb) --=20 2.7.4