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 
fimc_is_strerr(unsigned int error)15 const char *fimc_is_strerr(unsigned int error)
16 {
17 	error &= ~IS_ERROR_TIME_OUT_FLAG;
18 
19 	switch (error) {
20 	/* General */
21 	case IS_ERROR_INVALID_COMMAND:
22 		return "IS_ERROR_INVALID_COMMAND";
23 	case IS_ERROR_REQUEST_FAIL:
24 		return "IS_ERROR_REQUEST_FAIL";
25 	case IS_ERROR_INVALID_SCENARIO:
26 		return "IS_ERROR_INVALID_SCENARIO";
27 	case IS_ERROR_INVALID_SENSORID:
28 		return "IS_ERROR_INVALID_SENSORID";
29 	case IS_ERROR_INVALID_MODE_CHANGE:
30 		return "IS_ERROR_INVALID_MODE_CHANGE";
31 	case IS_ERROR_INVALID_MAGIC_NUMBER:
32 		return "IS_ERROR_INVALID_MAGIC_NUMBER";
33 	case IS_ERROR_INVALID_SETFILE_HDR:
34 		return "IS_ERROR_INVALID_SETFILE_HDR";
35 	case IS_ERROR_BUSY:
36 		return "IS_ERROR_BUSY";
37 	case IS_ERROR_SET_PARAMETER:
38 		return "IS_ERROR_SET_PARAMETER";
39 	case IS_ERROR_INVALID_PATH:
40 		return "IS_ERROR_INVALID_PATH";
41 	case IS_ERROR_OPEN_SENSOR_FAIL:
42 		return "IS_ERROR_OPEN_SENSOR_FAIL";
43 	case IS_ERROR_ENTRY_MSG_THREAD_DOWN:
44 		return "IS_ERROR_ENTRY_MSG_THREAD_DOWN";
45 	case IS_ERROR_ISP_FRAME_END_NOT_DONE:
46 		return "IS_ERROR_ISP_FRAME_END_NOT_DONE";
47 	case IS_ERROR_DRC_FRAME_END_NOT_DONE:
48 		return "IS_ERROR_DRC_FRAME_END_NOT_DONE";
49 	case IS_ERROR_SCALERC_FRAME_END_NOT_DONE:
50 		return "IS_ERROR_SCALERC_FRAME_END_NOT_DONE";
51 	case IS_ERROR_ODC_FRAME_END_NOT_DONE:
52 		return "IS_ERROR_ODC_FRAME_END_NOT_DONE";
53 	case IS_ERROR_DIS_FRAME_END_NOT_DONE:
54 		return "IS_ERROR_DIS_FRAME_END_NOT_DONE";
55 	case IS_ERROR_TDNR_FRAME_END_NOT_DONE:
56 		return "IS_ERROR_TDNR_FRAME_END_NOT_DONE";
57 	case IS_ERROR_SCALERP_FRAME_END_NOT_DONE:
58 		return "IS_ERROR_SCALERP_FRAME_END_NOT_DONE";
59 	case IS_ERROR_WAIT_STREAM_OFF_NOT_DONE:
60 		return "IS_ERROR_WAIT_STREAM_OFF_NOT_DONE";
61 	case IS_ERROR_NO_MSG_IS_RECEIVED:
62 		return "IS_ERROR_NO_MSG_IS_RECEIVED";
63 	case IS_ERROR_SENSOR_MSG_FAIL:
64 		return "IS_ERROR_SENSOR_MSG_FAIL";
65 	case IS_ERROR_ISP_MSG_FAIL:
66 		return "IS_ERROR_ISP_MSG_FAIL";
67 	case IS_ERROR_DRC_MSG_FAIL:
68 		return "IS_ERROR_DRC_MSG_FAIL";
69 	case IS_ERROR_LHFD_MSG_FAIL:
70 		return "IS_ERROR_LHFD_MSG_FAIL";
71 	case IS_ERROR_UNKNOWN:
72 		return "IS_ERROR_UNKNOWN";
73 
74 	/* Sensor */
75 	case IS_ERROR_SENSOR_PWRDN_FAIL:
76 		return "IS_ERROR_SENSOR_PWRDN_FAIL";
77 
78 	/* ISP */
79 	case IS_ERROR_ISP_PWRDN_FAIL:
80 		return "IS_ERROR_ISP_PWRDN_FAIL";
81 	case IS_ERROR_ISP_MULTIPLE_INPUT:
82 		return "IS_ERROR_ISP_MULTIPLE_INPUT";
83 	case IS_ERROR_ISP_ABSENT_INPUT:
84 		return "IS_ERROR_ISP_ABSENT_INPUT";
85 	case IS_ERROR_ISP_ABSENT_OUTPUT:
86 		return "IS_ERROR_ISP_ABSENT_OUTPUT";
87 	case IS_ERROR_ISP_NONADJACENT_OUTPUT:
88 		return "IS_ERROR_ISP_NONADJACENT_OUTPUT";
89 	case IS_ERROR_ISP_FORMAT_MISMATCH:
90 		return "IS_ERROR_ISP_FORMAT_MISMATCH";
91 	case IS_ERROR_ISP_WIDTH_MISMATCH:
92 		return "IS_ERROR_ISP_WIDTH_MISMATCH";
93 	case IS_ERROR_ISP_HEIGHT_MISMATCH:
94 		return "IS_ERROR_ISP_HEIGHT_MISMATCH";
95 	case IS_ERROR_ISP_BITWIDTH_MISMATCH:
96 		return "IS_ERROR_ISP_BITWIDTH_MISMATCH";
97 	case IS_ERROR_ISP_FRAME_END_TIME_OUT:
98 		return "IS_ERROR_ISP_FRAME_END_TIME_OUT";
99 
100 	/* DRC */
101 	case IS_ERROR_DRC_PWRDN_FAIL:
102 		return "IS_ERROR_DRC_PWRDN_FAIL";
103 	case IS_ERROR_DRC_MULTIPLE_INPUT:
104 		return "IS_ERROR_DRC_MULTIPLE_INPUT";
105 	case IS_ERROR_DRC_ABSENT_INPUT:
106 		return "IS_ERROR_DRC_ABSENT_INPUT";
107 	case IS_ERROR_DRC_NONADJACENT_INPUT:
108 		return "IS_ERROR_DRC_NONADJACENT_INPUT";
109 	case IS_ERROR_DRC_ABSENT_OUTPUT:
110 		return "IS_ERROR_DRC_ABSENT_OUTPUT";
111 	case IS_ERROR_DRC_NONADJACENT_OUTPUT:
112 		return "IS_ERROR_DRC_NONADJACENT_OUTPUT";
113 	case IS_ERROR_DRC_FORMAT_MISMATCH:
114 		return "IS_ERROR_DRC_FORMAT_MISMATCH";
115 	case IS_ERROR_DRC_WIDTH_MISMATCH:
116 		return "IS_ERROR_DRC_WIDTH_MISMATCH";
117 	case IS_ERROR_DRC_HEIGHT_MISMATCH:
118 		return "IS_ERROR_DRC_HEIGHT_MISMATCH";
119 	case IS_ERROR_DRC_BITWIDTH_MISMATCH:
120 		return "IS_ERROR_DRC_BITWIDTH_MISMATCH";
121 	case IS_ERROR_DRC_FRAME_END_TIME_OUT:
122 		return "IS_ERROR_DRC_FRAME_END_TIME_OUT";
123 
124 	/* FD */
125 	case IS_ERROR_FD_PWRDN_FAIL:
126 		return "IS_ERROR_FD_PWRDN_FAIL";
127 	case IS_ERROR_FD_MULTIPLE_INPUT:
128 		return "IS_ERROR_FD_MULTIPLE_INPUT";
129 	case IS_ERROR_FD_ABSENT_INPUT:
130 		return "IS_ERROR_FD_ABSENT_INPUT";
131 	case IS_ERROR_FD_NONADJACENT_INPUT:
132 		return "IS_ERROR_FD_NONADJACENT_INPUT";
133 	case IS_ERROR_LHFD_FRAME_END_TIME_OUT:
134 		return "IS_ERROR_LHFD_FRAME_END_TIME_OUT";
135 	default:
136 		return "Unknown";
137 	}
138 }
139