1238c84f7SMauro Carvalho Chehab /* SPDX-License-Identifier: GPL-2.0-only */ 2238c84f7SMauro Carvalho Chehab /* 3238c84f7SMauro Carvalho Chehab * Samsung Exynos4 SoC series FIMC-IS slave interface driver 4238c84f7SMauro Carvalho Chehab * 5238c84f7SMauro Carvalho Chehab * FIMC-IS error code definition 6238c84f7SMauro Carvalho Chehab * 7238c84f7SMauro Carvalho Chehab * Copyright (C) 2011 - 2013 Samsung Electronics Co., Ltd. 8238c84f7SMauro Carvalho Chehab * 9238c84f7SMauro Carvalho Chehab * Authors: Younghwan Joo <yhwan.joo@samsung.com> 10238c84f7SMauro Carvalho Chehab * Sylwester Nawrocki <s.nawrocki@samsung.com> 11238c84f7SMauro Carvalho Chehab */ 12238c84f7SMauro Carvalho Chehab 13238c84f7SMauro Carvalho Chehab #ifndef FIMC_IS_ERR_H_ 14238c84f7SMauro Carvalho Chehab #define FIMC_IS_ERR_H_ 15238c84f7SMauro Carvalho Chehab 16238c84f7SMauro Carvalho Chehab #define IS_ERROR_VER 011 /* IS ERROR VERSION 0.11 */ 17238c84f7SMauro Carvalho Chehab 18238c84f7SMauro Carvalho Chehab enum { 19238c84f7SMauro Carvalho Chehab IS_ERROR_NONE, 20238c84f7SMauro Carvalho Chehab 21238c84f7SMauro Carvalho Chehab /* General 1 ~ 99 */ 22238c84f7SMauro Carvalho Chehab IS_ERROR_INVALID_COMMAND, 23238c84f7SMauro Carvalho Chehab IS_ERROR_REQUEST_FAIL, 24238c84f7SMauro Carvalho Chehab IS_ERROR_INVALID_SCENARIO, 25238c84f7SMauro Carvalho Chehab IS_ERROR_INVALID_SENSORID, 26238c84f7SMauro Carvalho Chehab IS_ERROR_INVALID_MODE_CHANGE, 27238c84f7SMauro Carvalho Chehab IS_ERROR_INVALID_MAGIC_NUMBER, 28238c84f7SMauro Carvalho Chehab IS_ERROR_INVALID_SETFILE_HDR, 29238c84f7SMauro Carvalho Chehab IS_ERROR_BUSY, 30238c84f7SMauro Carvalho Chehab IS_ERROR_SET_PARAMETER, 31238c84f7SMauro Carvalho Chehab IS_ERROR_INVALID_PATH, 32238c84f7SMauro Carvalho Chehab IS_ERROR_OPEN_SENSOR_FAIL, 33238c84f7SMauro Carvalho Chehab IS_ERROR_ENTRY_MSG_THREAD_DOWN, 34238c84f7SMauro Carvalho Chehab IS_ERROR_ISP_FRAME_END_NOT_DONE, 35238c84f7SMauro Carvalho Chehab IS_ERROR_DRC_FRAME_END_NOT_DONE, 36238c84f7SMauro Carvalho Chehab IS_ERROR_SCALERC_FRAME_END_NOT_DONE, 37238c84f7SMauro Carvalho Chehab IS_ERROR_ODC_FRAME_END_NOT_DONE, 38238c84f7SMauro Carvalho Chehab IS_ERROR_DIS_FRAME_END_NOT_DONE, 39238c84f7SMauro Carvalho Chehab IS_ERROR_TDNR_FRAME_END_NOT_DONE, 40238c84f7SMauro Carvalho Chehab IS_ERROR_SCALERP_FRAME_END_NOT_DONE, 41238c84f7SMauro Carvalho Chehab IS_ERROR_WAIT_STREAM_OFF_NOT_DONE, 42238c84f7SMauro Carvalho Chehab IS_ERROR_NO_MSG_IS_RECEIVED, 43238c84f7SMauro Carvalho Chehab IS_ERROR_SENSOR_MSG_FAIL, 44238c84f7SMauro Carvalho Chehab IS_ERROR_ISP_MSG_FAIL, 45238c84f7SMauro Carvalho Chehab IS_ERROR_DRC_MSG_FAIL, 46238c84f7SMauro Carvalho Chehab IS_ERROR_SCALERC_MSG_FAIL, 47238c84f7SMauro Carvalho Chehab IS_ERROR_ODC_MSG_FAIL, 48238c84f7SMauro Carvalho Chehab IS_ERROR_DIS_MSG_FAIL, 49238c84f7SMauro Carvalho Chehab IS_ERROR_TDNR_MSG_FAIL, 50238c84f7SMauro Carvalho Chehab IS_ERROR_SCALERP_MSG_FAIL, 51238c84f7SMauro Carvalho Chehab IS_ERROR_LHFD_MSG_FAIL, 52238c84f7SMauro Carvalho Chehab IS_ERROR_LHFD_INTERNAL_STOP, 53238c84f7SMauro Carvalho Chehab 54238c84f7SMauro Carvalho Chehab /* Sensor 100 ~ 199 */ 55238c84f7SMauro Carvalho Chehab IS_ERROR_SENSOR_PWRDN_FAIL = 100, 56238c84f7SMauro Carvalho Chehab IS_ERROR_SENSOR_STREAM_ON_FAIL, 57238c84f7SMauro Carvalho Chehab IS_ERROR_SENSOR_STREAM_OFF_FAIL, 58238c84f7SMauro Carvalho Chehab 59238c84f7SMauro Carvalho Chehab /* ISP 200 ~ 299 */ 60238c84f7SMauro Carvalho Chehab IS_ERROR_ISP_PWRDN_FAIL = 200, 61238c84f7SMauro Carvalho Chehab IS_ERROR_ISP_MULTIPLE_INPUT, 62238c84f7SMauro Carvalho Chehab IS_ERROR_ISP_ABSENT_INPUT, 63238c84f7SMauro Carvalho Chehab IS_ERROR_ISP_ABSENT_OUTPUT, 64238c84f7SMauro Carvalho Chehab IS_ERROR_ISP_NONADJACENT_OUTPUT, 65238c84f7SMauro Carvalho Chehab IS_ERROR_ISP_FORMAT_MISMATCH, 66238c84f7SMauro Carvalho Chehab IS_ERROR_ISP_WIDTH_MISMATCH, 67238c84f7SMauro Carvalho Chehab IS_ERROR_ISP_HEIGHT_MISMATCH, 68238c84f7SMauro Carvalho Chehab IS_ERROR_ISP_BITWIDTH_MISMATCH, 69238c84f7SMauro Carvalho Chehab IS_ERROR_ISP_FRAME_END_TIME_OUT, 70238c84f7SMauro Carvalho Chehab 71238c84f7SMauro Carvalho Chehab /* DRC 300 ~ 399 */ 72238c84f7SMauro Carvalho Chehab IS_ERROR_DRC_PWRDN_FAIL = 300, 73238c84f7SMauro Carvalho Chehab IS_ERROR_DRC_MULTIPLE_INPUT, 74238c84f7SMauro Carvalho Chehab IS_ERROR_DRC_ABSENT_INPUT, 75238c84f7SMauro Carvalho Chehab IS_ERROR_DRC_NONADJACENT_INPUT, 76238c84f7SMauro Carvalho Chehab IS_ERROR_DRC_ABSENT_OUTPUT, 77238c84f7SMauro Carvalho Chehab IS_ERROR_DRC_NONADJACENT_OUTPUT, 78238c84f7SMauro Carvalho Chehab IS_ERROR_DRC_FORMAT_MISMATCH, 79238c84f7SMauro Carvalho Chehab IS_ERROR_DRC_WIDTH_MISMATCH, 80238c84f7SMauro Carvalho Chehab IS_ERROR_DRC_HEIGHT_MISMATCH, 81238c84f7SMauro Carvalho Chehab IS_ERROR_DRC_BITWIDTH_MISMATCH, 82238c84f7SMauro Carvalho Chehab IS_ERROR_DRC_FRAME_END_TIME_OUT, 83238c84f7SMauro Carvalho Chehab 84238c84f7SMauro Carvalho Chehab /* SCALERC 400 ~ 499 */ 85238c84f7SMauro Carvalho Chehab IS_ERROR_SCALERC_PWRDN_FAIL = 400, 86238c84f7SMauro Carvalho Chehab 87238c84f7SMauro Carvalho Chehab /* ODC 500 ~ 599 */ 88238c84f7SMauro Carvalho Chehab IS_ERROR_ODC_PWRDN_FAIL = 500, 89238c84f7SMauro Carvalho Chehab 90238c84f7SMauro Carvalho Chehab /* DIS 600 ~ 699 */ 91238c84f7SMauro Carvalho Chehab IS_ERROR_DIS_PWRDN_FAIL = 600, 92238c84f7SMauro Carvalho Chehab 93238c84f7SMauro Carvalho Chehab /* TDNR 700 ~ 799 */ 94238c84f7SMauro Carvalho Chehab IS_ERROR_TDNR_PWRDN_FAIL = 700, 95238c84f7SMauro Carvalho Chehab 96238c84f7SMauro Carvalho Chehab /* SCALERC 800 ~ 899 */ 97238c84f7SMauro Carvalho Chehab IS_ERROR_SCALERP_PWRDN_FAIL = 800, 98238c84f7SMauro Carvalho Chehab 99238c84f7SMauro Carvalho Chehab /* FD 900 ~ 999 */ 100238c84f7SMauro Carvalho Chehab IS_ERROR_FD_PWRDN_FAIL = 900, 101238c84f7SMauro Carvalho Chehab IS_ERROR_FD_MULTIPLE_INPUT, 102238c84f7SMauro Carvalho Chehab IS_ERROR_FD_ABSENT_INPUT, 103238c84f7SMauro Carvalho Chehab IS_ERROR_FD_NONADJACENT_INPUT, 104238c84f7SMauro Carvalho Chehab IS_ERROR_LHFD_FRAME_END_TIME_OUT, 105238c84f7SMauro Carvalho Chehab 106238c84f7SMauro Carvalho Chehab IS_ERROR_UNKNOWN = 1000, 107238c84f7SMauro Carvalho Chehab }; 108238c84f7SMauro Carvalho Chehab 109238c84f7SMauro Carvalho Chehab #define IS_ERROR_TIME_OUT_FLAG 0x80000000 110238c84f7SMauro Carvalho Chehab 111238c84f7SMauro Carvalho Chehab /* Set parameter error enum */ 112238c84f7SMauro Carvalho Chehab enum fimc_is_error { 113238c84f7SMauro Carvalho Chehab /* Common error (0~99) */ 114238c84f7SMauro Carvalho Chehab ERROR_COMMON_NONE = 0, 115238c84f7SMauro Carvalho Chehab ERROR_COMMON_CMD = 1, /* Invalid command */ 116238c84f7SMauro Carvalho Chehab ERROR_COMMON_PARAMETER = 2, /* Invalid parameter */ 117238c84f7SMauro Carvalho Chehab /* setfile is not loaded before adjusting */ 118238c84f7SMauro Carvalho Chehab ERROR_COMMON_SETFILE_LOAD = 3, 119af917b01SJulia Lawall /* setfile is not Adjusted before running. */ 120238c84f7SMauro Carvalho Chehab ERROR_COMMON_SETFILE_ADJUST = 4, 121238c84f7SMauro Carvalho Chehab /* Index of setfile is not valid (0~MAX_SETFILE_NUM-1) */ 122238c84f7SMauro Carvalho Chehab ERROR_COMMON_SETFILE_INDEX = 5, 123238c84f7SMauro Carvalho Chehab /* Input path can be changed in ready state(stop) */ 124238c84f7SMauro Carvalho Chehab ERROR_COMMON_INPUT_PATH = 6, 125238c84f7SMauro Carvalho Chehab /* IP can not start if input path is not set */ 126238c84f7SMauro Carvalho Chehab ERROR_COMMON_INPUT_INIT = 7, 127238c84f7SMauro Carvalho Chehab /* Output path can be changed in ready state (stop) */ 128238c84f7SMauro Carvalho Chehab ERROR_COMMON_OUTPUT_PATH = 8, 129238c84f7SMauro Carvalho Chehab /* IP can not start if output path is not set */ 130238c84f7SMauro Carvalho Chehab ERROR_COMMON_OUTPUT_INIT = 9, 131238c84f7SMauro Carvalho Chehab 132238c84f7SMauro Carvalho Chehab ERROR_CONTROL_NONE = ERROR_COMMON_NONE, 133238c84f7SMauro Carvalho Chehab ERROR_CONTROL_BYPASS = 11, /* Enable or Disable */ 134238c84f7SMauro Carvalho Chehab 135238c84f7SMauro Carvalho Chehab ERROR_OTF_INPUT_NONE = ERROR_COMMON_NONE, 136238c84f7SMauro Carvalho Chehab ERROR_OTF_INPUT_CMD = 21, 137238c84f7SMauro Carvalho Chehab /* invalid format (DRC: YUV444, FD: YUV444, 422, 420) */ 138238c84f7SMauro Carvalho Chehab ERROR_OTF_INPUT_FORMAT = 22, 139238c84f7SMauro Carvalho Chehab /* invalid width (DRC: 128~8192, FD: 32~8190) */ 140238c84f7SMauro Carvalho Chehab ERROR_OTF_INPUT_WIDTH = 23, 141238c84f7SMauro Carvalho Chehab /* invalid height (DRC: 64~8192, FD: 16~8190) */ 142238c84f7SMauro Carvalho Chehab ERROR_OTF_INPUT_HEIGHT = 24, 143238c84f7SMauro Carvalho Chehab /* invalid bit-width (DRC: 8~12bits, FD: 8bit) */ 144238c84f7SMauro Carvalho Chehab ERROR_OTF_INPUT_BIT_WIDTH = 25, 145238c84f7SMauro Carvalho Chehab /* invalid FrameTime for ISP */ 146238c84f7SMauro Carvalho Chehab ERROR_OTF_INPUT_USER_FRAMETIIME = 26, 147238c84f7SMauro Carvalho Chehab 148238c84f7SMauro Carvalho Chehab ERROR_DMA_INPUT_NONE = ERROR_COMMON_NONE, 149238c84f7SMauro Carvalho Chehab /* invalid width (DRC: 128~8192, FD: 32~8190) */ 150238c84f7SMauro Carvalho Chehab ERROR_DMA_INPUT_WIDTH = 31, 151238c84f7SMauro Carvalho Chehab /* invalid height (DRC: 64~8192, FD: 16~8190) */ 152238c84f7SMauro Carvalho Chehab ERROR_DMA_INPUT_HEIGHT = 32, 153238c84f7SMauro Carvalho Chehab /* invalid format (DRC: YUV444 or YUV422, FD: YUV444, 422, 420) */ 154238c84f7SMauro Carvalho Chehab ERROR_DMA_INPUT_FORMAT = 33, 155238c84f7SMauro Carvalho Chehab /* invalid bit-width (DRC: 8~12bit, FD: 8bit) */ 156238c84f7SMauro Carvalho Chehab ERROR_DMA_INPUT_BIT_WIDTH = 34, 157238c84f7SMauro Carvalho Chehab /* invalid order(DRC: YYCbCrorYCbYCr, FD:NO,YYCbCr,YCbYCr,CbCr,CrCb) */ 158238c84f7SMauro Carvalho Chehab ERROR_DMA_INPUT_ORDER = 35, 159*6262e802SColin Ian King /* invalid plane (DRC: 3, FD: 1, 2, 3) */ 160238c84f7SMauro Carvalho Chehab ERROR_DMA_INPUT_PLANE = 36, 161238c84f7SMauro Carvalho Chehab 162238c84f7SMauro Carvalho Chehab ERROR_OTF_OUTPUT_NONE = ERROR_COMMON_NONE, 163238c84f7SMauro Carvalho Chehab /* invalid width (DRC: 128~8192) */ 164238c84f7SMauro Carvalho Chehab ERROR_OTF_OUTPUT_WIDTH = 41, 165238c84f7SMauro Carvalho Chehab /* invalid height (DRC: 64~8192) */ 166238c84f7SMauro Carvalho Chehab ERROR_OTF_OUTPUT_HEIGHT = 42, 167238c84f7SMauro Carvalho Chehab /* invalid format (DRC: YUV444) */ 168238c84f7SMauro Carvalho Chehab ERROR_OTF_OUTPUT_FORMAT = 43, 169238c84f7SMauro Carvalho Chehab /* invalid bit-width (DRC: 8~12bits) */ 170238c84f7SMauro Carvalho Chehab ERROR_OTF_OUTPUT_BIT_WIDTH = 44, 171238c84f7SMauro Carvalho Chehab 172238c84f7SMauro Carvalho Chehab ERROR_DMA_OUTPUT_NONE = ERROR_COMMON_NONE, 173238c84f7SMauro Carvalho Chehab ERROR_DMA_OUTPUT_WIDTH = 51, /* invalid width */ 174238c84f7SMauro Carvalho Chehab ERROR_DMA_OUTPUT_HEIGHT = 52, /* invalid height */ 175238c84f7SMauro Carvalho Chehab ERROR_DMA_OUTPUT_FORMAT = 53, /* invalid format */ 176238c84f7SMauro Carvalho Chehab ERROR_DMA_OUTPUT_BIT_WIDTH = 54, /* invalid bit-width */ 177238c84f7SMauro Carvalho Chehab ERROR_DMA_OUTPUT_PLANE = 55, /* invalid plane */ 178238c84f7SMauro Carvalho Chehab ERROR_DMA_OUTPUT_ORDER = 56, /* invalid order */ 179238c84f7SMauro Carvalho Chehab 180238c84f7SMauro Carvalho Chehab ERROR_GLOBAL_SHOTMODE_NONE = ERROR_COMMON_NONE, 181238c84f7SMauro Carvalho Chehab 182238c84f7SMauro Carvalho Chehab /* SENSOR Error(100~199) */ 183238c84f7SMauro Carvalho Chehab ERROR_SENSOR_NONE = ERROR_COMMON_NONE, 184238c84f7SMauro Carvalho Chehab ERROR_SENSOR_I2C_FAIL = 101, 185238c84f7SMauro Carvalho Chehab ERROR_SENSOR_INVALID_FRAMERATE, 186238c84f7SMauro Carvalho Chehab ERROR_SENSOR_INVALID_EXPOSURETIME, 187238c84f7SMauro Carvalho Chehab ERROR_SENSOR_INVALID_SIZE, 188238c84f7SMauro Carvalho Chehab ERROR_SENSOR_INVALID_SETTING, 189238c84f7SMauro Carvalho Chehab ERROR_SENSOR_ACTUATOR_INIT_FAIL, 190238c84f7SMauro Carvalho Chehab ERROR_SENSOR_INVALID_AF_POS, 191238c84f7SMauro Carvalho Chehab ERROR_SENSOR_UNSUPPORT_FUNC, 192238c84f7SMauro Carvalho Chehab ERROR_SENSOR_UNSUPPORT_PERI, 193238c84f7SMauro Carvalho Chehab ERROR_SENSOR_UNSUPPORT_AF, 194238c84f7SMauro Carvalho Chehab 195238c84f7SMauro Carvalho Chehab /* ISP Error (200~299) */ 196238c84f7SMauro Carvalho Chehab ERROR_ISP_AF_NONE = ERROR_COMMON_NONE, 197238c84f7SMauro Carvalho Chehab ERROR_ISP_AF_BUSY = 201, 198238c84f7SMauro Carvalho Chehab ERROR_ISP_AF_INVALID_COMMAND = 202, 199238c84f7SMauro Carvalho Chehab ERROR_ISP_AF_INVALID_MODE = 203, 200238c84f7SMauro Carvalho Chehab ERROR_ISP_FLASH_NONE = ERROR_COMMON_NONE, 201238c84f7SMauro Carvalho Chehab ERROR_ISP_AWB_NONE = ERROR_COMMON_NONE, 202238c84f7SMauro Carvalho Chehab ERROR_ISP_IMAGE_EFFECT_NONE = ERROR_COMMON_NONE, 203238c84f7SMauro Carvalho Chehab ERROR_ISP_ISO_NONE = ERROR_COMMON_NONE, 204238c84f7SMauro Carvalho Chehab ERROR_ISP_ADJUST_NONE = ERROR_COMMON_NONE, 205238c84f7SMauro Carvalho Chehab ERROR_ISP_METERING_NONE = ERROR_COMMON_NONE, 206238c84f7SMauro Carvalho Chehab ERROR_ISP_AFC_NONE = ERROR_COMMON_NONE, 207238c84f7SMauro Carvalho Chehab 208238c84f7SMauro Carvalho Chehab /* DRC Error (300~399) */ 209238c84f7SMauro Carvalho Chehab 210238c84f7SMauro Carvalho Chehab /* FD Error (400~499) */ 211238c84f7SMauro Carvalho Chehab ERROR_FD_NONE = ERROR_COMMON_NONE, 212238c84f7SMauro Carvalho Chehab /* Invalid max number (1~16) */ 213238c84f7SMauro Carvalho Chehab ERROR_FD_CONFIG_MAX_NUMBER_STATE = 401, 214238c84f7SMauro Carvalho Chehab ERROR_FD_CONFIG_MAX_NUMBER_INVALID = 402, 215238c84f7SMauro Carvalho Chehab ERROR_FD_CONFIG_YAW_ANGLE_STATE = 403, 216238c84f7SMauro Carvalho Chehab ERROR_FD_CONFIG_YAW_ANGLE_INVALID = 404, 217238c84f7SMauro Carvalho Chehab ERROR_FD_CONFIG_ROLL_ANGLE_STATE = 405, 218238c84f7SMauro Carvalho Chehab ERROR_FD_CONFIG_ROLL_ANGLE_INVALID = 406, 219238c84f7SMauro Carvalho Chehab ERROR_FD_CONFIG_SMILE_MODE_INVALID = 407, 220238c84f7SMauro Carvalho Chehab ERROR_FD_CONFIG_BLINK_MODE_INVALID = 408, 221238c84f7SMauro Carvalho Chehab ERROR_FD_CONFIG_EYES_DETECT_INVALID = 409, 222238c84f7SMauro Carvalho Chehab ERROR_FD_CONFIG_MOUTH_DETECT_INVALID = 410, 223238c84f7SMauro Carvalho Chehab ERROR_FD_CONFIG_ORIENTATION_STATE = 411, 224238c84f7SMauro Carvalho Chehab ERROR_FD_CONFIG_ORIENTATION_INVALID = 412, 225238c84f7SMauro Carvalho Chehab ERROR_FD_CONFIG_ORIENTATION_VALUE_INVALID = 413, 226238c84f7SMauro Carvalho Chehab /* PARAM_FdResultStr can be only applied in ready-state or stream off */ 227238c84f7SMauro Carvalho Chehab ERROR_FD_RESULT = 414, 228238c84f7SMauro Carvalho Chehab /* PARAM_FdModeStr can be only applied in ready-state or stream off */ 229238c84f7SMauro Carvalho Chehab ERROR_FD_MODE = 415, 230238c84f7SMauro Carvalho Chehab /* Scaler Error (500 ~ 599) */ 231238c84f7SMauro Carvalho Chehab ERROR_SCALER_NO_NONE = ERROR_COMMON_NONE, 232238c84f7SMauro Carvalho Chehab ERROR_SCALER_DMA_OUTSEL = 501, 233238c84f7SMauro Carvalho Chehab ERROR_SCALER_H_RATIO = 502, 234238c84f7SMauro Carvalho Chehab ERROR_SCALER_V_RATIO = 503, 235238c84f7SMauro Carvalho Chehab 236238c84f7SMauro Carvalho Chehab ERROR_SCALER_IMAGE_EFFECT = 510, 237238c84f7SMauro Carvalho Chehab 238238c84f7SMauro Carvalho Chehab ERROR_SCALER_ROTATE = 520, 239238c84f7SMauro Carvalho Chehab ERROR_SCALER_FLIP = 521, 240238c84f7SMauro Carvalho Chehab }; 241238c84f7SMauro Carvalho Chehab 242238c84f7SMauro Carvalho Chehab const char *fimc_is_strerr(unsigned int error); 243238c84f7SMauro Carvalho Chehab const char *fimc_is_param_strerr(unsigned int error); 244238c84f7SMauro Carvalho Chehab 245238c84f7SMauro Carvalho Chehab #endif /* FIMC_IS_ERR_H_ */ 246