All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/2] dmaengine: fsl_edma: add trace and debugfs support
@ 2023-09-19 15:14 Frank Li
  2023-09-19 15:14 ` [PATCH v2 1/2] dmaengine: fsl-emda: add " Frank Li
  2023-09-19 15:14 ` [PATCH v2 2/2] dmaengine: fsl-edma: add trace event support Frank Li
  0 siblings, 2 replies; 8+ messages in thread
From: Frank Li @ 2023-09-19 15:14 UTC (permalink / raw)
  To: vkoul, linux-kernel, dmaengine, imx

Change from v1 to v2
Fixed tcd trace issue, data need be saved firstly.

=== Trace ===

echo 1 >/sys/kernel/debug/tracing/tracing_on
echo 1 >/sys/kernel/debug/tracing/events/fsl_edma/enable

Run any dma test
...

cat /sys/kernel/debug/tracing/trace

 uart_testapp_11-448     [000] d..1.    69.185019: edma_fill_tcd:
==== TCD =====
  saddr:  0x831ee020
  soff:       0x8000
  attr:       0xffff
  nbytes: 0xfba40000
  slast:  0x00000000
  daddr:  0x8aaa4800
  doff:       0x0001
  citer:      0x0800
  dlast:  0xfba40020
  csr:        0x0052
  biter:      0x0800

 uart_testapp_11-448     [000] d..2.    69.185022: edma_writew: offset 0001803c: value 00000000
 uart_testapp_11-448     [000] d..2.    69.185023: edma_writel: offset 00018020: value 4259001c
 uart_testapp_11-448     [000] d..2.    69.185024: edma_writel: offset 00018030: value 8aaa4000

=== DebugFS ===

cat /sys/kernel/debug/dmaengine/42000000.dma-controller/42000000.dma-controller-CH00/ch_sbr
0x00208003

Frank Li (2):
  dmaengine: fsl-emda: add debugfs support
  dmaengine: fsl-edma: add trace event support

 drivers/dma/Makefile           |   7 +-
 drivers/dma/fsl-edma-common.c  |   2 +
 drivers/dma/fsl-edma-common.h  |  37 ++++++++-
 drivers/dma/fsl-edma-debugfs.c | 116 ++++++++++++++++++++++++++++
 drivers/dma/fsl-edma-main.c    |   2 +
 drivers/dma/fsl-edma-trace.c   |   4 +
 drivers/dma/fsl-edma-trace.h   | 134 +++++++++++++++++++++++++++++++++
 7 files changed, 296 insertions(+), 6 deletions(-)
 create mode 100644 drivers/dma/fsl-edma-debugfs.c
 create mode 100644 drivers/dma/fsl-edma-trace.c
 create mode 100644 drivers/dma/fsl-edma-trace.h

-- 
2.34.1


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2 1/2] dmaengine: fsl-emda: add debugfs support
  2023-09-19 15:14 [PATCH v2 0/2] dmaengine: fsl_edma: add trace and debugfs support Frank Li
@ 2023-09-19 15:14 ` Frank Li
  2023-09-19 23:51   ` kernel test robot
  2023-09-20 21:45   ` kernel test robot
  2023-09-19 15:14 ` [PATCH v2 2/2] dmaengine: fsl-edma: add trace event support Frank Li
  1 sibling, 2 replies; 8+ messages in thread
From: Frank Li @ 2023-09-19 15:14 UTC (permalink / raw)
  To: vkoul, linux-kernel, dmaengine, imx

Add debugfs support to fsl-edma to enable dumping of register states.

Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
 drivers/dma/Makefile           |   5 +-
 drivers/dma/fsl-edma-common.h  |   8 +++
 drivers/dma/fsl-edma-debugfs.c | 116 +++++++++++++++++++++++++++++++++
 drivers/dma/fsl-edma-main.c    |   2 +
 4 files changed, 129 insertions(+), 2 deletions(-)
 create mode 100644 drivers/dma/fsl-edma-debugfs.c

diff --git a/drivers/dma/Makefile b/drivers/dma/Makefile
index 83553a97a010e..a51c6397bcad0 100644
--- a/drivers/dma/Makefile
+++ b/drivers/dma/Makefile
@@ -31,10 +31,11 @@ obj-$(CONFIG_DW_AXI_DMAC) += dw-axi-dmac/
 obj-$(CONFIG_DW_DMAC_CORE) += dw/
 obj-$(CONFIG_DW_EDMA) += dw-edma/
 obj-$(CONFIG_EP93XX_DMA) += ep93xx_dma.o
+fsl-edma-debugfs-$(CONFIG_DEBUG_FS) := fsl-edma-debugfs.o
 obj-$(CONFIG_FSL_DMA) += fsldma.o
-fsl-edma-objs := fsl-edma-main.o fsl-edma-common.o
+fsl-edma-objs := fsl-edma-main.o fsl-edma-common.o $(fsl-edma-debugfs-y)
 obj-$(CONFIG_FSL_EDMA) += fsl-edma.o
-mcf-edma-objs := mcf-edma-main.o fsl-edma-common.o
+mcf-edma-objs := mcf-edma-main.o fsl-edma-common.o $(fsl-edma-debugfs-y)
 obj-$(CONFIG_MCF_EDMA) += mcf-edma.o
 obj-$(CONFIG_FSL_QDMA) += fsl-qdma.o
 obj-$(CONFIG_FSL_RAID) += fsl_raid.o
diff --git a/drivers/dma/fsl-edma-common.h b/drivers/dma/fsl-edma-common.h
index 3cc0cc8fc2d05..ecaba563d4897 100644
--- a/drivers/dma/fsl-edma-common.h
+++ b/drivers/dma/fsl-edma-common.h
@@ -336,4 +336,12 @@ void fsl_edma_free_chan_resources(struct dma_chan *chan);
 void fsl_edma_cleanup_vchan(struct dma_device *dmadev);
 void fsl_edma_setup_regs(struct fsl_edma_engine *edma);
 
+#ifdef CONFIG_DEBUG_FS
+void fsl_edma_debugfs_on(struct fsl_edma_engine *edma);
+#else
+static inline void fsl_edma_debugfs_on(struct dw_edma *edma)
+{
+}
+#endif /* CONFIG_DEBUG_FS */
+
 #endif /* _FSL_EDMA_COMMON_H_ */
diff --git a/drivers/dma/fsl-edma-debugfs.c b/drivers/dma/fsl-edma-debugfs.c
new file mode 100644
index 0000000000000..dadb8b29d0977
--- /dev/null
+++ b/drivers/dma/fsl-edma-debugfs.c
@@ -0,0 +1,116 @@
+#include <linux/debugfs.h>
+#include <linux/bitfield.h>
+
+#include "fsl-edma-common.h"
+
+#define fsl_edma_debugfs_reg(reg, dir, __name)						\
+((sizeof(reg->__name) == sizeof(u32)) ?							\
+	debugfs_create_x32(__stringify(__name), 0644, dir, (u32 *)&reg->__name) :	\
+	debugfs_create_x16(__stringify(__name), 0644, dir, (u16 *)&reg->__name)		\
+)
+
+#define fsl_edma_debugfs_regv1(reg, dir, __name)				\
+	debugfs_create_x32(__stringify(__name), 0644, dir, reg.__name)
+
+static void fsl_edma_debufs_tcdreg(struct fsl_edma_chan *chan, struct dentry *dir)
+{
+	fsl_edma_debugfs_reg(chan->tcd, dir, saddr);
+	fsl_edma_debugfs_reg(chan->tcd, dir, soff);
+	fsl_edma_debugfs_reg(chan->tcd, dir, attr);
+	fsl_edma_debugfs_reg(chan->tcd, dir, nbytes);
+	fsl_edma_debugfs_reg(chan->tcd, dir, slast);
+	fsl_edma_debugfs_reg(chan->tcd, dir, daddr);
+	fsl_edma_debugfs_reg(chan->tcd, dir, doff);
+	fsl_edma_debugfs_reg(chan->tcd, dir, citer);
+	fsl_edma_debugfs_reg(chan->tcd, dir, dlast_sga);
+	fsl_edma_debugfs_reg(chan->tcd, dir, csr);
+	fsl_edma_debugfs_reg(chan->tcd, dir, biter);
+}
+
+static void fsl_edma3_debufs_chan(struct fsl_edma_chan *chan, struct dentry *entry)
+{
+	struct fsl_edma3_ch_reg *reg;
+	struct dentry *dir;
+
+	reg = container_of(chan->tcd, struct fsl_edma3_ch_reg, tcd);
+	fsl_edma_debugfs_reg(reg, entry, ch_csr);
+	fsl_edma_debugfs_reg(reg, entry, ch_int);
+	fsl_edma_debugfs_reg(reg, entry, ch_sbr);
+	fsl_edma_debugfs_reg(reg, entry, ch_pri);
+	fsl_edma_debugfs_reg(reg, entry, ch_mux);
+	fsl_edma_debugfs_reg(reg, entry, ch_mattr);
+
+	dir = debugfs_create_dir("tcd_regs", entry);
+
+	fsl_edma_debufs_tcdreg(chan, dir);
+}
+
+static void fsl_edma3_debugfs_init(struct fsl_edma_engine *edma)
+{
+	struct fsl_edma_chan *chan;
+	struct dentry *dir;
+	int i;
+
+	for (i = 0; i < edma->n_chans; i++) {
+		if (edma->chan_masked & BIT(i))
+			continue;
+
+		chan = &edma->chans[i];
+		dir = debugfs_create_dir(chan->chan_name, edma->dma_dev.dbg_dev_root);
+
+		fsl_edma3_debufs_chan(chan, dir);
+	}
+
+}
+
+static void fsl_edma_debugfs_init(struct fsl_edma_engine *edma)
+{
+	struct fsl_edma_chan *chan;
+	struct dentry *dir;
+	int i;
+
+	fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, cr);
+	fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, es);
+	fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, erqh);
+	fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, erql);
+	fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, eeih);
+	fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, eeil);
+	fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, seei);
+	fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, ceei);
+	fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, serq);
+	fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, cerq);
+	fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, cint);
+	fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, cerr);
+	fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, ssrt);
+	fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, cdne);
+	fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, inth);
+	fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, errh);
+	fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, errl);
+
+	for (i = 0; i < edma->n_chans; i++) {
+		if (edma->chan_masked & BIT(i))
+			continue;
+
+		chan = &edma->chans[i];
+		dir = debugfs_create_dir(chan->chan_name, edma->dma_dev.dbg_dev_root);
+
+		fsl_edma_debufs_tcdreg(chan, dir);
+	}
+}
+
+void fsl_edma_debugfs_on(struct fsl_edma_engine *edma)
+{
+	if (!debugfs_initialized())
+		return;
+
+	debugfs_create_bool("big_endian", 0444, edma->dma_dev.dbg_dev_root, &edma->big_endian);
+	debugfs_create_x64("chan_mask", 0444, edma->dma_dev.dbg_dev_root, &edma->chan_masked);
+	debugfs_create_x32("n_chans", 0444, edma->dma_dev.dbg_dev_root, &edma->n_chans);
+
+	if (edma->drvdata->flags & FSL_EDMA_DRV_SPLIT_REG)
+		fsl_edma3_debugfs_init(edma);
+	else
+		fsl_edma_debugfs_init(edma);
+}
+
+
diff --git a/drivers/dma/fsl-edma-main.c b/drivers/dma/fsl-edma-main.c
index 63d48d046f046..029a72872821d 100644
--- a/drivers/dma/fsl-edma-main.c
+++ b/drivers/dma/fsl-edma-main.c
@@ -612,6 +612,8 @@ static int fsl_edma_probe(struct platform_device *pdev)
 	if (!(drvdata->flags & FSL_EDMA_DRV_SPLIT_REG))
 		edma_writel(fsl_edma, EDMA_CR_ERGA | EDMA_CR_ERCA, regs->cr);
 
+	fsl_edma_debugfs_on(fsl_edma);
+
 	return 0;
 }
 
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2 2/2] dmaengine: fsl-edma: add trace event support
  2023-09-19 15:14 [PATCH v2 0/2] dmaengine: fsl_edma: add trace and debugfs support Frank Li
  2023-09-19 15:14 ` [PATCH v2 1/2] dmaengine: fsl-emda: add " Frank Li
@ 2023-09-19 15:14 ` Frank Li
  2023-09-19 21:47   ` kernel test robot
                     ` (2 more replies)
  1 sibling, 3 replies; 8+ messages in thread
From: Frank Li @ 2023-09-19 15:14 UTC (permalink / raw)
  To: vkoul, linux-kernel, dmaengine, imx

Implement trace event support to enhance logging functionality for
register access and the transfer control descriptor (TCD) context.
This will enable more comprehensive monitoring and analysis of system
activities

Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
 drivers/dma/Makefile          |   6 +-
 drivers/dma/fsl-edma-common.c |   2 +
 drivers/dma/fsl-edma-common.h |  29 +++++++-
 drivers/dma/fsl-edma-trace.c  |   4 +
 drivers/dma/fsl-edma-trace.h  | 134 ++++++++++++++++++++++++++++++++++
 5 files changed, 169 insertions(+), 6 deletions(-)
 create mode 100644 drivers/dma/fsl-edma-trace.c
 create mode 100644 drivers/dma/fsl-edma-trace.h

diff --git a/drivers/dma/Makefile b/drivers/dma/Makefile
index a51c6397bcad0..40b2dd554e5dc 100644
--- a/drivers/dma/Makefile
+++ b/drivers/dma/Makefile
@@ -32,10 +32,12 @@ obj-$(CONFIG_DW_DMAC_CORE) += dw/
 obj-$(CONFIG_DW_EDMA) += dw-edma/
 obj-$(CONFIG_EP93XX_DMA) += ep93xx_dma.o
 fsl-edma-debugfs-$(CONFIG_DEBUG_FS) := fsl-edma-debugfs.o
+CFLAGS_fsl-edma-trace.o := -I$(src)
+fsl-edma-trace-$(CONFIG_TRACING) := fsl-edma-trace.o
 obj-$(CONFIG_FSL_DMA) += fsldma.o
-fsl-edma-objs := fsl-edma-main.o fsl-edma-common.o $(fsl-edma-debugfs-y)
+fsl-edma-objs := fsl-edma-main.o fsl-edma-common.o $(fsl-edma-debugfs-y) ${fsl-edma-trace-y}
 obj-$(CONFIG_FSL_EDMA) += fsl-edma.o
-mcf-edma-objs := mcf-edma-main.o fsl-edma-common.o $(fsl-edma-debugfs-y)
+mcf-edma-objs := mcf-edma-main.o fsl-edma-common.o $(fsl-edma-debugfs-y) ${fsl-edma-trace-y}
 obj-$(CONFIG_MCF_EDMA) += mcf-edma.o
 obj-$(CONFIG_FSL_QDMA) += fsl-qdma.o
 obj-$(CONFIG_FSL_RAID) += fsl_raid.o
diff --git a/drivers/dma/fsl-edma-common.c b/drivers/dma/fsl-edma-common.c
index a0f5741abcc47..0182e2695fdc0 100644
--- a/drivers/dma/fsl-edma-common.c
+++ b/drivers/dma/fsl-edma-common.c
@@ -521,6 +521,8 @@ void fsl_edma_fill_tcd(struct fsl_edma_chan *fsl_chan,
 		csr |= EDMA_TCD_CSR_START;
 
 	tcd->csr = cpu_to_le16(csr);
+
+	trace_edma_fill_tcd(fsl_chan->edma, tcd);
 }
 
 static struct fsl_edma_desc *fsl_edma_alloc_desc(struct fsl_edma_chan *fsl_chan,
diff --git a/drivers/dma/fsl-edma-common.h b/drivers/dma/fsl-edma-common.h
index ecaba563d4897..a9e27110ac7d7 100644
--- a/drivers/dma/fsl-edma-common.h
+++ b/drivers/dma/fsl-edma-common.h
@@ -234,6 +234,9 @@ struct fsl_edma_engine {
 	edma_writel(chan->edma, val,				\
 		   (void __iomem *)&(container_of(chan->tcd, struct fsl_edma3_ch_reg, tcd)->__name))
 
+/* Need after struct defination */
+#include "fsl-edma-trace.h"
+
 /*
  * R/W functions for big- or little-endian registers:
  * The eDMA controller's endian is independent of the CPU core's endian.
@@ -242,18 +245,30 @@ struct fsl_edma_engine {
  */
 static inline u32 edma_readl(struct fsl_edma_engine *edma, void __iomem *addr)
 {
+	u32 val;
+
 	if (edma->big_endian)
-		return ioread32be(addr);
+		val = ioread32be(addr);
 	else
-		return ioread32(addr);
+		val = ioread32(addr);
+
+	trace_edma_readl(edma, addr, val);
+
+	return val;
 }
 
 static inline u16 edma_readw(struct fsl_edma_engine *edma, void __iomem *addr)
 {
+	u16 val;
+
 	if (edma->big_endian)
-		return ioread16be(addr);
+		val = ioread16be(addr);
 	else
-		return ioread16(addr);
+		val = ioread16(addr);
+
+	trace_edma_readw(edma, addr, val);
+
+	return val;
 }
 
 static inline void edma_writeb(struct fsl_edma_engine *edma,
@@ -264,6 +279,8 @@ static inline void edma_writeb(struct fsl_edma_engine *edma,
 		iowrite8(val, (void __iomem *)((unsigned long)addr ^ 0x3));
 	else
 		iowrite8(val, addr);
+
+	trace_edma_writeb(edma, addr, val);
 }
 
 static inline void edma_writew(struct fsl_edma_engine *edma,
@@ -274,6 +291,8 @@ static inline void edma_writew(struct fsl_edma_engine *edma,
 		iowrite16be(val, (void __iomem *)((unsigned long)addr ^ 0x2));
 	else
 		iowrite16(val, addr);
+
+	trace_edma_writew(edma, addr, val);
 }
 
 static inline void edma_writel(struct fsl_edma_engine *edma,
@@ -283,6 +302,8 @@ static inline void edma_writel(struct fsl_edma_engine *edma,
 		iowrite32be(val, addr);
 	else
 		iowrite32(val, addr);
+
+	trace_edma_writel(edma, addr, val);
 }
 
 static inline struct fsl_edma_chan *to_fsl_edma_chan(struct dma_chan *chan)
diff --git a/drivers/dma/fsl-edma-trace.c b/drivers/dma/fsl-edma-trace.c
new file mode 100644
index 0000000000000..28300ad80bb75
--- /dev/null
+++ b/drivers/dma/fsl-edma-trace.c
@@ -0,0 +1,4 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#define CREATE_TRACE_POINTS
+#include "fsl-edma-common.h"
diff --git a/drivers/dma/fsl-edma-trace.h b/drivers/dma/fsl-edma-trace.h
new file mode 100644
index 0000000000000..e982651c682f1
--- /dev/null
+++ b/drivers/dma/fsl-edma-trace.h
@@ -0,0 +1,134 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright 2023 NXP.
+ */
+
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM fsl_edma
+
+#if !defined(__LINUX_FSL_EDMA_TRACE) || defined(TRACE_HEADER_MULTI_READ)
+#define __LINUX_FSL_EDMA_TRACE
+
+#include <linux/types.h>
+#include <linux/tracepoint.h>
+
+DECLARE_EVENT_CLASS(edma_log_io,
+	TP_PROTO(struct fsl_edma_engine *edma, void __iomem *addr, u32 value),
+	TP_ARGS(edma, addr, value),
+	TP_STRUCT__entry(
+		__field(struct fsl_edma_engine *, edma)
+		__field(void __iomem *, addr)
+		__field(u32, value)
+	),
+	TP_fast_assign(
+		__entry->edma = edma;
+		__entry->addr = addr;
+		__entry->value = value;
+	),
+	TP_printk("offset %08lx: value %08x",
+		__entry->addr - __entry->edma->membase, __entry->value)
+);
+
+DEFINE_EVENT(edma_log_io, edma_readl,
+	TP_PROTO(struct fsl_edma_engine *edma, void __iomem *addr, u32 value),
+	TP_ARGS(edma, addr, value)
+);
+
+DEFINE_EVENT(edma_log_io, edma_writel,
+	TP_PROTO(struct fsl_edma_engine *edma, void __iomem *addr,  u32 value),
+	TP_ARGS(edma, addr, value)
+);
+
+DEFINE_EVENT(edma_log_io, edma_readw,
+	TP_PROTO(struct fsl_edma_engine *edma, void __iomem *addr, u32 value),
+	TP_ARGS(edma, addr, value)
+);
+
+DEFINE_EVENT(edma_log_io, edma_writew,
+	TP_PROTO(struct fsl_edma_engine *edma, void __iomem *addr,  u32 value),
+	TP_ARGS(edma, addr, value)
+);
+
+DEFINE_EVENT(edma_log_io, edma_readb,
+	TP_PROTO(struct fsl_edma_engine *edma, void __iomem *addr, u32 value),
+	TP_ARGS(edma, addr, value)
+);
+
+DEFINE_EVENT(edma_log_io, edma_writeb,
+	TP_PROTO(struct fsl_edma_engine *edma, void __iomem *addr,  u32 value),
+	TP_ARGS(edma, addr, value)
+);
+
+DECLARE_EVENT_CLASS(edma_log_tcd,
+	TP_PROTO(struct fsl_edma_engine *edma, struct fsl_edma_hw_tcd *tcd),
+	TP_ARGS(edma, tcd),
+	TP_STRUCT__entry(
+		__field(struct fsl_edma_engine *, edma)
+		__field(u32, saddr)
+		__field(u16, soff)
+		__field(u16, attr)
+		__field(u32, nbytes)
+		__field(u32, slast)
+		__field(u32, daddr)
+		__field(u16, doff)
+		__field(u16, citer)
+		__field(u32, dlast_sga)
+		__field(u16, csr)
+		__field(u16, biter)
+
+	),
+	TP_fast_assign(
+		__entry->edma = edma;
+		__entry->saddr = tcd->saddr,
+		__entry->soff = tcd->soff,
+		__entry->attr = tcd->attr,
+		__entry->nbytes = tcd->nbytes,
+		__entry->slast = tcd->slast,
+		__entry->daddr = tcd->daddr,
+		__entry->doff = tcd->doff,
+		__entry->citer = tcd->citer,
+		__entry->dlast_sga = tcd->dlast_sga,
+		__entry->csr = tcd->csr,
+		__entry->biter = tcd->biter;
+	),
+	TP_printk("\n==== TCD =====\n"
+		  "  saddr:  0x%08x\n"
+		  "  soff:       0x%04x\n"
+		  "  attr:       0x%04x\n"
+		  "  nbytes: 0x%08x\n"
+		  "  slast:  0x%08x\n"
+		  "  daddr:  0x%08x\n"
+		  "  doff:       0x%04x\n"
+		  "  citer:      0x%04x\n"
+		  "  dlast:  0x%08x\n"
+		  "  csr:        0x%04x\n"
+		  "  biter:      0x%04x\n",
+		__entry->saddr,
+		__entry->soff,
+		__entry->attr,
+		__entry->nbytes,
+		__entry->slast,
+		__entry->daddr,
+		__entry->doff,
+		__entry->citer,
+		__entry->dlast_sga,
+		__entry->csr,
+		__entry->biter)
+);
+
+DEFINE_EVENT(edma_log_tcd, edma_fill_tcd,
+	TP_PROTO(struct fsl_edma_engine *edma, struct fsl_edma_hw_tcd *tcd),
+	TP_ARGS(edma, tcd)
+);
+
+#endif
+
+/* this part must be outside header guard */
+
+#undef TRACE_INCLUDE_PATH
+#define TRACE_INCLUDE_PATH .
+
+#undef TRACE_INCLUDE_FILE
+#define TRACE_INCLUDE_FILE fsl-edma-trace
+
+#include <trace/define_trace.h>
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 2/2] dmaengine: fsl-edma: add trace event support
  2023-09-19 15:14 ` [PATCH v2 2/2] dmaengine: fsl-edma: add trace event support Frank Li
@ 2023-09-19 21:47   ` kernel test robot
  2023-09-20  2:49   ` kernel test robot
  2023-11-05 23:48   ` kernel test robot
  2 siblings, 0 replies; 8+ messages in thread
From: kernel test robot @ 2023-09-19 21:47 UTC (permalink / raw)
  To: Frank Li, vkoul, linux-kernel, dmaengine, imx; +Cc: oe-kbuild-all

Hi Frank,

kernel test robot noticed the following build warnings:

[auto build test WARNING on vkoul-dmaengine/next]
[also build test WARNING on linus/master v6.6-rc2 next-20230919]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Frank-Li/dmaengine-fsl-emda-add-debugfs-support/20230920-010257
base:   https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git next
patch link:    https://lore.kernel.org/r/20230919151430.2919042-3-Frank.Li%40nxp.com
patch subject: [PATCH v2 2/2] dmaengine: fsl-edma: add trace event support
config: arc-randconfig-001-20230920 (https://download.01.org/0day-ci/archive/20230920/202309200524.QTINjSsC-lkp@intel.com/config)
compiler: arceb-elf-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20230920/202309200524.QTINjSsC-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202309200524.QTINjSsC-lkp@intel.com/

All warnings (new ones prefixed by >>):

   In file included from include/trace/define_trace.h:102,
                    from drivers/dma/fsl-edma-trace.h:134,
                    from drivers/dma/fsl-edma-common.h:238,
                    from drivers/dma/fsl-edma-trace.c:4:
   drivers/dma/./fsl-edma-trace.h: In function 'trace_raw_output_edma_log_io':
>> drivers/dma/./fsl-edma-trace.h:28:19: warning: format '%lx' expects argument of type 'long unsigned int', but argument 3 has type 'int' [-Wformat=]
      28 |         TP_printk("offset %08lx: value %08x",
         |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/trace/trace_events.h:203:34: note: in definition of macro 'DECLARE_EVENT_CLASS'
     203 |         trace_event_printf(iter, print);                                \
         |                                  ^~~~~
   drivers/dma/./fsl-edma-trace.h:28:9: note: in expansion of macro 'TP_printk'
      28 |         TP_printk("offset %08lx: value %08x",
         |         ^~~~~~~~~
   In file included from include/trace/trace_events.h:237:
   drivers/dma/./fsl-edma-trace.h:28:31: note: format string is defined here
      28 |         TP_printk("offset %08lx: value %08x",
         |                           ~~~~^
         |                               |
         |                               long unsigned int
         |                           %08x


vim +28 drivers/dma/./fsl-edma-trace.h

    14	
    15	DECLARE_EVENT_CLASS(edma_log_io,
    16		TP_PROTO(struct fsl_edma_engine *edma, void __iomem *addr, u32 value),
    17		TP_ARGS(edma, addr, value),
    18		TP_STRUCT__entry(
    19			__field(struct fsl_edma_engine *, edma)
    20			__field(void __iomem *, addr)
    21			__field(u32, value)
    22		),
    23		TP_fast_assign(
    24			__entry->edma = edma;
    25			__entry->addr = addr;
    26			__entry->value = value;
    27		),
  > 28		TP_printk("offset %08lx: value %08x",
    29			__entry->addr - __entry->edma->membase, __entry->value)
    30	);
    31	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 1/2] dmaengine: fsl-emda: add debugfs support
  2023-09-19 15:14 ` [PATCH v2 1/2] dmaengine: fsl-emda: add " Frank Li
@ 2023-09-19 23:51   ` kernel test robot
  2023-09-20 21:45   ` kernel test robot
  1 sibling, 0 replies; 8+ messages in thread
From: kernel test robot @ 2023-09-19 23:51 UTC (permalink / raw)
  To: Frank Li, vkoul, linux-kernel, dmaengine, imx; +Cc: oe-kbuild-all

Hi Frank,

kernel test robot noticed the following build warnings:

[auto build test WARNING on vkoul-dmaengine/next]
[also build test WARNING on linus/master v6.6-rc2 next-20230919]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Frank-Li/dmaengine-fsl-emda-add-debugfs-support/20230920-010257
base:   https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git next
patch link:    https://lore.kernel.org/r/20230919151430.2919042-2-Frank.Li%40nxp.com
patch subject: [PATCH v2 1/2] dmaengine: fsl-emda: add debugfs support
config: x86_64-randconfig-123-20230920 (https://download.01.org/0day-ci/archive/20230920/202309200741.0Cx6Gz9M-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20230920/202309200741.0Cx6Gz9M-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202309200741.0Cx6Gz9M-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> drivers/dma/fsl-edma-debugfs.c:17:9: sparse: sparse: cast removes address space '__iomem' of expression
>> drivers/dma/fsl-edma-debugfs.c:17:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/dma/fsl-edma-debugfs.c:18:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/dma/fsl-edma-debugfs.c:18:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/dma/fsl-edma-debugfs.c:19:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/dma/fsl-edma-debugfs.c:19:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/dma/fsl-edma-debugfs.c:20:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/dma/fsl-edma-debugfs.c:20:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/dma/fsl-edma-debugfs.c:21:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/dma/fsl-edma-debugfs.c:21:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/dma/fsl-edma-debugfs.c:22:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/dma/fsl-edma-debugfs.c:22:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/dma/fsl-edma-debugfs.c:23:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/dma/fsl-edma-debugfs.c:23:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/dma/fsl-edma-debugfs.c:24:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/dma/fsl-edma-debugfs.c:24:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/dma/fsl-edma-debugfs.c:25:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/dma/fsl-edma-debugfs.c:25:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/dma/fsl-edma-debugfs.c:26:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/dma/fsl-edma-debugfs.c:26:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/dma/fsl-edma-debugfs.c:27:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/dma/fsl-edma-debugfs.c:27:9: sparse: sparse: cast removes address space '__iomem' of expression
   drivers/dma/fsl-edma-debugfs.c:35:15: sparse: sparse: cast removes address space '__iomem' of expression
>> drivers/dma/fsl-edma-debugfs.c:72:9: sparse: sparse: incorrect type in argument 4 (different address spaces) @@     expected unsigned int [usertype] *value @@     got void [noderef] __iomem *cr @@
   drivers/dma/fsl-edma-debugfs.c:72:9: sparse:     expected unsigned int [usertype] *value
   drivers/dma/fsl-edma-debugfs.c:72:9: sparse:     got void [noderef] __iomem *cr
>> drivers/dma/fsl-edma-debugfs.c:73:9: sparse: sparse: incorrect type in argument 4 (different address spaces) @@     expected unsigned int [usertype] *value @@     got void [noderef] __iomem *es @@
   drivers/dma/fsl-edma-debugfs.c:73:9: sparse:     expected unsigned int [usertype] *value
   drivers/dma/fsl-edma-debugfs.c:73:9: sparse:     got void [noderef] __iomem *es
>> drivers/dma/fsl-edma-debugfs.c:74:9: sparse: sparse: incorrect type in argument 4 (different address spaces) @@     expected unsigned int [usertype] *value @@     got void [noderef] __iomem *erqh @@
   drivers/dma/fsl-edma-debugfs.c:74:9: sparse:     expected unsigned int [usertype] *value
   drivers/dma/fsl-edma-debugfs.c:74:9: sparse:     got void [noderef] __iomem *erqh
>> drivers/dma/fsl-edma-debugfs.c:75:9: sparse: sparse: incorrect type in argument 4 (different address spaces) @@     expected unsigned int [usertype] *value @@     got void [noderef] __iomem *erql @@
   drivers/dma/fsl-edma-debugfs.c:75:9: sparse:     expected unsigned int [usertype] *value
   drivers/dma/fsl-edma-debugfs.c:75:9: sparse:     got void [noderef] __iomem *erql
>> drivers/dma/fsl-edma-debugfs.c:76:9: sparse: sparse: incorrect type in argument 4 (different address spaces) @@     expected unsigned int [usertype] *value @@     got void [noderef] __iomem *eeih @@
   drivers/dma/fsl-edma-debugfs.c:76:9: sparse:     expected unsigned int [usertype] *value
   drivers/dma/fsl-edma-debugfs.c:76:9: sparse:     got void [noderef] __iomem *eeih
>> drivers/dma/fsl-edma-debugfs.c:77:9: sparse: sparse: incorrect type in argument 4 (different address spaces) @@     expected unsigned int [usertype] *value @@     got void [noderef] __iomem *eeil @@
   drivers/dma/fsl-edma-debugfs.c:77:9: sparse:     expected unsigned int [usertype] *value
   drivers/dma/fsl-edma-debugfs.c:77:9: sparse:     got void [noderef] __iomem *eeil
>> drivers/dma/fsl-edma-debugfs.c:78:9: sparse: sparse: incorrect type in argument 4 (different address spaces) @@     expected unsigned int [usertype] *value @@     got void [noderef] __iomem *seei @@
   drivers/dma/fsl-edma-debugfs.c:78:9: sparse:     expected unsigned int [usertype] *value
   drivers/dma/fsl-edma-debugfs.c:78:9: sparse:     got void [noderef] __iomem *seei
>> drivers/dma/fsl-edma-debugfs.c:79:9: sparse: sparse: incorrect type in argument 4 (different address spaces) @@     expected unsigned int [usertype] *value @@     got void [noderef] __iomem *ceei @@
   drivers/dma/fsl-edma-debugfs.c:79:9: sparse:     expected unsigned int [usertype] *value
   drivers/dma/fsl-edma-debugfs.c:79:9: sparse:     got void [noderef] __iomem *ceei
>> drivers/dma/fsl-edma-debugfs.c:80:9: sparse: sparse: incorrect type in argument 4 (different address spaces) @@     expected unsigned int [usertype] *value @@     got void [noderef] __iomem *serq @@
   drivers/dma/fsl-edma-debugfs.c:80:9: sparse:     expected unsigned int [usertype] *value
   drivers/dma/fsl-edma-debugfs.c:80:9: sparse:     got void [noderef] __iomem *serq
>> drivers/dma/fsl-edma-debugfs.c:81:9: sparse: sparse: incorrect type in argument 4 (different address spaces) @@     expected unsigned int [usertype] *value @@     got void [noderef] __iomem *cerq @@
   drivers/dma/fsl-edma-debugfs.c:81:9: sparse:     expected unsigned int [usertype] *value
   drivers/dma/fsl-edma-debugfs.c:81:9: sparse:     got void [noderef] __iomem *cerq
>> drivers/dma/fsl-edma-debugfs.c:82:9: sparse: sparse: incorrect type in argument 4 (different address spaces) @@     expected unsigned int [usertype] *value @@     got void [noderef] __iomem *cint @@
   drivers/dma/fsl-edma-debugfs.c:82:9: sparse:     expected unsigned int [usertype] *value
   drivers/dma/fsl-edma-debugfs.c:82:9: sparse:     got void [noderef] __iomem *cint
>> drivers/dma/fsl-edma-debugfs.c:83:9: sparse: sparse: incorrect type in argument 4 (different address spaces) @@     expected unsigned int [usertype] *value @@     got void [noderef] __iomem *cerr @@
   drivers/dma/fsl-edma-debugfs.c:83:9: sparse:     expected unsigned int [usertype] *value
   drivers/dma/fsl-edma-debugfs.c:83:9: sparse:     got void [noderef] __iomem *cerr
>> drivers/dma/fsl-edma-debugfs.c:84:9: sparse: sparse: incorrect type in argument 4 (different address spaces) @@     expected unsigned int [usertype] *value @@     got void [noderef] __iomem *ssrt @@
   drivers/dma/fsl-edma-debugfs.c:84:9: sparse:     expected unsigned int [usertype] *value
   drivers/dma/fsl-edma-debugfs.c:84:9: sparse:     got void [noderef] __iomem *ssrt
>> drivers/dma/fsl-edma-debugfs.c:85:9: sparse: sparse: incorrect type in argument 4 (different address spaces) @@     expected unsigned int [usertype] *value @@     got void [noderef] __iomem *cdne @@
   drivers/dma/fsl-edma-debugfs.c:85:9: sparse:     expected unsigned int [usertype] *value
   drivers/dma/fsl-edma-debugfs.c:85:9: sparse:     got void [noderef] __iomem *cdne
>> drivers/dma/fsl-edma-debugfs.c:86:9: sparse: sparse: incorrect type in argument 4 (different address spaces) @@     expected unsigned int [usertype] *value @@     got void [noderef] __iomem *inth @@
   drivers/dma/fsl-edma-debugfs.c:86:9: sparse:     expected unsigned int [usertype] *value
   drivers/dma/fsl-edma-debugfs.c:86:9: sparse:     got void [noderef] __iomem *inth
>> drivers/dma/fsl-edma-debugfs.c:87:9: sparse: sparse: incorrect type in argument 4 (different address spaces) @@     expected unsigned int [usertype] *value @@     got void [noderef] __iomem *errh @@
   drivers/dma/fsl-edma-debugfs.c:87:9: sparse:     expected unsigned int [usertype] *value
   drivers/dma/fsl-edma-debugfs.c:87:9: sparse:     got void [noderef] __iomem *errh
>> drivers/dma/fsl-edma-debugfs.c:88:9: sparse: sparse: incorrect type in argument 4 (different address spaces) @@     expected unsigned int [usertype] *value @@     got void [noderef] __iomem *errl @@
   drivers/dma/fsl-edma-debugfs.c:88:9: sparse:     expected unsigned int [usertype] *value
   drivers/dma/fsl-edma-debugfs.c:88:9: sparse:     got void [noderef] __iomem *errl

vim +/__iomem +17 drivers/dma/fsl-edma-debugfs.c

    11	
    12	#define fsl_edma_debugfs_regv1(reg, dir, __name)				\
    13		debugfs_create_x32(__stringify(__name), 0644, dir, reg.__name)
    14	
    15	static void fsl_edma_debufs_tcdreg(struct fsl_edma_chan *chan, struct dentry *dir)
    16	{
  > 17		fsl_edma_debugfs_reg(chan->tcd, dir, saddr);
    18		fsl_edma_debugfs_reg(chan->tcd, dir, soff);
    19		fsl_edma_debugfs_reg(chan->tcd, dir, attr);
    20		fsl_edma_debugfs_reg(chan->tcd, dir, nbytes);
    21		fsl_edma_debugfs_reg(chan->tcd, dir, slast);
    22		fsl_edma_debugfs_reg(chan->tcd, dir, daddr);
    23		fsl_edma_debugfs_reg(chan->tcd, dir, doff);
  > 24		fsl_edma_debugfs_reg(chan->tcd, dir, citer);
  > 25		fsl_edma_debugfs_reg(chan->tcd, dir, dlast_sga);
    26		fsl_edma_debugfs_reg(chan->tcd, dir, csr);
  > 27		fsl_edma_debugfs_reg(chan->tcd, dir, biter);
    28	}
    29	
    30	static void fsl_edma3_debufs_chan(struct fsl_edma_chan *chan, struct dentry *entry)
    31	{
    32		struct fsl_edma3_ch_reg *reg;
    33		struct dentry *dir;
    34	
    35		reg = container_of(chan->tcd, struct fsl_edma3_ch_reg, tcd);
    36		fsl_edma_debugfs_reg(reg, entry, ch_csr);
    37		fsl_edma_debugfs_reg(reg, entry, ch_int);
    38		fsl_edma_debugfs_reg(reg, entry, ch_sbr);
    39		fsl_edma_debugfs_reg(reg, entry, ch_pri);
    40		fsl_edma_debugfs_reg(reg, entry, ch_mux);
    41		fsl_edma_debugfs_reg(reg, entry, ch_mattr);
    42	
    43		dir = debugfs_create_dir("tcd_regs", entry);
    44	
    45		fsl_edma_debufs_tcdreg(chan, dir);
    46	}
    47	
    48	static void fsl_edma3_debugfs_init(struct fsl_edma_engine *edma)
    49	{
    50		struct fsl_edma_chan *chan;
    51		struct dentry *dir;
    52		int i;
    53	
    54		for (i = 0; i < edma->n_chans; i++) {
    55			if (edma->chan_masked & BIT(i))
    56				continue;
    57	
    58			chan = &edma->chans[i];
    59			dir = debugfs_create_dir(chan->chan_name, edma->dma_dev.dbg_dev_root);
    60	
    61			fsl_edma3_debufs_chan(chan, dir);
    62		}
    63	
    64	}
    65	
    66	static void fsl_edma_debugfs_init(struct fsl_edma_engine *edma)
    67	{
    68		struct fsl_edma_chan *chan;
    69		struct dentry *dir;
    70		int i;
    71	
  > 72		fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, cr);
  > 73		fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, es);
  > 74		fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, erqh);
  > 75		fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, erql);
  > 76		fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, eeih);
  > 77		fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, eeil);
  > 78		fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, seei);
  > 79		fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, ceei);
  > 80		fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, serq);
  > 81		fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, cerq);
  > 82		fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, cint);
  > 83		fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, cerr);
  > 84		fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, ssrt);
  > 85		fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, cdne);
  > 86		fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, inth);
  > 87		fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, errh);
  > 88		fsl_edma_debugfs_regv1(edma->regs, edma->dma_dev.dbg_dev_root, errl);
    89	
    90		for (i = 0; i < edma->n_chans; i++) {
    91			if (edma->chan_masked & BIT(i))
    92				continue;
    93	
    94			chan = &edma->chans[i];
    95			dir = debugfs_create_dir(chan->chan_name, edma->dma_dev.dbg_dev_root);
    96	
    97			fsl_edma_debufs_tcdreg(chan, dir);
    98		}
    99	}
   100	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 2/2] dmaengine: fsl-edma: add trace event support
  2023-09-19 15:14 ` [PATCH v2 2/2] dmaengine: fsl-edma: add trace event support Frank Li
  2023-09-19 21:47   ` kernel test robot
@ 2023-09-20  2:49   ` kernel test robot
  2023-11-05 23:48   ` kernel test robot
  2 siblings, 0 replies; 8+ messages in thread
From: kernel test robot @ 2023-09-20  2:49 UTC (permalink / raw)
  To: Frank Li, vkoul, linux-kernel, dmaengine, imx; +Cc: oe-kbuild-all

Hi Frank,

kernel test robot noticed the following build warnings:

[auto build test WARNING on vkoul-dmaengine/next]
[also build test WARNING on linus/master v6.6-rc2 next-20230919]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Frank-Li/dmaengine-fsl-emda-add-debugfs-support/20230920-010257
base:   https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git next
patch link:    https://lore.kernel.org/r/20230919151430.2919042-3-Frank.Li%40nxp.com
patch subject: [PATCH v2 2/2] dmaengine: fsl-edma: add trace event support
config: x86_64-randconfig-123-20230920 (https://download.01.org/0day-ci/archive/20230920/202309201032.LMx2JZTV-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20230920/202309201032.LMx2JZTV-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202309201032.LMx2JZTV-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
   drivers/dma/fsl-edma-trace.c: note: in included file (through include/trace/trace_events.h, include/trace/define_trace.h, drivers/dma/fsl-edma-trace.h, ...):
>> drivers/dma/./fsl-edma-trace.h:62:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] saddr @@     got restricted __le32 [usertype] saddr @@
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     expected unsigned int [usertype] saddr
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     got restricted __le32 [usertype] saddr
>> drivers/dma/./fsl-edma-trace.h:62:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] soff @@     got restricted __le16 [usertype] soff @@
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     expected unsigned short [usertype] soff
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     got restricted __le16 [usertype] soff
>> drivers/dma/./fsl-edma-trace.h:62:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] attr @@     got restricted __le16 [usertype] attr @@
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     expected unsigned short [usertype] attr
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     got restricted __le16 [usertype] attr
>> drivers/dma/./fsl-edma-trace.h:62:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] nbytes @@     got restricted __le32 [usertype] nbytes @@
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     expected unsigned int [usertype] nbytes
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     got restricted __le32 [usertype] nbytes
>> drivers/dma/./fsl-edma-trace.h:62:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] slast @@     got restricted __le32 [usertype] slast @@
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     expected unsigned int [usertype] slast
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     got restricted __le32 [usertype] slast
>> drivers/dma/./fsl-edma-trace.h:62:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] daddr @@     got restricted __le32 [usertype] daddr @@
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     expected unsigned int [usertype] daddr
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     got restricted __le32 [usertype] daddr
>> drivers/dma/./fsl-edma-trace.h:62:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] doff @@     got restricted __le16 [usertype] doff @@
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     expected unsigned short [usertype] doff
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     got restricted __le16 [usertype] doff
>> drivers/dma/./fsl-edma-trace.h:62:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] citer @@     got restricted __le16 [usertype] citer @@
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     expected unsigned short [usertype] citer
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     got restricted __le16 [usertype] citer
>> drivers/dma/./fsl-edma-trace.h:62:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] dlast_sga @@     got restricted __le32 [usertype] dlast_sga @@
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     expected unsigned int [usertype] dlast_sga
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     got restricted __le32 [usertype] dlast_sga
>> drivers/dma/./fsl-edma-trace.h:62:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] csr @@     got restricted __le16 [usertype] csr @@
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     expected unsigned short [usertype] csr
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     got restricted __le16 [usertype] csr
>> drivers/dma/./fsl-edma-trace.h:62:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] biter @@     got restricted __le16 [usertype] biter @@
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     expected unsigned short [usertype] biter
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     got restricted __le16 [usertype] biter
   drivers/dma/fsl-edma-trace.c: note: in included file (through include/trace/perf.h, include/trace/define_trace.h, drivers/dma/fsl-edma-trace.h, ...):
>> drivers/dma/./fsl-edma-trace.h:62:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] saddr @@     got restricted __le32 [usertype] saddr @@
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     expected unsigned int [usertype] saddr
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     got restricted __le32 [usertype] saddr
>> drivers/dma/./fsl-edma-trace.h:62:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] soff @@     got restricted __le16 [usertype] soff @@
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     expected unsigned short [usertype] soff
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     got restricted __le16 [usertype] soff
>> drivers/dma/./fsl-edma-trace.h:62:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] attr @@     got restricted __le16 [usertype] attr @@
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     expected unsigned short [usertype] attr
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     got restricted __le16 [usertype] attr
>> drivers/dma/./fsl-edma-trace.h:62:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] nbytes @@     got restricted __le32 [usertype] nbytes @@
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     expected unsigned int [usertype] nbytes
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     got restricted __le32 [usertype] nbytes
>> drivers/dma/./fsl-edma-trace.h:62:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] slast @@     got restricted __le32 [usertype] slast @@
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     expected unsigned int [usertype] slast
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     got restricted __le32 [usertype] slast
>> drivers/dma/./fsl-edma-trace.h:62:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] daddr @@     got restricted __le32 [usertype] daddr @@
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     expected unsigned int [usertype] daddr
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     got restricted __le32 [usertype] daddr
>> drivers/dma/./fsl-edma-trace.h:62:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] doff @@     got restricted __le16 [usertype] doff @@
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     expected unsigned short [usertype] doff
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     got restricted __le16 [usertype] doff
>> drivers/dma/./fsl-edma-trace.h:62:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] citer @@     got restricted __le16 [usertype] citer @@
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     expected unsigned short [usertype] citer
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     got restricted __le16 [usertype] citer
>> drivers/dma/./fsl-edma-trace.h:62:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] dlast_sga @@     got restricted __le32 [usertype] dlast_sga @@
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     expected unsigned int [usertype] dlast_sga
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     got restricted __le32 [usertype] dlast_sga
>> drivers/dma/./fsl-edma-trace.h:62:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] csr @@     got restricted __le16 [usertype] csr @@
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     expected unsigned short [usertype] csr
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     got restricted __le16 [usertype] csr
>> drivers/dma/./fsl-edma-trace.h:62:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] biter @@     got restricted __le16 [usertype] biter @@
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     expected unsigned short [usertype] biter
   drivers/dma/./fsl-edma-trace.h:62:1: sparse:     got restricted __le16 [usertype] biter

vim +62 drivers/dma/./fsl-edma-trace.h

    61	
  > 62	DECLARE_EVENT_CLASS(edma_log_tcd,
    63		TP_PROTO(struct fsl_edma_engine *edma, struct fsl_edma_hw_tcd *tcd),
    64		TP_ARGS(edma, tcd),
    65		TP_STRUCT__entry(
    66			__field(struct fsl_edma_engine *, edma)
    67			__field(u32, saddr)
    68			__field(u16, soff)
    69			__field(u16, attr)
    70			__field(u32, nbytes)
    71			__field(u32, slast)
    72			__field(u32, daddr)
    73			__field(u16, doff)
    74			__field(u16, citer)
    75			__field(u32, dlast_sga)
    76			__field(u16, csr)
    77			__field(u16, biter)
    78	
    79		),
    80		TP_fast_assign(
    81			__entry->edma = edma;
    82			__entry->saddr = tcd->saddr,
    83			__entry->soff = tcd->soff,
    84			__entry->attr = tcd->attr,
    85			__entry->nbytes = tcd->nbytes,
    86			__entry->slast = tcd->slast,
    87			__entry->daddr = tcd->daddr,
    88			__entry->doff = tcd->doff,
    89			__entry->citer = tcd->citer,
    90			__entry->dlast_sga = tcd->dlast_sga,
    91			__entry->csr = tcd->csr,
    92			__entry->biter = tcd->biter;
    93		),
    94		TP_printk("\n==== TCD =====\n"
    95			  "  saddr:  0x%08x\n"
    96			  "  soff:       0x%04x\n"
    97			  "  attr:       0x%04x\n"
    98			  "  nbytes: 0x%08x\n"
    99			  "  slast:  0x%08x\n"
   100			  "  daddr:  0x%08x\n"
   101			  "  doff:       0x%04x\n"
   102			  "  citer:      0x%04x\n"
   103			  "  dlast:  0x%08x\n"
   104			  "  csr:        0x%04x\n"
   105			  "  biter:      0x%04x\n",
   106			__entry->saddr,
   107			__entry->soff,
   108			__entry->attr,
   109			__entry->nbytes,
   110			__entry->slast,
   111			__entry->daddr,
   112			__entry->doff,
   113			__entry->citer,
   114			__entry->dlast_sga,
   115			__entry->csr,
   116			__entry->biter)
   117	);
   118	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 1/2] dmaengine: fsl-emda: add debugfs support
  2023-09-19 15:14 ` [PATCH v2 1/2] dmaengine: fsl-emda: add " Frank Li
  2023-09-19 23:51   ` kernel test robot
@ 2023-09-20 21:45   ` kernel test robot
  1 sibling, 0 replies; 8+ messages in thread
From: kernel test robot @ 2023-09-20 21:45 UTC (permalink / raw)
  To: Frank Li, vkoul, linux-kernel, dmaengine, imx; +Cc: oe-kbuild-all

Hi Frank,

kernel test robot noticed the following build errors:

[auto build test ERROR on vkoul-dmaengine/next]
[also build test ERROR on linus/master v6.6-rc2 next-20230920]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Frank-Li/dmaengine-fsl-emda-add-debugfs-support/20230920-010257
base:   https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git next
patch link:    https://lore.kernel.org/r/20230919151430.2919042-2-Frank.Li%40nxp.com
patch subject: [PATCH v2 1/2] dmaengine: fsl-emda: add debugfs support
config: arm-imxrt_defconfig (https://download.01.org/0day-ci/archive/20230921/202309210500.owiirl4c-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 11.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20230921/202309210500.owiirl4c-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202309210500.owiirl4c-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

   In file included from drivers/dma/fsl-edma-main.c:24:
>> drivers/dma/fsl-edma-common.h:342:47: warning: 'struct dw_edma' declared inside parameter list will not be visible outside of this definition or declaration
     342 | static inline void fsl_edma_debugfs_on(struct dw_edma *edma)
         |                                               ^~~~~~~
   drivers/dma/fsl-edma-main.c: In function 'fsl_edma_probe':
>> drivers/dma/fsl-edma-main.c:615:29: error: passing argument 1 of 'fsl_edma_debugfs_on' from incompatible pointer type [-Werror=incompatible-pointer-types]
     615 |         fsl_edma_debugfs_on(fsl_edma);
         |                             ^~~~~~~~
         |                             |
         |                             struct fsl_edma_engine *
   In file included from drivers/dma/fsl-edma-main.c:24:
   drivers/dma/fsl-edma-common.h:342:56: note: expected 'struct dw_edma *' but argument is of type 'struct fsl_edma_engine *'
     342 | static inline void fsl_edma_debugfs_on(struct dw_edma *edma)
         |                                        ~~~~~~~~~~~~~~~~^~~~
   cc1: some warnings being treated as errors
--
   In file included from drivers/dma/fsl-edma-common.c:13:
>> drivers/dma/fsl-edma-common.h:342:47: warning: 'struct dw_edma' declared inside parameter list will not be visible outside of this definition or declaration
     342 | static inline void fsl_edma_debugfs_on(struct dw_edma *edma)
         |                                               ^~~~~~~


vim +/fsl_edma_debugfs_on +615 drivers/dma/fsl-edma-main.c

   416	
   417	static int fsl_edma_probe(struct platform_device *pdev)
   418	{
   419		const struct of_device_id *of_id =
   420				of_match_device(fsl_edma_dt_ids, &pdev->dev);
   421		struct device_node *np = pdev->dev.of_node;
   422		struct fsl_edma_engine *fsl_edma;
   423		const struct fsl_edma_drvdata *drvdata = NULL;
   424		u32 chan_mask[2] = {0, 0};
   425		struct edma_regs *regs;
   426		int chans;
   427		int ret, i;
   428	
   429		if (of_id)
   430			drvdata = of_id->data;
   431		if (!drvdata) {
   432			dev_err(&pdev->dev, "unable to find driver data\n");
   433			return -EINVAL;
   434		}
   435	
   436		ret = of_property_read_u32(np, "dma-channels", &chans);
   437		if (ret) {
   438			dev_err(&pdev->dev, "Can't get dma-channels.\n");
   439			return ret;
   440		}
   441	
   442		fsl_edma = devm_kzalloc(&pdev->dev, struct_size(fsl_edma, chans, chans),
   443					GFP_KERNEL);
   444		if (!fsl_edma)
   445			return -ENOMEM;
   446	
   447		fsl_edma->drvdata = drvdata;
   448		fsl_edma->n_chans = chans;
   449		mutex_init(&fsl_edma->fsl_edma_mutex);
   450	
   451		fsl_edma->membase = devm_platform_ioremap_resource(pdev, 0);
   452		if (IS_ERR(fsl_edma->membase))
   453			return PTR_ERR(fsl_edma->membase);
   454	
   455		if (!(drvdata->flags & FSL_EDMA_DRV_SPLIT_REG)) {
   456			fsl_edma_setup_regs(fsl_edma);
   457			regs = &fsl_edma->regs;
   458		}
   459	
   460		if (drvdata->flags & FSL_EDMA_DRV_HAS_DMACLK) {
   461			fsl_edma->dmaclk = devm_clk_get_enabled(&pdev->dev, "dma");
   462			if (IS_ERR(fsl_edma->dmaclk)) {
   463				dev_err(&pdev->dev, "Missing DMA block clock.\n");
   464				return PTR_ERR(fsl_edma->dmaclk);
   465			}
   466		}
   467	
   468		if (drvdata->flags & FSL_EDMA_DRV_HAS_CHCLK) {
   469			fsl_edma->chclk = devm_clk_get_enabled(&pdev->dev, "mp");
   470			if (IS_ERR(fsl_edma->chclk)) {
   471				dev_err(&pdev->dev, "Missing MP block clock.\n");
   472				return PTR_ERR(fsl_edma->chclk);
   473			}
   474		}
   475	
   476		ret = of_property_read_variable_u32_array(np, "dma-channel-mask", chan_mask, 1, 2);
   477	
   478		if (ret > 0) {
   479			fsl_edma->chan_masked = chan_mask[1];
   480			fsl_edma->chan_masked <<= 32;
   481			fsl_edma->chan_masked |= chan_mask[0];
   482		}
   483	
   484		for (i = 0; i < fsl_edma->drvdata->dmamuxs; i++) {
   485			char clkname[32];
   486	
   487			/* eDMAv3 mux register move to TCD area if ch_mux exist */
   488			if (drvdata->flags & FSL_EDMA_DRV_SPLIT_REG)
   489				break;
   490	
   491			fsl_edma->muxbase[i] = devm_platform_ioremap_resource(pdev,
   492									      1 + i);
   493			if (IS_ERR(fsl_edma->muxbase[i])) {
   494				/* on error: disable all previously enabled clks */
   495				fsl_disable_clocks(fsl_edma, i);
   496				return PTR_ERR(fsl_edma->muxbase[i]);
   497			}
   498	
   499			sprintf(clkname, "dmamux%d", i);
   500			fsl_edma->muxclk[i] = devm_clk_get_enabled(&pdev->dev, clkname);
   501			if (IS_ERR(fsl_edma->muxclk[i])) {
   502				dev_err(&pdev->dev, "Missing DMAMUX block clock.\n");
   503				/* on error: disable all previously enabled clks */
   504				return PTR_ERR(fsl_edma->muxclk[i]);
   505			}
   506		}
   507	
   508		fsl_edma->big_endian = of_property_read_bool(np, "big-endian");
   509	
   510		if (drvdata->flags & FSL_EDMA_DRV_HAS_PD) {
   511			ret = fsl_edma3_attach_pd(pdev, fsl_edma);
   512			if (ret)
   513				return ret;
   514		}
   515	
   516		INIT_LIST_HEAD(&fsl_edma->dma_dev.channels);
   517		for (i = 0; i < fsl_edma->n_chans; i++) {
   518			struct fsl_edma_chan *fsl_chan = &fsl_edma->chans[i];
   519			int len;
   520	
   521			if (fsl_edma->chan_masked & BIT(i))
   522				continue;
   523	
   524			snprintf(fsl_chan->chan_name, sizeof(fsl_chan->chan_name), "%s-CH%02d",
   525								   dev_name(&pdev->dev), i);
   526	
   527			fsl_chan->edma = fsl_edma;
   528			fsl_chan->pm_state = RUNNING;
   529			fsl_chan->slave_id = 0;
   530			fsl_chan->idle = true;
   531			fsl_chan->dma_dir = DMA_NONE;
   532			fsl_chan->vchan.desc_free = fsl_edma_free_desc;
   533	
   534			len = (drvdata->flags & FSL_EDMA_DRV_SPLIT_REG) ?
   535					offsetof(struct fsl_edma3_ch_reg, tcd) : 0;
   536			fsl_chan->tcd = fsl_edma->membase
   537					+ i * drvdata->chreg_space_sz + drvdata->chreg_off + len;
   538	
   539			fsl_chan->pdev = pdev;
   540			vchan_init(&fsl_chan->vchan, &fsl_edma->dma_dev);
   541	
   542			edma_write_tcdreg(fsl_chan, 0, csr);
   543			fsl_edma_chan_mux(fsl_chan, 0, false);
   544		}
   545	
   546		ret = fsl_edma->drvdata->setup_irq(pdev, fsl_edma);
   547		if (ret)
   548			return ret;
   549	
   550		dma_cap_set(DMA_PRIVATE, fsl_edma->dma_dev.cap_mask);
   551		dma_cap_set(DMA_SLAVE, fsl_edma->dma_dev.cap_mask);
   552		dma_cap_set(DMA_CYCLIC, fsl_edma->dma_dev.cap_mask);
   553		dma_cap_set(DMA_MEMCPY, fsl_edma->dma_dev.cap_mask);
   554	
   555		fsl_edma->dma_dev.dev = &pdev->dev;
   556		fsl_edma->dma_dev.device_alloc_chan_resources
   557			= fsl_edma_alloc_chan_resources;
   558		fsl_edma->dma_dev.device_free_chan_resources
   559			= fsl_edma_free_chan_resources;
   560		fsl_edma->dma_dev.device_tx_status = fsl_edma_tx_status;
   561		fsl_edma->dma_dev.device_prep_slave_sg = fsl_edma_prep_slave_sg;
   562		fsl_edma->dma_dev.device_prep_dma_cyclic = fsl_edma_prep_dma_cyclic;
   563		fsl_edma->dma_dev.device_prep_dma_memcpy = fsl_edma_prep_memcpy;
   564		fsl_edma->dma_dev.device_config = fsl_edma_slave_config;
   565		fsl_edma->dma_dev.device_pause = fsl_edma_pause;
   566		fsl_edma->dma_dev.device_resume = fsl_edma_resume;
   567		fsl_edma->dma_dev.device_terminate_all = fsl_edma_terminate_all;
   568		fsl_edma->dma_dev.device_synchronize = fsl_edma_synchronize;
   569		fsl_edma->dma_dev.device_issue_pending = fsl_edma_issue_pending;
   570	
   571		fsl_edma->dma_dev.src_addr_widths = FSL_EDMA_BUSWIDTHS;
   572		fsl_edma->dma_dev.dst_addr_widths = FSL_EDMA_BUSWIDTHS;
   573	
   574		if (drvdata->flags & FSL_EDMA_DRV_BUS_8BYTE) {
   575			fsl_edma->dma_dev.src_addr_widths |= BIT(DMA_SLAVE_BUSWIDTH_8_BYTES);
   576			fsl_edma->dma_dev.dst_addr_widths |= BIT(DMA_SLAVE_BUSWIDTH_8_BYTES);
   577		}
   578	
   579		fsl_edma->dma_dev.directions = BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_DEV);
   580		if (drvdata->flags & FSL_EDMA_DRV_DEV_TO_DEV)
   581			fsl_edma->dma_dev.directions |= BIT(DMA_DEV_TO_DEV);
   582	
   583		fsl_edma->dma_dev.copy_align = drvdata->flags & FSL_EDMA_DRV_ALIGN_64BYTE ?
   584						DMAENGINE_ALIGN_64_BYTES :
   585						DMAENGINE_ALIGN_32_BYTES;
   586	
   587		/* Per worst case 'nbytes = 1' take CITER as the max_seg_size */
   588		dma_set_max_seg_size(fsl_edma->dma_dev.dev, 0x3fff);
   589	
   590		fsl_edma->dma_dev.residue_granularity = DMA_RESIDUE_GRANULARITY_SEGMENT;
   591	
   592		platform_set_drvdata(pdev, fsl_edma);
   593	
   594		ret = dma_async_device_register(&fsl_edma->dma_dev);
   595		if (ret) {
   596			dev_err(&pdev->dev,
   597				"Can't register Freescale eDMA engine. (%d)\n", ret);
   598			return ret;
   599		}
   600	
   601		ret = of_dma_controller_register(np,
   602				drvdata->flags & FSL_EDMA_DRV_SPLIT_REG ? fsl_edma3_xlate : fsl_edma_xlate,
   603				fsl_edma);
   604		if (ret) {
   605			dev_err(&pdev->dev,
   606				"Can't register Freescale eDMA of_dma. (%d)\n", ret);
   607			dma_async_device_unregister(&fsl_edma->dma_dev);
   608			return ret;
   609		}
   610	
   611		/* enable round robin arbitration */
   612		if (!(drvdata->flags & FSL_EDMA_DRV_SPLIT_REG))
   613			edma_writel(fsl_edma, EDMA_CR_ERGA | EDMA_CR_ERCA, regs->cr);
   614	
 > 615		fsl_edma_debugfs_on(fsl_edma);
   616	
   617		return 0;
   618	}
   619	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 2/2] dmaengine: fsl-edma: add trace event support
  2023-09-19 15:14 ` [PATCH v2 2/2] dmaengine: fsl-edma: add trace event support Frank Li
  2023-09-19 21:47   ` kernel test robot
  2023-09-20  2:49   ` kernel test robot
@ 2023-11-05 23:48   ` kernel test robot
  2 siblings, 0 replies; 8+ messages in thread
From: kernel test robot @ 2023-11-05 23:48 UTC (permalink / raw)
  To: Frank Li; +Cc: llvm, oe-kbuild-all

Hi Frank,

kernel test robot noticed the following build warnings:

[auto build test WARNING on vkoul-dmaengine/next]
[also build test WARNING on linus/master v6.6 next-20231103]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Frank-Li/dmaengine-fsl-emda-add-debugfs-support/20230920-010257
base:   https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git next
patch link:    https://lore.kernel.org/r/20230919151430.2919042-3-Frank.Li%40nxp.com
patch subject: [PATCH v2 2/2] dmaengine: fsl-edma: add trace event support
config: i386-allyesconfig (https://download.01.org/0day-ci/archive/20231106/202311060731.YvOiksyu-lkp@intel.com/config)
compiler: clang version 16.0.4 (https://github.com/llvm/llvm-project.git ae42196bc493ffe877a7e3dff8be32035dea4d07)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231106/202311060731.YvOiksyu-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202311060731.YvOiksyu-lkp@intel.com/

All warnings (new ones prefixed by >>):

   In file included from drivers/dma/fsl-edma-trace.c:4:
   In file included from drivers/dma/fsl-edma-common.h:238:
   In file included from drivers/dma/fsl-edma-trace.h:134:
   In file included from include/trace/define_trace.h:102:
   In file included from include/trace/trace_events.h:237:
>> drivers/dma/fsl-edma-trace.h:29:3: warning: format specifies type 'unsigned long' but the argument has type 'int' [-Wformat]
                   __entry->addr - __entry->edma->membase, __entry->value)
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/trace/stages/stage3_trace_output.h:6:17: note: expanded from macro '__entry'
   #define __entry field
                   ^
   include/trace/stages/stage3_trace_output.h:9:43: note: expanded from macro 'TP_printk'
   #define TP_printk(fmt, args...) fmt "\n", args
                                   ~~~       ^
   include/trace/trace_events.h:203:27: note: expanded from macro 'DECLARE_EVENT_CLASS'
           trace_event_printf(iter, print);                                \
                                    ^~~~~
   1 warning generated.


vim +29 drivers/dma/fsl-edma-trace.h

    14	
    15	DECLARE_EVENT_CLASS(edma_log_io,
    16		TP_PROTO(struct fsl_edma_engine *edma, void __iomem *addr, u32 value),
    17		TP_ARGS(edma, addr, value),
    18		TP_STRUCT__entry(
    19			__field(struct fsl_edma_engine *, edma)
    20			__field(void __iomem *, addr)
    21			__field(u32, value)
    22		),
    23		TP_fast_assign(
    24			__entry->edma = edma;
    25			__entry->addr = addr;
    26			__entry->value = value;
    27		),
    28		TP_printk("offset %08lx: value %08x",
  > 29			__entry->addr - __entry->edma->membase, __entry->value)
    30	);
    31	
    32	DEFINE_EVENT(edma_log_io, edma_readl,
    33		TP_PROTO(struct fsl_edma_engine *edma, void __iomem *addr, u32 value),
    34		TP_ARGS(edma, addr, value)
    35	);
    36	
    37	DEFINE_EVENT(edma_log_io, edma_writel,
    38		TP_PROTO(struct fsl_edma_engine *edma, void __iomem *addr,  u32 value),
    39		TP_ARGS(edma, addr, value)
    40	);
    41	
    42	DEFINE_EVENT(edma_log_io, edma_readw,
    43		TP_PROTO(struct fsl_edma_engine *edma, void __iomem *addr, u32 value),
    44		TP_ARGS(edma, addr, value)
    45	);
    46	
    47	DEFINE_EVENT(edma_log_io, edma_writew,
    48		TP_PROTO(struct fsl_edma_engine *edma, void __iomem *addr,  u32 value),
    49		TP_ARGS(edma, addr, value)
    50	);
    51	
    52	DEFINE_EVENT(edma_log_io, edma_readb,
    53		TP_PROTO(struct fsl_edma_engine *edma, void __iomem *addr, u32 value),
    54		TP_ARGS(edma, addr, value)
    55	);
    56	
    57	DEFINE_EVENT(edma_log_io, edma_writeb,
    58		TP_PROTO(struct fsl_edma_engine *edma, void __iomem *addr,  u32 value),
    59		TP_ARGS(edma, addr, value)
    60	);
    61	
    62	DECLARE_EVENT_CLASS(edma_log_tcd,
    63		TP_PROTO(struct fsl_edma_engine *edma, struct fsl_edma_hw_tcd *tcd),
    64		TP_ARGS(edma, tcd),
    65		TP_STRUCT__entry(
    66			__field(struct fsl_edma_engine *, edma)
    67			__field(u32, saddr)
    68			__field(u16, soff)
    69			__field(u16, attr)
    70			__field(u32, nbytes)
    71			__field(u32, slast)
    72			__field(u32, daddr)
    73			__field(u16, doff)
    74			__field(u16, citer)
    75			__field(u32, dlast_sga)
    76			__field(u16, csr)
    77			__field(u16, biter)
    78	
    79		),
    80		TP_fast_assign(
    81			__entry->edma = edma;
    82			__entry->saddr = tcd->saddr,
    83			__entry->soff = tcd->soff,
    84			__entry->attr = tcd->attr,
    85			__entry->nbytes = tcd->nbytes,
    86			__entry->slast = tcd->slast,
    87			__entry->daddr = tcd->daddr,
    88			__entry->doff = tcd->doff,
    89			__entry->citer = tcd->citer,
    90			__entry->dlast_sga = tcd->dlast_sga,
    91			__entry->csr = tcd->csr,
    92			__entry->biter = tcd->biter;
    93		),
    94		TP_printk("\n==== TCD =====\n"
    95			  "  saddr:  0x%08x\n"
    96			  "  soff:       0x%04x\n"
    97			  "  attr:       0x%04x\n"
    98			  "  nbytes: 0x%08x\n"
    99			  "  slast:  0x%08x\n"
   100			  "  daddr:  0x%08x\n"
   101			  "  doff:       0x%04x\n"
   102			  "  citer:      0x%04x\n"
   103			  "  dlast:  0x%08x\n"
   104			  "  csr:        0x%04x\n"
   105			  "  biter:      0x%04x\n",
   106			__entry->saddr,
   107			__entry->soff,
   108			__entry->attr,
   109			__entry->nbytes,
   110			__entry->slast,
   111			__entry->daddr,
   112			__entry->doff,
   113			__entry->citer,
   114			__entry->dlast_sga,
   115			__entry->csr,
   116			__entry->biter)
   117	);
   118	
   119	DEFINE_EVENT(edma_log_tcd, edma_fill_tcd,
   120		TP_PROTO(struct fsl_edma_engine *edma, struct fsl_edma_hw_tcd *tcd),
   121		TP_ARGS(edma, tcd)
   122	);
   123	
   124	#endif
   125	
   126	/* this part must be outside header guard */
   127	
   128	#undef TRACE_INCLUDE_PATH
   129	#define TRACE_INCLUDE_PATH .
   130	
   131	#undef TRACE_INCLUDE_FILE
   132	#define TRACE_INCLUDE_FILE fsl-edma-trace
   133	
 > 134	#include <trace/define_trace.h>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2023-11-05 23:49 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-19 15:14 [PATCH v2 0/2] dmaengine: fsl_edma: add trace and debugfs support Frank Li
2023-09-19 15:14 ` [PATCH v2 1/2] dmaengine: fsl-emda: add " Frank Li
2023-09-19 23:51   ` kernel test robot
2023-09-20 21:45   ` kernel test robot
2023-09-19 15:14 ` [PATCH v2 2/2] dmaengine: fsl-edma: add trace event support Frank Li
2023-09-19 21:47   ` kernel test robot
2023-09-20  2:49   ` kernel test robot
2023-11-05 23:48   ` kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.