* [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 *)®->__name) : \
+ debugfs_create_x16(__stringify(__name), 0644, dir, (u16 *)®->__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.