blob: 7e35b8178a692c837e7eb002b6b378d60bd1205d [file] [log] [blame]
/* Copyright (c) 2016, The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
* * Neither the name of The Linux Foundation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef __CAMSCOPE_PACKET_TYPE_H__
#define __CAMSCOPE_PACKET_TYPE_H__
#include <stdint.h>
#include <time.h>
#define CAMSCOPE_OFF_FLAG 0x00000000
#define CAMSCOPE_ON_FLAG 0xFFFFFFFF
#define CAMSCOPE_OFF_MASK 0x00000000
#define CAMSCOPE_KPI_MASK 0x00000001
#define CAMSCOPE_KPI_DBG_MASK 0x00000002
#define CAMSCOPE_ALWAYS_ON_MASK 0xFFFFFFFF
extern volatile uint32_t kpi_camscope_flags;
extern volatile uint32_t kpi_camscope_frame_count;
typedef enum {
CAMSCOPE_SECTION_MMCAMERA,
CAMSCOPE_SECTION_HAL,
CAMSCOPE_SECTION_JPEG,
CAMSCOPE_SECTION_SIZE,
} camscope_section_type;
typedef enum {
CAMSCOPE_BASE,
CAMSCOPE_SOFTWARE_BASE,
CAMSCOPE_SYNC_BEGIN,
CAMSCOPE_SYNC_END,
CAMSCOPE_ASYNC_BEGIN,
CAMSCOPE_ASYNC_END,
CAMSCOPE_SYNC_EVENT,
CAMSCOPE_ASYNC_EVENT,
CAMSCOPE_RESERVED = 0xFFFFFFFF
} camscope_packet_type;
typedef enum {
CAMSCOPE_MCT_SOF,
CAMSCOPE_MCT_SUP_PARAMS,
CAMSCOPE_MCT_SPEC_EVT,
CAMSCOPE_MCT_BUS_PROC,
CAMSCOPE_AFD,
CAMSCOPE_ASD,
CAMSCOPE_AEC,
CAMSCOPE_AWB,
CAMSCOPE_AF,
CAMSCOPE_CPP,
CAMSCOPE_CPP_CAPTURE,
CAMSCOPE_CPP_CLK_REQ,
CAMSCOPE_CPP_HOLDING,
CAMSCOPE_CPP_HW_ON,
CAMSCOPE_SNAPSHOT,
CAMSCOPE_ISP_HW_UPDATE,
CAMSCOPE_JPEG,
CAMSCOPE_FACEPROC,
CAMSCOPE_SENSOR_PROCESS,
CAMSCOPE_FD_NUM_DETECTED,
CAMSCOPE_CAM_ALLOC,
CAMSCOPE_IFACE_STREAMON_FWD,
CAMSCOPE_IFACE_STREAMON_THREAD,
CAMSCOPE_IFACE_STREAMOFF_FWD,
CAMSCOPE_IFACE_STREAMOFF_THREAD,
CAMSCOPE_IFACE_CFG_ISP,
CAMSCOPE_IFACE_HW_CFG,
CAMSCOPE_IFACE_CREATE_AXI_HW,
CAMSCOPE_IFACE_CFG_AXI_HW,
CAMSCOPE_IFACE_STREAMON,
CAMSCOPE_IFACE_STREAMOFF,
CAMSCOPE_AF_START,
CAMSCOPE_AF_SET,
CAMSCOPE_IS,
CAMSCOPE_ISP_STREAMON,
CAMSCOPE_ISP_STREAMOFF,
CAMSCOPE_ISP_SET_STRM_CFG,
CAMSCOPE_VFE_HW_UPDATE,
CAMSCOPE_ISP_STREAMON_FWD,
CAMSCOPE_SENSOR_SD_OPEN,
CAMSCOPE_SENSOR_START_SESSION,
CAMSCOPE_SENSOR_SET_RESOLUTION,
CAMSCOPE_SENSOR_SET_STRM_CFG,
CAMSCOPE_SENSOR_CFG_PDAF,
CAMSCOPE_SENSOR_LOAD_CHROMATIX,
CAMSCOPE_SENSOR_START_STREAM,
CAMSCOPE_SENSOR_SET_FPS,
CAMSCOPE_SENSOR_STREAMOFF,
CAMSCOPE_WNR,
CAMSCOPE_WNR_MEMCPY,
CAMSCOPE_PPROC_STREAMOFF,
CAMSCOPE_CPP_STREAMON,
CAMSCOPE_CAC,
CAMSCOPE_CPP_CREATE_HW_FRAME,
CAMSCOPE_CPP_SET_STRM_CFG,
CAMSCOPE_MCT_START_SESSION,
CAMSCOPE_MCT_STOP_SESSION,
CAMSCOPE_IMGLIB_STREAMON,
CAMSCOPE_MCT_CREATE_BUF,
CAMSCOPE_HAL1_START_PREVIEW,
CAMSCOPE_HAL1_STOP_PREVIEW,
CAMSCOPE_HAL1_TAKE_PICTURE,
CAMSCOPE_HAL1_CLOSECAMERA,
CAMSCOPE_HAL1_OPENCAMERA,
CAMSCOPE_HAL1_STARTPREVIEW,
CAMSCOPE_HAL1_STOPPREVIEW,
CAMSCOPE_HAL1_CAPTURE_CH_CB,
CAMSCOPE_HAL1_PREVIEW_STRM_CB,
CAMSCOPE_HAL3_SNAPSHOT,
CAMSCOPE_HAL3_GETSTREAMBUFS,
CAMSCOPE_HAL3_OPENCAMERA,
CAMSCOPE_HAL3_CLOSECAMERA,
CAMSCOPE_HAL3_FLUSH,
CAMSCOPE_HAL1_ZSL_CH_CB,
CAMSCOPE_HAL1_PP_CH_CB,
CAMSCOPE_HAL1_SYNC_STRM_CB,
CAMSCOPE_HAL1_NODIS_PREVIEW_STRMCB,
CAMSCOPE_HAL1_RDI_MODE_STRM_CB,
CAMSCOPE_HAL1_POSTVIEW_STRM_CB,
CAMSCOPE_HAL1_VIDEO_STRM_CB,
CAMSCOPE_HAL1_SNAPSHOT_CH_CB,
CAMSCOPE_HAL1_RAW_STRM_CB,
CAMSCOPE_HAL1_RAW_CH_CB,
CAMSCOPE_HAL1_PREVIEW_RAW_STRM_CB,
CAMSCOPE_HAL1_SNAPSHOT_RAW_STRM_CB,
CAMSCOPE_HAL1_METADATA_STRM_CB,
CAMSCOPE_HAL1_REPROC_STRM_CB,
CAMSCOPE_HAL1_CB_STRM_CB,
CAMSCOPE_HAL1_SET_PREVIEW_WINDOW,
CAMSCOPE_HAL1_SET_CALLBACKS,
CAMSCOPE_HAL1_ENABLE_MSG_TYPE,
CAMSCOPE_HAL1_DISABLE_MSG_TYPE,
CAMSCOPE_HAL1_MSG_TYPE_ENABLED,
CAMSCOPE_HAL1_PREPARE_PREVIEW,
CAMSCOPE_HAL1_PREVIEW_ENABLED,
CAMSCOPE_HAL1_RESTART_START_PREVIEW,
CAMSCOPE_HAL1_RESTART_STOP_PREVIEW,
CAMSCOPE_HAL1_PRE_START_RECORDING,
CAMSCOPE_HAL1_START_RECORDING,
CAMSCOPE_HAL1_STOP_RECORDING,
CAMSCOPE_HAL1_RECORDING_ENABLED,
CAMSCOPE_HAL1_REL_REC_FRAME,
CAMSCOPE_HAL1_CANCEL_AF,
CAMSCOPE_HAL1_PRE_TAKE_PICTURE,
CAMSCOPE_HAL1_CANCEL_PICTURE,
CAMSCOPE_HAL1_SET_PARAMETERS,
CAMSCOPE_HAL1_STOP_AFTER_SET_PARAMS,
CAMSCOPE_HAL1_COMMIT_PARAMS,
CAMSCOPE_HAL1_RESTART_AFTER_SET_PARAMS,
CAMSCOPE_HAL1_GET_PARAMETERS,
CAMSCOPE_HAL1_PUT_PARAMETERS,
CAMSCOPE_HAL1_SEND_COMMAND,
CAMSCOPE_HAL1_SEND_COMMAND_RESTART,
CAMSCOPE_HAL1_RELEASE,
CAMSCOPE_HAL1_REGISTER_FACE_IMAGE,
CAMSCOPE_HAL1_PREPARE_SNAPSHOT,
CAMSCOPE_HAL1_QCAMERA2HWI,
CAMSCOPE_HAL1_INIT_CAP,
CAMSCOPE_HAL1_GET_CAP,
CAMSCOPE_HAL1_PREPAREPREVIEW,
CAMSCOPE_HAL1_PREPARE_HW_FOR_SNAPSHOT,
CAMSCOPE_HAL3_INIT,
CAMSCOPE_HAL3_CFG_STRMS,
CAMSCOPE_HAL3_CFG_STRMS_PERF_LKD,
CAMSCOPE_HAL3_HANDLE_BATCH_METADATA,
CAMSCOPE_HAL3_HANDLE_METADATA_LKD,
CAMSCOPE_HAL3_HANDLE_IN_BUF_LKD,
CAMSCOPE_HAL3_HANDLE_BUF_LKD,
CAMSCOPE_HAL3_PROC_CAP_REQ,
CAMSCOPE_HAL3_FLUSH_PREF,
CAMSCOPE_HAL3_GET_CAM_INFO,
CAMSCOPE_HAL3_DYN_UPDATE_META_STRM_INFO,
CAMSCOPE_HAL3_CH_START,
CAMSCOPE_HAL3_CH_STOP,
CAMSCOPE_HAL3_CH_FLUSH,
CAMSCOPE_HAL3_PROC_CH_STRM_CB,
CAMSCOPE_HAL3_PROC_CH_REG_BUF,
CAMSCOPE_HAL3_PROC_CH_REPROC_CB,
CAMSCOPE_HAL3_REG_CH_INIT,
CAMSCOPE_HAL3_REG_CH_REQ,
CAMSCOPE_HAL3_METADATA_CH_INIT,
CAMSCOPE_HAL3_RAW_CH_STRM_CB,
CAMSCOPE_HAL3_YUV_CH_INIT,
CAMSCOPE_HAL3_YUV_CH_STRM_CB,
CAMSCOPE_HAL3_PIC_CH_JPEG_EVT_HANDLE,
CAMSCOPE_HAL3_PIC_CH_REQ,
CAMSCOPE_HAL3_PIC_CH_DATA_NOTIFY_CB,
CAMSCOPE_HAL3_PIC_CH_STRM_CB,
CAMSCOPE_HAL3_REPROC_CH_REG_BUF,
CAMSCOPE_HAL3_REPROC_CH_START,
CAMSCOPE_HAL3_REPROC_CH_STOP,
CAMSCOPE_HAL3_PPROC_INIT,
CAMSCOPE_HAL3_PPROC_INIT_JPEG,
CAMSCOPE_HAL3_PPROC_REL_JPEG_JOB_DATA,
CAMSCOPE_HAL3_PPROC_REL_PP_JOB_DATA,
CAMSCOPE_HAL3_PPROC_ENCODEDATA,
CAMSCOPE_EVENT_NAME_SIZE
} camscope_event_name;
extern const char * camscope_atrace_names[CAMSCOPE_EVENT_NAME_SIZE];
typedef struct {
uint32_t packet_type;
uint32_t size;
} camscope_base;
typedef struct {
camscope_base base;
struct timeval timestamp;
int32_t thread_id;
uint32_t event_name;
} camscope_sw_base;
typedef struct {
camscope_sw_base sw_base;
uint32_t frame_id;
} camscope_timing;
typedef struct {
camscope_sw_base sw_base;
struct timeval in_timestamp;
struct timeval out_timestamp;
uint32_t frame_id;
} camscope_in_out_timing;
void camscope_base_log(uint32_t camscope_section,
uint32_t camscope_enable_mask,
uint32_t packet_type);
void camscope_sw_base_log(uint32_t camscope_section,
uint32_t camscope_enable_mask, uint32_t packet_type,
uint32_t event_name);
void camscope_timing_log(uint32_t camscope_section,
uint32_t camscope_enable_mask, uint32_t packet_type,
uint32_t event_name, uint32_t frame_id);
void camscope_in_out_timing_log(uint32_t camscope_section,
uint32_t camscope_enable_mask,
uint32_t packet_type, uint32_t event_name,
struct timeval in_timestamp,
struct timeval out_timestamp,
uint32_t frame_id);
#endif /* __CAMSCOPE_PACKET_TYPE_H__ */