Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / drivers / media / platform / exynos4-is / fimc-is-errno.h
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
21 enum {
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 */
115 enum 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
245 const char *fimc_is_strerr(unsigned int error);
246 const char *fimc_is_param_strerr(unsigned int error);
247
248 #endif /* FIMC_IS_ERR_H_ */