From nobody Tue Dec 2 00:44:56 2025 Received: from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net [217.70.183.199]) (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 C14A43009F8; Mon, 24 Nov 2025 12:50:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.70.183.199 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763988637; cv=none; b=uX7RXO87QerR0QklOO4z53Z9QqipmwHB+bTfhvjIeV+RN5ZXZqq1SFeYIHgcuna8ZD7DX22kHkOhnUcN0IkDBTg8w4+ZZ+0c3IXgWkhO8Y9M+fgoiShwcIruriVE0P+JFB9BI8O+3irhg5puDuIZbwiRcKe/0zy67RSJhvVYsrE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763988637; c=relaxed/simple; bh=TOm+AG6uF8CfcdSbL2xYPSPWo5+as6JemfuXqaEAOA0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Og6Sm9GZkAWN5eJEVtfNMN1Ms+yN9E2cMqRG484axPBeE3Eehx/lQ8sWnNCvrep0tLzALvMr+b1iPTuDgucyJJizg2MHa0FMMeP/gIJADiiQVip/7tUPlwvSRXb75Xb6tH5arTj0UT7XyxHfC3++IdsCRygO//m7smsLigrt+jo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=yoseli.org; spf=pass smtp.mailfrom=yoseli.org; dkim=pass (2048-bit key) header.d=yoseli.org header.i=@yoseli.org header.b=DUO3Q/4D; arc=none smtp.client-ip=217.70.183.199 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=yoseli.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=yoseli.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=yoseli.org header.i=@yoseli.org header.b="DUO3Q/4D" Received: by mail.gandi.net (Postfix) with ESMTPSA id DFF47443E8; Mon, 24 Nov 2025 12:50:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yoseli.org; s=gm1; t=1763988626; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ehjZNtUsee2gHpqkc7I7IUXRa8sx2e2DcqqUX9xRgSY=; b=DUO3Q/4DEfnPPyeQK/O63oOc6e0fDyr7jVOTmGdBvHqNDGuKxvHNDQigHjpu23MeXtuxTT PjjpU6UBqjHpfB+2mJXFkm6Z5CWVL09GRf0/PisGcbcgwgTjViUBtqIs6MyiKKCLSMjfrA XeHKw+KdWu9mDDkxdXktcP/shwXCLMc/yZw3hvX5btnyeOhPMHCoRoepkwjavXRK/MUQJZ qDDyeP5eUdTguawISOEcaYFuRSKxvPdwVzelt8nKtjv+UU5Ej1ajfsFzKLBiZ89ewGnOHb Q4SDUZ7SRr0xXQjrNHXBVMHmoUdhVGbDLB6DfyxebANwcI2XhxpPVNWsEvJ5WA== From: Jean-Michel Hautbois Date: Mon, 24 Nov 2025 13:50:22 +0100 Subject: [PATCH 1/7] dma: fsl-edma: Add write barrier after TCD descriptor fill 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: <20251124-dma-coldfire-v1-1-dc8f93185464@yoseli.org> References: <20251124-dma-coldfire-v1-0-dc8f93185464@yoseli.org> In-Reply-To: <20251124-dma-coldfire-v1-0-dc8f93185464@yoseli.org> To: Frank Li , Vinod Koul Cc: Greg Ungerer , imx@lists.linux.dev, dmaengine@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-kernel@vger.kernel.org, Jean-Michel Hautbois X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763988624; l=1002; i=jeanmichel.hautbois@yoseli.org; s=20240925; h=from:subject:message-id; bh=TOm+AG6uF8CfcdSbL2xYPSPWo5+as6JemfuXqaEAOA0=; b=8YQJIkpqyGnTjA05bX1fveT2ic+xvpu2zIa3x+BAoyxm8V7OBvQrsPddbXNYQu8lBgSTcvFjC 72dofqLtOIpA+eJFWOZdhvb7RKUsLAhvpBGpRURm9kSV2uR5Y40RYVn X-Developer-Key: i=jeanmichel.hautbois@yoseli.org; a=ed25519; pk=MsMTVmoV69wLIlSkHlFoACIMVNQFyvJzvsJSQsn/kq4= X-GND-State: clean X-GND-Score: -100 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvfeekieegucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuifetpfffkfdpucggtfgfnhhsuhgsshgtrhhisggvnecuuegrihhlohhuthemuceftddunecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefhfffugggtgffkfhgjvfevofesthejredtredtjeenucfhrhhomheplfgvrghnqdfoihgthhgvlhcujfgruhhtsghoihhsuceojhgvrghnmhhitghhvghlrdhhrghuthgsohhisheshihoshgvlhhirdhorhhgqeenucggtffrrghtthgvrhhnpeffjefhtdelhffhheevheeutefghfefteeluedvudfhgeegteeitddtuefhhfelteenucfkphepvdgrtddumegvtdgrmeduieelmeejudegtdemkeeksgefmeehudehfeemtgdvieegmeegfhgsnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepvdgrtddumegvtdgrmeduieelmeejudegtdemkeeksgefmeehudehfeemtgdvieegmeegfhgspdhhvghlohephihoshgvlhhiqdihohgtthhordihohhsvghlihdrohhrghdpmhgrihhlfhhrohhmpehjvggrnhhmihgthhgvlhdrhhgruhhtsghoihhsseihohhsvghlihdrohhrghdpnhgspghrtghpthhtohepkedprhgtphhtthhopegumhgrvghnghhinhgvsehvghgvrhdrkhgvrhhnvghlrdhorhhgpdhrtghpthhtohepjhgvrghnmhhitghhvghlrdhhrghuthgsohhisheshihoshgvlhhirdhorhhgpdhrt ghpthhtohepghgvrhhgsehlihhnuhigqdhmieekkhdrohhrghdprhgtphhtthhopefhrhgrnhhkrdfnihesnhigphdrtghomhdprhgtphhtthhopehvkhhouhhlsehkvghrnhgvlhdrohhrghdprhgtphhtthhopehlihhnuhigqdhkvghrnhgvlhesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopehimhigsehlihhsthhsrdhlihhnuhigrdguvghvpdhrtghpthhtoheplhhinhhugidqmheikehksehlihhsthhsrdhlihhnuhigqdhmieekkhdrohhrgh X-GND-Sasl: jeanmichel.hautbois@yoseli.org Add dma_wmb() barrier after filling TCD descriptors to ensure all descriptor writes are visible to the DMA engine before starting transfers. This prevents potential race conditions where the DMA hardware might read partially written descriptors. Signed-off-by: Jean-Michel Hautbois --- drivers/dma/fsl-edma-common.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/dma/fsl-edma-common.c b/drivers/dma/fsl-edma-common.c index 4976d7dde08090d16277af4b9f784b9745485320..db36a6aafc910364d75ce6c5d33= 4fd19d2120b6b 100644 --- a/drivers/dma/fsl-edma-common.c +++ b/drivers/dma/fsl-edma-common.c @@ -553,6 +553,9 @@ void fsl_edma_fill_tcd(struct fsl_edma_chan *fsl_chan, fsl_edma_set_tcd_to_le(fsl_chan, tcd, csr, csr); =20 trace_edma_fill_tcd(fsl_chan, tcd); + + /* Ensure descriptor writes are visible to DMA engine */ + dma_wmb(); } =20 static struct fsl_edma_desc *fsl_edma_alloc_desc(struct fsl_edma_chan *fsl= _chan, --=20 2.39.5 From nobody Tue Dec 2 00:44:56 2025 Received: from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net [217.70.183.199]) (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 B3544301039; Mon, 24 Nov 2025 12:50:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.70.183.199 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763988638; cv=none; b=sgkXduNooXjCU0P9tm/jJ3dre7qi/8ju8Lndk49NwOftzKXQ3RQN0M4528D5zJM4K0dHC7SHdrnMDjfuUR1UXxpeZj5PbKgYfhFywrCg+r6I7LDS5regOIOZNc8/rgcUXw/nAiCLwEPdE7Xp85b8qHZ2T+iD0FkU8WN6oV4/TVs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763988638; c=relaxed/simple; bh=NC3qxNqmP4HK1nvjbqrndKPXY2/Q9zKHsvGxZJ8Uckk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=utaUuV5kNoCEXDW4010D6ZgkOLeARvOpaoD7oZCYtu5PEEcP0zzLVSjpprynI/D+qD/NklTkE86e9M53waE/wJ1NyJgNoNgZK9Kkr7PBH0vslmrchTSxmg6zI3ybpCBFK+dMd6YQUmmXA+VO3oS1Hur2bq4AuS7fYAORoj67f5U= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=yoseli.org; spf=pass smtp.mailfrom=yoseli.org; dkim=pass (2048-bit key) header.d=yoseli.org header.i=@yoseli.org header.b=ovijoCbJ; arc=none smtp.client-ip=217.70.183.199 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=yoseli.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=yoseli.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=yoseli.org header.i=@yoseli.org header.b="ovijoCbJ" Received: by mail.gandi.net (Postfix) with ESMTPSA id F1372443F0; Mon, 24 Nov 2025 12:50:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yoseli.org; s=gm1; t=1763988627; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=qm+mub2CsjoKJKFrgQvB1fzGBYlrYQ1WARbF1U7F/co=; b=ovijoCbJXm46QY2vkR+tUzKLVpdohQQHIQSxdRyJbDjQqUEpi6ktp+els0OK6uDNGOoNsB Yja6E7kOz42KDyjMLdrIlN+xoEalI55jghLx6zdNjOOhVyyisbOs4sTrUGpiFNO23swIO0 a5cxTkBxVEhAZ5AHShwHoTggWaIzBC7JDyi5srRL87787z24zLwv3L4o01u171KICVTMAa wK8gfIsuCdITeRK0OD20N8k1YZk0BuBnlH6E1lbuudZ5m61U2xZmqU2AW7htONwpVrMPh2 aD5YaOIKG1CcKf7SxqbadsaGYUgIc5pXScWLWEMl7LPa11jINrf4gelC6r+MOg== From: Jean-Michel Hautbois Date: Mon, 24 Nov 2025 13:50:23 +0100 Subject: [PATCH 2/7] dma: fsl-edma: Add FSL_EDMA_DRV_MCF flag for ColdFire eDMA 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: <20251124-dma-coldfire-v1-2-dc8f93185464@yoseli.org> References: <20251124-dma-coldfire-v1-0-dc8f93185464@yoseli.org> In-Reply-To: <20251124-dma-coldfire-v1-0-dc8f93185464@yoseli.org> To: Frank Li , Vinod Koul Cc: Greg Ungerer , imx@lists.linux.dev, dmaengine@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-kernel@vger.kernel.org, Jean-Michel Hautbois X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763988624; l=2569; i=jeanmichel.hautbois@yoseli.org; s=20240925; h=from:subject:message-id; bh=NC3qxNqmP4HK1nvjbqrndKPXY2/Q9zKHsvGxZJ8Uckk=; b=qGB8yWl6L08p1IXyt7ydTMeOGc6tztSHwFnrsTGl3ZQDMM0uvRo2fVaGMNG5gagj5wbuEMAzY Y2tvCmJ3EAGC80Em5EHN4x1hiNaBkIoB9OyvH/utTCHBL8xkdx2jQ8I X-Developer-Key: i=jeanmichel.hautbois@yoseli.org; a=ed25519; pk=MsMTVmoV69wLIlSkHlFoACIMVNQFyvJzvsJSQsn/kq4= X-GND-State: clean X-GND-Score: -100 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvfeekieegucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuifetpfffkfdpucggtfgfnhhsuhgsshgtrhhisggvnecuuegrihhlohhuthemuceftddunecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefhfffugggtgffkfhgjvfevofesthejredtredtjeenucfhrhhomheplfgvrghnqdfoihgthhgvlhcujfgruhhtsghoihhsuceojhgvrghnmhhitghhvghlrdhhrghuthgsohhisheshihoshgvlhhirdhorhhgqeenucggtffrrghtthgvrhhnpeffjefhtdelhffhheevheeutefghfefteeluedvudfhgeegteeitddtuefhhfelteenucfkphepvdgrtddumegvtdgrmeduieelmeejudegtdemkeeksgefmeehudehfeemtgdvieegmeegfhgsnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepvdgrtddumegvtdgrmeduieelmeejudegtdemkeeksgefmeehudehfeemtgdvieegmeegfhgspdhhvghlohephihoshgvlhhiqdihohgtthhordihohhsvghlihdrohhrghdpmhgrihhlfhhrohhmpehjvggrnhhmihgthhgvlhdrhhgruhhtsghoihhsseihohhsvghlihdrohhrghdpnhgspghrtghpthhtohepkedprhgtphhtthhopegumhgrvghnghhinhgvsehvghgvrhdrkhgvrhhnvghlrdhorhhgpdhrtghpthhtohepjhgvrghnmhhitghhvghlrdhhrghuthgsohhisheshihoshgvlhhirdhorhhgpdhrt ghpthhtohepghgvrhhgsehlihhnuhigqdhmieekkhdrohhrghdprhgtphhtthhopefhrhgrnhhkrdfnihesnhigphdrtghomhdprhgtphhtthhopehvkhhouhhlsehkvghrnhgvlhdrohhrghdprhgtphhtthhopehlihhnuhigqdhkvghrnhgvlhesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopehimhigsehlihhsthhsrdhlihhnuhigrdguvghvpdhrtghpthhtoheplhhinhhugidqmheikehksehlihhsthhsrdhlihhnuhigqdhmieekkhdrohhrgh X-GND-Sasl: jeanmichel.hautbois@yoseli.org Add FSL_EDMA_DRV_MCF driver flag to identify MCF ColdFire eDMA controllers which have a native M68K register layout. The edma_writeb() function applies an XOR ^ 0x3 byte-lane adjustment for big-endian eDMA controllers where byte registers within a 32-bit word need address correction. However, the MCF54418 eDMA 8-bit registers (SERQ, CERQ, SEEI, CEEI, CINT, CERR, SSRT, CDNE) are located at sequential byte addresses (0x4018-0x401F) as documented in the MCF54418 Reference Manual Table 19-2. No byte-lane adjustment is needed, as applying the XOR causes writes to target incorrect registers (writing to CERR at 0x401D would actually access SSRT at 0x401E). Set this flag in the MCF eDMA driver to bypass the XOR adjustment and access registers at their documented addresses. Signed-off-by: Jean-Michel Hautbois Reviewed-by: Frank Li --- drivers/dma/fsl-edma-common.h | 5 ++++- drivers/dma/mcf-edma-main.c | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/dma/fsl-edma-common.h b/drivers/dma/fsl-edma-common.h index 205a96489094805aa728b72a51ae101cd88fa003..4c86f2f39c1db9a812245fe8575= 5ec8d1169c44c 100644 --- a/drivers/dma/fsl-edma-common.h +++ b/drivers/dma/fsl-edma-common.h @@ -225,6 +225,8 @@ struct fsl_edma_desc { #define FSL_EDMA_DRV_TCD64 BIT(15) /* All channel ERR IRQ share one IRQ line */ #define FSL_EDMA_DRV_ERRIRQ_SHARE BIT(16) +/* MCF eDMA: Different register layout, no XOR for byte access */ +#define FSL_EDMA_DRV_MCF BIT(17) =20 =20 #define FSL_EDMA_DRV_EDMA3 (FSL_EDMA_DRV_SPLIT_REG | \ @@ -419,7 +421,8 @@ static inline void edma_writeb(struct fsl_edma_engine *= edma, u8 val, void __iomem *addr) { /* swap the reg offset for these in big-endian mode */ - if (edma->big_endian) + /* MCF eDMA has different register layout, no XOR needed */ + if (edma->big_endian && !(edma->drvdata->flags & FSL_EDMA_DRV_MCF)) iowrite8(val, (void __iomem *)((unsigned long)addr ^ 0x3)); else iowrite8(val, addr); diff --git a/drivers/dma/mcf-edma-main.c b/drivers/dma/mcf-edma-main.c index 9e1c6400c77be237684855759382d7b7bd2e6ea0..f95114829d8006fe4558169888f= f38037d7610de 100644 --- a/drivers/dma/mcf-edma-main.c +++ b/drivers/dma/mcf-edma-main.c @@ -145,7 +145,7 @@ static void mcf_edma_irq_free(struct platform_device *p= dev, } =20 static struct fsl_edma_drvdata mcf_data =3D { - .flags =3D FSL_EDMA_DRV_EDMA64, + .flags =3D FSL_EDMA_DRV_EDMA64 | FSL_EDMA_DRV_MCF, .setup_irq =3D mcf_edma_irq_init, }; =20 --=20 2.39.5 From nobody Tue Dec 2 00:44:56 2025 Received: from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net [217.70.183.199]) (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 743B830148C; Mon, 24 Nov 2025 12:50:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.70.183.199 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763988638; cv=none; b=C+uRbcH+VvGtC7ietV+mQp+KW91js/ZPbalARne2NLphuIB4Z+H756N3k0FAt+zgSSXzXO2p+Mpc1PhdKzWoMaflMOzP5sRCsuF1cA73N3cm0/JB4uA6ZRMlYlPTw+R8xtIAoQLYusdNleq3n/96j+8azDYHNWGtYAroPPuORFU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763988638; c=relaxed/simple; bh=PxyHjH/UiLxDT0MWhbZ4dz/BirBhchQz9nA3F2FTYp8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sLe9CkB5tl9/HukKHmEjUpoz+1J3UDT26fmZdJczmYngPL1vPvJ4ecLxzhnviTpOqGEl4aFT+nhf8SqNPSOhbUJLZhIv6bpqXFvex7h80fDRTYFzAoNmp2idS0YNeIXloBBlSQxVpLHreOuzeeXi4ho0UOxxmMv9chvOm2VUR/0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=yoseli.org; spf=pass smtp.mailfrom=yoseli.org; dkim=pass (2048-bit key) header.d=yoseli.org header.i=@yoseli.org header.b=CJRdsx3Z; arc=none smtp.client-ip=217.70.183.199 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=yoseli.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=yoseli.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=yoseli.org header.i=@yoseli.org header.b="CJRdsx3Z" Received: by mail.gandi.net (Postfix) with ESMTPSA id 06413443ED; Mon, 24 Nov 2025 12:50:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yoseli.org; s=gm1; t=1763988628; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ozLzF+fWx01MoD9aQyXZjPvCyi55DbAMQ97yOxrC6OI=; b=CJRdsx3ZnYjQiURA3jbjwk+GFY7Fqby0xLMgKfYfax6VlbU16WPGCIylgKt3AqWGgIxH5d fQSfQd1YqYFKWf+zu8EqoMPFwAhXcPI5V7nLQQ5EvrMDv92lEsa48bG8UrYKjr/jaNrbQw XeEf0eCZ9y1RuaOPkmCk6sW7xpQsnUVRBJUlt76NuKs8Xid7j3fmdaNAYuBX0+FCkAUQt1 DASdw6VulebrWxs78+gi2WBOhjOFGBaWjhaybbt0tGJ4Oh8gTpEGkckgU+AwQzzA3i3nU0 crVehfN91F+jEsZcez7QOWsXuwflJzBUZRs5XtP9tUm7RWgBqOfRdIgn1zxFVw== From: Jean-Michel Hautbois Date: Mon, 24 Nov 2025 13:50:24 +0100 Subject: [PATCH 3/7] dma: mcf-edma: Add per-channel IRQ naming for debugging 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: <20251124-dma-coldfire-v1-3-dc8f93185464@yoseli.org> References: <20251124-dma-coldfire-v1-0-dc8f93185464@yoseli.org> In-Reply-To: <20251124-dma-coldfire-v1-0-dc8f93185464@yoseli.org> To: Frank Li , Vinod Koul Cc: Greg Ungerer , imx@lists.linux.dev, dmaengine@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-kernel@vger.kernel.org, Jean-Michel Hautbois X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763988624; l=2436; i=jeanmichel.hautbois@yoseli.org; s=20240925; h=from:subject:message-id; bh=PxyHjH/UiLxDT0MWhbZ4dz/BirBhchQz9nA3F2FTYp8=; b=bco11Z9osduN8tdyp+sOFgrSrlK9smZin/Ub2zzTWzUUv3LzWlg7qMttYwb7bjWil7DtHqtBh odXXRGQD2zlDML7pghxGGGgcQnRD73PgJT+tUSJKZcNOJ/xbgpOADJo X-Developer-Key: i=jeanmichel.hautbois@yoseli.org; a=ed25519; pk=MsMTVmoV69wLIlSkHlFoACIMVNQFyvJzvsJSQsn/kq4= X-GND-State: clean X-GND-Score: -100 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvfeekieegucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuifetpfffkfdpucggtfgfnhhsuhgsshgtrhhisggvnecuuegrihhlohhuthemuceftddunecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefhfffugggtgffkfhgjvfevofesthejredtredtjeenucfhrhhomheplfgvrghnqdfoihgthhgvlhcujfgruhhtsghoihhsuceojhgvrghnmhhitghhvghlrdhhrghuthgsohhisheshihoshgvlhhirdhorhhgqeenucggtffrrghtthgvrhhnpeffjefhtdelhffhheevheeutefghfefteeluedvudfhgeegteeitddtuefhhfelteenucfkphepvdgrtddumegvtdgrmeduieelmeejudegtdemkeeksgefmeehudehfeemtgdvieegmeegfhgsnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepvdgrtddumegvtdgrmeduieelmeejudegtdemkeeksgefmeehudehfeemtgdvieegmeegfhgspdhhvghlohephihoshgvlhhiqdihohgtthhordihohhsvghlihdrohhrghdpmhgrihhlfhhrohhmpehjvggrnhhmihgthhgvlhdrhhgruhhtsghoihhsseihohhsvghlihdrohhrghdpnhgspghrtghpthhtohepkedprhgtphhtthhopegumhgrvghnghhinhgvsehvghgvrhdrkhgvrhhnvghlrdhorhhgpdhrtghpthhtohepjhgvrghnmhhitghhvghlrdhhrghuthgsohhisheshihoshgvlhhirdhorhhgpdhrt ghpthhtohepghgvrhhgsehlihhnuhigqdhmieekkhdrohhrghdprhgtphhtthhopefhrhgrnhhkrdfnihesnhigphdrtghomhdprhgtphhtthhopehvkhhouhhlsehkvghrnhgvlhdrohhrghdprhgtphhtthhopehlihhnuhigqdhkvghrnhgvlhesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopehimhigsehlihhsthhsrdhlihhnuhigrdguvghvpdhrtghpthhtoheplhhinhhugidqmheikehksehlihhsthhsrdhlihhnuhigqdhmieekkhdrohhrgh X-GND-Sasl: jeanmichel.hautbois@yoseli.org Add dynamic per-channel IRQ naming to make DMA interrupt identification easier in /proc/interrupts and debugging tools. Instead of all channels showing "eDMA", they now show: - "eDMA-0" through "eDMA-15" for channels 0-15 - "eDMA-16" through "eDMA-55" for channels 16-55 - "eDMA-tx-56" for the shared channel 56-63 interrupt - "eDMA-err" for the error interrupt This aids debugging DMA issues by making it clear which channel's interrupt is being serviced. Signed-off-by: Jean-Michel Hautbois --- drivers/dma/mcf-edma-main.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/drivers/dma/mcf-edma-main.c b/drivers/dma/mcf-edma-main.c index f95114829d8006fe4558169888ff38037d7610de..8a7c1787adb1f66f3b672990363= 5b072218afad1 100644 --- a/drivers/dma/mcf-edma-main.c +++ b/drivers/dma/mcf-edma-main.c @@ -81,8 +81,12 @@ static int mcf_edma_irq_init(struct platform_device *pde= v, if (!res) return -1; =20 - for (ret =3D 0, i =3D res->start; i <=3D res->end; ++i) - ret |=3D request_irq(i, mcf_edma_tx_handler, 0, "eDMA", mcf_edma); + for (ret =3D 0, i =3D res->start; i <=3D res->end; ++i) { + char *irq_name =3D devm_kasprintf(&pdev->dev, GFP_KERNEL, + "eDMA-%d", i - res->start); + + ret |=3D request_irq(i, mcf_edma_tx_handler, 0, irq_name, mcf_edma); + } if (ret) return ret; =20 @@ -91,15 +95,19 @@ static int mcf_edma_irq_init(struct platform_device *pd= ev, if (!res) return -1; =20 - for (ret =3D 0, i =3D res->start; i <=3D res->end; ++i) - ret |=3D request_irq(i, mcf_edma_tx_handler, 0, "eDMA", mcf_edma); + for (ret =3D 0, i =3D res->start; i <=3D res->end; ++i) { + char *irq_name =3D devm_kasprintf(&pdev->dev, GFP_KERNEL, + "eDMA-%d", 16 + i - res->start); + + ret |=3D request_irq(i, mcf_edma_tx_handler, 0, irq_name, mcf_edma); + } if (ret) return ret; =20 ret =3D platform_get_irq_byname(pdev, "edma-tx-56-63"); if (ret !=3D -ENXIO) { ret =3D request_irq(ret, mcf_edma_tx_handler, - 0, "eDMA", mcf_edma); + 0, "eDMA-tx-56", mcf_edma); if (ret) return ret; } @@ -107,7 +115,7 @@ static int mcf_edma_irq_init(struct platform_device *pd= ev, ret =3D platform_get_irq_byname(pdev, "edma-err"); if (ret !=3D -ENXIO) { ret =3D request_irq(ret, mcf_edma_err_handler, - 0, "eDMA", mcf_edma); + 0, "eDMA-err", mcf_edma); if (ret) return ret; } --=20 2.39.5 From nobody Tue Dec 2 00:44:56 2025 Received: from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net [217.70.183.199]) (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 761A830101A; Mon, 24 Nov 2025 12:50:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.70.183.199 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763988641; cv=none; b=keFTQPzKqna2zxmWTN6K9S84zgAs2AN9ZrR650LNKnI6gqfg6XZOtVuMFls8yPHClMrKg6xxS7JrKBPWXbR13YJ8gdzy0JwKt6FZOADHrOeTAjkpXrRc5o3uLagTULQm2Owzyfn4FPOOeJqjjBSUCOBNMNyvYnCCLoB26b3JZNk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763988641; c=relaxed/simple; bh=8QaBSNeO5kdt+ln9LrPGqaa9zAB6if0CpaKn6ztCju4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DiaRlugQaPcydbVLrP//p7ZAPulmecIGlMXHDma00d6m11yVkAcubAxtIS8hvsiAMUjRKiGL+7HUPW/kBRONRWIBkqYDX8MrfzOyE1iCw9ClYht0KcqKUpS7poV9L+lcNicmNDlnDpvZDyn+29oDoEg5B8f8Xw7RRWLbIH/Jw5w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=yoseli.org; spf=pass smtp.mailfrom=yoseli.org; dkim=pass (2048-bit key) header.d=yoseli.org header.i=@yoseli.org header.b=UVOph1kT; arc=none smtp.client-ip=217.70.183.199 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=yoseli.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=yoseli.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=yoseli.org header.i=@yoseli.org header.b="UVOph1kT" Received: by mail.gandi.net (Postfix) with ESMTPSA id 1D3D14439A; Mon, 24 Nov 2025 12:50:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yoseli.org; s=gm1; t=1763988630; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=lJi0EEOLF66K6fXIemZGZRw8QFUtMWuNIXre435RcYA=; b=UVOph1kTSpJbSVFk3tvG7/Hi5yqgtCk18z1xrAoyG7xcSsNDMsKu4EkGyoYILcs8x++c9z vFa3PRRylRTat8PF+2VJgubk8UmW+MtyqU0h5ryeI1BF080ZMJgdKGscc4UJe/gI3tWdIS nAmN01Z2apdSCnzRO+qaO512ELI0/Crg4aRmwR++fxxe5nHMutATjxvnASAZnMi1gQxZVb gxReGkAi4Tn7XNavm04IKELQ4HBFqADmRdxXG1+rufkXg4eLojhlA52kYwrhUbid1WPau+ xUQLnL+x48Gtn92EdbrZYj6ohqsfq1vfTl2Xz+t5dzwnyemAbmxuQUa8Sorpeg== From: Jean-Michel Hautbois Date: Mon, 24 Nov 2025 13:50:25 +0100 Subject: [PATCH 4/7] dma: mcf-edma: Fix interrupt handler for 64 DMA channels 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: <20251124-dma-coldfire-v1-4-dc8f93185464@yoseli.org> References: <20251124-dma-coldfire-v1-0-dc8f93185464@yoseli.org> In-Reply-To: <20251124-dma-coldfire-v1-0-dc8f93185464@yoseli.org> To: Frank Li , Vinod Koul Cc: Greg Ungerer , imx@lists.linux.dev, dmaengine@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-kernel@vger.kernel.org, Jean-Michel Hautbois X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763988624; l=1748; i=jeanmichel.hautbois@yoseli.org; s=20240925; h=from:subject:message-id; bh=8QaBSNeO5kdt+ln9LrPGqaa9zAB6if0CpaKn6ztCju4=; b=nTQkhwNpZuZNtopipUrgh4Bamgu+noJJ30i88aDiz3p9k+OYlWp9HPOhWXG5PsswvIlTfQksb t5Dhfp174RMBeCwkS7MqC/7mGBpqdjkyEwMh9HzD7jTeXuIb6kbL56I X-Developer-Key: i=jeanmichel.hautbois@yoseli.org; a=ed25519; pk=MsMTVmoV69wLIlSkHlFoACIMVNQFyvJzvsJSQsn/kq4= X-GND-State: clean X-GND-Score: -100 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvfeekieegucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuifetpfffkfdpucggtfgfnhhsuhgsshgtrhhisggvnecuuegrihhlohhuthemuceftddunecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefhfffugggtgffkfhgjvfevofesthejredtredtjeenucfhrhhomheplfgvrghnqdfoihgthhgvlhcujfgruhhtsghoihhsuceojhgvrghnmhhitghhvghlrdhhrghuthgsohhisheshihoshgvlhhirdhorhhgqeenucggtffrrghtthgvrhhnpeffjefhtdelhffhheevheeutefghfefteeluedvudfhgeegteeitddtuefhhfelteenucfkphepvdgrtddumegvtdgrmeduieelmeejudegtdemkeeksgefmeehudehfeemtgdvieegmeegfhgsnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepvdgrtddumegvtdgrmeduieelmeejudegtdemkeeksgefmeehudehfeemtgdvieegmeegfhgspdhhvghlohephihoshgvlhhiqdihohgtthhordihohhsvghlihdrohhrghdpmhgrihhlfhhrohhmpehjvggrnhhmihgthhgvlhdrhhgruhhtsghoihhsseihohhsvghlihdrohhrghdpnhgspghrtghpthhtohepkedprhgtphhtthhopegumhgrvghnghhinhgvsehvghgvrhdrkhgvrhhnvghlrdhorhhgpdhrtghpthhtohepjhgvrghnmhhitghhvghlrdhhrghuthgsohhisheshihoshgvlhhirdhorhhgpdhrt ghpthhtohepghgvrhhgsehlihhnuhigqdhmieekkhdrohhrghdprhgtphhtthhopefhrhgrnhhkrdfnihesnhigphdrtghomhdprhgtphhtthhopehvkhhouhhlsehkvghrnhgvlhdrohhrghdprhgtphhtthhopehlihhnuhigqdhkvghrnhgvlhesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopehimhigsehlihhsthhsrdhlihhnuhigrdguvghvpdhrtghpthhtoheplhhinhhugidqmheikehksehlihhsthhsrdhlihhnuhigqdhmieekkhdrohhrgh X-GND-Sasl: jeanmichel.hautbois@yoseli.org Fix the DMA completion interrupt handler to properly handle all 64 channels on MCF54418 ColdFire processors. The previous code used BIT(ch) to test interrupt status bits, which causes undefined behavior on 32-bit architectures when ch >=3D 32 because unsigned long is 32 bits and the shift would exceed the type width. Replace with bitmap_from_u64() and for_each_set_bit() which correctly handle 64-bit values on 32-bit systems by using a proper bitmap representation. Signed-off-by: Jean-Michel Hautbois Reviewed-by: Frank Li --- drivers/dma/mcf-edma-main.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/dma/mcf-edma-main.c b/drivers/dma/mcf-edma-main.c index 8a7c1787adb1f66f3b6729903635b072218afad1..dd64f50f2b0a70a4664b03c7d6a= 23e74c9bcd7ae 100644 --- a/drivers/dma/mcf-edma-main.c +++ b/drivers/dma/mcf-edma-main.c @@ -18,7 +18,8 @@ static irqreturn_t mcf_edma_tx_handler(int irq, void *dev= _id) { struct fsl_edma_engine *mcf_edma =3D dev_id; struct edma_regs *regs =3D &mcf_edma->regs; - unsigned int ch; + unsigned long ch; + DECLARE_BITMAP(status_mask, 64); u64 intmap; =20 intmap =3D ioread32(regs->inth); @@ -27,11 +28,11 @@ static irqreturn_t mcf_edma_tx_handler(int irq, void *d= ev_id) if (!intmap) return IRQ_NONE; =20 - for (ch =3D 0; ch < mcf_edma->n_chans; ch++) { - if (intmap & BIT(ch)) { - iowrite8(EDMA_MASK_CH(ch), regs->cint); - fsl_edma_tx_chan_handler(&mcf_edma->chans[ch]); - } + bitmap_from_u64(status_mask, intmap); + + for_each_set_bit(ch, status_mask, mcf_edma->n_chans) { + iowrite8(EDMA_MASK_CH(ch), regs->cint); + fsl_edma_tx_chan_handler(&mcf_edma->chans[ch]); } =20 return IRQ_HANDLED; --=20 2.39.5 From nobody Tue Dec 2 00:44:56 2025 Received: from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net [217.70.183.199]) (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 8C1A13019D8; Mon, 24 Nov 2025 12:50:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.70.183.199 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763988641; cv=none; b=mnWsv+tDVJnsUOZtKJVLRukIFWwfo4+yOrhLTn57KdTCdYSUYIMnHU2arAOhI5YwzA4lwh2hZgTjan/4Nyko6pV2f6jY460cd8i7OUvqEA75gJo6I+JOQN5k50wmmB5xhvhC+R/aCuomnCy3OzvmIWbS62H8uqACvZ503GyD0is= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763988641; c=relaxed/simple; bh=va9Btmq0fbQ8/UccRYS5f0pnh1pGaTMnXaLt4GgFyE4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=eEFoc3aAnRmJHe577KakXTj9S495es0Dmx5l0M03t2yNet7lb7ov/XSM+3R0Ypd7R449SPhChKBRuUJ+u797FGH+bNaeRRnCpSPJ1r3zi4balJv4xORloRvp/y1bYI0EEhmodv1MlRWbCrdniXKtZHpfD1wS4fitiT6F0rH5SmQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=yoseli.org; spf=pass smtp.mailfrom=yoseli.org; dkim=pass (2048-bit key) header.d=yoseli.org header.i=@yoseli.org header.b=dCE/EADP; arc=none smtp.client-ip=217.70.183.199 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=yoseli.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=yoseli.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=yoseli.org header.i=@yoseli.org header.b="dCE/EADP" Received: by mail.gandi.net (Postfix) with ESMTPSA id 2E70A443F2; Mon, 24 Nov 2025 12:50:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yoseli.org; s=gm1; t=1763988631; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7ZtBQiByJLXTd7tTZYVsrh3HjYSN2tUwTsUZ2S4eorM=; b=dCE/EADPCiUx/BmWcaQ91hKfGmfXq+LjtqIgKmF2lGiKgn4/nJ78cHSVJ4jjRpaLCF4xjm 7gZ+XdXJ1Jq3198HOrbDyTCr1lZZQXKf03PUji7c4V5uz15ivq26BLLmld6iepm042U+hm 6J3DqpJU4jAVWgzrz7rnE+HvXtaNxed1wdLeducplH2ILL4SCMnESkg/KFZIZkX/9aVwrl iJPoJM8OBrLV+TgZl3+QdMiUSnKv4e26vgpFpmgO9rOCU64rqYfIsLcSHjwD0Oj/iuwmUH jdcwD7AQ85d5xSIgRhpN21S+6DXcVM7DaPMk9etinKnVlj4Y1W1ZoQUZR/xBFw== From: Jean-Michel Hautbois Date: Mon, 24 Nov 2025 13:50:26 +0100 Subject: [PATCH 5/7] dma: fsl-edma: Move error handler out of header file 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: <20251124-dma-coldfire-v1-5-dc8f93185464@yoseli.org> References: <20251124-dma-coldfire-v1-0-dc8f93185464@yoseli.org> In-Reply-To: <20251124-dma-coldfire-v1-0-dc8f93185464@yoseli.org> To: Frank Li , Vinod Koul Cc: Greg Ungerer , imx@lists.linux.dev, dmaengine@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-kernel@vger.kernel.org, Jean-Michel Hautbois X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763988624; l=1852; i=jeanmichel.hautbois@yoseli.org; s=20240925; h=from:subject:message-id; bh=va9Btmq0fbQ8/UccRYS5f0pnh1pGaTMnXaLt4GgFyE4=; b=U+7OL0mSSRtoc1L1IzHaoAh3XKB++Gghc/o8riySTGs8840ZQW83gYZJVA9DyfGUs/Ojx8q5p NVkDcnZ1NJlDVcCR8Uo9EWSysAc5TiM58JZliwIUv+fK1JQRRZKdOWY X-Developer-Key: i=jeanmichel.hautbois@yoseli.org; a=ed25519; pk=MsMTVmoV69wLIlSkHlFoACIMVNQFyvJzvsJSQsn/kq4= X-GND-State: clean X-GND-Score: -100 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvfeekieegucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuifetpfffkfdpucggtfgfnhhsuhgsshgtrhhisggvnecuuegrihhlohhuthemuceftddunecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefhfffugggtgffkfhgjvfevofesthejredtredtjeenucfhrhhomheplfgvrghnqdfoihgthhgvlhcujfgruhhtsghoihhsuceojhgvrghnmhhitghhvghlrdhhrghuthgsohhisheshihoshgvlhhirdhorhhgqeenucggtffrrghtthgvrhhnpeffjefhtdelhffhheevheeutefghfefteeluedvudfhgeegteeitddtuefhhfelteenucfkphepvdgrtddumegvtdgrmeduieelmeejudegtdemkeeksgefmeehudehfeemtgdvieegmeegfhgsnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehinhgvthepvdgrtddumegvtdgrmeduieelmeejudegtdemkeeksgefmeehudehfeemtgdvieegmeegfhgspdhhvghlohephihoshgvlhhiqdihohgtthhordihohhsvghlihdrohhrghdpmhgrihhlfhhrohhmpehjvggrnhhmihgthhgvlhdrhhgruhhtsghoihhsseihohhsvghlihdrohhrghdpnhgspghrtghpthhtohepkedprhgtphhtthhopegumhgrvghnghhinhgvsehvghgvrhdrkhgvrhhnvghlrdhorhhgpdhrtghpthhtohepjhgvrghnmhhitghhvghlrdhhrghuthgsohhisheshihoshgvlhhirdhorhhgpdhrt ghpthhtohepghgvrhhgsehlihhnuhigqdhmieekkhdrohhrghdprhgtphhtthhopefhrhgrnhhkrdfnihesnhigphdrtghomhdprhgtphhtthhopehvkhhouhhlsehkvghrnhgvlhdrohhrghdprhgtphhtthhopehlihhnuhigqdhkvghrnhgvlhesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopehimhigsehlihhsthhsrdhlihhnuhigrdguvghvpdhrtghpthhtoheplhhinhhugidqmheikehksehlihhsthhsrdhlihhnuhigqdhmieekkhdrohhrgh X-GND-Sasl: jeanmichel.hautbois@yoseli.org Move fsl_edma_err_chan_handler from an inline function in the header to a proper function in fsl-edma-common.c. This prepares for MCF ColdFire eDMA support where the error handler needs to be called from the MCF-specific error interrupt handler. No functional change for existing users. Signed-off-by: Jean-Michel Hautbois Reviewed-by: Frank Li --- drivers/dma/fsl-edma-common.c | 5 +++++ drivers/dma/fsl-edma-common.h | 6 +----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/dma/fsl-edma-common.c b/drivers/dma/fsl-edma-common.c index db36a6aafc910364d75ce6c5d334fd19d2120b6b..40ac6a7d8480b9ed2c6a2bdec59= b4fda5fcb6271 100644 --- a/drivers/dma/fsl-edma-common.c +++ b/drivers/dma/fsl-edma-common.c @@ -44,6 +44,11 @@ #define EDMA64_ERRH 0x28 #define EDMA64_ERRL 0x2c =20 +void fsl_edma_err_chan_handler(struct fsl_edma_chan *fsl_chan) +{ + fsl_chan->status =3D DMA_ERROR; +} + void fsl_edma_tx_chan_handler(struct fsl_edma_chan *fsl_chan) { spin_lock(&fsl_chan->vchan.lock); diff --git a/drivers/dma/fsl-edma-common.h b/drivers/dma/fsl-edma-common.h index 4c86f2f39c1db9a812245fe85755ec8d1169c44c..64b537527291795964a77a90211= 92a39756b6987 100644 --- a/drivers/dma/fsl-edma-common.h +++ b/drivers/dma/fsl-edma-common.h @@ -478,11 +478,7 @@ static inline struct fsl_edma_desc *to_fsl_edma_desc(s= truct virt_dma_desc *vd) return container_of(vd, struct fsl_edma_desc, vdesc); } =20 -static inline void fsl_edma_err_chan_handler(struct fsl_edma_chan *fsl_cha= n) -{ - fsl_chan->status =3D DMA_ERROR; -} - +void fsl_edma_err_chan_handler(struct fsl_edma_chan *fsl_chan); void fsl_edma_tx_chan_handler(struct fsl_edma_chan *fsl_chan); void fsl_edma_disable_request(struct fsl_edma_chan *fsl_chan); void fsl_edma_chan_mux(struct fsl_edma_chan *fsl_chan, --=20 2.39.5 From nobody Tue Dec 2 00:44:56 2025 Received: from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net [217.70.183.199]) (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 C4E0B2874FE; Mon, 24 Nov 2025 12:50:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.70.183.199 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763988636; cv=none; b=miSISEl7frP3d9WvuhAU4yRG/L37WUZnbuP0EwAdLqcg7EUQzomTxVN1dfuUudKLNw4wU438gmlsZbzMbH/Z7QtX6mKFWoKWv4HpVQ/cKT+nDfDVaKrtfXKSPTcX0Uu2ggW5NJakQNgpvgNxO1lW8zSJJ9rC1uPCijN3Aa6q75o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763988636; c=relaxed/simple; bh=Am/rzQ0IYN1ljIZfblco1hpJOru0W+mU/bl94mc/5G4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gjdi4bLM2WoCzr4XMDP31PIdciGs6LQP4bw9AUMgQeZUuli6KO/PP8Gvs+PDdfO7r92/U2gvQcB7ONGwvjQ4z7dupBvtHVVf9kuSBjXN/3LC0HtzbDG1AAqcB+eTn0ilCZDRAhI0Q+jGLw8OnP/1oxaFKNJbXKdbper1dysMjRQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=yoseli.org; spf=pass smtp.mailfrom=yoseli.org; dkim=pass (2048-bit key) header.d=yoseli.org header.i=@yoseli.org header.b=dzB13r1A; arc=none smtp.client-ip=217.70.183.199 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=yoseli.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=yoseli.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=yoseli.org header.i=@yoseli.org header.b="dzB13r1A" Received: by mail.gandi.net (Postfix) with ESMTPSA id 42825443F3; Mon, 24 Nov 2025 12:50:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yoseli.org; s=gm1; t=1763988632; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=JRVv+nJggHB2NVFJ/jtfPoNfHMQMyOCHv8ab1FARrSg=; b=dzB13r1AD+HIfzQIx/Mne3asm8qnGJqH4bjY3KFT3uZV3QJsb+maCnAshydOabupYwLZ2n A3mnEOI5UBlYmUarhBaPJGDoSzl5ciWxl+U0WG/qaRxtnqfi5nZ4wV74/YkQG5/9rmmbj5 HDve0mVOgM/Aipf0cTveQAU96+fo3jlsbpN4a+8r8LzCYsPH+CPZeH+gGtTNMwMYc/2zuO KhcYun0SyoOtnrivO1bhiyfP91TDEkcQ6MywLBAiHEBYH8SIiGLLGX1PzP1K+ahMYiyo57 41fandHUeTki0AWiyFI0HYlDexUZQVbXxNP+vRxELrTRcpZXAtbV4vuXlZJ2zw== From: Jean-Michel Hautbois Date: Mon, 24 Nov 2025 13:50:27 +0100 Subject: [PATCH 6/7] dma: mcf-edma: Fix error handler for all 64 DMA channels 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: <20251124-dma-coldfire-v1-6-dc8f93185464@yoseli.org> References: <20251124-dma-coldfire-v1-0-dc8f93185464@yoseli.org> In-Reply-To: <20251124-dma-coldfire-v1-0-dc8f93185464@yoseli.org> To: Frank Li , Vinod Koul Cc: Greg Ungerer , imx@lists.linux.dev, dmaengine@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-kernel@vger.kernel.org, Jean-Michel Hautbois X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763988624; l=2788; i=jeanmichel.hautbois@yoseli.org; s=20240925; h=from:subject:message-id; bh=Am/rzQ0IYN1ljIZfblco1hpJOru0W+mU/bl94mc/5G4=; b=pSeX/Ghnsxe14PHuZ07DpJROJmTRTD9gpx83nHaFNTGdx0jSTxS64TKYIitROwgd7YXn2QAWg X3q9OQ+PG7WBAanAlumYTZ3+cpLM5b6TXXD+F2ZWlq3B5RaLpN9SJMI X-Developer-Key: i=jeanmichel.hautbois@yoseli.org; a=ed25519; pk=MsMTVmoV69wLIlSkHlFoACIMVNQFyvJzvsJSQsn/kq4= X-GND-State: clean X-GND-Score: -100 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvfeekieegucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuifetpfffkfdpucggtfgfnhhsuhgsshgtrhhisggvnecuuegrihhlohhuthemuceftddunecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefhfffugggtgffkfhgjvfevofesthejredtredtjeenucfhrhhomheplfgvrghnqdfoihgthhgvlhcujfgruhhtsghoihhsuceojhgvrghnmhhitghhvghlrdhhrghuthgsohhisheshihoshgvlhhirdhorhhgqeenucggtffrrghtthgvrhhnpeffjefhtdelhffhheevheeutefghfefteeluedvudfhgeegteeitddtuefhhfelteenucfkphepvdgrtddumegvtdgrmeduieelmeejudegtdemkeeksgefmeehudehfeemtgdvieegmeegfhgsnecuvehluhhsthgvrhfuihiivgepheenucfrrghrrghmpehinhgvthepvdgrtddumegvtdgrmeduieelmeejudegtdemkeeksgefmeehudehfeemtgdvieegmeegfhgspdhhvghlohephihoshgvlhhiqdihohgtthhordihohhsvghlihdrohhrghdpmhgrihhlfhhrohhmpehjvggrnhhmihgthhgvlhdrhhgruhhtsghoihhsseihohhsvghlihdrohhrghdpnhgspghrtghpthhtohepkedprhgtphhtthhopegumhgrvghnghhinhgvsehvghgvrhdrkhgvrhhnvghlrdhorhhgpdhrtghpthhtohepjhgvrghnmhhitghhvghlrdhhrghuthgsohhisheshihoshgvlhhirdhorhhgpdhrt ghpthhtohepghgvrhhgsehlihhnuhigqdhmieekkhdrohhrghdprhgtphhtthhopefhrhgrnhhkrdfnihesnhigphdrtghomhdprhgtphhtthhopehvkhhouhhlsehkvghrnhgvlhdrohhrghdprhgtphhtthhopehlihhnuhigqdhkvghrnhgvlhesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopehimhigsehlihhsthhsrdhlihhnuhigrdguvghvpdhrtghpthhtoheplhhinhhugidqmheikehksehlihhsthhsrdhlihhnuhigqdhmieekkhdrohhrgh X-GND-Sasl: jeanmichel.hautbois@yoseli.org Fix the DMA error interrupt handler to properly handle errors on all 64 channels. The previous implementation had several issues: 1. Returned IRQ_NONE if low channels had no errors, even if high channels did 2. Used direct status assignment instead of fsl_edma_err_chan_handler() for high channels Split the error handling into two separate loops for the low (0-31) and high (32-63) channel groups, using for_each_set_bit() for cleaner iteration. Both groups now consistently use fsl_edma_err_chan_handler() for proper error status reporting. Signed-off-by: Jean-Michel Hautbois --- drivers/dma/mcf-edma-main.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/drivers/dma/mcf-edma-main.c b/drivers/dma/mcf-edma-main.c index dd64f50f2b0a70a4664b03c7d6a23e74c9bcd7ae..adae2914c23db3ce9244c0cb8d4= 208fd71874f76 100644 --- a/drivers/dma/mcf-edma-main.c +++ b/drivers/dma/mcf-edma-main.c @@ -12,6 +12,7 @@ #include "fsl-edma-common.h" =20 #define EDMA_CHANNELS 64 +#define EDMA_CHANS_PER_REG (EDMA_CHANNELS / 2) #define EDMA_MASK_CH(x) ((x) & GENMASK(5, 0)) =20 static irqreturn_t mcf_edma_tx_handler(int irq, void *dev_id) @@ -42,33 +43,33 @@ static irqreturn_t mcf_edma_err_handler(int irq, void *= dev_id) { struct fsl_edma_engine *mcf_edma =3D dev_id; struct edma_regs *regs =3D &mcf_edma->regs; - unsigned int err, ch; + unsigned int ch; + unsigned long err; + bool handled =3D false; =20 + /* Check low 32 channels (0-31) */ err =3D ioread32(regs->errl); - if (!err) - return IRQ_NONE; - - for (ch =3D 0; ch < (EDMA_CHANNELS / 2); ch++) { - if (err & BIT(ch)) { + if (err) { + handled =3D true; + for_each_set_bit(ch, &err, EDMA_CHANS_PER_REG) { fsl_edma_disable_request(&mcf_edma->chans[ch]); iowrite8(EDMA_CERR_CERR(ch), regs->cerr); fsl_edma_err_chan_handler(&mcf_edma->chans[ch]); } } =20 + /* Check high 32 channels (32-63) */ err =3D ioread32(regs->errh); - if (!err) - return IRQ_NONE; - - for (ch =3D (EDMA_CHANNELS / 2); ch < EDMA_CHANNELS; ch++) { - if (err & (BIT(ch - (EDMA_CHANNELS / 2)))) { - fsl_edma_disable_request(&mcf_edma->chans[ch]); - iowrite8(EDMA_CERR_CERR(ch), regs->cerr); - mcf_edma->chans[ch].status =3D DMA_ERROR; + if (err) { + handled =3D true; + for_each_set_bit(ch, &err, EDMA_CHANS_PER_REG) { + fsl_edma_disable_request(&mcf_edma->chans[ch + EDMA_CHANS_PER_REG]); + iowrite8(EDMA_CERR_CERR(ch + EDMA_CHANS_PER_REG), regs->cerr); + fsl_edma_err_chan_handler(&mcf_edma->chans[ch + EDMA_CHANS_PER_REG]); } } =20 - return IRQ_HANDLED; + return handled ? IRQ_HANDLED : IRQ_NONE; } =20 static int mcf_edma_irq_init(struct platform_device *pdev, --=20 2.39.5 From nobody Tue Dec 2 00:44:56 2025 Received: from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net [217.70.183.199]) (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 C157F30102C; Mon, 24 Nov 2025 12:50:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.70.183.199 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763988637; cv=none; b=OYXnKvjLrA2VdE8pONmwuXoJpH62tynQCog1tnxUIOd18+nCQP9QLv3E+zsm5FIKG6ozWk4BxRXoKOkjxKPlFa1ic3uUD6JdvbqPc38tIjj5c4hv8yaJnPsP0ew22tdNjiaDlFsgyE4fJhOITaAwmpjk98Fp9A5Va/3m1wOwGmY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763988637; c=relaxed/simple; bh=FKaWobWJViggwPnsZtfIAribt87lp1BCi3e4jWWfCu4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=d0nbJIfvHkLIXux5Lg5RmxGK4sfJWJYweJS6csjWdm+aHvAa1COznqc23bNqjeazqp2mUw4IHjHuNUAal6RqHGNC93htRN0JhSHicenYR2WnO19vSYDBJ60qpMqKbPF25qzy4MCOlqGmlDw+/Lyb70WykLn6hWs4JSPo73tmpDo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=yoseli.org; spf=pass smtp.mailfrom=yoseli.org; dkim=pass (2048-bit key) header.d=yoseli.org header.i=@yoseli.org header.b=U15TD4HS; arc=none smtp.client-ip=217.70.183.199 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=yoseli.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=yoseli.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=yoseli.org header.i=@yoseli.org header.b="U15TD4HS" Received: by mail.gandi.net (Postfix) with ESMTPSA id 4FC6B443B9; Mon, 24 Nov 2025 12:50:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yoseli.org; s=gm1; t=1763988633; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=AFRCqjmZTDjYwXs9mHTwQzP6v0YfpJFAmMSvBfVoyHo=; b=U15TD4HSkHAMYItwQM7vgmkCbaMyiG3kyDRBFaP2O/KBbGwQj5GrzmTqqROk/aFmUxzUbq 4rIjnPLXZYH1vb59EClBZlAxQlrAS9UqXDw+OQuYeTfGJS86JOi3TvboKSvweq20u0Sp65 F8BXhrLFan5PJzJU05z3EL+FcX2kWn4tjvAY2fYNGlAHzd3wzi+D6EkdPQWTjnS3r/PAJw GyK+uEynZcAJ02L++y2CwHCRaFhuuGvZOIbXRzNTFkqmrZH612LRTpqtrQ1AQ6KAJhSQkA qYEc+fyNrShgSqsqlb/HhDY0sdxvLqJmWs41q5dFMONG4y/+oPfCKB6lVMea/Q== From: Jean-Michel Hautbois Date: Mon, 24 Nov 2025 13:50:28 +0100 Subject: [PATCH 7/7] dma: fsl-edma: Support source stride for interleaved DMA transfers 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: <20251124-dma-coldfire-v1-7-dc8f93185464@yoseli.org> References: <20251124-dma-coldfire-v1-0-dc8f93185464@yoseli.org> In-Reply-To: <20251124-dma-coldfire-v1-0-dc8f93185464@yoseli.org> To: Frank Li , Vinod Koul Cc: Greg Ungerer , imx@lists.linux.dev, dmaengine@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-kernel@vger.kernel.org, Jean-Michel Hautbois X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763988624; l=1817; i=jeanmichel.hautbois@yoseli.org; s=20240925; h=from:subject:message-id; bh=FKaWobWJViggwPnsZtfIAribt87lp1BCi3e4jWWfCu4=; b=ZCvvR4NFd0F1MK2oKb9mLxd1UhjGQdDhiI93WRdjZ8MUKl+Tun9eVHJkDV+PuaxjlNBCCM579 V56STaWPPNZAxi75LsvF9ncwbF4axnDWG15e2rq6Bwf3k9ny25yVMFd X-Developer-Key: i=jeanmichel.hautbois@yoseli.org; a=ed25519; pk=MsMTVmoV69wLIlSkHlFoACIMVNQFyvJzvsJSQsn/kq4= X-GND-State: clean X-GND-Score: -100 X-GND-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvfeekieegucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuifetpfffkfdpucggtfgfnhhsuhgsshgtrhhisggvnecuuegrihhlohhuthemuceftddunecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefhfffugggtgffkfhgjvfevofesthejredtredtjeenucfhrhhomheplfgvrghnqdfoihgthhgvlhcujfgruhhtsghoihhsuceojhgvrghnmhhitghhvghlrdhhrghuthgsohhisheshihoshgvlhhirdhorhhgqeenucggtffrrghtthgvrhhnpeffjefhtdelhffhheevheeutefghfefteeluedvudfhgeegteeitddtuefhhfelteenucfkphepvdgrtddumegvtdgrmeduieelmeejudegtdemkeeksgefmeehudehfeemtgdvieegmeegfhgsnecuvehluhhsthgvrhfuihiivgepheenucfrrghrrghmpehinhgvthepvdgrtddumegvtdgrmeduieelmeejudegtdemkeeksgefmeehudehfeemtgdvieegmeegfhgspdhhvghlohephihoshgvlhhiqdihohgtthhordihohhsvghlihdrohhrghdpmhgrihhlfhhrohhmpehjvggrnhhmihgthhgvlhdrhhgruhhtsghoihhsseihohhsvghlihdrohhrghdpnhgspghrtghpthhtohepkedprhgtphhtthhopegumhgrvghnghhinhgvsehvghgvrhdrkhgvrhhnvghlrdhorhhgpdhrtghpthhtohepjhgvrghnmhhitghhvghlrdhhrghuthgsohhisheshihoshgvlhhirdhorhhgpdhrt ghpthhtohepghgvrhhgsehlihhnuhigqdhmieekkhdrohhrghdprhgtphhtthhopefhrhgrnhhkrdfnihesnhigphdrtghomhdprhgtphhtthhopehvkhhouhhlsehkvghrnhgvlhdrohhrghdprhgtphhtthhopehlihhnuhigqdhkvghrnhgvlhesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopehimhigsehlihhsthhsrdhlihhnuhigrdguvghvpdhrtghpthhtoheplhhinhhugidqmheikehksehlihhsthhsrdhlihhnuhigqdhmieekkhdrohhrgh X-GND-Sasl: jeanmichel.hautbois@yoseli.org Add support for using src_port_window_size to configure the source address stride (SOFF) in DMA transfers. This enables interleaved memory access patterns needed for applications like stereo audio de-interleaving. When src_port_window_size is set, the source offset is calculated as: SOFF =3D src_port_window_size * dst_addr_width This allows DMA to skip samples in memory while writing consecutive samples to the device, enabling efficient stereo-to-mono de-interleaving without CPU intervention. Signed-off-by: Jean-Michel Hautbois --- drivers/dma/fsl-edma-common.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/dma/fsl-edma-common.c b/drivers/dma/fsl-edma-common.c index 40ac6a7d8480b9ed2c6a2bdec59b4fda5fcb6271..e510cab24382fa557a262346539= 3c852b616fef3 100644 --- a/drivers/dma/fsl-edma-common.c +++ b/drivers/dma/fsl-edma-common.c @@ -647,6 +647,9 @@ struct dma_async_tx_descriptor *fsl_edma_prep_dma_cycli= c( doff =3D fsl_chan->is_multi_fifo ? 4 : 0; if (fsl_chan->cfg.dst_port_window_size) doff =3D fsl_chan->cfg.dst_addr_width; + if (fsl_chan->cfg.src_port_window_size) + soff =3D fsl_chan->cfg.src_port_window_size * + fsl_chan->cfg.dst_addr_width; } else if (direction =3D=3D DMA_DEV_TO_MEM) { src_addr =3D fsl_chan->dma_dev_addr; dst_addr =3D dma_buf_next; @@ -714,6 +717,9 @@ struct dma_async_tx_descriptor *fsl_edma_prep_slave_sg( dst_addr =3D fsl_chan->dma_dev_addr; soff =3D fsl_chan->cfg.dst_addr_width; doff =3D 0; + if (fsl_chan->cfg.src_port_window_size) + soff =3D fsl_chan->cfg.src_port_window_size * + fsl_chan->cfg.dst_addr_width; } else if (direction =3D=3D DMA_DEV_TO_MEM) { src_addr =3D fsl_chan->dma_dev_addr; dst_addr =3D sg_dma_address(sg); --=20 2.39.5