mirror of
https://github.com/AetherDroid/android_kernel_samsung_on5xelte.git
synced 2025-09-08 17:18:05 -04:00
296 lines
10 KiB
C
296 lines
10 KiB
C
/****************************************************************************
|
|
*
|
|
* Copyright (c) 2014 - 2016 Samsung Electronics Co., Ltd. All rights reserved
|
|
*
|
|
****************************************************************************/
|
|
|
|
#include <linux/proc_fs.h>
|
|
#include <linux/version.h>
|
|
#include <linux/seq_file.h>
|
|
|
|
#ifndef __HIP4_SAMPLER_H__
|
|
#define __HIP4_SAMPLER_H__
|
|
|
|
#define HIP4_SAMPLER_SIGNAL_CTRLTX 0x20
|
|
#define HIP4_SAMPLER_SIGNAL_CTRLRX 0x21
|
|
#define HIP4_SAMPLER_THROUG 0x22
|
|
#define HIP4_SAMPLER_THROUG_K 0x23
|
|
#define HIP4_SAMPLER_THROUG_M 0x24
|
|
#define HIP4_SAMPLER_STOP_Q 0x25
|
|
#define HIP4_SAMPLER_START_Q 0x26
|
|
#define HIP4_SAMPLER_QREF 0x27
|
|
#define HIP4_SAMPLER_TOFREE 0x28
|
|
#define HIP4_SAMPLER_PEER 0x29
|
|
#define HIP4_SAMPLER_BOT_RX 0x2a
|
|
#define HIP4_SAMPLER_BOT_TX 0x2b
|
|
#define HIP4_SAMPLER_BOT_ADD 0x2c
|
|
#define HIP4_SAMPLER_BOT_REMOVE 0x2d
|
|
#define HIP4_SAMPLER_BOT_STOP_Q 0x2e
|
|
#define HIP4_SAMPLER_BOT_START_Q 0x2f
|
|
#define HIP4_SAMPLER_BOT_QMOD_RX 0x30
|
|
#define HIP4_SAMPLER_BOT_QMOD_TX 0x31
|
|
#define HIP4_SAMPLER_BOT_QMOD_STOP 0x32
|
|
#define HIP4_SAMPLER_BOT_QMOD_START 0x33
|
|
#define HIP4_SAMPLER_PKT_TX 0x40
|
|
#define HIP4_SAMPLER_PKT_TX_HIP4 0x41
|
|
#define HIP4_SAMPLER_PKT_TX_FB 0x42
|
|
#define HIP4_SAMPLER_MBULK 0xaa
|
|
#define HIP4_SAMPLER_QFULL 0xbb
|
|
#define HIP4_SAMPLER_MFULL 0xcc
|
|
#define HIP4_SAMPLER_INT 0xdd
|
|
#define HIP4_SAMPLER_INT_OUT 0xee
|
|
#define HIP4_SAMPLER_RESET 0xff
|
|
|
|
#define SCSC_HIP4_INTERFACES 1
|
|
|
|
#define SCSC_HIP4_STREAM_CH 1
|
|
#define SCSC_HIP4_OFFLINE_CH SCSC_HIP4_STREAM_CH
|
|
|
|
#if (SCSC_HIP4_OFFLINE_CH != SCSC_HIP4_STREAM_CH)
|
|
#error "SCSC_HIP4_STREAM_CH has to be equal to SCSC_HIP4_OFFLINE_CH"
|
|
#endif
|
|
|
|
#define SCSC_HIP4_DEBUG_INTERFACES ((SCSC_HIP4_INTERFACES) * (SCSC_HIP4_STREAM_CH + SCSC_HIP4_OFFLINE_CH))
|
|
|
|
struct scsc_mx;
|
|
|
|
void hip4_sampler_create(struct scsc_mx *mx);
|
|
void hip4_sampler_destroy(struct scsc_mx *mx);
|
|
|
|
/* Register hip4 instance with the logger */
|
|
/* return char device minor associated with the maxwell instance*/
|
|
int hip4_sampler_register_hip(struct scsc_mx *mx);
|
|
|
|
void hip4_sampler_update_record(u32 minor, u8 param1, u8 param2, u8 param3, u8 param4);
|
|
|
|
extern bool hip4_sampler_sample_q;
|
|
extern bool hip4_sampler_sample_qref;
|
|
extern bool hip4_sampler_sample_int;
|
|
extern bool hip4_sampler_sample_fapi;
|
|
extern bool hip4_sampler_sample_through;
|
|
extern bool hip4_sampler_sample_start_stop_q;
|
|
extern bool hip4_sampler_sample_mbulk;
|
|
extern bool hip4_sampler_sample_qfull;
|
|
extern bool hip4_sampler_sample_mfull;
|
|
extern bool hip4_sampler_vif;
|
|
extern bool hip4_sampler_bot;
|
|
extern bool hip4_sampler_pkt_tx;
|
|
|
|
#ifdef CONFIG_SCSC_WLAN_DEBUG
|
|
#define SCSC_HIP4_SAMPLER_Q(minor, q, idx_rw, value, rw) \
|
|
do { \
|
|
if (hip4_sampler_sample_q) { \
|
|
hip4_sampler_update_record(minor, q, idx_rw, value, rw); \
|
|
} \
|
|
} while (0)
|
|
#define SCSC_HIP4_SAMPLER_QREF(minor, ref, q) \
|
|
do { \
|
|
if (hip4_sampler_sample_qref) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_QREF, (ref & 0xff0000) >> 16, (ref & 0xff00) >> 8, (ref & 0xf0) | q); \
|
|
} \
|
|
} while (0)
|
|
#define SCSC_HIP4_SAMPLER_TOFREE(minor, num) \
|
|
do { \
|
|
if (hip4_sampler_sample_qref) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_TOFREE, 0, 0, num); \
|
|
} \
|
|
} while (0)
|
|
#define SCSC_HIP4_SAMPLER_SIGNAL_CTRLTX(minor, bytes16_h, bytes16_l) \
|
|
do { \
|
|
if (hip4_sampler_sample_fapi) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_SIGNAL_CTRLTX, 0, bytes16_h, bytes16_l); \
|
|
} \
|
|
} while (0)
|
|
#define SCSC_HIP4_SAMPLER_SIGNAL_CTRLRX(minor, bytes16_h, bytes16_l) \
|
|
do { \
|
|
if (hip4_sampler_sample_fapi) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_SIGNAL_CTRLRX, 0, bytes16_h, bytes16_l); \
|
|
} \
|
|
} while (0)
|
|
#define SCSC_HIP4_SAMPLER_THROUG(minor, bytes16_h, bytes16_l) \
|
|
do { \
|
|
if (hip4_sampler_sample_through) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_THROUG, 0, bytes16_h, bytes16_l); \
|
|
} \
|
|
} while (0)
|
|
#define SCSC_HIP4_SAMPLER_THROUG_K(minor, bytes16_h, bytes16_l) \
|
|
do { \
|
|
if (hip4_sampler_sample_through) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_THROUG_K, 0, bytes16_h, bytes16_l); \
|
|
} \
|
|
} while (0)
|
|
#define SCSC_HIP4_SAMPLER_THROUG_M(minor, bytes16_h, bytes16_l) \
|
|
do { \
|
|
if (hip4_sampler_sample_through) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_THROUG_M, 0, bytes16_h, bytes16_l); \
|
|
} \
|
|
} while (0)
|
|
#define SCSC_HIP4_SAMPLER_STOP_Q(minor, vif_id) \
|
|
do { \
|
|
if (hip4_sampler_sample_start_stop_q) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_STOP_Q, 0, 0, vif_id); \
|
|
} \
|
|
} while (0)
|
|
#define SCSC_HIP4_SAMPLER_START_Q(minor, vif_id) \
|
|
do { \
|
|
if (hip4_sampler_sample_start_stop_q) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_START_Q, 0, 0, vif_id); \
|
|
} \
|
|
} while (0)
|
|
#define SCSC_HIP4_SAMPLER_MBULK(minor, bytes16_h, bytes16_l, clas) \
|
|
do { \
|
|
if (hip4_sampler_sample_mbulk) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_MBULK, clas, bytes16_h, bytes16_l); \
|
|
} \
|
|
} while (0)
|
|
#define SCSC_HIP4_SAMPLER_QFULL(minor, q) \
|
|
do { \
|
|
if (hip4_sampler_sample_qfull) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_QFULL, 0, 0, q); \
|
|
} \
|
|
} while (0)
|
|
#define SCSC_HIP4_SAMPLER_MFULL(minor) \
|
|
do { \
|
|
if (hip4_sampler_sample_mfull) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_MFULL, 0, 0, 0); \
|
|
} \
|
|
} while (0)
|
|
#define SCSC_HIP4_SAMPLER_INT(minor) \
|
|
do { \
|
|
if (hip4_sampler_sample_int) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_INT, 0, 0, 0); \
|
|
} \
|
|
} while (0)
|
|
#define SCSC_HIP4_SAMPLER_INT_OUT(minor) \
|
|
do { \
|
|
if (hip4_sampler_sample_int) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_INT_OUT, 0, 0, 0); \
|
|
} \
|
|
} while (0)
|
|
#define SCSC_HIP4_SAMPLER_RESET(minor) \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_RESET, 0, 0, 0)
|
|
|
|
#define SCSC_HIP4_SAMPLER_VIF_PEER(minor, tx, vif, peer_index) \
|
|
do { \
|
|
if (hip4_sampler_vif) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_PEER, tx, vif, peer_index); \
|
|
} \
|
|
} while (0)
|
|
|
|
#define SCSC_HIP4_SAMPLER_BOT_RX(minor, scod, smod, vif_peer) \
|
|
do { \
|
|
if (hip4_sampler_bot) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_BOT_RX, scod, smod, vif_peer); \
|
|
} \
|
|
} while (0)
|
|
|
|
#define SCSC_HIP4_SAMPLER_BOT_TX(minor, scod, smod, vif_peer) \
|
|
do { \
|
|
if (hip4_sampler_bot) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_BOT_TX, scod, smod, vif_peer); \
|
|
} \
|
|
} while (0)
|
|
#define SCSC_HIP4_SAMPLER_BOT_ADD(minor, addr_1, addr_2, vif_peer) \
|
|
do { \
|
|
if (hip4_sampler_bot) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_BOT_ADD, addr_1, addr_2, vif_peer); \
|
|
} \
|
|
} while (0)
|
|
|
|
#define SCSC_HIP4_SAMPLER_BOT_REMOVE(minor, addr_1, addr_2, vif_peer) \
|
|
do { \
|
|
if (hip4_sampler_bot) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_BOT_REMOVE, addr_1, addr_2, vif_peer); \
|
|
} \
|
|
} while (0)
|
|
|
|
#define SCSC_HIP4_SAMPLER_BOT_START_Q(minor, vif_peer) \
|
|
do { \
|
|
if (hip4_sampler_bot) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_BOT_START_Q, 0, 0, vif_peer); \
|
|
} \
|
|
} while (0)
|
|
|
|
#define SCSC_HIP4_SAMPLER_BOT_STOP_Q(minor, vif_peer) \
|
|
do { \
|
|
if (hip4_sampler_bot) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_BOT_STOP_Q, 0, 0, vif_peer); \
|
|
} \
|
|
} while (0)
|
|
#define SCSC_HIP4_SAMPLER_BOT_QMOD_RX(minor, qcod, qmod, vif_peer) \
|
|
do { \
|
|
if (hip4_sampler_bot) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_BOT_QMOD_RX, qcod, qmod, vif_peer); \
|
|
} \
|
|
} while (0)
|
|
|
|
#define SCSC_HIP4_SAMPLER_BOT_QMOD_TX(minor, qcod, qmod, vif_peer) \
|
|
do { \
|
|
if (hip4_sampler_bot) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_BOT_QMOD_TX, qcod, qmod, vif_peer); \
|
|
} \
|
|
} while (0)
|
|
#define SCSC_HIP4_SAMPLER_BOT_QMOD_START(minor, vif_peer) \
|
|
do { \
|
|
if (hip4_sampler_bot) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_BOT_QMOD_START, 0, 0, vif_peer); \
|
|
} \
|
|
} while (0)
|
|
|
|
#define SCSC_HIP4_SAMPLER_BOT_QMOD_STOP(minor, vif_peer) \
|
|
do { \
|
|
if (hip4_sampler_bot) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_BOT_QMOD_STOP, 0, 0, vif_peer); \
|
|
} \
|
|
} while (0)
|
|
#define SCSC_HIP4_SAMPLER_PKT_TX(minor, host_tag) \
|
|
do { \
|
|
if (hip4_sampler_pkt_tx) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_PKT_TX, 0, (host_tag >> 8) & 0xff, host_tag & 0xff); \
|
|
} \
|
|
} while (0)
|
|
#define SCSC_HIP4_SAMPLER_PKT_TX_HIP4(minor, host_tag) \
|
|
do { \
|
|
if (hip4_sampler_pkt_tx) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_PKT_TX_HIP4, 0, (host_tag >> 8) & 0xff, host_tag & 0xff); \
|
|
} \
|
|
} while (0)
|
|
#define SCSC_HIP4_SAMPLER_PKT_TX_FB(minor, host_tag) \
|
|
do { \
|
|
if (hip4_sampler_pkt_tx) { \
|
|
hip4_sampler_update_record(minor, HIP4_SAMPLER_PKT_TX_FB, 0, (host_tag >> 8) & 0xff, host_tag & 0xff); \
|
|
} \
|
|
} while (0)
|
|
#else
|
|
#define SCSC_HIP4_SAMPLER_Q(minor, q, idx_rw, value, rw)
|
|
#define SCSC_HIP4_SAMPLER_QREF(minor, ref, q)
|
|
#define SCSC_HIP4_SAMPLER_TOFREE(minor, num)
|
|
#define SCSC_HIP4_SAMPLER_SIGNAL_CTRLTX(minor, bytes16_h, bytes16_l)
|
|
#define SCSC_HIP4_SAMPLER_SIGNAL_CTRLRX(minor, bytes16_h, bytes16_l)
|
|
#define SCSC_HIP4_SAMPLER_THROUG(minor, bytes16_h, bytes16_l)
|
|
#define SCSC_HIP4_SAMPLER_THROUG_K(minor, bytes16_h, bytes16_l)
|
|
#define SCSC_HIP4_SAMPLER_THROUG_M(minor, bytes16_h, bytes16_l)
|
|
#define SCSC_HIP4_SAMPLER_MBULK(minor, bytes16_h, bytes16_l, clas)
|
|
#define SCSC_HIP4_SAMPLER_QFULL(minor, q)
|
|
#define SCSC_HIP4_SAMPLER_MFULL(minor)
|
|
#define SCSC_HIP4_SAMPLER_INT(minor)
|
|
#define SCSC_HIP4_SAMPLER_INT_OUT(minor)
|
|
#define SCSC_HIP4_SAMPLER_RESET(minor)
|
|
#define SCSC_HIP4_SAMPLER_VIF_PEER(minor, tx, vif, peer_index)
|
|
#define SCSC_HIP4_SAMPLER_BOT_RX(minor, scod, smod, vif_peer)
|
|
#define SCSC_HIP4_SAMPLER_BOT_TX(minor, scod, smod, vif_peer)
|
|
#define SCSC_HIP4_SAMPLER_BOT(minor, init, addr_1, addr_2, vif_peer)
|
|
#define SCSC_HIP4_SAMPLER_BOT_ADD(minor, addr_1, addr_2, vif_peer)
|
|
#define SCSC_HIP4_SAMPLER_BOT_REMOVE(minor, addr_1, addr_2, vif_peer)
|
|
#define SCSC_HIP4_SAMPLER_BOT_START_Q(minor, vif_peer)
|
|
#define SCSC_HIP4_SAMPLER_BOT_STOP_Q(minor, vif_peer)
|
|
#define SCSC_HIP4_SAMPLER_BOT_QMOD_RX(minor, qcod, qmod, vif_peer)
|
|
#define SCSC_HIP4_SAMPLER_BOT_QMOD_TX(minor, qcod, qmod, vif_peer)
|
|
#define SCSC_HIP4_SAMPLER_BOT_QMOD_START(minor, vif_peer)
|
|
#define SCSC_HIP4_SAMPLER_BOT_QMOD_STOP(minor, vif_peer)
|
|
#define SCSC_HIP4_SAMPLER_PKT_TX(minor, host_tag)
|
|
#define SCSC_HIP4_SAMPLER_PKT_TX_HIP4(minor, host_tag)
|
|
#define SCSC_HIP4_SAMPLER_PKT_TX_FB(minor, host_tag)
|
|
#endif /* CONFIG_SCSC_WLAN_DEBUG */
|
|
|
|
#endif /* __HIP4_SAMPLER_H__ */
|