1/* 2 * Samsung Exynos4 SoC series FIMC-IS slave interface driver 3 * 4 * FIMC-IS error code definition 5 * 6 * Copyright (C) 2011 - 2013 Samsung Electronics Co., Ltd. 7 * 8 * Authors: Younghwan Joo <yhwan.joo@samsung.com> 9 * Sylwester Nawrocki <s.nawrocki@samsung.com> 10 * 11 * This program is free software; you can redistribute it and/or modify 12 * it under the terms of the GNU General Public License version 2 as 13 * published by the Free Software Foundation. 14*/ 15 16#ifndef FIMC_IS_ERR_H_ 17#define FIMC_IS_ERR_H_ 18 19#define IS_ERROR_VER 011 /* IS ERROR VERSION 0.11 */ 20 21enum { 22 IS_ERROR_NONE, 23 24 /* General 1 ~ 99 */ 25 IS_ERROR_INVALID_COMMAND, 26 IS_ERROR_REQUEST_FAIL, 27 IS_ERROR_INVALID_SCENARIO, 28 IS_ERROR_INVALID_SENSORID, 29 IS_ERROR_INVALID_MODE_CHANGE, 30 IS_ERROR_INVALID_MAGIC_NUMBER, 31 IS_ERROR_INVALID_SETFILE_HDR, 32 IS_ERROR_BUSY, 33 IS_ERROR_SET_PARAMETER, 34 IS_ERROR_INVALID_PATH, 35 IS_ERROR_OPEN_SENSOR_FAIL, 36 IS_ERROR_ENTRY_MSG_THREAD_DOWN, 37 IS_ERROR_ISP_FRAME_END_NOT_DONE, 38 IS_ERROR_DRC_FRAME_END_NOT_DONE, 39 IS_ERROR_SCALERC_FRAME_END_NOT_DONE, 40 IS_ERROR_ODC_FRAME_END_NOT_DONE, 41 IS_ERROR_DIS_FRAME_END_NOT_DONE, 42 IS_ERROR_TDNR_FRAME_END_NOT_DONE, 43 IS_ERROR_SCALERP_FRAME_END_NOT_DONE, 44 IS_ERROR_WAIT_STREAM_OFF_NOT_DONE, 45 IS_ERROR_NO_MSG_IS_RECEIVED, 46 IS_ERROR_SENSOR_MSG_FAIL, 47 IS_ERROR_ISP_MSG_FAIL, 48 IS_ERROR_DRC_MSG_FAIL, 49 IS_ERROR_SCALERC_MSG_FAIL, 50 IS_ERROR_ODC_MSG_FAIL, 51 IS_ERROR_DIS_MSG_FAIL, 52 IS_ERROR_TDNR_MSG_FAIL, 53 IS_ERROR_SCALERP_MSG_FAIL, 54 IS_ERROR_LHFD_MSG_FAIL, 55 IS_ERROR_LHFD_INTERNAL_STOP, 56 57 /* Sensor 100 ~ 199 */ 58 IS_ERROR_SENSOR_PWRDN_FAIL = 100, 59 IS_ERROR_SENSOR_STREAM_ON_FAIL, 60 IS_ERROR_SENSOR_STREAM_OFF_FAIL, 61 62 /* ISP 200 ~ 299 */ 63 IS_ERROR_ISP_PWRDN_FAIL = 200, 64 IS_ERROR_ISP_MULTIPLE_INPUT, 65 IS_ERROR_ISP_ABSENT_INPUT, 66 IS_ERROR_ISP_ABSENT_OUTPUT, 67 IS_ERROR_ISP_NONADJACENT_OUTPUT, 68 IS_ERROR_ISP_FORMAT_MISMATCH, 69 IS_ERROR_ISP_WIDTH_MISMATCH, 70 IS_ERROR_ISP_HEIGHT_MISMATCH, 71 IS_ERROR_ISP_BITWIDTH_MISMATCH, 72 IS_ERROR_ISP_FRAME_END_TIME_OUT, 73 74 /* DRC 300 ~ 399 */ 75 IS_ERROR_DRC_PWRDN_FAIL = 300, 76 IS_ERROR_DRC_MULTIPLE_INPUT, 77 IS_ERROR_DRC_ABSENT_INPUT, 78 IS_ERROR_DRC_NONADJACENT_INPUT, 79 IS_ERROR_DRC_ABSENT_OUTPUT, 80 IS_ERROR_DRC_NONADJACENT_OUTPUT, 81 IS_ERROR_DRC_FORMAT_MISMATCH, 82 IS_ERROR_DRC_WIDTH_MISMATCH, 83 IS_ERROR_DRC_HEIGHT_MISMATCH, 84 IS_ERROR_DRC_BITWIDTH_MISMATCH, 85 IS_ERROR_DRC_FRAME_END_TIME_OUT, 86 87 /* SCALERC 400 ~ 499 */ 88 IS_ERROR_SCALERC_PWRDN_FAIL = 400, 89 90 /* ODC 500 ~ 599 */ 91 IS_ERROR_ODC_PWRDN_FAIL = 500, 92 93 /* DIS 600 ~ 699 */ 94 IS_ERROR_DIS_PWRDN_FAIL = 600, 95 96 /* TDNR 700 ~ 799 */ 97 IS_ERROR_TDNR_PWRDN_FAIL = 700, 98 99 /* SCALERC 800 ~ 899 */ 100 IS_ERROR_SCALERP_PWRDN_FAIL = 800, 101 102 /* FD 900 ~ 999 */ 103 IS_ERROR_FD_PWRDN_FAIL = 900, 104 IS_ERROR_FD_MULTIPLE_INPUT, 105 IS_ERROR_FD_ABSENT_INPUT, 106 IS_ERROR_FD_NONADJACENT_INPUT, 107 IS_ERROR_LHFD_FRAME_END_TIME_OUT, 108 109 IS_ERROR_UNKNOWN = 1000, 110}; 111 112#define IS_ERROR_TIME_OUT_FLAG 0x80000000 113 114/* Set parameter error enum */ 115enum fimc_is_error { 116 /* Common error (0~99) */ 117 ERROR_COMMON_NONE = 0, 118 ERROR_COMMON_CMD = 1, /* Invalid command */ 119 ERROR_COMMON_PARAMETER = 2, /* Invalid parameter */ 120 /* setfile is not loaded before adjusting */ 121 ERROR_COMMON_SETFILE_LOAD = 3, 122 /* setfile is not Adjusted before runnng. */ 123 ERROR_COMMON_SETFILE_ADJUST = 4, 124 /* Index of setfile is not valid (0~MAX_SETFILE_NUM-1) */ 125 ERROR_COMMON_SETFILE_INDEX = 5, 126 /* Input path can be changed in ready state(stop) */ 127 ERROR_COMMON_INPUT_PATH = 6, 128 /* IP can not start if input path is not set */ 129 ERROR_COMMON_INPUT_INIT = 7, 130 /* Output path can be changed in ready state (stop) */ 131 ERROR_COMMON_OUTPUT_PATH = 8, 132 /* IP can not start if output path is not set */ 133 ERROR_COMMON_OUTPUT_INIT = 9, 134 135 ERROR_CONTROL_NONE = ERROR_COMMON_NONE, 136 ERROR_CONTROL_BYPASS = 11, /* Enable or Disable */ 137 138 ERROR_OTF_INPUT_NONE = ERROR_COMMON_NONE, 139 ERROR_OTF_INPUT_CMD = 21, 140 /* invalid format (DRC: YUV444, FD: YUV444, 422, 420) */ 141 ERROR_OTF_INPUT_FORMAT = 22, 142 /* invalid width (DRC: 128~8192, FD: 32~8190) */ 143 ERROR_OTF_INPUT_WIDTH = 23, 144 /* invalid height (DRC: 64~8192, FD: 16~8190) */ 145 ERROR_OTF_INPUT_HEIGHT = 24, 146 /* invalid bit-width (DRC: 8~12bits, FD: 8bit) */ 147 ERROR_OTF_INPUT_BIT_WIDTH = 25, 148 /* invalid FrameTime for ISP */ 149 ERROR_OTF_INPUT_USER_FRAMETIIME = 26, 150 151 ERROR_DMA_INPUT_NONE = ERROR_COMMON_NONE, 152 /* invalid width (DRC: 128~8192, FD: 32~8190) */ 153 ERROR_DMA_INPUT_WIDTH = 31, 154 /* invalid height (DRC: 64~8192, FD: 16~8190) */ 155 ERROR_DMA_INPUT_HEIGHT = 32, 156 /* invalid format (DRC: YUV444 or YUV422, FD: YUV444, 422, 420) */ 157 ERROR_DMA_INPUT_FORMAT = 33, 158 /* invalid bit-width (DRC: 8~12bit, FD: 8bit) */ 159 ERROR_DMA_INPUT_BIT_WIDTH = 34, 160 /* invalid order(DRC: YYCbCrorYCbYCr, FD:NO,YYCbCr,YCbYCr,CbCr,CrCb) */ 161 ERROR_DMA_INPUT_ORDER = 35, 162 /* invalid palne (DRC: 3, FD: 1, 2, 3) */ 163 ERROR_DMA_INPUT_PLANE = 36, 164 165 ERROR_OTF_OUTPUT_NONE = ERROR_COMMON_NONE, 166 /* invalid width (DRC: 128~8192) */ 167 ERROR_OTF_OUTPUT_WIDTH = 41, 168 /* invalid height (DRC: 64~8192) */ 169 ERROR_OTF_OUTPUT_HEIGHT = 42, 170 /* invalid format (DRC: YUV444) */ 171 ERROR_OTF_OUTPUT_FORMAT = 43, 172 /* invalid bit-width (DRC: 8~12bits) */ 173 ERROR_OTF_OUTPUT_BIT_WIDTH = 44, 174 175 ERROR_DMA_OUTPUT_NONE = ERROR_COMMON_NONE, 176 ERROR_DMA_OUTPUT_WIDTH = 51, /* invalid width */ 177 ERROR_DMA_OUTPUT_HEIGHT = 52, /* invalid height */ 178 ERROR_DMA_OUTPUT_FORMAT = 53, /* invalid format */ 179 ERROR_DMA_OUTPUT_BIT_WIDTH = 54, /* invalid bit-width */ 180 ERROR_DMA_OUTPUT_PLANE = 55, /* invalid plane */ 181 ERROR_DMA_OUTPUT_ORDER = 56, /* invalid order */ 182 183 ERROR_GLOBAL_SHOTMODE_NONE = ERROR_COMMON_NONE, 184 185 /* SENSOR Error(100~199) */ 186 ERROR_SENSOR_NONE = ERROR_COMMON_NONE, 187 ERROR_SENSOR_I2C_FAIL = 101, 188 ERROR_SENSOR_INVALID_FRAMERATE, 189 ERROR_SENSOR_INVALID_EXPOSURETIME, 190 ERROR_SENSOR_INVALID_SIZE, 191 ERROR_SENSOR_INVALID_SETTING, 192 ERROR_SENSOR_ACTURATOR_INIT_FAIL, 193 ERROR_SENSOR_INVALID_AF_POS, 194 ERROR_SENSOR_UNSUPPORT_FUNC, 195 ERROR_SENSOR_UNSUPPORT_PERI, 196 ERROR_SENSOR_UNSUPPORT_AF, 197 198 /* ISP Error (200~299) */ 199 ERROR_ISP_AF_NONE = ERROR_COMMON_NONE, 200 ERROR_ISP_AF_BUSY = 201, 201 ERROR_ISP_AF_INVALID_COMMAND = 202, 202 ERROR_ISP_AF_INVALID_MODE = 203, 203 ERROR_ISP_FLASH_NONE = ERROR_COMMON_NONE, 204 ERROR_ISP_AWB_NONE = ERROR_COMMON_NONE, 205 ERROR_ISP_IMAGE_EFFECT_NONE = ERROR_COMMON_NONE, 206 ERROR_ISP_ISO_NONE = ERROR_COMMON_NONE, 207 ERROR_ISP_ADJUST_NONE = ERROR_COMMON_NONE, 208 ERROR_ISP_METERING_NONE = ERROR_COMMON_NONE, 209 ERROR_ISP_AFC_NONE = ERROR_COMMON_NONE, 210 211 /* DRC Error (300~399) */ 212 213 /* FD Error (400~499) */ 214 ERROR_FD_NONE = ERROR_COMMON_NONE, 215 /* Invalid max number (1~16) */ 216 ERROR_FD_CONFIG_MAX_NUMBER_STATE = 401, 217 ERROR_FD_CONFIG_MAX_NUMBER_INVALID = 402, 218 ERROR_FD_CONFIG_YAW_ANGLE_STATE = 403, 219 ERROR_FD_CONFIG_YAW_ANGLE_INVALID = 404, 220 ERROR_FD_CONFIG_ROLL_ANGLE_STATE = 405, 221 ERROR_FD_CONFIG_ROLL_ANGLE_INVALID = 406, 222 ERROR_FD_CONFIG_SMILE_MODE_INVALID = 407, 223 ERROR_FD_CONFIG_BLINK_MODE_INVALID = 408, 224 ERROR_FD_CONFIG_EYES_DETECT_INVALID = 409, 225 ERROR_FD_CONFIG_MOUTH_DETECT_INVALID = 410, 226 ERROR_FD_CONFIG_ORIENTATION_STATE = 411, 227 ERROR_FD_CONFIG_ORIENTATION_INVALID = 412, 228 ERROR_FD_CONFIG_ORIENTATION_VALUE_INVALID = 413, 229 /* PARAM_FdResultStr can be only applied in ready-state or stream off */ 230 ERROR_FD_RESULT = 414, 231 /* PARAM_FdModeStr can be only applied in ready-state or stream off */ 232 ERROR_FD_MODE = 415, 233 /* Scaler Error (500 ~ 599) */ 234 ERROR_SCALER_NO_NONE = ERROR_COMMON_NONE, 235 ERROR_SCALER_DMA_OUTSEL = 501, 236 ERROR_SCALER_H_RATIO = 502, 237 ERROR_SCALER_V_RATIO = 503, 238 239 ERROR_SCALER_IMAGE_EFFECT = 510, 240 241 ERROR_SCALER_ROTATE = 520, 242 ERROR_SCALER_FLIP = 521, 243}; 244 245const char *fimc_is_strerr(unsigned int error); 246const char *fimc_is_param_strerr(unsigned int error); 247 248#endif /* FIMC_IS_ERR_H_ */ 249