linux-next/drivers/net/wwan/iosm/iosm_ipc_trace.h
Muhammad Muzammil 2c6370a13f drivers: net: wwan: iosm: Fixed multiple typos in multiple files
iosm_ipc_chnl_cfg.h: Fixed typo
iosm_ipc_imem_ops.h: Fixed typo
iosm_ipc_mux.h: Fixed typo
iosm_ipc_pm.h: Fixed typo
iosm_ipc_port.h: Fixed typo
iosm_ipc_trace.h: Fixed typo

Signed-off-by: Muhammad Muzammil <m.muzzammilashraf@gmail.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://lore.kernel.org/r/20231014121407.10012-1-m.muzzammilashraf@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-10-18 17:45:44 -07:00

75 lines
1.7 KiB
C

/* SPDX-License-Identifier: GPL-2.0-only
*
* Copyright (C) 2020-2021 Intel Corporation.
*/
#ifndef IOSM_IPC_TRACE_H
#define IOSM_IPC_TRACE_H
#include <linux/debugfs.h>
#include <linux/relay.h>
#include "iosm_ipc_chnl_cfg.h"
#include "iosm_ipc_imem_ops.h"
/**
* enum trace_ctrl_mode - State of trace channel
* @TRACE_DISABLE: mode for disable trace
* @TRACE_ENABLE: mode for enable trace
*/
enum trace_ctrl_mode {
TRACE_DISABLE = 0,
TRACE_ENABLE,
};
/**
* struct iosm_trace - Struct for trace interface
* @ipc_rchan: Pointer to relay channel
* @ctrl_file: Pointer to trace control file
* @ipc_imem: Imem instance
* @dev: Pointer to device struct
* @channel: Channel instance
* @chl_id: Channel Identifier
* @trc_mutex: Mutex used for read and write mode
* @mode: Mode for enable and disable trace
*/
struct iosm_trace {
struct rchan *ipc_rchan;
struct dentry *ctrl_file;
struct iosm_imem *ipc_imem;
struct device *dev;
struct ipc_mem_channel *channel;
enum ipc_channel_id chl_id;
struct mutex trc_mutex; /* Mutex used for read and write mode */
enum trace_ctrl_mode mode;
};
#ifdef CONFIG_WWAN_DEBUGFS
static inline bool ipc_is_trace_channel(struct iosm_imem *ipc_mem, u16 chl_id)
{
return ipc_mem->trace && ipc_mem->trace->chl_id == chl_id;
}
struct iosm_trace *ipc_trace_init(struct iosm_imem *ipc_imem);
void ipc_trace_deinit(struct iosm_trace *ipc_trace);
void ipc_trace_port_rx(struct iosm_imem *ipc_imem, struct sk_buff *skb);
#else
static inline bool ipc_is_trace_channel(struct iosm_imem *ipc_mem, u16 chl_id)
{
return false;
}
static inline void ipc_trace_port_rx(struct iosm_imem *ipc_imem,
struct sk_buff *skb)
{
dev_kfree_skb(skb);
}
#endif
#endif