162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Samsung Exynos4 SoC series FIMC-IS slave interface driver 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * FIMC-IS error code definition 662306a36Sopenharmony_ci * 762306a36Sopenharmony_ci * Copyright (C) 2011 - 2013 Samsung Electronics Co., Ltd. 862306a36Sopenharmony_ci * 962306a36Sopenharmony_ci * Authors: Younghwan Joo <yhwan.joo@samsung.com> 1062306a36Sopenharmony_ci * Sylwester Nawrocki <s.nawrocki@samsung.com> 1162306a36Sopenharmony_ci*/ 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci#ifndef FIMC_IS_ERR_H_ 1462306a36Sopenharmony_ci#define FIMC_IS_ERR_H_ 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci#define IS_ERROR_VER 011 /* IS ERROR VERSION 0.11 */ 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_cienum { 1962306a36Sopenharmony_ci IS_ERROR_NONE, 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci /* General 1 ~ 99 */ 2262306a36Sopenharmony_ci IS_ERROR_INVALID_COMMAND, 2362306a36Sopenharmony_ci IS_ERROR_REQUEST_FAIL, 2462306a36Sopenharmony_ci IS_ERROR_INVALID_SCENARIO, 2562306a36Sopenharmony_ci IS_ERROR_INVALID_SENSORID, 2662306a36Sopenharmony_ci IS_ERROR_INVALID_MODE_CHANGE, 2762306a36Sopenharmony_ci IS_ERROR_INVALID_MAGIC_NUMBER, 2862306a36Sopenharmony_ci IS_ERROR_INVALID_SETFILE_HDR, 2962306a36Sopenharmony_ci IS_ERROR_BUSY, 3062306a36Sopenharmony_ci IS_ERROR_SET_PARAMETER, 3162306a36Sopenharmony_ci IS_ERROR_INVALID_PATH, 3262306a36Sopenharmony_ci IS_ERROR_OPEN_SENSOR_FAIL, 3362306a36Sopenharmony_ci IS_ERROR_ENTRY_MSG_THREAD_DOWN, 3462306a36Sopenharmony_ci IS_ERROR_ISP_FRAME_END_NOT_DONE, 3562306a36Sopenharmony_ci IS_ERROR_DRC_FRAME_END_NOT_DONE, 3662306a36Sopenharmony_ci IS_ERROR_SCALERC_FRAME_END_NOT_DONE, 3762306a36Sopenharmony_ci IS_ERROR_ODC_FRAME_END_NOT_DONE, 3862306a36Sopenharmony_ci IS_ERROR_DIS_FRAME_END_NOT_DONE, 3962306a36Sopenharmony_ci IS_ERROR_TDNR_FRAME_END_NOT_DONE, 4062306a36Sopenharmony_ci IS_ERROR_SCALERP_FRAME_END_NOT_DONE, 4162306a36Sopenharmony_ci IS_ERROR_WAIT_STREAM_OFF_NOT_DONE, 4262306a36Sopenharmony_ci IS_ERROR_NO_MSG_IS_RECEIVED, 4362306a36Sopenharmony_ci IS_ERROR_SENSOR_MSG_FAIL, 4462306a36Sopenharmony_ci IS_ERROR_ISP_MSG_FAIL, 4562306a36Sopenharmony_ci IS_ERROR_DRC_MSG_FAIL, 4662306a36Sopenharmony_ci IS_ERROR_SCALERC_MSG_FAIL, 4762306a36Sopenharmony_ci IS_ERROR_ODC_MSG_FAIL, 4862306a36Sopenharmony_ci IS_ERROR_DIS_MSG_FAIL, 4962306a36Sopenharmony_ci IS_ERROR_TDNR_MSG_FAIL, 5062306a36Sopenharmony_ci IS_ERROR_SCALERP_MSG_FAIL, 5162306a36Sopenharmony_ci IS_ERROR_LHFD_MSG_FAIL, 5262306a36Sopenharmony_ci IS_ERROR_LHFD_INTERNAL_STOP, 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci /* Sensor 100 ~ 199 */ 5562306a36Sopenharmony_ci IS_ERROR_SENSOR_PWRDN_FAIL = 100, 5662306a36Sopenharmony_ci IS_ERROR_SENSOR_STREAM_ON_FAIL, 5762306a36Sopenharmony_ci IS_ERROR_SENSOR_STREAM_OFF_FAIL, 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_ci /* ISP 200 ~ 299 */ 6062306a36Sopenharmony_ci IS_ERROR_ISP_PWRDN_FAIL = 200, 6162306a36Sopenharmony_ci IS_ERROR_ISP_MULTIPLE_INPUT, 6262306a36Sopenharmony_ci IS_ERROR_ISP_ABSENT_INPUT, 6362306a36Sopenharmony_ci IS_ERROR_ISP_ABSENT_OUTPUT, 6462306a36Sopenharmony_ci IS_ERROR_ISP_NONADJACENT_OUTPUT, 6562306a36Sopenharmony_ci IS_ERROR_ISP_FORMAT_MISMATCH, 6662306a36Sopenharmony_ci IS_ERROR_ISP_WIDTH_MISMATCH, 6762306a36Sopenharmony_ci IS_ERROR_ISP_HEIGHT_MISMATCH, 6862306a36Sopenharmony_ci IS_ERROR_ISP_BITWIDTH_MISMATCH, 6962306a36Sopenharmony_ci IS_ERROR_ISP_FRAME_END_TIME_OUT, 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci /* DRC 300 ~ 399 */ 7262306a36Sopenharmony_ci IS_ERROR_DRC_PWRDN_FAIL = 300, 7362306a36Sopenharmony_ci IS_ERROR_DRC_MULTIPLE_INPUT, 7462306a36Sopenharmony_ci IS_ERROR_DRC_ABSENT_INPUT, 7562306a36Sopenharmony_ci IS_ERROR_DRC_NONADJACENT_INPUT, 7662306a36Sopenharmony_ci IS_ERROR_DRC_ABSENT_OUTPUT, 7762306a36Sopenharmony_ci IS_ERROR_DRC_NONADJACENT_OUTPUT, 7862306a36Sopenharmony_ci IS_ERROR_DRC_FORMAT_MISMATCH, 7962306a36Sopenharmony_ci IS_ERROR_DRC_WIDTH_MISMATCH, 8062306a36Sopenharmony_ci IS_ERROR_DRC_HEIGHT_MISMATCH, 8162306a36Sopenharmony_ci IS_ERROR_DRC_BITWIDTH_MISMATCH, 8262306a36Sopenharmony_ci IS_ERROR_DRC_FRAME_END_TIME_OUT, 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ci /* SCALERC 400 ~ 499 */ 8562306a36Sopenharmony_ci IS_ERROR_SCALERC_PWRDN_FAIL = 400, 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci /* ODC 500 ~ 599 */ 8862306a36Sopenharmony_ci IS_ERROR_ODC_PWRDN_FAIL = 500, 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_ci /* DIS 600 ~ 699 */ 9162306a36Sopenharmony_ci IS_ERROR_DIS_PWRDN_FAIL = 600, 9262306a36Sopenharmony_ci 9362306a36Sopenharmony_ci /* TDNR 700 ~ 799 */ 9462306a36Sopenharmony_ci IS_ERROR_TDNR_PWRDN_FAIL = 700, 9562306a36Sopenharmony_ci 9662306a36Sopenharmony_ci /* SCALERC 800 ~ 899 */ 9762306a36Sopenharmony_ci IS_ERROR_SCALERP_PWRDN_FAIL = 800, 9862306a36Sopenharmony_ci 9962306a36Sopenharmony_ci /* FD 900 ~ 999 */ 10062306a36Sopenharmony_ci IS_ERROR_FD_PWRDN_FAIL = 900, 10162306a36Sopenharmony_ci IS_ERROR_FD_MULTIPLE_INPUT, 10262306a36Sopenharmony_ci IS_ERROR_FD_ABSENT_INPUT, 10362306a36Sopenharmony_ci IS_ERROR_FD_NONADJACENT_INPUT, 10462306a36Sopenharmony_ci IS_ERROR_LHFD_FRAME_END_TIME_OUT, 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_ci IS_ERROR_UNKNOWN = 1000, 10762306a36Sopenharmony_ci}; 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ci#define IS_ERROR_TIME_OUT_FLAG 0x80000000 11062306a36Sopenharmony_ci 11162306a36Sopenharmony_ci/* Set parameter error enum */ 11262306a36Sopenharmony_cienum fimc_is_error { 11362306a36Sopenharmony_ci /* Common error (0~99) */ 11462306a36Sopenharmony_ci ERROR_COMMON_NONE = 0, 11562306a36Sopenharmony_ci ERROR_COMMON_CMD = 1, /* Invalid command */ 11662306a36Sopenharmony_ci ERROR_COMMON_PARAMETER = 2, /* Invalid parameter */ 11762306a36Sopenharmony_ci /* setfile is not loaded before adjusting */ 11862306a36Sopenharmony_ci ERROR_COMMON_SETFILE_LOAD = 3, 11962306a36Sopenharmony_ci /* setfile is not Adjusted before running. */ 12062306a36Sopenharmony_ci ERROR_COMMON_SETFILE_ADJUST = 4, 12162306a36Sopenharmony_ci /* Index of setfile is not valid (0~MAX_SETFILE_NUM-1) */ 12262306a36Sopenharmony_ci ERROR_COMMON_SETFILE_INDEX = 5, 12362306a36Sopenharmony_ci /* Input path can be changed in ready state(stop) */ 12462306a36Sopenharmony_ci ERROR_COMMON_INPUT_PATH = 6, 12562306a36Sopenharmony_ci /* IP can not start if input path is not set */ 12662306a36Sopenharmony_ci ERROR_COMMON_INPUT_INIT = 7, 12762306a36Sopenharmony_ci /* Output path can be changed in ready state (stop) */ 12862306a36Sopenharmony_ci ERROR_COMMON_OUTPUT_PATH = 8, 12962306a36Sopenharmony_ci /* IP can not start if output path is not set */ 13062306a36Sopenharmony_ci ERROR_COMMON_OUTPUT_INIT = 9, 13162306a36Sopenharmony_ci 13262306a36Sopenharmony_ci ERROR_CONTROL_NONE = ERROR_COMMON_NONE, 13362306a36Sopenharmony_ci ERROR_CONTROL_BYPASS = 11, /* Enable or Disable */ 13462306a36Sopenharmony_ci 13562306a36Sopenharmony_ci ERROR_OTF_INPUT_NONE = ERROR_COMMON_NONE, 13662306a36Sopenharmony_ci ERROR_OTF_INPUT_CMD = 21, 13762306a36Sopenharmony_ci /* invalid format (DRC: YUV444, FD: YUV444, 422, 420) */ 13862306a36Sopenharmony_ci ERROR_OTF_INPUT_FORMAT = 22, 13962306a36Sopenharmony_ci /* invalid width (DRC: 128~8192, FD: 32~8190) */ 14062306a36Sopenharmony_ci ERROR_OTF_INPUT_WIDTH = 23, 14162306a36Sopenharmony_ci /* invalid height (DRC: 64~8192, FD: 16~8190) */ 14262306a36Sopenharmony_ci ERROR_OTF_INPUT_HEIGHT = 24, 14362306a36Sopenharmony_ci /* invalid bit-width (DRC: 8~12bits, FD: 8bit) */ 14462306a36Sopenharmony_ci ERROR_OTF_INPUT_BIT_WIDTH = 25, 14562306a36Sopenharmony_ci /* invalid FrameTime for ISP */ 14662306a36Sopenharmony_ci ERROR_OTF_INPUT_USER_FRAMETIIME = 26, 14762306a36Sopenharmony_ci 14862306a36Sopenharmony_ci ERROR_DMA_INPUT_NONE = ERROR_COMMON_NONE, 14962306a36Sopenharmony_ci /* invalid width (DRC: 128~8192, FD: 32~8190) */ 15062306a36Sopenharmony_ci ERROR_DMA_INPUT_WIDTH = 31, 15162306a36Sopenharmony_ci /* invalid height (DRC: 64~8192, FD: 16~8190) */ 15262306a36Sopenharmony_ci ERROR_DMA_INPUT_HEIGHT = 32, 15362306a36Sopenharmony_ci /* invalid format (DRC: YUV444 or YUV422, FD: YUV444, 422, 420) */ 15462306a36Sopenharmony_ci ERROR_DMA_INPUT_FORMAT = 33, 15562306a36Sopenharmony_ci /* invalid bit-width (DRC: 8~12bit, FD: 8bit) */ 15662306a36Sopenharmony_ci ERROR_DMA_INPUT_BIT_WIDTH = 34, 15762306a36Sopenharmony_ci /* invalid order(DRC: YYCbCrorYCbYCr, FD:NO,YYCbCr,YCbYCr,CbCr,CrCb) */ 15862306a36Sopenharmony_ci ERROR_DMA_INPUT_ORDER = 35, 15962306a36Sopenharmony_ci /* invalid plane (DRC: 3, FD: 1, 2, 3) */ 16062306a36Sopenharmony_ci ERROR_DMA_INPUT_PLANE = 36, 16162306a36Sopenharmony_ci 16262306a36Sopenharmony_ci ERROR_OTF_OUTPUT_NONE = ERROR_COMMON_NONE, 16362306a36Sopenharmony_ci /* invalid width (DRC: 128~8192) */ 16462306a36Sopenharmony_ci ERROR_OTF_OUTPUT_WIDTH = 41, 16562306a36Sopenharmony_ci /* invalid height (DRC: 64~8192) */ 16662306a36Sopenharmony_ci ERROR_OTF_OUTPUT_HEIGHT = 42, 16762306a36Sopenharmony_ci /* invalid format (DRC: YUV444) */ 16862306a36Sopenharmony_ci ERROR_OTF_OUTPUT_FORMAT = 43, 16962306a36Sopenharmony_ci /* invalid bit-width (DRC: 8~12bits) */ 17062306a36Sopenharmony_ci ERROR_OTF_OUTPUT_BIT_WIDTH = 44, 17162306a36Sopenharmony_ci 17262306a36Sopenharmony_ci ERROR_DMA_OUTPUT_NONE = ERROR_COMMON_NONE, 17362306a36Sopenharmony_ci ERROR_DMA_OUTPUT_WIDTH = 51, /* invalid width */ 17462306a36Sopenharmony_ci ERROR_DMA_OUTPUT_HEIGHT = 52, /* invalid height */ 17562306a36Sopenharmony_ci ERROR_DMA_OUTPUT_FORMAT = 53, /* invalid format */ 17662306a36Sopenharmony_ci ERROR_DMA_OUTPUT_BIT_WIDTH = 54, /* invalid bit-width */ 17762306a36Sopenharmony_ci ERROR_DMA_OUTPUT_PLANE = 55, /* invalid plane */ 17862306a36Sopenharmony_ci ERROR_DMA_OUTPUT_ORDER = 56, /* invalid order */ 17962306a36Sopenharmony_ci 18062306a36Sopenharmony_ci ERROR_GLOBAL_SHOTMODE_NONE = ERROR_COMMON_NONE, 18162306a36Sopenharmony_ci 18262306a36Sopenharmony_ci /* SENSOR Error(100~199) */ 18362306a36Sopenharmony_ci ERROR_SENSOR_NONE = ERROR_COMMON_NONE, 18462306a36Sopenharmony_ci ERROR_SENSOR_I2C_FAIL = 101, 18562306a36Sopenharmony_ci ERROR_SENSOR_INVALID_FRAMERATE, 18662306a36Sopenharmony_ci ERROR_SENSOR_INVALID_EXPOSURETIME, 18762306a36Sopenharmony_ci ERROR_SENSOR_INVALID_SIZE, 18862306a36Sopenharmony_ci ERROR_SENSOR_INVALID_SETTING, 18962306a36Sopenharmony_ci ERROR_SENSOR_ACTUATOR_INIT_FAIL, 19062306a36Sopenharmony_ci ERROR_SENSOR_INVALID_AF_POS, 19162306a36Sopenharmony_ci ERROR_SENSOR_UNSUPPORT_FUNC, 19262306a36Sopenharmony_ci ERROR_SENSOR_UNSUPPORT_PERI, 19362306a36Sopenharmony_ci ERROR_SENSOR_UNSUPPORT_AF, 19462306a36Sopenharmony_ci 19562306a36Sopenharmony_ci /* ISP Error (200~299) */ 19662306a36Sopenharmony_ci ERROR_ISP_AF_NONE = ERROR_COMMON_NONE, 19762306a36Sopenharmony_ci ERROR_ISP_AF_BUSY = 201, 19862306a36Sopenharmony_ci ERROR_ISP_AF_INVALID_COMMAND = 202, 19962306a36Sopenharmony_ci ERROR_ISP_AF_INVALID_MODE = 203, 20062306a36Sopenharmony_ci ERROR_ISP_FLASH_NONE = ERROR_COMMON_NONE, 20162306a36Sopenharmony_ci ERROR_ISP_AWB_NONE = ERROR_COMMON_NONE, 20262306a36Sopenharmony_ci ERROR_ISP_IMAGE_EFFECT_NONE = ERROR_COMMON_NONE, 20362306a36Sopenharmony_ci ERROR_ISP_ISO_NONE = ERROR_COMMON_NONE, 20462306a36Sopenharmony_ci ERROR_ISP_ADJUST_NONE = ERROR_COMMON_NONE, 20562306a36Sopenharmony_ci ERROR_ISP_METERING_NONE = ERROR_COMMON_NONE, 20662306a36Sopenharmony_ci ERROR_ISP_AFC_NONE = ERROR_COMMON_NONE, 20762306a36Sopenharmony_ci 20862306a36Sopenharmony_ci /* DRC Error (300~399) */ 20962306a36Sopenharmony_ci 21062306a36Sopenharmony_ci /* FD Error (400~499) */ 21162306a36Sopenharmony_ci ERROR_FD_NONE = ERROR_COMMON_NONE, 21262306a36Sopenharmony_ci /* Invalid max number (1~16) */ 21362306a36Sopenharmony_ci ERROR_FD_CONFIG_MAX_NUMBER_STATE = 401, 21462306a36Sopenharmony_ci ERROR_FD_CONFIG_MAX_NUMBER_INVALID = 402, 21562306a36Sopenharmony_ci ERROR_FD_CONFIG_YAW_ANGLE_STATE = 403, 21662306a36Sopenharmony_ci ERROR_FD_CONFIG_YAW_ANGLE_INVALID = 404, 21762306a36Sopenharmony_ci ERROR_FD_CONFIG_ROLL_ANGLE_STATE = 405, 21862306a36Sopenharmony_ci ERROR_FD_CONFIG_ROLL_ANGLE_INVALID = 406, 21962306a36Sopenharmony_ci ERROR_FD_CONFIG_SMILE_MODE_INVALID = 407, 22062306a36Sopenharmony_ci ERROR_FD_CONFIG_BLINK_MODE_INVALID = 408, 22162306a36Sopenharmony_ci ERROR_FD_CONFIG_EYES_DETECT_INVALID = 409, 22262306a36Sopenharmony_ci ERROR_FD_CONFIG_MOUTH_DETECT_INVALID = 410, 22362306a36Sopenharmony_ci ERROR_FD_CONFIG_ORIENTATION_STATE = 411, 22462306a36Sopenharmony_ci ERROR_FD_CONFIG_ORIENTATION_INVALID = 412, 22562306a36Sopenharmony_ci ERROR_FD_CONFIG_ORIENTATION_VALUE_INVALID = 413, 22662306a36Sopenharmony_ci /* PARAM_FdResultStr can be only applied in ready-state or stream off */ 22762306a36Sopenharmony_ci ERROR_FD_RESULT = 414, 22862306a36Sopenharmony_ci /* PARAM_FdModeStr can be only applied in ready-state or stream off */ 22962306a36Sopenharmony_ci ERROR_FD_MODE = 415, 23062306a36Sopenharmony_ci /* Scaler Error (500 ~ 599) */ 23162306a36Sopenharmony_ci ERROR_SCALER_NO_NONE = ERROR_COMMON_NONE, 23262306a36Sopenharmony_ci ERROR_SCALER_DMA_OUTSEL = 501, 23362306a36Sopenharmony_ci ERROR_SCALER_H_RATIO = 502, 23462306a36Sopenharmony_ci ERROR_SCALER_V_RATIO = 503, 23562306a36Sopenharmony_ci 23662306a36Sopenharmony_ci ERROR_SCALER_IMAGE_EFFECT = 510, 23762306a36Sopenharmony_ci 23862306a36Sopenharmony_ci ERROR_SCALER_ROTATE = 520, 23962306a36Sopenharmony_ci ERROR_SCALER_FLIP = 521, 24062306a36Sopenharmony_ci}; 24162306a36Sopenharmony_ci 24262306a36Sopenharmony_ciconst char *fimc_is_strerr(unsigned int error); 24362306a36Sopenharmony_ciconst char *fimc_is_param_strerr(unsigned int error); 24462306a36Sopenharmony_ci 24562306a36Sopenharmony_ci#endif /* FIMC_IS_ERR_H_ */ 246