Home | History | Annotate | Download | only in common
      1 /* Copyright (c) 2016, The Linux Foundation. All rights reserved.
      2  *
      3  * Redistribution and use in source and binary forms, with or without
      4  * modification, are permitted provided that the following conditions are
      5  * met:
      6  *     * Redistributions of source code must retain the above copyright
      7  *       notice, this list of conditions and the following disclaimer.
      8  *     * Redistributions in binary form must reproduce the above
      9  *       copyright notice, this list of conditions and the following
     10  *       disclaimer in the documentation and/or other materials provided
     11  *       with the distribution.
     12  *     * Neither the name of The Linux Foundation nor the names of its
     13  *       contributors may be used to endorse or promote products derived
     14  *       from this software without specific prior written permission.
     15  *
     16  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
     17  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
     18  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
     19  * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
     20  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     21  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     22  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
     23  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
     24  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
     25  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
     26  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     27  *
     28  */
     29 
     30 #ifndef __CAMSCOPE_PACKET_TYPE_H__
     31 #define __CAMSCOPE_PACKET_TYPE_H__
     32 
     33 #include <stdint.h>
     34 #include <time.h>
     35 
     36 #define CAMSCOPE_OFF_FLAG 0x00000000
     37 #define CAMSCOPE_ON_FLAG 0xFFFFFFFF
     38 #define CAMSCOPE_OFF_MASK 0x00000000
     39 #define CAMSCOPE_KPI_MASK 0x00000001
     40 #define CAMSCOPE_KPI_DBG_MASK 0x00000002
     41 #define CAMSCOPE_ALWAYS_ON_MASK 0xFFFFFFFF
     42 
     43 extern volatile uint32_t kpi_camscope_flags;
     44 extern volatile uint32_t kpi_camscope_frame_count;
     45 
     46 typedef enum {
     47     CAMSCOPE_SECTION_MMCAMERA,
     48     CAMSCOPE_SECTION_HAL,
     49     CAMSCOPE_SECTION_JPEG,
     50     CAMSCOPE_SECTION_SIZE,
     51 } camscope_section_type;
     52 
     53 typedef enum {
     54     CAMSCOPE_BASE,
     55     CAMSCOPE_SOFTWARE_BASE,
     56     CAMSCOPE_SYNC_BEGIN,
     57     CAMSCOPE_SYNC_END,
     58     CAMSCOPE_ASYNC_BEGIN,
     59     CAMSCOPE_ASYNC_END,
     60     CAMSCOPE_SYNC_EVENT,
     61     CAMSCOPE_ASYNC_EVENT,
     62     CAMSCOPE_RESERVED = 0xFFFFFFFF
     63 } camscope_packet_type;
     64 
     65 typedef enum {
     66     CAMSCOPE_MCT_SOF,
     67     CAMSCOPE_MCT_SUP_PARAMS,
     68     CAMSCOPE_MCT_SPEC_EVT,
     69     CAMSCOPE_MCT_BUS_PROC,
     70     CAMSCOPE_AFD,
     71     CAMSCOPE_ASD,
     72     CAMSCOPE_AEC,
     73     CAMSCOPE_AWB,
     74     CAMSCOPE_AF,
     75     CAMSCOPE_CPP,
     76     CAMSCOPE_CPP_CAPTURE,
     77     CAMSCOPE_CPP_CLK_REQ,
     78     CAMSCOPE_CPP_HOLDING,
     79     CAMSCOPE_CPP_HW_ON,
     80     CAMSCOPE_SNAPSHOT,
     81     CAMSCOPE_ISP_HW_UPDATE,
     82     CAMSCOPE_JPEG,
     83     CAMSCOPE_FACEPROC,
     84     CAMSCOPE_SENSOR_PROCESS,
     85     CAMSCOPE_FD_NUM_DETECTED,
     86     CAMSCOPE_CAM_ALLOC,
     87     CAMSCOPE_IFACE_STREAMON_FWD,
     88     CAMSCOPE_IFACE_STREAMON_THREAD,
     89     CAMSCOPE_IFACE_STREAMOFF_FWD,
     90     CAMSCOPE_IFACE_STREAMOFF_THREAD,
     91     CAMSCOPE_IFACE_CFG_ISP,
     92     CAMSCOPE_IFACE_HW_CFG,
     93     CAMSCOPE_IFACE_CREATE_AXI_HW,
     94     CAMSCOPE_IFACE_CFG_AXI_HW,
     95     CAMSCOPE_IFACE_STREAMON,
     96     CAMSCOPE_IFACE_STREAMOFF,
     97     CAMSCOPE_AF_START,
     98     CAMSCOPE_AF_SET,
     99     CAMSCOPE_IS,
    100     CAMSCOPE_ISP_STREAMON,
    101     CAMSCOPE_ISP_STREAMOFF,
    102     CAMSCOPE_ISP_SET_STRM_CFG,
    103     CAMSCOPE_VFE_HW_UPDATE,
    104     CAMSCOPE_ISP_STREAMON_FWD,
    105     CAMSCOPE_SENSOR_SD_OPEN,
    106     CAMSCOPE_SENSOR_START_SESSION,
    107     CAMSCOPE_SENSOR_SET_RESOLUTION,
    108     CAMSCOPE_SENSOR_SET_STRM_CFG,
    109     CAMSCOPE_SENSOR_CFG_PDAF,
    110     CAMSCOPE_SENSOR_LOAD_CHROMATIX,
    111     CAMSCOPE_SENSOR_START_STREAM,
    112     CAMSCOPE_SENSOR_SET_FPS,
    113     CAMSCOPE_SENSOR_STREAMOFF,
    114     CAMSCOPE_WNR,
    115     CAMSCOPE_WNR_MEMCPY,
    116     CAMSCOPE_PPROC_STREAMOFF,
    117     CAMSCOPE_CPP_STREAMON,
    118     CAMSCOPE_CAC,
    119     CAMSCOPE_CPP_CREATE_HW_FRAME,
    120     CAMSCOPE_CPP_SET_STRM_CFG,
    121     CAMSCOPE_MCT_START_SESSION,
    122     CAMSCOPE_MCT_STOP_SESSION,
    123     CAMSCOPE_IMGLIB_STREAMON,
    124     CAMSCOPE_MCT_CREATE_BUF,
    125     CAMSCOPE_HAL1_START_PREVIEW,
    126     CAMSCOPE_HAL1_STOP_PREVIEW,
    127     CAMSCOPE_HAL1_TAKE_PICTURE,
    128     CAMSCOPE_HAL1_CLOSECAMERA,
    129     CAMSCOPE_HAL1_OPENCAMERA,
    130     CAMSCOPE_HAL1_STARTPREVIEW,
    131     CAMSCOPE_HAL1_STOPPREVIEW,
    132     CAMSCOPE_HAL1_CAPTURE_CH_CB,
    133     CAMSCOPE_HAL1_PREVIEW_STRM_CB,
    134     CAMSCOPE_HAL3_SNAPSHOT,
    135     CAMSCOPE_HAL3_GETSTREAMBUFS,
    136     CAMSCOPE_HAL3_OPENCAMERA,
    137     CAMSCOPE_HAL3_CLOSECAMERA,
    138     CAMSCOPE_HAL3_FLUSH,
    139     CAMSCOPE_HAL1_ZSL_CH_CB,
    140     CAMSCOPE_HAL1_PP_CH_CB,
    141     CAMSCOPE_HAL1_SYNC_STRM_CB,
    142     CAMSCOPE_HAL1_NODIS_PREVIEW_STRMCB,
    143     CAMSCOPE_HAL1_RDI_MODE_STRM_CB,
    144     CAMSCOPE_HAL1_POSTVIEW_STRM_CB,
    145     CAMSCOPE_HAL1_VIDEO_STRM_CB,
    146     CAMSCOPE_HAL1_SNAPSHOT_CH_CB,
    147     CAMSCOPE_HAL1_RAW_STRM_CB,
    148     CAMSCOPE_HAL1_RAW_CH_CB,
    149     CAMSCOPE_HAL1_PREVIEW_RAW_STRM_CB,
    150     CAMSCOPE_HAL1_SNAPSHOT_RAW_STRM_CB,
    151     CAMSCOPE_HAL1_METADATA_STRM_CB,
    152     CAMSCOPE_HAL1_REPROC_STRM_CB,
    153     CAMSCOPE_HAL1_CB_STRM_CB,
    154     CAMSCOPE_HAL1_SET_PREVIEW_WINDOW,
    155     CAMSCOPE_HAL1_SET_CALLBACKS,
    156     CAMSCOPE_HAL1_ENABLE_MSG_TYPE,
    157     CAMSCOPE_HAL1_DISABLE_MSG_TYPE,
    158     CAMSCOPE_HAL1_MSG_TYPE_ENABLED,
    159     CAMSCOPE_HAL1_PREPARE_PREVIEW,
    160     CAMSCOPE_HAL1_PREVIEW_ENABLED,
    161     CAMSCOPE_HAL1_RESTART_START_PREVIEW,
    162     CAMSCOPE_HAL1_RESTART_STOP_PREVIEW,
    163     CAMSCOPE_HAL1_PRE_START_RECORDING,
    164     CAMSCOPE_HAL1_START_RECORDING,
    165     CAMSCOPE_HAL1_STOP_RECORDING,
    166     CAMSCOPE_HAL1_RECORDING_ENABLED,
    167     CAMSCOPE_HAL1_REL_REC_FRAME,
    168     CAMSCOPE_HAL1_CANCEL_AF,
    169     CAMSCOPE_HAL1_PRE_TAKE_PICTURE,
    170     CAMSCOPE_HAL1_CANCEL_PICTURE,
    171     CAMSCOPE_HAL1_SET_PARAMETERS,
    172     CAMSCOPE_HAL1_STOP_AFTER_SET_PARAMS,
    173     CAMSCOPE_HAL1_COMMIT_PARAMS,
    174     CAMSCOPE_HAL1_RESTART_AFTER_SET_PARAMS,
    175     CAMSCOPE_HAL1_GET_PARAMETERS,
    176     CAMSCOPE_HAL1_PUT_PARAMETERS,
    177     CAMSCOPE_HAL1_SEND_COMMAND,
    178     CAMSCOPE_HAL1_SEND_COMMAND_RESTART,
    179     CAMSCOPE_HAL1_RELEASE,
    180     CAMSCOPE_HAL1_REGISTER_FACE_IMAGE,
    181     CAMSCOPE_HAL1_PREPARE_SNAPSHOT,
    182     CAMSCOPE_HAL1_QCAMERA2HWI,
    183     CAMSCOPE_HAL1_INIT_CAP,
    184     CAMSCOPE_HAL1_GET_CAP,
    185     CAMSCOPE_HAL1_PREPAREPREVIEW,
    186     CAMSCOPE_HAL1_PREPARE_HW_FOR_SNAPSHOT,
    187     CAMSCOPE_HAL3_INIT,
    188     CAMSCOPE_HAL3_CFG_STRMS,
    189     CAMSCOPE_HAL3_CFG_STRMS_PERF_LKD,
    190     CAMSCOPE_HAL3_HANDLE_BATCH_METADATA,
    191     CAMSCOPE_HAL3_HANDLE_METADATA_LKD,
    192     CAMSCOPE_HAL3_HANDLE_IN_BUF_LKD,
    193     CAMSCOPE_HAL3_HANDLE_BUF_LKD,
    194     CAMSCOPE_HAL3_PROC_CAP_REQ,
    195     CAMSCOPE_HAL3_FLUSH_PREF,
    196     CAMSCOPE_HAL3_GET_CAM_INFO,
    197     CAMSCOPE_HAL3_DYN_UPDATE_META_STRM_INFO,
    198     CAMSCOPE_HAL3_CH_START,
    199     CAMSCOPE_HAL3_CH_STOP,
    200     CAMSCOPE_HAL3_CH_FLUSH,
    201     CAMSCOPE_HAL3_PROC_CH_STRM_CB,
    202     CAMSCOPE_HAL3_PROC_CH_REG_BUF,
    203     CAMSCOPE_HAL3_PROC_CH_REPROC_CB,
    204     CAMSCOPE_HAL3_REG_CH_INIT,
    205     CAMSCOPE_HAL3_REG_CH_REQ,
    206     CAMSCOPE_HAL3_METADATA_CH_INIT,
    207     CAMSCOPE_HAL3_RAW_CH_STRM_CB,
    208     CAMSCOPE_HAL3_YUV_CH_INIT,
    209     CAMSCOPE_HAL3_YUV_CH_STRM_CB,
    210     CAMSCOPE_HAL3_PIC_CH_JPEG_EVT_HANDLE,
    211     CAMSCOPE_HAL3_PIC_CH_REQ,
    212     CAMSCOPE_HAL3_PIC_CH_DATA_NOTIFY_CB,
    213     CAMSCOPE_HAL3_PIC_CH_STRM_CB,
    214     CAMSCOPE_HAL3_REPROC_CH_REG_BUF,
    215     CAMSCOPE_HAL3_REPROC_CH_START,
    216     CAMSCOPE_HAL3_REPROC_CH_STOP,
    217     CAMSCOPE_HAL3_PPROC_INIT,
    218     CAMSCOPE_HAL3_PPROC_INIT_JPEG,
    219     CAMSCOPE_HAL3_PPROC_REL_JPEG_JOB_DATA,
    220     CAMSCOPE_HAL3_PPROC_REL_PP_JOB_DATA,
    221     CAMSCOPE_HAL3_PPROC_ENCODEDATA,
    222     CAMSCOPE_HAL3_PREVIEW_STRM_CB,
    223     CAMSCOPE_HAL3_STOP_PREVIEW,
    224     CAMSCOPE_HAL3_CAPTURE_CH_CB,
    225     CAMSCOPE_EVENT_NAME_SIZE
    226 } camscope_event_name;
    227 
    228 extern const char * camscope_atrace_names[CAMSCOPE_EVENT_NAME_SIZE];
    229 
    230 typedef struct {
    231     uint32_t packet_type;
    232     uint32_t size;
    233 } camscope_base;
    234 
    235 typedef struct {
    236     camscope_base base;
    237     struct timeval timestamp;
    238     int32_t thread_id;
    239     uint32_t event_name;
    240 } camscope_sw_base;
    241 
    242 typedef struct {
    243     camscope_sw_base sw_base;
    244     uint32_t frame_id;
    245 } camscope_timing;
    246 
    247 typedef struct {
    248     camscope_sw_base sw_base;
    249     struct timeval in_timestamp;
    250     struct timeval out_timestamp;
    251     uint32_t frame_id;
    252 } camscope_in_out_timing;
    253 
    254 void camscope_base_log(uint32_t camscope_section,
    255                        uint32_t camscope_enable_mask,
    256                        uint32_t packet_type);
    257 
    258 void camscope_sw_base_log(uint32_t camscope_section,
    259                           uint32_t camscope_enable_mask, uint32_t packet_type,
    260                           uint32_t event_name);
    261 
    262 void camscope_timing_log(uint32_t camscope_section,
    263                          uint32_t camscope_enable_mask, uint32_t packet_type,
    264                          uint32_t event_name, uint32_t frame_id);
    265 
    266 void camscope_in_out_timing_log(uint32_t camscope_section,
    267                                 uint32_t camscope_enable_mask,
    268                                 uint32_t packet_type, uint32_t event_name,
    269                                 struct timeval in_timestamp,
    270                                 struct timeval out_timestamp,
    271                                 uint32_t frame_id);
    272 
    273 #endif /* __CAMSCOPE_PACKET_TYPE_H__ */
    274