From nobody Fri Apr 3 11:12:47 2026 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9D3C636604A for ; Fri, 20 Feb 2026 19:44:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771616650; cv=none; b=CcLwz92CoRaHfccp6QVU/l9mQJJMyiEe5PULNmTKiedF7id+DPiGhMvgkKEIlFygXkGAuki6lss0G7vM6K61NzTURH4Nm4SCVWnej/0W/F337sbqmh9e/ZZiSYdbFndVSrWkevIyqJNzV9zA1FeJ09Kajvroritw9RTGNGeyzyo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771616650; c=relaxed/simple; bh=AnEa53opPbOu4dRIdrxYWqC5ToC/rveEHLt+0LxZ02U=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=AIHtRmXd4OaPJFt0xVgxM63zPl6s9WJVgkGTEgyai7+lWOh+1mXex1nHkwc/xgfEse9Ftd4njMskgjUjmgpllorQC3zJsgoDX2GjnEu0BsG+WiIPruGZbgxKrcQzvjZml6lzH/OVFPHO6i++494huw86cRTBM9+oL41e8GIyEWk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sifive.com; spf=pass smtp.mailfrom=sifive.com; dkim=pass (2048-bit key) header.d=sifive.com header.i=@sifive.com header.b=hJ9fXX1i; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sifive.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sifive.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sifive.com header.i=@sifive.com header.b="hJ9fXX1i" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-4837584120eso18154085e9.1 for ; Fri, 20 Feb 2026 11:44:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1771616648; x=1772221448; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=8dE91IsiM0t5/CAeP0M+B+4hbTqf1CMxbF14VFtvdJw=; b=hJ9fXX1iRGnPQsru5gZv46/wNpNBf66Yr4wnYWrqIbv+g+nuPmVdOo6sQFdQEYLpoA wopFd0SrBhmrs923HlcOwpqSXxTlai0mBR0GbJBRse4NdDasCVTQj5KvPJmOB/dMInAT UiIQNJK1Quc3KEQiRLjMssPDwL2OdXeSChEvKyIu4BTt+ei8lqdO6X5SkxP5M6AP5xbC H3D1x38w9f0V0lZNJn6j7QDLKNUupPzhQYqmyBgBL/ozdNH+oVhVX7dqGbTaLAx8g4TT vmmYVT40GkaQwdoEV694LW+Lv9lJ5uJVivc4JuRoo+5+R88VhBdKwQoSTTJWhDtVVGdj 7foA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771616648; x=1772221448; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=8dE91IsiM0t5/CAeP0M+B+4hbTqf1CMxbF14VFtvdJw=; b=Nx6Z7v9DJlMfepnrAFv7SUdl92ZwAIJwSdSAFuH48OBEaAqr3CRjwcK5XwQYfVWJ7T Aa9MwnscKeNdJNI4E9ImyJDZKGu78Uuh6UOo83ibp35TPTYhn4Xxpcgs4ODwQCRgII85 fUVQrpornymFViQsbSmNIjx3yweDamfiTrTGimCJWvjD7+uNqY0JsdyDYqjVw93y+BeO mEVW2ZBGqLOWCZjSgGfJsy3U4JQhUdK1E40mgmFaEFLVWtEW603efebbzGZxyqeVA73F nd6ycrqk/3plFi4ZWTN8F0U30hoR+Ch6+fpVoxklzhtKVzogNUGiE6lcb6xvuom1rFsp aIbg== X-Forwarded-Encrypted: i=1; AJvYcCVPxzcc2gWLbIBBfzYNfllqiRipMu0gWvxLkk1c9Whohghhjh7MoaHq+b87OIqv4yti8x+FFUsddgxyW30=@vger.kernel.org X-Gm-Message-State: AOJu0YytDVDL54ns8G/wmKxovIZCHxKQhmvV6mE3TBgeqy+cqcddF6Kf zUG5OihfrAnt4YQcU32khqdNd9EGuuflVXUFA8JXrlQuuQIC8mWG7NkoWOyIQMkKda8= X-Gm-Gg: AZuq6aL5zkMcLMTLcBTucCSKhKC83DJHgF1qScpmo7ZhNjkUQQUAE6I2NL2sExlkRSW LXAB/EAx9lAjxjAkrOA1U2luU91wcKwmTXWuaizP6xAPCnAwOT/BQ1pMlKv6jTaSQxWVc+LMaYy x6iG8DG/pXXhDMde4nRwFuzKDb+MvXy2FSiYFQL42HT6PxGPHrcgJxLNVWcHI7IHKwMAprgMmAi IO6FCJMD6V8r4a0bHGIO0ktp9rlfbLuATpIV6+lcdFKskcc5UYOMazsmq/eanxvqXILIxfCaDhH V9xBUzngJkS8bEwSeOYakWJ/El8boH2rRXOFTWsN+mpB4vJKvq1+yyYYwBJIYjjg8i2f8hCgKMP K8NGTxU2VpczIA+QsdEvkEbiIjIF7KCExMnKvkgW3H9nXP1JCIX5W2Yb41GDQupumEsQyD/kSxp 3WcF/1kCrg+MQHm2jeLZIR X-Received: by 2002:a05:600c:1c04:b0:480:1b65:b741 with SMTP id 5b1f17b1804b1-483a95cfc62mr12256445e9.15.1771616647672; Fri, 20 Feb 2026 11:44:07 -0800 (PST) Received: from [127.0.1.1] ([210.176.154.34]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-483a3e1b7ccsm24460755e9.11.2026.02.20.11.44.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Feb 2026 11:44:07 -0800 (PST) From: Max Hsu Date: Sat, 21 Feb 2026 03:43:53 +0800 Subject: [PATCH 1/5] dmaengine: sf-pdma: add missing PDMA base offset to register calculations Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260221-pdma-v1-1-838d929c2326@sifive.com> References: <20260221-pdma-v1-0-838d929c2326@sifive.com> In-Reply-To: <20260221-pdma-v1-0-838d929c2326@sifive.com> To: Paul Walmsley , Samuel Holland , Vinod Koul , Frank Li , Green Wan , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Palmer Debbelt , Conor Dooley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti Cc: linux-riscv@lists.infradead.org, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Paul Walmsley , devicetree@vger.kernel.org, Max Hsu X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1395; i=max.hsu@sifive.com; h=from:subject:message-id; bh=AnEa53opPbOu4dRIdrxYWqC5ToC/rveEHLt+0LxZ02U=; b=owEB7QES/pANAwAKAdID/Z0HeUC9AcsmYgBpmLl7iZxRqUMek04x+o3lBeEEqeiLt2VR8OAQc Nw/cTkeEZ+JAbMEAAEKAB0WIQTqXmcbOhS2KZE9X2jSA/2dB3lAvQUCaZi5ewAKCRDSA/2dB3lA vTvEDACAZT/DJRai2ns/tv7qnjMFStLTAaaFD0WsiEnykRMhHVFY6Ll9o/QQco3XuLtDkfk8yBW Daf1E7Za0anPZFcvzU631toudhRDqKH2nydxS+UUOB/Vg/gpJvoKdAqWFR+eriNyIIjMsmbOltI nqOk9KGfetnbm/fJUmLyoDhVl1Rx4jtXV/iuVXSWzwYIvQB6V/lwpGQKY56dcvNS8xZ2FDfUrmI W5sPggxYe/khEXJWJwW/mLijfNxY5qcQKU34zgROzAmv2xl3jkKMt4bdWb9BvlRy5gvGUNB0fyM Ay7XcscVkpnwITy9xM08B3UTkwmX4DMATt3qoiOaqWymJLQnoJ9fj7U2jDSEqPeidm2SQxhRCU5 M5Okuss097crl0k3OlyjyVMuhDW2MJI5OYdotZfJIyHOU3j1uvh0vwY5tEhAMFbpJxgSqWUBQuv fkCEwPLbl+I3WeTPSpFLNwtpGPTiG45Gw1XWSs11pBChKJxiXkJIy/2c4p6XtbMIRUq2E= X-Developer-Key: i=max.hsu@sifive.com; a=openpgp; fpr=EA5E671B3A14B629913D5F68D203FD9D077940BD The PDMA control registers start at offset 0x80000 from the PDMA base address, according to the FU540-C000 v1p1 manual [1]. The current SF_PDMA_REG_BASE macro is missing this offset: Current: pdma->membase + (PDMA_CHAN_OFFSET * ch) Correct: pdma->membase + 0x80000 + (PDMA_CHAN_OFFSET * ch) Fix by adding PDMA_BASE_OFFSET (0x80000) to the register address calculation. Link: https://www.sifive.com/document-file/freedom-u540-c000-manual [1] Fixes: 6973886ad58e ("dmaengine: sf-pdma: add platform DMA support for HiFi= ve Unleashed A00") Signed-off-by: Max Hsu --- drivers/dma/sf-pdma/sf-pdma.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/dma/sf-pdma/sf-pdma.h b/drivers/dma/sf-pdma/sf-pdma.h index 215e07183d7e..d33551eb2ee8 100644 --- a/drivers/dma/sf-pdma/sf-pdma.h +++ b/drivers/dma/sf-pdma/sf-pdma.h @@ -24,7 +24,7 @@ =20 #define PDMA_MAX_NR_CH 4 =20 -#define PDMA_BASE_ADDR 0x3000000 +#define PDMA_BASE_OFFSET 0x80000 #define PDMA_CHAN_OFFSET 0x1000 =20 /* Register Offset */ @@ -54,7 +54,7 @@ /* Error Recovery */ #define MAX_RETRY 1 =20 -#define SF_PDMA_REG_BASE(ch) (pdma->membase + (PDMA_CHAN_OFFSET * (ch))) +#define SF_PDMA_REG_BASE(ch) (pdma->membase + PDMA_BASE_OFFSET + (PDMA_CHA= N_OFFSET * (ch))) =20 struct pdma_regs { /* read-write regs */ --=20 2.43.0 From nobody Fri Apr 3 11:12:47 2026 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8739036655B for ; Fri, 20 Feb 2026 19:44:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771616660; cv=none; b=NiVZDiVMsn/Q3VogSA6wsk9eAkYEZadadti850aLBztKpRXkvn/OGFi0ZuibZGBsgslnXlpHiJ3zjaXLRNxIi5LPNKZLM0T3VGSsfVDRVGVbqccXk4dF5y6T5y/sWKgH0+bAoilwqqYJHPHEXA6Pjdbp4ei6clpmhL8L3r80L8w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771616660; c=relaxed/simple; bh=HZw/m+iZYxEGcuIZeLOrzXaThPDTnv+UpkVRVzMpSOI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CJEs47FwD7EMaAIeGSBcZb6kRZCMHreYJo722MKENdBAxoRAzrZN6CzERcFlQVr1p68rfXzIEGpGG/6kDWgzlY3i2L7YiYxJSHJeiwHrN/2ubc6ErHeA2bgHIQJ2AJBxfuqJujVod6opaw4u1Z0MpO7khbh++sm9QlYUkcISjVk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sifive.com; spf=pass smtp.mailfrom=sifive.com; dkim=pass (2048-bit key) header.d=sifive.com header.i=@sifive.com header.b=jxy5J+rF; arc=none smtp.client-ip=209.85.128.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sifive.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sifive.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sifive.com header.i=@sifive.com header.b="jxy5J+rF" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-483487335c2so23002585e9.2 for ; Fri, 20 Feb 2026 11:44:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1771616654; x=1772221454; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=exW6wJ5MettYqKMw45/sBx+PnMDuRihL33c51S/rlCU=; b=jxy5J+rFq7uBZmpuei0xJfpmLSegTmO1bDaZ++JM6GEBESlZihdvT6BZgks2xciM60 FVtpbi7fwg+Ncw9hSP3sqmFyiQ3U5R1/P3tiaEqyuXnS/WmbftX9CS5Kxi9ECE3F0da7 +6pL0MKsFSGLtNEZ1fNT3TK989sGwlH5tle853DDmadGIiKXqzLLyUGjD6kyODFPNwJA i26vh91rTYushN79utjUruy8//KQ0TSDVXRJDUoH10eAvw4jYvDwzSIXyDpcKL6+dEh9 x5LhpL2mOzyOmVyyxnLOoSCmw97qRAblayTGvLDMI7afSmX9kOtAAglFUIaVBlL9YRQd Ww0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771616654; x=1772221454; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=exW6wJ5MettYqKMw45/sBx+PnMDuRihL33c51S/rlCU=; b=ePjpMcx+iqA1SPorBJet0fSJQR10kD7ySrS8aor6qQYD7qqaMtTlrFiHxPadm1Q8KT HvlbtyDNxTPG4wGL9GWSPHiba3DmXhHGzdR3E6aXhq0No9VKNiqN/EDZptmwuf1jKfiZ MpgNfsJLQE6KtTDgE0qFxX8NMNVsuEvMyort6CSqEn0nTTKMu0K/gB6mJYJXRlXpOLbQ WYwVoNkKnKpjSp73t0AEvQDY+xVUIYCOdwIVsMVM8vq5rVX7k0sYh66KKpQFOoEPsbkV ymM0VszoZxnf67L93FfIL+zVQUnOj6h/p+yrN9iYAp3aFbDia5w7Oj2Az6Krq8aF5LYz 2cmA== X-Forwarded-Encrypted: i=1; AJvYcCXyLL9gnjuboA/300xABr1QEKidrlAtqNUzH8PuRJmudo/O5n0jFqS5Qd2hKU0K8MLcwvpwbx4SBLxm4R0=@vger.kernel.org X-Gm-Message-State: AOJu0Yw5td7DlD3JVbY2RFyhWp6Z4CLDavMQdEfV1R6vcGIGqCOR/npJ EqsoZpV6XsgT1H/LqmOyPbQsuAKTVbx9MpPMb9X/Zvv6Y8dynQNY2dhHmh2tXtdGmy7UfvtKaYx L3hy+ X-Gm-Gg: AZuq6aJTd6ouf3WbNjVb+0rRxnB0CJgHYUHC1aQ5Yi9CdFy1MpmVRuPlWKz+zCOtrsQ K2lu/gsyFyqHRr6ZCiAxlwFuo98gSECU4gpelpgzKTYT7e4eF8GQ4EEFLQbrQQohBC1C6PjCQR1 KAcJdTfUoRpZb8PzOTPxebLh+4USPUVT0F8v2mluHlaPSwkLS2GOd0DPvLGGZb7im/z2lGiCq5e Jy5xwHMcm9Q1niZjRn0ZG46gYulk4RxOHP9LJdJUNBasfL5UGI0wZbsuTTEVE9FJax4LPSJxaJZ nCJ1/GFXhqf2Pe4/CVrsMXqCe04MMGCQofXOnBEyMzPKau9U7oZjebwxFEkzx0IcupFIipqaMZg nRdpBWzpoKwQEQ9aDPvKMlA6VwlteUrMt6Z6LfhsoDiuvm1IdBo2YWARiwH+0DalQF7icyM3+Ux 4w6RlnjhXdKouorwCQ5DOqcQlfdx02KpY= X-Received: by 2002:a05:600c:46c9:b0:483:6f37:1b51 with SMTP id 5b1f17b1804b1-483a95ea9c9mr9114085e9.23.1771616653836; Fri, 20 Feb 2026 11:44:13 -0800 (PST) Received: from [127.0.1.1] ([210.176.154.34]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-483a3e1b7ccsm24460755e9.11.2026.02.20.11.44.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Feb 2026 11:44:13 -0800 (PST) From: Max Hsu Date: Sat, 21 Feb 2026 03:43:54 +0800 Subject: [PATCH 2/5] dmaengine: sf-pdma: fix race between done and error interrupts Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260221-pdma-v1-2-838d929c2326@sifive.com> References: <20260221-pdma-v1-0-838d929c2326@sifive.com> In-Reply-To: <20260221-pdma-v1-0-838d929c2326@sifive.com> To: Paul Walmsley , Samuel Holland , Vinod Koul , Frank Li , Green Wan , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Palmer Debbelt , Conor Dooley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti Cc: linux-riscv@lists.infradead.org, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Paul Walmsley , devicetree@vger.kernel.org, Max Hsu , stable@vger.kernel.org X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2398; i=max.hsu@sifive.com; h=from:subject:message-id; bh=HZw/m+iZYxEGcuIZeLOrzXaThPDTnv+UpkVRVzMpSOI=; b=owEB7QES/pANAwAKAdID/Z0HeUC9AcsmYgBpmLl71dxWi5B+zksLXjlly23frduiErFqlc8fz Z/otqlEM4iJAbMEAAEKAB0WIQTqXmcbOhS2KZE9X2jSA/2dB3lAvQUCaZi5ewAKCRDSA/2dB3lA vcuoDACgaeWfX7TSgRc1yNCZNUpKCUjEzSewb3vD7LvYIUVNGUfInacZIz+DBH6FaLxFB9wtTAQ J7hyWDGbq5fOphtYG/+4mE1K4SYEXr7LLG3QI5plJqhkgVzy+NA+JNUKWt7z5Nc/70t5KXh8KlC cjjhkknMwzd+BtXvy30eiEvVSqmaeyy/8UIDqAT/4/pwDmCkAaV1EcWgzyK4LdRlHHE99mNiKo+ n015Nh6m2BWRuSkkm1MYESTug3DX3WC6/ByMs28nGKB/DxyKtrAtMT6Mk+tQWuvPIPvxHnpo3K7 avJD/L46htLvCT+z8SyM6kU1J+V2zChbhqoEA/K3aJ6uMaI2AcAYuTFj5kkPJtoepUMvRQusLap RAJJT6K8glfyHNIGLIfhWibLjyIkXfOxNEM0a2xoRjY2Ko/Ri9BxAbGjt/4kz0IA8h5UKMXZ0xu +nDU6BCnE4e7YBBie6Zj/Bpg57kOAiQ/3C9GLsC7Uj4B0Ennz3k7dOUaZugVOuQEE/n3s= X-Developer-Key: i=max.hsu@sifive.com; a=openpgp; fpr=EA5E671B3A14B629913D5F68D203FD9D077940BD According to the FU540-C000 v1p5 [1] and FU740-C000 v1p7 [2] specs, when a DMA transaction error occurs, the hardware sets both the DONE and ERROR interrupt bits simultaneously. On SMP systems, this can cause the done_isr and err_isr to execute concurrently on different CPUs, leading to race conditions and NULL pointer dereferences. Fix by: - In done_isr: abort if ERROR bit is set or DONE bit was already cleared - In err_isr: clear both DONE and ERROR bits to prevent done_isr from processing the same transaction Link: https://www.sifive.com/document-file/freedom-u540-c000-manual [1] Link: https://www.sifive.com/document-file/freedom-u740-c000-manual [2] Fixes: 6973886ad58e ("dmaengine: sf-pdma: add platform DMA support for HiFi= ve Unleashed A00") Cc: stable@vger.kernel.org Signed-off-by: Max Hsu Reviewed-by: Frank Li --- drivers/dma/sf-pdma/sf-pdma.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/drivers/dma/sf-pdma/sf-pdma.c b/drivers/dma/sf-pdma/sf-pdma.c index 7ad3c29be146..ac7d3b127a24 100644 --- a/drivers/dma/sf-pdma/sf-pdma.c +++ b/drivers/dma/sf-pdma/sf-pdma.c @@ -346,9 +346,25 @@ static irqreturn_t sf_pdma_done_isr(int irq, void *dev= _id) struct sf_pdma_chan *chan =3D dev_id; struct pdma_regs *regs =3D &chan->regs; u64 residue; + u32 control_reg; =20 spin_lock(&chan->vchan.lock); - writel((readl(regs->ctrl)) & ~PDMA_DONE_STATUS_MASK, regs->ctrl); + control_reg =3D readl(regs->ctrl); + if (control_reg & PDMA_ERR_STATUS_MASK) { + spin_unlock(&chan->vchan.lock); + return IRQ_HANDLED; + } + + /* + * Check if DONE bit is still set. If not, the error ISR on another + * CPU has already cleared it, so abort to avoid double-processing. + */ + if (!(control_reg & PDMA_DONE_STATUS_MASK)) { + spin_unlock(&chan->vchan.lock); + return IRQ_HANDLED; + } + + writel((control_reg & ~PDMA_DONE_STATUS_MASK), regs->ctrl); residue =3D readq(regs->residue); =20 if (!residue) { @@ -375,7 +391,7 @@ static irqreturn_t sf_pdma_err_isr(int irq, void *dev_i= d) struct pdma_regs *regs =3D &chan->regs; =20 spin_lock(&chan->lock); - writel((readl(regs->ctrl)) & ~PDMA_ERR_STATUS_MASK, regs->ctrl); + writel((readl(regs->ctrl)) & ~(PDMA_DONE_STATUS_MASK | PDMA_ERR_STATUS_MA= SK), regs->ctrl); spin_unlock(&chan->lock); =20 tasklet_schedule(&chan->err_tasklet); --=20 2.43.0 From nobody Fri Apr 3 11:12:47 2026 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 76E8C366DCD for ; Fri, 20 Feb 2026 19:44:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771616663; cv=none; b=FjfMZ/9PXbgPrSioyKBUMB/VAaWdK+dgVQ+KRXKULwg95RQUeMVh4457ZdJ9M+9QcfzKntR19ZFYS5hMNUYaxO9DlqqKZHRfDj5iubyzQnmrZkxu+BJyj9inmXevE11fOHYbg4J/2rmTIFzk1Rhn5h1tOFaodlTXJE9cJhvsIxI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771616663; c=relaxed/simple; bh=b/XfJRil1bwdPvFvx3l1pKzJDaN4pUj1HhV7xdp0NrE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=AYrOlj3vNzCGI623F607YJ9EWqGagiNpihPK2OtWdQHop+fSUznCeq/0HeiV78IOQXgUpA0YhcXWmPbUtuAzKWpfAb42U3zOSXDZG7vfbnE3gcVakAaCdCwi5DtdSH7QH3LMT+Tx6hg06zRkGOrhIvd1YE75cXSKCBN7LmaVaSA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sifive.com; spf=pass smtp.mailfrom=sifive.com; dkim=pass (2048-bit key) header.d=sifive.com header.i=@sifive.com header.b=BLLu/lq1; arc=none smtp.client-ip=209.85.128.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sifive.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sifive.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sifive.com header.i=@sifive.com header.b="BLLu/lq1" Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-48371bb515eso31646975e9.1 for ; Fri, 20 Feb 2026 11:44:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1771616660; x=1772221460; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=05/VV/lDFeba9RsGotT90a0/zpwPMFfBoAx0Ofiw31M=; b=BLLu/lq11cOIO1/CWJW0dBnro+bZ1hEk0GKN07S7guoC6LqDI0H8g2lW7nPhwD+hJu wIS8Nhb+b0/jI/R1v1WQjCJTi8fDoEpj7gm3cy3cyA1npRFnrHg73vG2G4N85B7rBm0W khMBCgub9NkJWjK9y3zGOGEm1FaCZMf5fR1+FeLPQtmYfuMENp12Hmkka70pq4U5wLpE 75BWRmE3oM+4IaF7HTATRo5PnwhsqfZXHBHtS88pG+36Ni1RI64H5s7ar4HAn9uQ6vRi wqHLHg1j0x+8I8iMIfXdKEKi6izfsxnHrOzc7w+lYr9yr1lPtqlWirSavETSZ2yQsIvQ 3b8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771616660; x=1772221460; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=05/VV/lDFeba9RsGotT90a0/zpwPMFfBoAx0Ofiw31M=; b=wTYrlepAjD1Nwf57ytwr43ueDLaAmbWDG3ySNZmvjvZzaYvIf04ooH/gn2Fl1ZwN2f cq9oq+1GcJjvtr2ya9Uqjkq0TwTB6x1L+uBRdL4vcxXlgL/J67mgaFgTnlo48gemQLOv 24ns0CPManaeKEgyOlMbmSXSb9+Mjc7NUTr8DIj3iXMahFRJRb5253jgbowWn2SH/7wj ISknSoOlUhysucUrv8imkegAckAWln0YHmRY7snXYStkJfTsmvcHxKif2+R+voSK1LTl wxikbKBnr9BB8en/RMZTXwfkAryaq5NlLuuPr3EeFiFWKXY1U/ufCWf/N6mQfgjPybg5 N8jA== X-Forwarded-Encrypted: i=1; AJvYcCWX8Y2SbLERQd7aqmqa2PeKGJUfWorGJ5DQsWvMkg/1z6adB2utTs9UTPKfzW0cED9KAF3XTGl0qC3Y9Fo=@vger.kernel.org X-Gm-Message-State: AOJu0YxeP06ZO8S7rDaDFbUHeHzDGiQBTnIRw07d+sbY3MB7XfhUSmMe ewKOcaiSZowC32liGTaHuLhMS+Pqpq7FGXyJhZllEvrYBlUNSk+O2RZXQlkYBCrxmsU= X-Gm-Gg: AZuq6aJxK13gdqWqiIe7fDO51I4cxio+22sxodFewRnI/bpDlMMFiJhJmhqvK7FQDqe puC0BDvK9CDodA1JMyB05BEUyGkpTrZ97E+4bHXKdj+fDHvd2LzKXetln6XxnRfJfo9TArvP3WY 6+s0fDrM/gmpprZ79fYaOBzBLH9iwI8eHgPPq0huUMo3hPW9vZ/JHIuqEx3z77xMlIYwMTctR8e ox9hufMe1pr4NbeHbdiuD7h52PskSe1167it2reBx1c+q3OGp+LuTwdgh5VHqBgqOx1Wi2LieE7 lGQaB+rBqt8Y/g1RZHKYtYXtrO/9fvOLO1VLPE21Y3BtYz6r5FkCQGnA1s+13/hJqpp7zFExR1k dkHJeNnf5Yu5wo5mDVC5BCBccDf+My003xT4APpoPQofwFy6nT93Rhn51OT5MzQhRfFGz3zjwBh T8oPwQTnIIyrQ/fsNXJOO6 X-Received: by 2002:a05:600c:c166:b0:483:8e67:e696 with SMTP id 5b1f17b1804b1-483a96088eamr11896155e9.15.1771616659825; Fri, 20 Feb 2026 11:44:19 -0800 (PST) Received: from [127.0.1.1] ([210.176.154.34]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-483a3e1b7ccsm24460755e9.11.2026.02.20.11.44.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Feb 2026 11:44:19 -0800 (PST) From: Max Hsu Date: Sat, 21 Feb 2026 03:43:55 +0800 Subject: [PATCH 3/5] dmaengine: sf-pdma: fix NULL pointer dereference in error and done handlers Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260221-pdma-v1-3-838d929c2326@sifive.com> References: <20260221-pdma-v1-0-838d929c2326@sifive.com> In-Reply-To: <20260221-pdma-v1-0-838d929c2326@sifive.com> To: Paul Walmsley , Samuel Holland , Vinod Koul , Frank Li , Green Wan , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Palmer Debbelt , Conor Dooley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti Cc: linux-riscv@lists.infradead.org, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Paul Walmsley , devicetree@vger.kernel.org, Max Hsu , stable@vger.kernel.org X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3639; i=max.hsu@sifive.com; h=from:subject:message-id; bh=b/XfJRil1bwdPvFvx3l1pKzJDaN4pUj1HhV7xdp0NrE=; b=owEB7QES/pANAwAKAdID/Z0HeUC9AcsmYgBpmLl7qrlEpbzWDbGuky8nT6UzW0f5jVL+Hu/hW iVRTh9Ulb6JAbMEAAEKAB0WIQTqXmcbOhS2KZE9X2jSA/2dB3lAvQUCaZi5ewAKCRDSA/2dB3lA vY8NDACxy2OOvQk82FLF/6ENDUqR0VUXpYS61hwdKKk9L4hmAEMmXjyP5/BovrqX3b+34yGCO05 +Pkx4U3PqbxNcHs+NQHaYGZoZZ8FRdDJ4iS5eKtQiIO/m5VfQAVuI+azxBu5TrFzSePhwpJko0R 7x0JinBtqmGUTEtA8X7egXlkbd0qkMFE36xltmi6n8LmQTuV65oTkl95SArBYzMVLt6tiQzaYws o+0l/9Dk2bKZjyhWc987UGgbyGnKrGm6HzmCJmJrVIRjfFpBhrUOQhhGtDsP3GKSxV2al+7TcuK O+p9CvhQ/XS0lmko1kSN8dbtrl81Q68hyRV2IcsvKE6AVig+7TjNsd1aLkF7HctRS26JTJ49cvk 75uVdQud3BGkNbBqIK5wCcjszzKDqiZAC7Kl7ZINFj0wRrkHwfydyhmeXAy555xdjICf7YBgy91 SWW/1txoOQT/KdooJP8as+lq8Jk5MIgZLfhRZH90rf1jzO3wRNmeNGc27YsfpRJ7l2tjs= X-Developer-Key: i=max.hsu@sifive.com; a=openpgp; fpr=EA5E671B3A14B629913D5F68D203FD9D077940BD Fix NULL pointer dereferences in both the error and done tasklets that can occur due to race conditions during channel termination or completion. Both tasklets (sf_pdma_errbh_tasklet and sf_pdma_donebh_tasklet) dereference chan->desc without checking if it's NULL. However, chan->desc can be NULL in legitimate scenarios: 1. During sf_pdma_terminate_all(): The function sets chan->desc =3D NULL while holding vchan.lock, but interrupts for previously submitted transactions could fire after the lock is released, before the hardware is fully quiesced. These interrupts can schedule tasklets that will run with chan->desc =3D NULL. 2. During channel cleanup: Similar race condition during sf_pdma_free_chan_resources(). The fix adds NULL checks at the beginning of both tasklets, protected by vchan.lock, using the same lock that terminate_all and free_chan_resources use when setting chan->desc =3D NULL. This ensures that either: - The descriptor is valid and we can safely process it, or - The descriptor was already freed and we safely skip processing Fixes: 6973886ad58e ("dmaengine: sf-pdma: add platform DMA support for HiFi= ve Unleashed A00") Cc: stable@vger.kernel.org Signed-off-by: Max Hsu --- drivers/dma/sf-pdma/sf-pdma.c | 43 +++++++++++++++++++++++++++++++++------= ---- 1 file changed, 33 insertions(+), 10 deletions(-) diff --git a/drivers/dma/sf-pdma/sf-pdma.c b/drivers/dma/sf-pdma/sf-pdma.c index ac7d3b127a24..70e4afcda52a 100644 --- a/drivers/dma/sf-pdma/sf-pdma.c +++ b/drivers/dma/sf-pdma/sf-pdma.c @@ -298,33 +298,56 @@ static void sf_pdma_free_desc(struct virt_dma_desc *v= desc) static void sf_pdma_donebh_tasklet(struct tasklet_struct *t) { struct sf_pdma_chan *chan =3D from_tasklet(chan, t, done_tasklet); + struct sf_pdma_desc *desc; unsigned long flags; =20 - spin_lock_irqsave(&chan->lock, flags); - if (chan->xfer_err) { - chan->retries =3D MAX_RETRY; - chan->status =3D DMA_COMPLETE; - chan->xfer_err =3D false; + spin_lock_irqsave(&chan->vchan.lock, flags); + desc =3D chan->desc; + if (!desc) { + /* + * The descriptor was already freed (e.g., by terminate_all + * or completion on another CPU). Nothing to do. + */ + spin_unlock_irqrestore(&chan->vchan.lock, flags); + return; } - spin_unlock_irqrestore(&chan->lock, flags); =20 - spin_lock_irqsave(&chan->vchan.lock, flags); - list_del(&chan->desc->vdesc.node); - vchan_cookie_complete(&chan->desc->vdesc); + list_del(&desc->vdesc.node); + vchan_cookie_complete(&desc->vdesc); =20 chan->desc =3D sf_pdma_get_first_pending_desc(chan); if (chan->desc) sf_pdma_xfer_desc(chan); =20 spin_unlock_irqrestore(&chan->vchan.lock, flags); + + spin_lock_irqsave(&chan->lock, flags); + if (chan->xfer_err) { + chan->retries =3D MAX_RETRY; + chan->status =3D DMA_COMPLETE; + chan->xfer_err =3D false; + } + spin_unlock_irqrestore(&chan->lock, flags); } =20 static void sf_pdma_errbh_tasklet(struct tasklet_struct *t) { struct sf_pdma_chan *chan =3D from_tasklet(chan, t, err_tasklet); - struct sf_pdma_desc *desc =3D chan->desc; + struct sf_pdma_desc *desc; unsigned long flags; =20 + spin_lock_irqsave(&chan->vchan.lock, flags); + desc =3D chan->desc; + if (!desc) { + /* + * The descriptor was already freed (e.g., by terminate_all + * or completion on another CPU). Nothing to do. + */ + spin_unlock_irqrestore(&chan->vchan.lock, flags); + return; + } + spin_unlock_irqrestore(&chan->vchan.lock, flags); + spin_lock_irqsave(&chan->lock, flags); if (chan->retries <=3D 0) { /* fail to recover */ --=20 2.43.0 From nobody Fri Apr 3 11:12:47 2026 Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5EC6A366829 for ; Fri, 20 Feb 2026 19:44:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771616668; cv=none; b=E9jFXp6vAkRavKyOS/UDb4YP4FqcJrfMFWTkyYh8MRXXDh7ZzKz43GTzSPNT+ucR9uVclQ7OMNIy0iXWzXy1rqJxo104K4fPIrEHH6TgcGA4micI5Iley8czjDgcuQNQJh/xDw+ZMYzYr3v+4xz44QlfMgaAP9kepJmdZFyaW8c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771616668; c=relaxed/simple; bh=nrMUARYe9zH+uvnh42t3b56MRQzTw17fCoVToF8PpdA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=bImutyIZV/2wZWVnlHH3FJ3vD2Q+ivUF05JM6Wg3OZy7vRLQ3xqHp7MLF5YdIaKj+BNPCHjhdBi2yAuQcWHRawyqE6nb4H+B1HOkjvD82zdPAl4wiJ+lpwLd4wTnCsYHwDl7jTOuVhWOaPe3f/u1DyJRmDp7JvXrZoVBZ1fbqog= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sifive.com; spf=pass smtp.mailfrom=sifive.com; dkim=pass (2048-bit key) header.d=sifive.com header.i=@sifive.com header.b=UBaCZjYh; arc=none smtp.client-ip=209.85.128.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sifive.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sifive.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sifive.com header.i=@sifive.com header.b="UBaCZjYh" Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-48069a48629so24221605e9.0 for ; Fri, 20 Feb 2026 11:44:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1771616666; x=1772221466; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=OSXZDM/gkx0IUG06PIqgzfA52LpX4T1tWcsEGgTSFcQ=; b=UBaCZjYhebmtmx0HoYd6wDRF5PwLufabAk6jpt/f1SMeFeroWgrq836F69UmJ42NE1 oGBM1nBbCJa/V0l8fhdl+xwdxwETyovUGIxFGYmIFAzF0Qyg8mHv03d3wiIJNxiBTtoS VnvcCeHAsBT873xO398d7MGfIGQvNhYiofkno2oqqIDuWFHFw0UHht3ci5gefmxTckzs dM+khfcxgOOsxRUpHEJdhK/XI8EVQUcdR1mAjAuCFFDaUlFsSn+E/qF3V2ehfmUG2x+W r9+u86+REoEFTbJs97NeFXTlw0c9b28hwVb1q1BMSad+jYjEWjIIOm6nYQzObYCjifYm Tc0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771616666; x=1772221466; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=OSXZDM/gkx0IUG06PIqgzfA52LpX4T1tWcsEGgTSFcQ=; b=wli0VAyyeqeFoNKfXQMGDl4u3n8eX11ZGV2krPRAVe+pHaFU96DEQmKc/a6+mL/QbZ pxrE60YW/B39mUNr6IJ1tmS9naFeyX+fYgze7mk6iixnGVxOH9kIWGb2ihoPp1ypgHwF YrJ/LXJ2iXBohviwwebuZ8XhysWsjRN9eGz9khk08FSVNs4KiFgWr+LPr3rlBG/NDfQO aF+kuHL98lQS5ovg0xxoAlQlHhgR7Fd7QaL+E+nVGPa6ZTN0rnSwTHvolyLZWBCDokaU OCtQsjGVa3Kwx3yUYoY2/h/CTqALgJK20f6aAJ72PZe197Z6YSGwUnCWfw3nnl1BLn70 GLyg== X-Forwarded-Encrypted: i=1; AJvYcCV2U8pGIMtSWWWmwwkSG+OKfCURW2hCZk1VKrtRYzDLCEt68okrCON7kopCsmks7Q8l9h3Zow8BQW02JWA=@vger.kernel.org X-Gm-Message-State: AOJu0Yx7Fnc8ymK1Z0ABNuABcPx5eRZnWzZNkDi4dywPNaGSTNob+U9K Jfz3UpxVBNpBtWrSR0sZYPSw0Pb7SIiE4bTwdRGTXq14zfTD8Negm0zpGNNyjiO8MX8= X-Gm-Gg: AZuq6aK62EJMdz6Md5RnIRLUBPm3VnD2gCGuaJoPMv3BkvvizcZ+RNw9Neb4zSunfP3 G6wSB4k1kuAIcsM5rRoCbefyrYWZXkdicwJbQG+ZUVRkDxNqYFZUGn92jBm3pL0pEgSA8fQz4y+ 3SlkWDiqv/BGBzheJ4R6L8C46rt0nHhP0mZ0vkWBLrlIhfyEvUfZqd0uJuaTkE36sHDdL9QBdJa d3V3XftOAIOO2l6TdeYNtq3oHKN5GnGbS5FXxcid9BltCVSlvY+aXi+6SyPYnLri+IkLrEPJMat 7q17GyLDJWpVLtcaFUyFN/vXyjOCEO55PjL8Pu9YkjlH8x0Gb+uhkW2hPCv5GwanI+5QuR++7vp HxC0wHdr+SMiivfK+8/GLy0oO5ApaKHtzlzUj4bZMs/i/K43W/JRjjrwSlc6ZLEZblsZ6DoqIBl KxrI/n6OmWGcxd44ainyFU X-Received: by 2002:a05:600c:8b01:b0:46e:35a0:3587 with SMTP id 5b1f17b1804b1-483a95ef65bmr11363275e9.27.1771616665702; Fri, 20 Feb 2026 11:44:25 -0800 (PST) Received: from [127.0.1.1] ([210.176.154.34]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-483a3e1b7ccsm24460755e9.11.2026.02.20.11.44.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Feb 2026 11:44:25 -0800 (PST) From: Max Hsu Date: Sat, 21 Feb 2026 03:43:56 +0800 Subject: [PATCH 4/5] dt-bindings: dma: sifive,fu540-c000-pdma: add fu740 support Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260221-pdma-v1-4-838d929c2326@sifive.com> References: <20260221-pdma-v1-0-838d929c2326@sifive.com> In-Reply-To: <20260221-pdma-v1-0-838d929c2326@sifive.com> To: Paul Walmsley , Samuel Holland , Vinod Koul , Frank Li , Green Wan , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Palmer Debbelt , Conor Dooley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti Cc: linux-riscv@lists.infradead.org, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Paul Walmsley , devicetree@vger.kernel.org, Max Hsu X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=851; i=max.hsu@sifive.com; h=from:subject:message-id; bh=nrMUARYe9zH+uvnh42t3b56MRQzTw17fCoVToF8PpdA=; b=owEB7QES/pANAwAKAdID/Z0HeUC9AcsmYgBpmLl7uWjyst9NuRS1aIz/Ib7QZ9t93JOlcL7S7 URhvyuXkJWJAbMEAAEKAB0WIQTqXmcbOhS2KZE9X2jSA/2dB3lAvQUCaZi5ewAKCRDSA/2dB3lA vZprC/9j2CNAQy0NxThk9kPI7oO063U7arL4shBXYBczeIv0PMoVAI2GBj/GvX3wI6rvS7wIize 4ndD+xGwE9kRfYGLB8sGc08VRJ9TAq9YSrKeIa8wgDMsMJxer8QcjaFREvZaOn0lQVEcBnzFW80 k9IDfcsrJccHz9d8lJaI5NmY5K/Kioop6KgoTaNt3eHn2pUS+zPYXFU096YJn5k9ZhGbXXBR6GB IbHHX+bZPNFlE9KJ5jXIEx/nVHoSFqEA1Ex9oPomfsB5zkLtuVqtj5SVVcVgB85krcUgWlXdd47 SLyq1qdlSPiSUJPQgv+AN9W+4qDP5j7eWabhtfep2QlH9bsyOzfS7WRTjWkDdvhQgO/ozOoYAi9 3KJFuPb3/YXT1FrASEVh0+rYr6SHVLAu8pNYoj4aPrVgKKpctDXZQ7S5nHVTc7nISiKW9ekQTLi d9b3l4ojrAKyNfa7emcMJGOZNYAMN4+7gBED5IdzNMxfcbGJO1/eCnAeV/4c0YrZrsYoI= X-Developer-Key: i=max.hsu@sifive.com; a=openpgp; fpr=EA5E671B3A14B629913D5F68D203FD9D077940BD Add "sifive,fu740-c000-pdma" compatible string. Signed-off-by: Max Hsu --- Documentation/devicetree/bindings/dma/sifive,fu540-c000-pdma.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/dma/sifive,fu540-c000-pdma.y= aml b/Documentation/devicetree/bindings/dma/sifive,fu540-c000-pdma.yaml index 609e38901434..b6c49060bc6f 100644 --- a/Documentation/devicetree/bindings/dma/sifive,fu540-c000-pdma.yaml +++ b/Documentation/devicetree/bindings/dma/sifive,fu540-c000-pdma.yaml @@ -36,6 +36,7 @@ properties: - enum: - microchip,mpfs-pdma - sifive,fu540-c000-pdma + - sifive,fu740-c000-pdma - const: sifive,pdma0 description: Should be "sifive,-pdma" and "sifive,pdma". --=20 2.43.0 From nobody Fri Apr 3 11:12:47 2026 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 09711366556 for ; Fri, 20 Feb 2026 19:44:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771616675; cv=none; b=KITcHbLu1ZwCJvtjcajzK1w6GDH0LcFoiAHkHBxIAFhSF/HheJ3WN0BP+YlQm6LoiZqkMMUbUiURiU2yFlzvqyiwwBb1+G+AMOyd6jYxf8W4jLaZy1ctCwT0rSgsMHY/Tclx6M0m2ruVdysdk+sNT5SvtxrnODDlqdnoEYpjsLA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771616675; c=relaxed/simple; bh=lDR4hwKAnZx7jEioVJrSlzqGnc79ShiEsvnMpfk7hIc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lvKNihyyttFR8vQyTgf1OCZTwnwtEdVA5NAbQvlB6KLcntxfwHculr4imMgwdL18CqPo0iTEoEUOtbjdO2OJhHHJ8U7zMrkc30mHCZcLAiOI+wHq2xJnmjYGBSMhTXOXn+750sqBZbdwlDBVh/ChLyVJ2GsODFjCbEk/sBMYvFQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sifive.com; spf=pass smtp.mailfrom=sifive.com; dkim=pass (2048-bit key) header.d=sifive.com header.i=@sifive.com header.b=aFP0fx2f; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sifive.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sifive.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sifive.com header.i=@sifive.com header.b="aFP0fx2f" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-4834826e5a0so28151005e9.2 for ; Fri, 20 Feb 2026 11:44:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1771616671; x=1772221471; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=idd3phAMZAFbXYRAtJBjuUopeP1FYK6fM2z0tYAIx5o=; b=aFP0fx2fhCcePNUmUhg/T/Tiv7HN2JjPHn8J/U469aZWT2n956umkmRY8a1ydQUUbr BCF3kVB7nnryZ7iv622oHnTiy1VwWnNQv+R0JPAHqV3vYOobxTVnWXeB8vJruEi/zV6k y8v9m0d+uSbWdWrFMy4nk9ff4g1txVTBIhuztjPOw0LglbN8JqyRXBosf8bhzktHBHKj zy2sOQW7QrMYWqQKZKRs+VrPJm4JmMmBOCB8TyMIkrpfKjG2SKbKRfN0441gOIWF6K8c Yc6MoC9fxURgMDBKojUBVPe1ZZIB+ItN54KdpDGRC+3kjGuO2YiLbDn7kgjf9cu+XEzv bysw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771616671; x=1772221471; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=idd3phAMZAFbXYRAtJBjuUopeP1FYK6fM2z0tYAIx5o=; b=pK1lxL+ln7GpjEXEGcBKK5Uv7Be+TvpBC/COkHVmmGjsQZ0a5GpJQOFYf87WzkuGBy eDQ1zrCkvPotdu6SiHnks4khPIps5N/4nvCSsQ/lpXO3tp4rP7+quNC14a43eMkdlNXz FovK8t+TtVHO4mpGGNICGN1jb0UCK3IhgcabHMwO/q+qBFHCgo/tu2KgDmNg09gbfEsp K08Iiw60hyHti5O1E4mgxcj9TJTfV4Tzh1f6dEmf7RNlzZIziRvc44XjU+eeF0uxplQA 9WWHuE+4tJfQEuhGCTcYRV0X2RlpGe9x92/M05ggbgdTQEPGERVkTnEOQwAh6znva8vL 3/8Q== X-Forwarded-Encrypted: i=1; AJvYcCWuoli6Pcc+H0N2kxY3zPD0dKr6PPiqPRZ0pYexGGqhQMFuIjPQfGrHJDReIK32ozGe97vgqiFEK1WmN6A=@vger.kernel.org X-Gm-Message-State: AOJu0YxKzV9RGO8f97aFKEEKX2oZq+lYxcjsR8NClc/mciHATHS92Sf5 wBIkIniMCXSQQ1rVGb1IKwHgUhTi5r4/qJYNT7I9Nycm2WzoExYz38+DM0A1vf1uAsY= X-Gm-Gg: AZuq6aIo5wZFSTVGmNrChi5cgmnhpuxYWRfzrRcCIX35BpZkmykEpyCoHRd4EVQdQyF XIOQVy7xJS/Pt+zK8ZRPRtom1ZSOxZdSuLAWdjpQjM/iwmKIYgwANRA22YB6AqsHpaZiFOuKG1o LnM177Hd8XOrug1lgmwf+AoSNh60a1fzEm3HM5LCb7cu3BuI3yaWwp0SRSU90HRUzH92i3Y/Pao aJMpUIJFk6Iu3yb8ssqZ9T0kv3bxzSlgBLfB6x7FBzemA/AoBUC5+tv4dxsrSWxaeTZMqy0Mc8I NvsmfnLsBlGMt6v11GbsyWkwqn58CDP5is+ZRazQEy/QKN7RU04RtsfG+gOl9ceRKpmiRBUmP7H y3GMHzikwz8JSfr9sNcN9QSGaErhylFjbYY/Bfp1yOo7Wv3pgs5dyJnkzvL7+XdjbR3X+bHHAx9 4RdCbaPu4lmomambzFSWtB X-Received: by 2002:a05:600c:6206:b0:465:a51d:d4 with SMTP id 5b1f17b1804b1-483a95b6debmr11062065e9.6.1771616671414; Fri, 20 Feb 2026 11:44:31 -0800 (PST) Received: from [127.0.1.1] ([210.176.154.34]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-483a3e1b7ccsm24460755e9.11.2026.02.20.11.44.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Feb 2026 11:44:30 -0800 (PST) From: Max Hsu Date: Sat, 21 Feb 2026 03:43:57 +0800 Subject: [PATCH 5/5] riscv: dts: sifive: fu740: add PDMA device node Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260221-pdma-v1-5-838d929c2326@sifive.com> References: <20260221-pdma-v1-0-838d929c2326@sifive.com> In-Reply-To: <20260221-pdma-v1-0-838d929c2326@sifive.com> To: Paul Walmsley , Samuel Holland , Vinod Koul , Frank Li , Green Wan , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Palmer Debbelt , Conor Dooley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti Cc: linux-riscv@lists.infradead.org, dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Paul Walmsley , devicetree@vger.kernel.org, Max Hsu X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1057; i=max.hsu@sifive.com; h=from:subject:message-id; bh=lDR4hwKAnZx7jEioVJrSlzqGnc79ShiEsvnMpfk7hIc=; b=owEB7QES/pANAwAKAdID/Z0HeUC9AcsmYgBpmLl7WJN+KlGhaQDsDQuRh2UU1WfdgPf5OXwRa svTz8p0n+uJAbMEAAEKAB0WIQTqXmcbOhS2KZE9X2jSA/2dB3lAvQUCaZi5ewAKCRDSA/2dB3lA vbM0DAC+ZD2Mg/GWBwIyC/TlvwOiFOFQKy4esK8Dgt7GVcHUUoFwIEAyxbMsk2vMABjwkDseaQA JyDYZmK5sGPB3JK2U39FMzpY/+Zd3Dz7ZfHl2jnzKc++Dbw/1wXnU84mvIueSLfUNY1fKlqGUIX LUg7/2YfBSYRyYfE47D2MsCpLN8F6GHtPnj4GHJqH2uNkvl2dbM9b5eLkXeSYkG3DHnOQZzv3Ud vabdRYU8MyuvDpgrn14qt3NNxOSA2sb/DvXMJpVebiTyLQEi6N5jyW2NXk82YeqS2ORQMgtixxd ZRg/8RVFk1WRcE58fSEjd2fLoeiqVTQqCgPv3/5np+c5WPyZMn24rEC1xK2u2cITJsx7SzRGkRk YSrL1akXMVO1xgvz9D1JQVW4hiNMNfAL5T6ScMh42motZmukkGI9R7TnfsJmPe4mAkk7CuvOY+H ab2MadPqZA3xZ4njdWv4716jypgzPesD26uWEGpwrmw2DGXV47yWdPP+VA+bZ3PKQbw1Y= X-Developer-Key: i=max.hsu@sifive.com; a=openpgp; fpr=EA5E671B3A14B629913D5F68D203FD9D077940BD The FU740 SoC includes a 4-channel Platform DMA (PDMA) controller. Add the device node to enable DMA support. Signed-off-by: Max Hsu --- arch/riscv/boot/dts/sifive/fu740-c000.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/arch/riscv/boot/dts/sifive/fu740-c000.dtsi b/arch/riscv/boot/d= ts/sifive/fu740-c000.dtsi index 6150f3397bff..30d0d6837c57 100644 --- a/arch/riscv/boot/dts/sifive/fu740-c000.dtsi +++ b/arch/riscv/boot/dts/sifive/fu740-c000.dtsi @@ -329,6 +329,15 @@ gpio: gpio@10060000 { clocks =3D <&prci FU740_PRCI_CLK_PCLK>; status =3D "disabled"; }; + dma: dma-controller@3000000 { + compatible =3D "sifive,fu740-c000-pdma", "sifive,pdma0"; + reg =3D <0x0 0x3000000 0x0 0x100000>; + interrupt-parent =3D <&plic0>; + interrupts =3D <11>, <12>, <13>, <14>, <15>, <16>, <17>, <18>; + dma-channels =3D <4>; + clocks =3D <&prci FU740_PRCI_CLK_PCLK>; + #dma-cells =3D <1>; + }; pcie@e00000000 { compatible =3D "sifive,fu740-pcie"; #address-cells =3D <3>; --=20 2.43.0