lineage_kernel_xcoverpro/drivers/misc/samsung/scsc/mx_dbg_sampler.h

122 lines
2.4 KiB
C
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/****************************************************************************
*
* Copyright (c) 2014 - 2016 Samsung Electronics Co., Ltd. All rights reserved
*
****************************************************************************/
#ifndef __MX_DBG_SAMPLER_H__
#define __MX_DBG_SAMPLER_H__
/**
* Debug Sampler DRAM Buffer descriptor.
*
* Initialised by Debug Sampler Driver on AP and passed by
* reference to Debug Sampler (Proxy) on R4 (by reference in
* WLAN config).
*
* Integer fields are LittleEndian.
*/
struct debug_sampler_buffer_info {
/**
* Offset of circular octet buffer w.r.t. shared dram start
*/
uint32_t buf_offset;
/**
* Circular buffer length (octets, 2^n)
*
* Default = 32KiB default
*/
uint32_t buf_len;
/**
* Offset of 32bit write index (not wrapped, counts octets) w.r.t. shared dram start
*/
uint32_t write_index_offset;
/**
* To AP interrupt number (0 15)
*/
uint32_t intr_num;
};
struct debug_sampler_sample_spec {
/**
* -relative address of Location to sample (usually a register)
*
* Default = 0x00000000
*/
uint32_t source_addr;
/**
* Number of significant octets (1,2 or 4) to log (lsbytes from source)
*
* Default = 4
*/
uint32_t num_bytes;
/**
* Sampling period.
*
* 0 means as fast as possible (powers of 2 only)
*
* Default = 0
*/
uint32_t period_usecs;
};
/**
* Debug Sampler Config Structure.
*
* This structure is allocated and initialised by the Debug Sampler driver
* on the AP and passed via the service_start message.
*/
struct debug_sampler_config {
/**
* Config Structure Version (= DBGSAMPLER_CONFIG_VERSION)
*
* Set by driver, checked by service.
*/
uint32_t version;
/**
* To-host circular buffer desciptor.
*/
struct debug_sampler_buffer_info buffer_info;
/**
* Init/default sampling specification.
*
* (There is also an API on R4 to allow dynamic specification
* change - e.g. by WLAN service)
*/
struct debug_sampler_sample_spec sample_spec;
/**
* Start/stop sampling when service is started/stopped?
*
* (There is also an API on R4 to allow dynamic start/stop
* - e.g. by WLAN service)
*
* Default = 0
*/
uint32_t auto_start;
};
struct debug_sampler_align {
struct debug_sampler_config config __aligned(4);
u32 index;
void *mem __aligned(64);
};
#endif /* __MX_DBG_SAMPLER_H__ */