Commit ab0725df authored by Federico Vaga's avatar Federico Vaga

drv: add debug file

Signed-off-by: Federico Vaga's avatarFederico Vaga <federico.vaga@cern.ch>
parent 7dc1f214
......@@ -45,5 +45,6 @@ fmc-tdc-objs += ft-core.o
fmc-tdc-objs += ft-fifo.o
fmc-tdc-objs += ft-time.o
fmc-tdc-objs += ft-zio.o
fmc-tdc-objs += ft-debug.o
fmc-tdc-spec-objs := fmc-tdc-spec-core.o
......@@ -262,6 +262,8 @@ struct fmctdc_dev {
struct dma_chan *dchan;
int pending_dma;
struct work_struct irq_work;
struct dentry *dbg_dir;
};
static inline u32 ft_ioread(struct fmctdc_dev *ft, void *addr)
......@@ -343,6 +345,8 @@ void ft_irq_coalescing_timeout_set(struct fmctdc_dev *ft,
uint32_t ft_irq_coalescing_timeout_get(struct fmctdc_dev *ft,
unsigned int chan);
int ft_debug_init(struct fmctdc_dev *ft);
void ft_debug_exit(struct fmctdc_dev *ft);
/**
* It enables the acquisition on a give channel
......
......@@ -478,6 +478,7 @@ int ft_probe(struct platform_device *pdev)
if (ret < 0)
goto err;
ft_debug_init(ft);
ft_writel(ft, TDC_INPUT_ENABLE_FLAG, TDC_REG_INPUT_ENABLE);
ft_writel(ft, TDC_CTRL_EN_ACQ, TDC_REG_CTRL);
......@@ -514,6 +515,8 @@ int ft_remove(struct platform_device *pdev)
ft_writel(ft, TDC_CTRL_DIS_ACQ, TDC_REG_CTRL);
ft_writel(ft, 0, TDC_REG_INPUT_ENABLE);
ft_debug_exit(ft);
switch (ft->mode) {
case FT_ACQ_TYPE_DMA:
ft_buf_exit(ft);
......
// SPDX-License-Identifier: GPL-2.0-or-later
/*
* Copyright CERN 2018-2019
* Author: Federico Vaga <federico.vaga@cern.ch>
*/
#include <linux/debugfs.h>
#include "fmc-tdc.h"
int ft_debug_init(struct fmctdc_dev *ft)
{
int err;
ft->dbg_dir = debugfs_create_dir(dev_name(&ft->pdev->dev), NULL);
if (IS_ERR_OR_NULL(ft->dbg_dir)) {
err = PTR_ERR(ft->dbg_dir);
dev_err(&ft->zdev->head.dev,
"Cannot create debugfs directory \"%s\" (%d)\n",
dev_name(&ft->zdev->head.dev), err);
return err;
}
return 0;
}
void ft_debug_exit(struct fmctdc_dev *ft)
{
debugfs_remove_recursive(ft->dbg_dir);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment