GNU Linux-libre 6.7.9-gnu
[releases.git] / drivers / media / platform / samsung / exynos4-is / fimc-is-errno.c
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  * Samsung Exynos4 SoC series FIMC-IS slave interface driver
4  *
5  * Error log interface functions
6  *
7  * Copyright (C) 2011 - 2013 Samsung Electronics Co., Ltd.
8  *
9  * Authors: Younghwan Joo <yhwan.joo@samsung.com>
10  *          Sylwester Nawrocki <s.nawrocki@samsung.com>
11  */
12
13 #include "fimc-is-errno.h"
14
15 const char *fimc_is_param_strerr(unsigned int error)
16 {
17         switch (error) {
18         case ERROR_COMMON_CMD:
19                 return "ERROR_COMMON_CMD: Invalid Command";
20         case ERROR_COMMON_PARAMETER:
21                 return "ERROR_COMMON_PARAMETER: Invalid Parameter";
22         case ERROR_COMMON_SETFILE_LOAD:
23                 return "ERROR_COMMON_SETFILE_LOAD: Illegal Setfile Loading";
24         case ERROR_COMMON_SETFILE_ADJUST:
25                 return "ERROR_COMMON_SETFILE_ADJUST: Setfile isn't adjusted";
26         case ERROR_COMMON_SETFILE_INDEX:
27                 return "ERROR_COMMON_SETFILE_INDEX: Invalid setfile index";
28         case ERROR_COMMON_INPUT_PATH:
29                 return "ERROR_COMMON_INPUT_PATH: Input path can be changed in ready state";
30         case ERROR_COMMON_INPUT_INIT:
31                 return "ERROR_COMMON_INPUT_INIT: IP can not start if input path is not set";
32         case ERROR_COMMON_OUTPUT_PATH:
33                 return "ERROR_COMMON_OUTPUT_PATH: Output path can be changed in ready state (stop)";
34         case ERROR_COMMON_OUTPUT_INIT:
35                 return "ERROR_COMMON_OUTPUT_INIT: IP can not start if output path is not set";
36         case ERROR_CONTROL_BYPASS:
37                 return "ERROR_CONTROL_BYPASS";
38         case ERROR_OTF_INPUT_FORMAT:
39                 return "ERROR_OTF_INPUT_FORMAT: Invalid format  (DRC: YUV444, FD: YUV444, 422, 420)";
40         case ERROR_OTF_INPUT_WIDTH:
41                 return "ERROR_OTF_INPUT_WIDTH: Invalid width (DRC: 128~8192, FD: 32~8190)";
42         case ERROR_OTF_INPUT_HEIGHT:
43                 return "ERROR_OTF_INPUT_HEIGHT: Invalid bit-width (DRC: 8~12bits, FD: 8bit)";
44         case ERROR_OTF_INPUT_BIT_WIDTH:
45                 return "ERROR_OTF_INPUT_BIT_WIDTH: Invalid bit-width (DRC: 8~12bits, FD: 8bit)";
46         case ERROR_DMA_INPUT_WIDTH:
47                 return "ERROR_DMA_INPUT_WIDTH: Invalid width (DRC: 128~8192, FD: 32~8190)";
48         case ERROR_DMA_INPUT_HEIGHT:
49                 return "ERROR_DMA_INPUT_HEIGHT: Invalid height (DRC: 64~8192, FD: 16~8190)";
50         case ERROR_DMA_INPUT_FORMAT:
51                 return "ERROR_DMA_INPUT_FORMAT: Invalid format (DRC: YUV444 or YUV422, FD: YUV444,422,420)";
52         case ERROR_DMA_INPUT_BIT_WIDTH:
53                 return "ERROR_DMA_INPUT_BIT_WIDTH: Invalid bit-width (DRC: 8~12bits, FD: 8bit)";
54         case ERROR_DMA_INPUT_ORDER:
55                 return "ERROR_DMA_INPUT_ORDER: Invalid order(DRC: YYCbCr,YCbYCr,FD:NO,YYCbCr,YCbYCr,CbCr,CrCb)";
56         case ERROR_DMA_INPUT_PLANE:
57                 return "ERROR_DMA_INPUT_PLANE: Invalid plane (DRC: 3, FD: 1, 2, 3)";
58         case ERROR_OTF_OUTPUT_WIDTH:
59                 return "ERROR_OTF_OUTPUT_WIDTH: Invalid width (DRC: 128~8192)";
60         case ERROR_OTF_OUTPUT_HEIGHT:
61                 return "ERROR_OTF_OUTPUT_HEIGHT: Invalid height (DRC: 64~8192)";
62         case ERROR_OTF_OUTPUT_FORMAT:
63                 return "ERROR_OTF_OUTPUT_FORMAT: Invalid format (DRC: YUV444)";
64         case ERROR_OTF_OUTPUT_BIT_WIDTH:
65                 return "ERROR_OTF_OUTPUT_BIT_WIDTH: Invalid bit-width (DRC: 8~12bits, FD: 8bit)";
66         case ERROR_DMA_OUTPUT_WIDTH:
67                 return "ERROR_DMA_OUTPUT_WIDTH";
68         case ERROR_DMA_OUTPUT_HEIGHT:
69                 return "ERROR_DMA_OUTPUT_HEIGHT";
70         case ERROR_DMA_OUTPUT_FORMAT:
71                 return "ERROR_DMA_OUTPUT_FORMAT";
72         case ERROR_DMA_OUTPUT_BIT_WIDTH:
73                 return "ERROR_DMA_OUTPUT_BIT_WIDTH";
74         case ERROR_DMA_OUTPUT_PLANE:
75                 return "ERROR_DMA_OUTPUT_PLANE";
76         case ERROR_DMA_OUTPUT_ORDER:
77                 return "ERROR_DMA_OUTPUT_ORDER";
78
79         /* Sensor Error(100~199) */
80         case ERROR_SENSOR_I2C_FAIL:
81                 return "ERROR_SENSOR_I2C_FAIL";
82         case ERROR_SENSOR_INVALID_FRAMERATE:
83                 return "ERROR_SENSOR_INVALID_FRAMERATE";
84         case ERROR_SENSOR_INVALID_EXPOSURETIME:
85                 return "ERROR_SENSOR_INVALID_EXPOSURETIME";
86         case ERROR_SENSOR_INVALID_SIZE:
87                 return "ERROR_SENSOR_INVALID_SIZE";
88         case ERROR_SENSOR_INVALID_SETTING:
89                 return "ERROR_SENSOR_INVALID_SETTING";
90         case ERROR_SENSOR_ACTUATOR_INIT_FAIL:
91                 return "ERROR_SENSOR_ACTUATOR_INIT_FAIL";
92         case ERROR_SENSOR_INVALID_AF_POS:
93                 return "ERROR_SENSOR_INVALID_AF_POS";
94         case ERROR_SENSOR_UNSUPPORT_FUNC:
95                 return "ERROR_SENSOR_UNSUPPORT_FUNC";
96         case ERROR_SENSOR_UNSUPPORT_PERI:
97                 return "ERROR_SENSOR_UNSUPPORT_PERI";
98         case ERROR_SENSOR_UNSUPPORT_AF:
99                 return "ERROR_SENSOR_UNSUPPORT_AF";
100
101         /* ISP Error (200~299) */
102         case ERROR_ISP_AF_BUSY:
103                 return "ERROR_ISP_AF_BUSY";
104         case ERROR_ISP_AF_INVALID_COMMAND:
105                 return "ERROR_ISP_AF_INVALID_COMMAND";
106         case ERROR_ISP_AF_INVALID_MODE:
107                 return "ERROR_ISP_AF_INVALID_MODE";
108
109         /* DRC Error (300~399) */
110         /* FD Error  (400~499) */
111         case ERROR_FD_CONFIG_MAX_NUMBER_STATE:
112                 return "ERROR_FD_CONFIG_MAX_NUMBER_STATE";
113         case ERROR_FD_CONFIG_MAX_NUMBER_INVALID:
114                 return "ERROR_FD_CONFIG_MAX_NUMBER_INVALID";
115         case ERROR_FD_CONFIG_YAW_ANGLE_STATE:
116                 return "ERROR_FD_CONFIG_YAW_ANGLE_STATE";
117         case ERROR_FD_CONFIG_YAW_ANGLE_INVALID:
118                 return "ERROR_FD_CONFIG_YAW_ANGLE_INVALID\n";
119         case ERROR_FD_CONFIG_ROLL_ANGLE_STATE:
120                 return "ERROR_FD_CONFIG_ROLL_ANGLE_STATE";
121         case ERROR_FD_CONFIG_ROLL_ANGLE_INVALID:
122                 return "ERROR_FD_CONFIG_ROLL_ANGLE_INVALID";
123         case ERROR_FD_CONFIG_SMILE_MODE_INVALID:
124                 return "ERROR_FD_CONFIG_SMILE_MODE_INVALID";
125         case ERROR_FD_CONFIG_BLINK_MODE_INVALID:
126                 return "ERROR_FD_CONFIG_BLINK_MODE_INVALID";
127         case ERROR_FD_CONFIG_EYES_DETECT_INVALID:
128                 return "ERROR_FD_CONFIG_EYES_DETECT_INVALID";
129         case ERROR_FD_CONFIG_MOUTH_DETECT_INVALID:
130                 return "ERROR_FD_CONFIG_MOUTH_DETECT_INVALID";
131         case ERROR_FD_CONFIG_ORIENTATION_STATE:
132                 return "ERROR_FD_CONFIG_ORIENTATION_STATE";
133         case ERROR_FD_CONFIG_ORIENTATION_INVALID:
134                 return "ERROR_FD_CONFIG_ORIENTATION_INVALID";
135         case ERROR_FD_CONFIG_ORIENTATION_VALUE_INVALID:
136                 return "ERROR_FD_CONFIG_ORIENTATION_VALUE_INVALID";
137         case ERROR_FD_RESULT:
138                 return "ERROR_FD_RESULT";
139         case ERROR_FD_MODE:
140                 return "ERROR_FD_MODE";
141         default:
142                 return "Unknown";
143         }
144 }
145
146 const char *fimc_is_strerr(unsigned int error)
147 {
148         error &= ~IS_ERROR_TIME_OUT_FLAG;
149
150         switch (error) {
151         /* General */
152         case IS_ERROR_INVALID_COMMAND:
153                 return "IS_ERROR_INVALID_COMMAND";
154         case IS_ERROR_REQUEST_FAIL:
155                 return "IS_ERROR_REQUEST_FAIL";
156         case IS_ERROR_INVALID_SCENARIO:
157                 return "IS_ERROR_INVALID_SCENARIO";
158         case IS_ERROR_INVALID_SENSORID:
159                 return "IS_ERROR_INVALID_SENSORID";
160         case IS_ERROR_INVALID_MODE_CHANGE:
161                 return "IS_ERROR_INVALID_MODE_CHANGE";
162         case IS_ERROR_INVALID_MAGIC_NUMBER:
163                 return "IS_ERROR_INVALID_MAGIC_NUMBER";
164         case IS_ERROR_INVALID_SETFILE_HDR:
165                 return "IS_ERROR_INVALID_SETFILE_HDR";
166         case IS_ERROR_BUSY:
167                 return "IS_ERROR_BUSY";
168         case IS_ERROR_SET_PARAMETER:
169                 return "IS_ERROR_SET_PARAMETER";
170         case IS_ERROR_INVALID_PATH:
171                 return "IS_ERROR_INVALID_PATH";
172         case IS_ERROR_OPEN_SENSOR_FAIL:
173                 return "IS_ERROR_OPEN_SENSOR_FAIL";
174         case IS_ERROR_ENTRY_MSG_THREAD_DOWN:
175                 return "IS_ERROR_ENTRY_MSG_THREAD_DOWN";
176         case IS_ERROR_ISP_FRAME_END_NOT_DONE:
177                 return "IS_ERROR_ISP_FRAME_END_NOT_DONE";
178         case IS_ERROR_DRC_FRAME_END_NOT_DONE:
179                 return "IS_ERROR_DRC_FRAME_END_NOT_DONE";
180         case IS_ERROR_SCALERC_FRAME_END_NOT_DONE:
181                 return "IS_ERROR_SCALERC_FRAME_END_NOT_DONE";
182         case IS_ERROR_ODC_FRAME_END_NOT_DONE:
183                 return "IS_ERROR_ODC_FRAME_END_NOT_DONE";
184         case IS_ERROR_DIS_FRAME_END_NOT_DONE:
185                 return "IS_ERROR_DIS_FRAME_END_NOT_DONE";
186         case IS_ERROR_TDNR_FRAME_END_NOT_DONE:
187                 return "IS_ERROR_TDNR_FRAME_END_NOT_DONE";
188         case IS_ERROR_SCALERP_FRAME_END_NOT_DONE:
189                 return "IS_ERROR_SCALERP_FRAME_END_NOT_DONE";
190         case IS_ERROR_WAIT_STREAM_OFF_NOT_DONE:
191                 return "IS_ERROR_WAIT_STREAM_OFF_NOT_DONE";
192         case IS_ERROR_NO_MSG_IS_RECEIVED:
193                 return "IS_ERROR_NO_MSG_IS_RECEIVED";
194         case IS_ERROR_SENSOR_MSG_FAIL:
195                 return "IS_ERROR_SENSOR_MSG_FAIL";
196         case IS_ERROR_ISP_MSG_FAIL:
197                 return "IS_ERROR_ISP_MSG_FAIL";
198         case IS_ERROR_DRC_MSG_FAIL:
199                 return "IS_ERROR_DRC_MSG_FAIL";
200         case IS_ERROR_LHFD_MSG_FAIL:
201                 return "IS_ERROR_LHFD_MSG_FAIL";
202         case IS_ERROR_UNKNOWN:
203                 return "IS_ERROR_UNKNOWN";
204
205         /* Sensor */
206         case IS_ERROR_SENSOR_PWRDN_FAIL:
207                 return "IS_ERROR_SENSOR_PWRDN_FAIL";
208
209         /* ISP */
210         case IS_ERROR_ISP_PWRDN_FAIL:
211                 return "IS_ERROR_ISP_PWRDN_FAIL";
212         case IS_ERROR_ISP_MULTIPLE_INPUT:
213                 return "IS_ERROR_ISP_MULTIPLE_INPUT";
214         case IS_ERROR_ISP_ABSENT_INPUT:
215                 return "IS_ERROR_ISP_ABSENT_INPUT";
216         case IS_ERROR_ISP_ABSENT_OUTPUT:
217                 return "IS_ERROR_ISP_ABSENT_OUTPUT";
218         case IS_ERROR_ISP_NONADJACENT_OUTPUT:
219                 return "IS_ERROR_ISP_NONADJACENT_OUTPUT";
220         case IS_ERROR_ISP_FORMAT_MISMATCH:
221                 return "IS_ERROR_ISP_FORMAT_MISMATCH";
222         case IS_ERROR_ISP_WIDTH_MISMATCH:
223                 return "IS_ERROR_ISP_WIDTH_MISMATCH";
224         case IS_ERROR_ISP_HEIGHT_MISMATCH:
225                 return "IS_ERROR_ISP_HEIGHT_MISMATCH";
226         case IS_ERROR_ISP_BITWIDTH_MISMATCH:
227                 return "IS_ERROR_ISP_BITWIDTH_MISMATCH";
228         case IS_ERROR_ISP_FRAME_END_TIME_OUT:
229                 return "IS_ERROR_ISP_FRAME_END_TIME_OUT";
230
231         /* DRC */
232         case IS_ERROR_DRC_PWRDN_FAIL:
233                 return "IS_ERROR_DRC_PWRDN_FAIL";
234         case IS_ERROR_DRC_MULTIPLE_INPUT:
235                 return "IS_ERROR_DRC_MULTIPLE_INPUT";
236         case IS_ERROR_DRC_ABSENT_INPUT:
237                 return "IS_ERROR_DRC_ABSENT_INPUT";
238         case IS_ERROR_DRC_NONADJACENT_INPUT:
239                 return "IS_ERROR_DRC_NONADJACENT_INPUT";
240         case IS_ERROR_DRC_ABSENT_OUTPUT:
241                 return "IS_ERROR_DRC_ABSENT_OUTPUT";
242         case IS_ERROR_DRC_NONADJACENT_OUTPUT:
243                 return "IS_ERROR_DRC_NONADJACENT_OUTPUT";
244         case IS_ERROR_DRC_FORMAT_MISMATCH:
245                 return "IS_ERROR_DRC_FORMAT_MISMATCH";
246         case IS_ERROR_DRC_WIDTH_MISMATCH:
247                 return "IS_ERROR_DRC_WIDTH_MISMATCH";
248         case IS_ERROR_DRC_HEIGHT_MISMATCH:
249                 return "IS_ERROR_DRC_HEIGHT_MISMATCH";
250         case IS_ERROR_DRC_BITWIDTH_MISMATCH:
251                 return "IS_ERROR_DRC_BITWIDTH_MISMATCH";
252         case IS_ERROR_DRC_FRAME_END_TIME_OUT:
253                 return "IS_ERROR_DRC_FRAME_END_TIME_OUT";
254
255         /* FD */
256         case IS_ERROR_FD_PWRDN_FAIL:
257                 return "IS_ERROR_FD_PWRDN_FAIL";
258         case IS_ERROR_FD_MULTIPLE_INPUT:
259                 return "IS_ERROR_FD_MULTIPLE_INPUT";
260         case IS_ERROR_FD_ABSENT_INPUT:
261                 return "IS_ERROR_FD_ABSENT_INPUT";
262         case IS_ERROR_FD_NONADJACENT_INPUT:
263                 return "IS_ERROR_FD_NONADJACENT_INPUT";
264         case IS_ERROR_LHFD_FRAME_END_TIME_OUT:
265                 return "IS_ERROR_LHFD_FRAME_END_TIME_OUT";
266         default:
267                 return "Unknown";
268         }
269 }