Lines Matching +full:next +full:- +full:mode

1 // SPDX-License-Identifier: GPL-2.0-only
9 * Copyright (c), 2005-2008 Siano Mobile Silicon, Inc.
18 #include <linux/dma-mapping.h>
27 #include "sms-cards.h"
51 [MSG_TYPE_BASE_VAL - MSG_TYPE_BASE_VAL] = "MSG_TYPE_BASE_VAL",
52 [MSG_SMS_GET_VERSION_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_GET_VERSION_REQ",
53 [MSG_SMS_GET_VERSION_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_GET_VERSION_RES",
54 [MSG_SMS_MULTI_BRIDGE_CFG - MSG_TYPE_BASE_VAL] = "MSG_SMS_MULTI_BRIDGE_CFG",
55 [MSG_SMS_GPIO_CONFIG_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_GPIO_CONFIG_REQ",
56 [MSG_SMS_GPIO_CONFIG_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_GPIO_CONFIG_RES",
57 [MSG_SMS_GPIO_SET_LEVEL_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_GPIO_SET_LEVEL_REQ",
58 [MSG_SMS_GPIO_SET_LEVEL_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_GPIO_SET_LEVEL_RES",
59 [MSG_SMS_GPIO_GET_LEVEL_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_GPIO_GET_LEVEL_REQ",
60 [MSG_SMS_GPIO_GET_LEVEL_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_GPIO_GET_LEVEL_RES",
61 [MSG_SMS_EEPROM_BURN_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_EEPROM_BURN_IND",
62 …[MSG_SMS_LOG_ENABLE_CHANGE_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_LOG_ENABLE_CHANGE_REQ…
63 …[MSG_SMS_LOG_ENABLE_CHANGE_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_LOG_ENABLE_CHANGE_RES…
64 …[MSG_SMS_SET_MAX_TX_MSG_LEN_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_SET_MAX_TX_MSG_LEN_RE…
65 …[MSG_SMS_SET_MAX_TX_MSG_LEN_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_SET_MAX_TX_MSG_LEN_RE…
66 …[MSG_SMS_SPI_HALFDUPLEX_TOKEN_HOST_TO_DEVICE - MSG_TYPE_BASE_VAL] = "MSG_SMS_SPI_HALFDUPLEX_TOKEN_…
67 …[MSG_SMS_SPI_HALFDUPLEX_TOKEN_DEVICE_TO_HOST - MSG_TYPE_BASE_VAL] = "MSG_SMS_SPI_HALFDUPLEX_TOKEN_…
68 …[MSG_SMS_BACKGROUND_SCAN_FLAG_CHANGE_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_BACKGROUND_SCAN_FLAG_…
69 …[MSG_SMS_BACKGROUND_SCAN_FLAG_CHANGE_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_BACKGROUND_SCAN_FLAG_…
70 …[MSG_SMS_BACKGROUND_SCAN_SIGNAL_DETECTED_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_BACKGROUND_SCAN_SIGNA…
71 …[MSG_SMS_BACKGROUND_SCAN_NO_SIGNAL_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_BACKGROUND_SCAN_NO_SI…
72 …[MSG_SMS_CONFIGURE_RF_SWITCH_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_CONFIGURE_RF_SWITCH_R…
73 …[MSG_SMS_CONFIGURE_RF_SWITCH_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_CONFIGURE_RF_SWITCH_R…
74 …[MSG_SMS_MRC_PATH_DISCONNECT_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_MRC_PATH_DISCONNECT_R…
75 …[MSG_SMS_MRC_PATH_DISCONNECT_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_MRC_PATH_DISCONNECT_R…
76 …[MSG_SMS_RECEIVE_1SEG_THROUGH_FULLSEG_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_RECEIVE_1SEG_THROUGH_…
77 …[MSG_SMS_RECEIVE_1SEG_THROUGH_FULLSEG_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_RECEIVE_1SEG_THROUGH_…
78 …[MSG_SMS_RECEIVE_VHF_VIA_VHF_INPUT_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_RECEIVE_VHF_VIA_VHF_I…
79 …[MSG_SMS_RECEIVE_VHF_VIA_VHF_INPUT_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_RECEIVE_VHF_VIA_VHF_I…
80 [MSG_WR_REG_RFT_REQ - MSG_TYPE_BASE_VAL] = "MSG_WR_REG_RFT_REQ",
81 [MSG_WR_REG_RFT_RES - MSG_TYPE_BASE_VAL] = "MSG_WR_REG_RFT_RES",
82 [MSG_RD_REG_RFT_REQ - MSG_TYPE_BASE_VAL] = "MSG_RD_REG_RFT_REQ",
83 [MSG_RD_REG_RFT_RES - MSG_TYPE_BASE_VAL] = "MSG_RD_REG_RFT_RES",
84 [MSG_RD_REG_ALL_RFT_REQ - MSG_TYPE_BASE_VAL] = "MSG_RD_REG_ALL_RFT_REQ",
85 [MSG_RD_REG_ALL_RFT_RES - MSG_TYPE_BASE_VAL] = "MSG_RD_REG_ALL_RFT_RES",
86 [MSG_HELP_INT - MSG_TYPE_BASE_VAL] = "MSG_HELP_INT",
87 [MSG_RUN_SCRIPT_INT - MSG_TYPE_BASE_VAL] = "MSG_RUN_SCRIPT_INT",
88 [MSG_SMS_EWS_INBAND_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_EWS_INBAND_REQ",
89 [MSG_SMS_EWS_INBAND_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_EWS_INBAND_RES",
90 [MSG_SMS_RFS_SELECT_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_RFS_SELECT_REQ",
91 [MSG_SMS_RFS_SELECT_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_RFS_SELECT_RES",
92 [MSG_SMS_MB_GET_VER_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_MB_GET_VER_REQ",
93 [MSG_SMS_MB_GET_VER_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_MB_GET_VER_RES",
94 [MSG_SMS_MB_WRITE_CFGFILE_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_MB_WRITE_CFGFILE_REQ",
95 [MSG_SMS_MB_WRITE_CFGFILE_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_MB_WRITE_CFGFILE_RES",
96 [MSG_SMS_MB_READ_CFGFILE_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_MB_READ_CFGFILE_REQ",
97 [MSG_SMS_MB_READ_CFGFILE_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_MB_READ_CFGFILE_RES",
98 [MSG_SMS_RD_MEM_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_RD_MEM_REQ",
99 [MSG_SMS_RD_MEM_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_RD_MEM_RES",
100 [MSG_SMS_WR_MEM_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_WR_MEM_REQ",
101 [MSG_SMS_WR_MEM_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_WR_MEM_RES",
102 [MSG_SMS_UPDATE_MEM_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_UPDATE_MEM_REQ",
103 [MSG_SMS_UPDATE_MEM_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_UPDATE_MEM_RES",
104 …[MSG_SMS_ISDBT_ENABLE_FULL_PARAMS_SET_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_ISDBT_ENABLE_FULL_PAR…
105 …[MSG_SMS_ISDBT_ENABLE_FULL_PARAMS_SET_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_ISDBT_ENABLE_FULL_PAR…
106 [MSG_SMS_RF_TUNE_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_RF_TUNE_REQ",
107 [MSG_SMS_RF_TUNE_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_RF_TUNE_RES",
108 …[MSG_SMS_ISDBT_ENABLE_HIGH_MOBILITY_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_ISDBT_ENABLE_HIGH_MOB…
109 …[MSG_SMS_ISDBT_ENABLE_HIGH_MOBILITY_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_ISDBT_ENABLE_HIGH_MOB…
110 …[MSG_SMS_ISDBT_SB_RECEPTION_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_ISDBT_SB_RECEPTION_RE…
111 …[MSG_SMS_ISDBT_SB_RECEPTION_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_ISDBT_SB_RECEPTION_RE…
112 …[MSG_SMS_GENERIC_EPROM_WRITE_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_GENERIC_EPROM_WRITE_R…
113 …[MSG_SMS_GENERIC_EPROM_WRITE_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_GENERIC_EPROM_WRITE_R…
114 …[MSG_SMS_GENERIC_EPROM_READ_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_GENERIC_EPROM_READ_RE…
115 …[MSG_SMS_GENERIC_EPROM_READ_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_GENERIC_EPROM_READ_RE…
116 [MSG_SMS_EEPROM_WRITE_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_EEPROM_WRITE_REQ",
117 [MSG_SMS_EEPROM_WRITE_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_EEPROM_WRITE_RES",
118 [MSG_SMS_CUSTOM_READ_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_CUSTOM_READ_REQ",
119 [MSG_SMS_CUSTOM_READ_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_CUSTOM_READ_RES",
120 [MSG_SMS_CUSTOM_WRITE_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_CUSTOM_WRITE_REQ",
121 [MSG_SMS_CUSTOM_WRITE_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_CUSTOM_WRITE_RES",
122 [MSG_SMS_INIT_DEVICE_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_INIT_DEVICE_REQ",
123 [MSG_SMS_INIT_DEVICE_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_INIT_DEVICE_RES",
124 [MSG_SMS_ATSC_SET_ALL_IP_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_ATSC_SET_ALL_IP_REQ",
125 [MSG_SMS_ATSC_SET_ALL_IP_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_ATSC_SET_ALL_IP_RES",
126 …[MSG_SMS_ATSC_START_ENSEMBLE_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_ATSC_START_ENSEMBLE_R…
127 …[MSG_SMS_ATSC_START_ENSEMBLE_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_ATSC_START_ENSEMBLE_R…
128 [MSG_SMS_SET_OUTPUT_MODE_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_SET_OUTPUT_MODE_REQ",
129 [MSG_SMS_SET_OUTPUT_MODE_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_SET_OUTPUT_MODE_RES",
130 …[MSG_SMS_ATSC_IP_FILTER_GET_LIST_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_ATSC_IP_FILTER_GET_LI…
131 …[MSG_SMS_ATSC_IP_FILTER_GET_LIST_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_ATSC_IP_FILTER_GET_LI…
132 …[MSG_SMS_SUB_CHANNEL_START_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_SUB_CHANNEL_START_REQ…
133 …[MSG_SMS_SUB_CHANNEL_START_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_SUB_CHANNEL_START_RES…
134 [MSG_SMS_SUB_CHANNEL_STOP_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_SUB_CHANNEL_STOP_REQ",
135 [MSG_SMS_SUB_CHANNEL_STOP_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_SUB_CHANNEL_STOP_RES",
136 …[MSG_SMS_ATSC_IP_FILTER_ADD_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_ATSC_IP_FILTER_ADD_RE…
137 …[MSG_SMS_ATSC_IP_FILTER_ADD_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_ATSC_IP_FILTER_ADD_RE…
138 …[MSG_SMS_ATSC_IP_FILTER_REMOVE_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_ATSC_IP_FILTER_REMOVE…
139 …[MSG_SMS_ATSC_IP_FILTER_REMOVE_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_ATSC_IP_FILTER_REMOVE…
140 …[MSG_SMS_ATSC_IP_FILTER_REMOVE_ALL_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_ATSC_IP_FILTER_REMOVE…
141 …[MSG_SMS_ATSC_IP_FILTER_REMOVE_ALL_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_ATSC_IP_FILTER_REMOVE…
142 [MSG_SMS_WAIT_CMD - MSG_TYPE_BASE_VAL] = "MSG_SMS_WAIT_CMD",
143 [MSG_SMS_ADD_PID_FILTER_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_ADD_PID_FILTER_REQ",
144 [MSG_SMS_ADD_PID_FILTER_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_ADD_PID_FILTER_RES",
145 …[MSG_SMS_REMOVE_PID_FILTER_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_REMOVE_PID_FILTER_REQ…
146 …[MSG_SMS_REMOVE_PID_FILTER_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_REMOVE_PID_FILTER_RES…
147 …[MSG_SMS_FAST_INFORMATION_CHANNEL_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_FAST_INFORMATION_CHAN…
148 …[MSG_SMS_FAST_INFORMATION_CHANNEL_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_FAST_INFORMATION_CHAN…
149 [MSG_SMS_DAB_CHANNEL - MSG_TYPE_BASE_VAL] = "MSG_SMS_DAB_CHANNEL",
150 …[MSG_SMS_GET_PID_FILTER_LIST_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_GET_PID_FILTER_LIST_R…
151 …[MSG_SMS_GET_PID_FILTER_LIST_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_GET_PID_FILTER_LIST_R…
152 [MSG_SMS_POWER_DOWN_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_POWER_DOWN_REQ",
153 [MSG_SMS_POWER_DOWN_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_POWER_DOWN_RES",
154 [MSG_SMS_ATSC_SLT_EXIST_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_ATSC_SLT_EXIST_IND",
155 [MSG_SMS_ATSC_NO_SLT_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_ATSC_NO_SLT_IND",
156 [MSG_SMS_GET_STATISTICS_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_GET_STATISTICS_REQ",
157 [MSG_SMS_GET_STATISTICS_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_GET_STATISTICS_RES",
158 [MSG_SMS_SEND_DUMP - MSG_TYPE_BASE_VAL] = "MSG_SMS_SEND_DUMP",
159 [MSG_SMS_SCAN_START_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_SCAN_START_REQ",
160 [MSG_SMS_SCAN_START_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_SCAN_START_RES",
161 [MSG_SMS_SCAN_STOP_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_SCAN_STOP_REQ",
162 [MSG_SMS_SCAN_STOP_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_SCAN_STOP_RES",
163 [MSG_SMS_SCAN_PROGRESS_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_SCAN_PROGRESS_IND",
164 [MSG_SMS_SCAN_COMPLETE_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_SCAN_COMPLETE_IND",
165 [MSG_SMS_LOG_ITEM - MSG_TYPE_BASE_VAL] = "MSG_SMS_LOG_ITEM",
166 …[MSG_SMS_DAB_SUBCHANNEL_RECONFIG_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_DAB_SUBCHANNEL_RECONF…
167 …[MSG_SMS_DAB_SUBCHANNEL_RECONFIG_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_DAB_SUBCHANNEL_RECONF…
168 [MSG_SMS_HO_PER_SLICES_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_HO_PER_SLICES_IND",
169 [MSG_SMS_HO_INBAND_POWER_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_HO_INBAND_POWER_IND",
170 [MSG_SMS_MANUAL_DEMOD_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_MANUAL_DEMOD_REQ",
171 [MSG_SMS_HO_TUNE_ON_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_HO_TUNE_ON_REQ",
172 [MSG_SMS_HO_TUNE_ON_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_HO_TUNE_ON_RES",
173 [MSG_SMS_HO_TUNE_OFF_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_HO_TUNE_OFF_REQ",
174 [MSG_SMS_HO_TUNE_OFF_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_HO_TUNE_OFF_RES",
175 [MSG_SMS_HO_PEEK_FREQ_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_HO_PEEK_FREQ_REQ",
176 [MSG_SMS_HO_PEEK_FREQ_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_HO_PEEK_FREQ_RES",
177 [MSG_SMS_HO_PEEK_FREQ_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_HO_PEEK_FREQ_IND",
178 [MSG_SMS_MB_ATTEN_SET_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_MB_ATTEN_SET_REQ",
179 [MSG_SMS_MB_ATTEN_SET_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_MB_ATTEN_SET_RES",
180 …[MSG_SMS_ENABLE_STAT_IN_I2C_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_ENABLE_STAT_IN_I2C_RE…
181 …[MSG_SMS_ENABLE_STAT_IN_I2C_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_ENABLE_STAT_IN_I2C_RE…
182 …[MSG_SMS_SET_ANTENNA_CONFIG_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_SET_ANTENNA_CONFIG_RE…
183 …[MSG_SMS_SET_ANTENNA_CONFIG_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_SET_ANTENNA_CONFIG_RE…
184 …[MSG_SMS_GET_STATISTICS_EX_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_GET_STATISTICS_EX_REQ…
185 …[MSG_SMS_GET_STATISTICS_EX_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_GET_STATISTICS_EX_RES…
186 …[MSG_SMS_SLEEP_RESUME_COMP_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_SLEEP_RESUME_COMP_IND…
187 …[MSG_SMS_SWITCH_HOST_INTERFACE_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_SWITCH_HOST_INTERFACE…
188 …[MSG_SMS_SWITCH_HOST_INTERFACE_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_SWITCH_HOST_INTERFACE…
189 [MSG_SMS_DATA_DOWNLOAD_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_DATA_DOWNLOAD_REQ",
190 [MSG_SMS_DATA_DOWNLOAD_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_DATA_DOWNLOAD_RES",
191 [MSG_SMS_DATA_VALIDITY_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_DATA_VALIDITY_REQ",
192 [MSG_SMS_DATA_VALIDITY_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_DATA_VALIDITY_RES",
193 …[MSG_SMS_SWDOWNLOAD_TRIGGER_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_SWDOWNLOAD_TRIGGER_RE…
194 …[MSG_SMS_SWDOWNLOAD_TRIGGER_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_SWDOWNLOAD_TRIGGER_RE…
195 …[MSG_SMS_SWDOWNLOAD_BACKDOOR_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_SWDOWNLOAD_BACKDOOR_R…
196 …[MSG_SMS_SWDOWNLOAD_BACKDOOR_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_SWDOWNLOAD_BACKDOOR_R…
197 [MSG_SMS_GET_VERSION_EX_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_GET_VERSION_EX_REQ",
198 [MSG_SMS_GET_VERSION_EX_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_GET_VERSION_EX_RES",
199 …[MSG_SMS_CLOCK_OUTPUT_CONFIG_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_CLOCK_OUTPUT_CONFIG_R…
200 …[MSG_SMS_CLOCK_OUTPUT_CONFIG_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_CLOCK_OUTPUT_CONFIG_R…
201 [MSG_SMS_I2C_SET_FREQ_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_I2C_SET_FREQ_REQ",
202 [MSG_SMS_I2C_SET_FREQ_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_I2C_SET_FREQ_RES",
203 [MSG_SMS_GENERIC_I2C_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_GENERIC_I2C_REQ",
204 [MSG_SMS_GENERIC_I2C_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_GENERIC_I2C_RES",
205 [MSG_SMS_DVBT_BDA_DATA - MSG_TYPE_BASE_VAL] = "MSG_SMS_DVBT_BDA_DATA",
206 [MSG_SW_RELOAD_REQ - MSG_TYPE_BASE_VAL] = "MSG_SW_RELOAD_REQ",
207 [MSG_SMS_DATA_MSG - MSG_TYPE_BASE_VAL] = "MSG_SMS_DATA_MSG",
208 [MSG_TABLE_UPLOAD_REQ - MSG_TYPE_BASE_VAL] = "MSG_TABLE_UPLOAD_REQ",
209 [MSG_TABLE_UPLOAD_RES - MSG_TYPE_BASE_VAL] = "MSG_TABLE_UPLOAD_RES",
210 [MSG_SW_RELOAD_START_REQ - MSG_TYPE_BASE_VAL] = "MSG_SW_RELOAD_START_REQ",
211 [MSG_SW_RELOAD_START_RES - MSG_TYPE_BASE_VAL] = "MSG_SW_RELOAD_START_RES",
212 [MSG_SW_RELOAD_EXEC_REQ - MSG_TYPE_BASE_VAL] = "MSG_SW_RELOAD_EXEC_REQ",
213 [MSG_SW_RELOAD_EXEC_RES - MSG_TYPE_BASE_VAL] = "MSG_SW_RELOAD_EXEC_RES",
214 [MSG_SMS_SPI_INT_LINE_SET_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_SPI_INT_LINE_SET_REQ",
215 [MSG_SMS_SPI_INT_LINE_SET_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_SPI_INT_LINE_SET_RES",
216 [MSG_SMS_GPIO_CONFIG_EX_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_GPIO_CONFIG_EX_REQ",
217 [MSG_SMS_GPIO_CONFIG_EX_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_GPIO_CONFIG_EX_RES",
218 [MSG_SMS_WATCHDOG_ACT_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_WATCHDOG_ACT_REQ",
219 [MSG_SMS_WATCHDOG_ACT_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_WATCHDOG_ACT_RES",
220 [MSG_SMS_LOOPBACK_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_LOOPBACK_REQ",
221 [MSG_SMS_LOOPBACK_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_LOOPBACK_RES",
222 …[MSG_SMS_RAW_CAPTURE_START_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_RAW_CAPTURE_START_REQ…
223 …[MSG_SMS_RAW_CAPTURE_START_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_RAW_CAPTURE_START_RES…
224 …[MSG_SMS_RAW_CAPTURE_ABORT_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_RAW_CAPTURE_ABORT_REQ…
225 …[MSG_SMS_RAW_CAPTURE_ABORT_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_RAW_CAPTURE_ABORT_RES…
226 …[MSG_SMS_RAW_CAPTURE_COMPLETE_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_RAW_CAPTURE_COMPLETE_…
227 [MSG_SMS_DATA_PUMP_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_DATA_PUMP_IND",
228 [MSG_SMS_DATA_PUMP_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_DATA_PUMP_REQ",
229 [MSG_SMS_DATA_PUMP_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_DATA_PUMP_RES",
230 [MSG_SMS_FLASH_DL_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_FLASH_DL_REQ",
231 [MSG_SMS_EXEC_TEST_1_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_EXEC_TEST_1_REQ",
232 [MSG_SMS_EXEC_TEST_1_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_EXEC_TEST_1_RES",
233 …[MSG_SMS_ENABLE_TS_INTERFACE_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_ENABLE_TS_INTERFACE_R…
234 …[MSG_SMS_ENABLE_TS_INTERFACE_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_ENABLE_TS_INTERFACE_R…
235 …[MSG_SMS_SPI_SET_BUS_WIDTH_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_SPI_SET_BUS_WIDTH_REQ…
236 …[MSG_SMS_SPI_SET_BUS_WIDTH_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_SPI_SET_BUS_WIDTH_RES…
237 [MSG_SMS_SEND_EMM_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_SEND_EMM_REQ",
238 [MSG_SMS_SEND_EMM_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_SEND_EMM_RES",
239 …[MSG_SMS_DISABLE_TS_INTERFACE_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_DISABLE_TS_INTERFACE_…
240 …[MSG_SMS_DISABLE_TS_INTERFACE_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_DISABLE_TS_INTERFACE_…
241 [MSG_SMS_IS_BUF_FREE_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_IS_BUF_FREE_REQ",
242 [MSG_SMS_IS_BUF_FREE_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_IS_BUF_FREE_RES",
243 [MSG_SMS_EXT_ANTENNA_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_EXT_ANTENNA_REQ",
244 [MSG_SMS_EXT_ANTENNA_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_EXT_ANTENNA_RES",
245 …[MSG_SMS_CMMB_GET_NET_OF_FREQ_REQ_OBSOLETE - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_GET_NET_OF_FREQ_…
246 …[MSG_SMS_CMMB_GET_NET_OF_FREQ_RES_OBSOLETE - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_GET_NET_OF_FREQ_…
247 [MSG_SMS_BATTERY_LEVEL_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_BATTERY_LEVEL_REQ",
248 [MSG_SMS_BATTERY_LEVEL_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_BATTERY_LEVEL_RES",
249 …[MSG_SMS_CMMB_INJECT_TABLE_REQ_OBSOLETE - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_INJECT_TABLE_REQ…
250 …[MSG_SMS_CMMB_INJECT_TABLE_RES_OBSOLETE - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_INJECT_TABLE_RES…
251 [MSG_SMS_FM_RADIO_BLOCK_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_FM_RADIO_BLOCK_IND",
252 …[MSG_SMS_HOST_NOTIFICATION_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_HOST_NOTIFICATION_IND…
253 …[MSG_SMS_CMMB_GET_CONTROL_TABLE_REQ_OBSOLETE - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_GET_CONTROL_TABL…
254 …[MSG_SMS_CMMB_GET_CONTROL_TABLE_RES_OBSOLETE - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_GET_CONTROL_TABL…
255 …[MSG_SMS_CMMB_GET_NETWORKS_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_GET_NETWORKS_REQ…
256 …[MSG_SMS_CMMB_GET_NETWORKS_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_GET_NETWORKS_RES…
257 …[MSG_SMS_CMMB_START_SERVICE_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_START_SERVICE_RE…
258 …[MSG_SMS_CMMB_START_SERVICE_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_START_SERVICE_RE…
259 …[MSG_SMS_CMMB_STOP_SERVICE_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_STOP_SERVICE_REQ…
260 …[MSG_SMS_CMMB_STOP_SERVICE_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_STOP_SERVICE_RES…
261 …[MSG_SMS_CMMB_ADD_CHANNEL_FILTER_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_ADD_CHANNEL_FILT…
262 …[MSG_SMS_CMMB_ADD_CHANNEL_FILTER_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_ADD_CHANNEL_FILT…
263 …[MSG_SMS_CMMB_REMOVE_CHANNEL_FILTER_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_REMOVE_CHANNEL_F…
264 …[MSG_SMS_CMMB_REMOVE_CHANNEL_FILTER_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_REMOVE_CHANNEL_F…
265 …[MSG_SMS_CMMB_START_CONTROL_INFO_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_START_CONTROL_IN…
266 …[MSG_SMS_CMMB_START_CONTROL_INFO_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_START_CONTROL_IN…
267 …[MSG_SMS_CMMB_STOP_CONTROL_INFO_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_STOP_CONTROL_INF…
268 …[MSG_SMS_CMMB_STOP_CONTROL_INFO_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_STOP_CONTROL_INF…
269 [MSG_SMS_ISDBT_TUNE_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_ISDBT_TUNE_REQ",
270 [MSG_SMS_ISDBT_TUNE_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_ISDBT_TUNE_RES",
271 [MSG_SMS_TRANSMISSION_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_TRANSMISSION_IND",
272 [MSG_SMS_PID_STATISTICS_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_PID_STATISTICS_IND",
273 [MSG_SMS_POWER_DOWN_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_POWER_DOWN_IND",
274 [MSG_SMS_POWER_DOWN_CONF - MSG_TYPE_BASE_VAL] = "MSG_SMS_POWER_DOWN_CONF",
275 [MSG_SMS_POWER_UP_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_POWER_UP_IND",
276 [MSG_SMS_POWER_UP_CONF - MSG_TYPE_BASE_VAL] = "MSG_SMS_POWER_UP_CONF",
277 [MSG_SMS_POWER_MODE_SET_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_POWER_MODE_SET_REQ",
278 [MSG_SMS_POWER_MODE_SET_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_POWER_MODE_SET_RES",
279 [MSG_SMS_DEBUG_HOST_EVENT_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_DEBUG_HOST_EVENT_REQ",
280 [MSG_SMS_DEBUG_HOST_EVENT_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_DEBUG_HOST_EVENT_RES",
281 [MSG_SMS_NEW_CRYSTAL_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_NEW_CRYSTAL_REQ",
282 [MSG_SMS_NEW_CRYSTAL_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_NEW_CRYSTAL_RES",
283 [MSG_SMS_CONFIG_SPI_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_CONFIG_SPI_REQ",
284 [MSG_SMS_CONFIG_SPI_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_CONFIG_SPI_RES",
285 [MSG_SMS_I2C_SHORT_STAT_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_I2C_SHORT_STAT_IND",
286 [MSG_SMS_START_IR_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_START_IR_REQ",
287 [MSG_SMS_START_IR_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_START_IR_RES",
288 [MSG_SMS_IR_SAMPLES_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_IR_SAMPLES_IND",
289 [MSG_SMS_CMMB_CA_SERVICE_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_CA_SERVICE_IND",
290 …[MSG_SMS_SLAVE_DEVICE_DETECTED - MSG_TYPE_BASE_VAL] = "MSG_SMS_SLAVE_DEVICE_DETECTED…
291 [MSG_SMS_INTERFACE_LOCK_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_INTERFACE_LOCK_IND",
292 [MSG_SMS_INTERFACE_UNLOCK_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_INTERFACE_UNLOCK_IND",
293 [MSG_SMS_SEND_ROSUM_BUFF_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_SEND_ROSUM_BUFF_REQ",
294 [MSG_SMS_SEND_ROSUM_BUFF_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_SEND_ROSUM_BUFF_RES",
295 [MSG_SMS_ROSUM_BUFF - MSG_TYPE_BASE_VAL] = "MSG_SMS_ROSUM_BUFF",
296 [MSG_SMS_SET_AES128_KEY_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_SET_AES128_KEY_REQ",
297 [MSG_SMS_SET_AES128_KEY_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_SET_AES128_KEY_RES",
298 [MSG_SMS_MBBMS_WRITE_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_MBBMS_WRITE_REQ",
299 [MSG_SMS_MBBMS_WRITE_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_MBBMS_WRITE_RES",
300 [MSG_SMS_MBBMS_READ_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_MBBMS_READ_IND",
301 [MSG_SMS_IQ_STREAM_START_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_IQ_STREAM_START_REQ",
302 [MSG_SMS_IQ_STREAM_START_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_IQ_STREAM_START_RES",
303 [MSG_SMS_IQ_STREAM_STOP_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_IQ_STREAM_STOP_REQ",
304 [MSG_SMS_IQ_STREAM_STOP_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_IQ_STREAM_STOP_RES",
305 [MSG_SMS_IQ_STREAM_DATA_BLOCK - MSG_TYPE_BASE_VAL] = "MSG_SMS_IQ_STREAM_DATA_BLOCK",
306 …[MSG_SMS_GET_EEPROM_VERSION_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_GET_EEPROM_VERSION_RE…
307 …[MSG_SMS_GET_EEPROM_VERSION_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_GET_EEPROM_VERSION_RE…
308 [MSG_SMS_SIGNAL_DETECTED_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_SIGNAL_DETECTED_IND",
309 [MSG_SMS_NO_SIGNAL_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_NO_SIGNAL_IND",
310 …[MSG_SMS_MRC_SHUTDOWN_SLAVE_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_MRC_SHUTDOWN_SLAVE_RE…
311 …[MSG_SMS_MRC_SHUTDOWN_SLAVE_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_MRC_SHUTDOWN_SLAVE_RE…
312 …[MSG_SMS_MRC_BRINGUP_SLAVE_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_MRC_BRINGUP_SLAVE_REQ…
313 …[MSG_SMS_MRC_BRINGUP_SLAVE_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_MRC_BRINGUP_SLAVE_RES…
314 …[MSG_SMS_EXTERNAL_LNA_CTRL_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_EXTERNAL_LNA_CTRL_REQ…
315 …[MSG_SMS_EXTERNAL_LNA_CTRL_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_EXTERNAL_LNA_CTRL_RES…
316 …[MSG_SMS_SET_PERIODIC_STATISTICS_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_SET_PERIODIC_STATISTI…
317 …[MSG_SMS_SET_PERIODIC_STATISTICS_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_SET_PERIODIC_STATISTI…
318 …[MSG_SMS_CMMB_SET_AUTO_OUTPUT_TS0_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_SET_AUTO_OUTPUT_…
319 …[MSG_SMS_CMMB_SET_AUTO_OUTPUT_TS0_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_SET_AUTO_OUTPUT_…
320 [LOCAL_TUNE - MSG_TYPE_BASE_VAL] = "LOCAL_TUNE",
321 [LOCAL_IFFT_H_ICI - MSG_TYPE_BASE_VAL] = "LOCAL_IFFT_H_ICI",
322 [MSG_RESYNC_REQ - MSG_TYPE_BASE_VAL] = "MSG_RESYNC_REQ",
323 …[MSG_SMS_CMMB_GET_MRC_STATISTICS_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_GET_MRC_STATISTI…
324 …[MSG_SMS_CMMB_GET_MRC_STATISTICS_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_GET_MRC_STATISTI…
325 [MSG_SMS_LOG_EX_ITEM - MSG_TYPE_BASE_VAL] = "MSG_SMS_LOG_EX_ITEM",
326 [MSG_SMS_DEVICE_DATA_LOSS_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_DEVICE_DATA_LOSS_IND",
327 …[MSG_SMS_MRC_WATCHDOG_TRIGGERED_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_MRC_WATCHDOG_TRIGGERE…
328 [MSG_SMS_USER_MSG_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_USER_MSG_REQ",
329 [MSG_SMS_USER_MSG_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_USER_MSG_RES",
330 [MSG_SMS_SMART_CARD_INIT_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_SMART_CARD_INIT_REQ",
331 [MSG_SMS_SMART_CARD_INIT_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_SMART_CARD_INIT_RES",
332 [MSG_SMS_SMART_CARD_WRITE_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_SMART_CARD_WRITE_REQ",
333 [MSG_SMS_SMART_CARD_WRITE_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_SMART_CARD_WRITE_RES",
334 [MSG_SMS_SMART_CARD_READ_IND - MSG_TYPE_BASE_VAL] = "MSG_SMS_SMART_CARD_READ_IND",
335 [MSG_SMS_TSE_ENABLE_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_TSE_ENABLE_REQ",
336 [MSG_SMS_TSE_ENABLE_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_TSE_ENABLE_RES",
337 …[MSG_SMS_CMMB_GET_SHORT_STATISTICS_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_GET_SHORT_STATIS…
338 …[MSG_SMS_CMMB_GET_SHORT_STATISTICS_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_GET_SHORT_STATIS…
339 [MSG_SMS_LED_CONFIG_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_LED_CONFIG_REQ",
340 [MSG_SMS_LED_CONFIG_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_LED_CONFIG_RES",
341 [MSG_PWM_ANTENNA_REQ - MSG_TYPE_BASE_VAL] = "MSG_PWM_ANTENNA_REQ",
342 [MSG_PWM_ANTENNA_RES - MSG_TYPE_BASE_VAL] = "MSG_PWM_ANTENNA_RES",
343 [MSG_SMS_CMMB_SMD_SN_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_SMD_SN_REQ",
344 [MSG_SMS_CMMB_SMD_SN_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_SMD_SN_RES",
345 [MSG_SMS_CMMB_SET_CA_CW_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_SET_CA_CW_REQ",
346 [MSG_SMS_CMMB_SET_CA_CW_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_SET_CA_CW_RES",
347 [MSG_SMS_CMMB_SET_CA_SALT_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_SET_CA_SALT_REQ",
348 [MSG_SMS_CMMB_SET_CA_SALT_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_CMMB_SET_CA_SALT_RES",
349 [MSG_SMS_NSCD_INIT_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_NSCD_INIT_REQ",
350 [MSG_SMS_NSCD_INIT_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_NSCD_INIT_RES",
351 …[MSG_SMS_NSCD_PROCESS_SECTION_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_NSCD_PROCESS_SECTION_…
352 …[MSG_SMS_NSCD_PROCESS_SECTION_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_NSCD_PROCESS_SECTION_…
353 …[MSG_SMS_DBD_CREATE_OBJECT_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_DBD_CREATE_OBJECT_REQ…
354 …[MSG_SMS_DBD_CREATE_OBJECT_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_DBD_CREATE_OBJECT_RES…
355 [MSG_SMS_DBD_CONFIGURE_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_DBD_CONFIGURE_REQ",
356 [MSG_SMS_DBD_CONFIGURE_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_DBD_CONFIGURE_RES",
357 [MSG_SMS_DBD_SET_KEYS_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_DBD_SET_KEYS_REQ",
358 [MSG_SMS_DBD_SET_KEYS_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_DBD_SET_KEYS_RES",
359 …[MSG_SMS_DBD_PROCESS_HEADER_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_DBD_PROCESS_HEADER_RE…
360 …[MSG_SMS_DBD_PROCESS_HEADER_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_DBD_PROCESS_HEADER_RE…
361 [MSG_SMS_DBD_PROCESS_DATA_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_DBD_PROCESS_DATA_REQ",
362 [MSG_SMS_DBD_PROCESS_DATA_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_DBD_PROCESS_DATA_RES",
363 …[MSG_SMS_DBD_PROCESS_GET_DATA_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_DBD_PROCESS_GET_DATA_…
364 …[MSG_SMS_DBD_PROCESS_GET_DATA_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_DBD_PROCESS_GET_DATA_…
365 …[MSG_SMS_NSCD_OPEN_SESSION_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_NSCD_OPEN_SESSION_REQ…
366 …[MSG_SMS_NSCD_OPEN_SESSION_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_NSCD_OPEN_SESSION_RES…
367 …[MSG_SMS_SEND_HOST_DATA_TO_DEMUX_REQ - MSG_TYPE_BASE_VAL] = "MSG_SMS_SEND_HOST_DATA_TO_DEM…
368 …[MSG_SMS_SEND_HOST_DATA_TO_DEMUX_RES - MSG_TYPE_BASE_VAL] = "MSG_SMS_SEND_HOST_DATA_TO_DEM…
369 [MSG_LAST_MSG_TYPE - MSG_TYPE_BASE_VAL] = "MSG_LAST_MSG_TYPE",
374 int i = msgtype - MSG_TYPE_BASE_VAL; in smscore_translate_msg()
391 core->board_id = id; in smscore_set_board_id()
397 core->led_state = led; in smscore_led_state()
398 return core->led_state; in smscore_led_state()
404 return core->board_id; in smscore_get_board_id()
411 int mode; member
425 MODULE_PARM_DESC(default_mode, "default firmware id (device mode)");
430 struct list_head *next; in smscore_find_registry() local
433 for (next = g_smscore_registry.next; in smscore_find_registry()
434 next != &g_smscore_registry; in smscore_find_registry()
435 next = next->next) { in smscore_find_registry()
436 entry = (struct smscore_registry_entry_t *) next; in smscore_find_registry()
437 if (!strncmp(entry->devpath, devpath, sizeof(entry->devpath))) { in smscore_find_registry()
444 entry->mode = default_mode; in smscore_find_registry()
445 strscpy(entry->devpath, devpath, sizeof(entry->devpath)); in smscore_find_registry()
446 list_add(&entry->entry, &g_smscore_registry); in smscore_find_registry()
459 return entry->mode; in smscore_registry_getmode()
473 return entry->type; in smscore_registry_gettype()
477 return -EINVAL; in smscore_registry_gettype()
480 static void smscore_registry_setmode(char *devpath, int mode) in smscore_registry_setmode() argument
486 entry->mode = mode; in smscore_registry_setmode()
498 entry->type = type; in smscore_registry_settype()
527 struct list_head *next, *first; in smscore_register_hotplug() local
535 for (next = first->next; in smscore_register_hotplug()
536 next != first && !rc; in smscore_register_hotplug()
537 next = next->next) { in smscore_register_hotplug()
539 (struct smscore_device_t *) next; in smscore_register_hotplug()
540 rc = hotplug(coredev, coredev->device, 1); in smscore_register_hotplug()
544 notifyee->hotplug = hotplug; in smscore_register_hotplug()
545 list_add(&notifyee->entry, &g_smscore_notifyees); in smscore_register_hotplug()
549 rc = -ENOMEM; in smscore_register_hotplug()
565 struct list_head *next, *first; in smscore_unregister_hotplug() local
571 for (next = first->next; next != first;) { in smscore_unregister_hotplug()
573 (struct smscore_device_notifyee_t *) next; in smscore_unregister_hotplug()
574 next = next->next; in smscore_unregister_hotplug()
576 if (notifyee->hotplug == hotplug) { in smscore_unregister_hotplug()
577 list_del(&notifyee->entry); in smscore_unregister_hotplug()
591 while (!list_empty(&coredev->clients)) { in smscore_notify_clients()
592 client = (struct smscore_client_t *) coredev->clients.next; in smscore_notify_clients()
593 client->onremove_handler(client->context); in smscore_notify_clients()
606 rc = elem->hotplug(coredev, device, arrival); in smscore_notify_callbacks()
624 cb->p = buffer; in smscore_createbuffer()
625 cb->offset_in_common = buffer - (u8 *) common_buffer; in smscore_createbuffer()
627 cb->phys = common_buffer_phys + cb->offset_in_common; in smscore_createbuffer()
652 return -ENOMEM; in smscore_register_device()
655 dev->media_dev = mdev; in smscore_register_device()
657 dev->gfp_buf_flags = gfp_buf_flags; in smscore_register_device()
660 INIT_LIST_HEAD(&dev->entry); in smscore_register_device()
663 INIT_LIST_HEAD(&dev->clients); in smscore_register_device()
664 INIT_LIST_HEAD(&dev->buffers); in smscore_register_device()
667 spin_lock_init(&dev->clientslock); in smscore_register_device()
668 spin_lock_init(&dev->bufferslock); in smscore_register_device()
671 init_completion(&dev->version_ex_done); in smscore_register_device()
672 init_completion(&dev->data_download_done); in smscore_register_device()
673 init_completion(&dev->data_validity_done); in smscore_register_device()
674 init_completion(&dev->trigger_done); in smscore_register_device()
675 init_completion(&dev->init_device_done); in smscore_register_device()
676 init_completion(&dev->reload_start_done); in smscore_register_device()
677 init_completion(&dev->resume_done); in smscore_register_device()
678 init_completion(&dev->gpio_configuration_done); in smscore_register_device()
679 init_completion(&dev->gpio_set_level_done); in smscore_register_device()
680 init_completion(&dev->gpio_get_level_done); in smscore_register_device()
681 init_completion(&dev->ir_init_done); in smscore_register_device()
684 init_waitqueue_head(&dev->buffer_mng_waitq); in smscore_register_device()
687 dev->common_buffer_size = params->buffer_size * params->num_buffers; in smscore_register_device()
688 if (params->usb_device) in smscore_register_device()
689 buffer = kzalloc(dev->common_buffer_size, GFP_KERNEL); in smscore_register_device()
691 buffer = dma_alloc_coherent(params->device, in smscore_register_device()
692 dev->common_buffer_size, in smscore_register_device()
693 &dev->common_buffer_phys, in smscore_register_device()
694 GFP_KERNEL | dev->gfp_buf_flags); in smscore_register_device()
697 return -ENOMEM; in smscore_register_device()
699 dev->common_buffer = buffer; in smscore_register_device()
702 for (; dev->num_buffers < params->num_buffers; in smscore_register_device()
703 dev->num_buffers++, buffer += params->buffer_size) { in smscore_register_device()
706 cb = smscore_createbuffer(buffer, dev->common_buffer, in smscore_register_device()
707 dev->common_buffer_phys); in smscore_register_device()
710 return -ENOMEM; in smscore_register_device()
716 pr_debug("allocated %d buffers\n", dev->num_buffers); in smscore_register_device()
718 dev->mode = DEVICE_MODE_NONE; in smscore_register_device()
719 dev->board_id = SMS_BOARD_UNKNOWN; in smscore_register_device()
720 dev->context = params->context; in smscore_register_device()
721 dev->device = params->device; in smscore_register_device()
722 dev->usb_device = params->usb_device; in smscore_register_device()
723 dev->setmode_handler = params->setmode_handler; in smscore_register_device()
724 dev->detectmode_handler = params->detectmode_handler; in smscore_register_device()
725 dev->sendrequest_handler = params->sendrequest_handler; in smscore_register_device()
726 dev->preload_handler = params->preload_handler; in smscore_register_device()
727 dev->postload_handler = params->postload_handler; in smscore_register_device()
729 dev->device_flags = params->flags; in smscore_register_device()
730 strscpy(dev->devpath, params->devpath, sizeof(dev->devpath)); in smscore_register_device()
732 smscore_registry_settype(dev->devpath, params->device_type); in smscore_register_device()
736 list_add(&dev->entry, &g_smscore_devices); in smscore_register_device()
753 return -EINVAL; in smscore_sendrequest_and_wait()
756 rc = coredev->sendrequest_handler(coredev->context, buffer, size); in smscore_sendrequest_and_wait()
764 0 : -ETIME; in smscore_sendrequest_and_wait()
778 coredev->ir.dev = NULL; in smscore_init_ir()
779 ir_io = sms_get_board(smscore_get_board_id(coredev))->board_cfg.ir; in smscore_init_ir()
780 if (ir_io) {/* only if IR port exist we use IR sub-module */ in smscore_init_ir()
785 pr_err("Error initialization DTV IR sub-module\n"); in smscore_init_ir()
789 GFP_KERNEL | coredev->gfp_buf_flags); in smscore_init_ir()
795 SMS_INIT_MSG(&msg->x_msg_header, in smscore_init_ir()
798 msg->msg_data[0] = coredev->ir.controller; in smscore_init_ir()
799 msg->msg_data[1] = coredev->ir.timeout; in smscore_init_ir()
802 msg->x_msg_header. msg_length, in smscore_init_ir()
803 &coredev->ir_init_done); in smscore_init_ir()
827 board = sms_get_board(coredev->board_id); in smscore_configure_board()
830 return -EINVAL; in smscore_configure_board()
833 if (board->mtu) { in smscore_configure_board()
835 pr_debug("set max transmit unit %d\n", board->mtu); in smscore_configure_board()
842 mtu_msg.msg_data = board->mtu; in smscore_configure_board()
844 coredev->sendrequest_handler(coredev->context, &mtu_msg, in smscore_configure_board()
848 if (board->crystal) { in smscore_configure_board()
850 pr_debug("set crystal value %d\n", board->crystal); in smscore_configure_board()
855 crys_msg.msg_data = board->crystal; in smscore_configure_board()
857 coredev->sendrequest_handler(coredev->context, &crys_msg, in smscore_configure_board()
865 * sets initial device mode and notifies client hotplugs that device is ready
876 int mode = smscore_registry_getmode(coredev->devpath); in smscore_start_device() local
879 if (board_id != SMS_BOARD_UNKNOWN && mode == DEVICE_MODE_NONE) in smscore_start_device()
880 mode = sms_get_board(board_id)->default_mode; in smscore_start_device()
882 rc = smscore_set_device_mode(coredev, mode); in smscore_start_device()
884 pr_info("set device mode failed , rc %d\n", rc); in smscore_start_device()
895 rc = smscore_notify_callbacks(coredev, coredev->device, 1); in smscore_start_device()
914 u8 *payload = firmware->payload; in smscore_load_firmware_family2()
916 firmware->start_address = le32_to_cpup((__le32 *)&firmware->start_address); in smscore_load_firmware_family2()
917 firmware->length = le32_to_cpup((__le32 *)&firmware->length); in smscore_load_firmware_family2()
919 mem_address = firmware->start_address; in smscore_load_firmware_family2()
922 mem_address, firmware->length); in smscore_load_firmware_family2()
923 if (coredev->preload_handler) { in smscore_load_firmware_family2()
924 rc = coredev->preload_handler(coredev->context); in smscore_load_firmware_family2()
930 msg = kmalloc(PAGE_SIZE, GFP_KERNEL | coredev->gfp_buf_flags); in smscore_load_firmware_family2()
932 return -ENOMEM; in smscore_load_firmware_family2()
934 if (coredev->mode != DEVICE_MODE_NONE) { in smscore_load_firmware_family2()
936 SMS_INIT_MSG(&msg->x_msg_header, MSG_SW_RELOAD_START_REQ, in smscore_load_firmware_family2()
939 msg->x_msg_header.msg_length, in smscore_load_firmware_family2()
940 &coredev->reload_start_done); in smscore_load_firmware_family2()
948 for (i = 0, ptr = (u32 *)firmware->payload; i < firmware->length/4 ; in smscore_load_firmware_family2()
957 SMS_INIT_MSG(&msg->x_msg_header, MSG_SMS_DATA_DOWNLOAD_REQ, in smscore_load_firmware_family2()
961 data_msg->mem_addr = mem_address; in smscore_load_firmware_family2()
962 memcpy(data_msg->payload, payload, payload_size); in smscore_load_firmware_family2()
965 data_msg->x_msg_header.msg_length, in smscore_load_firmware_family2()
966 &coredev->data_download_done); in smscore_load_firmware_family2()
969 size -= payload_size; in smscore_load_firmware_family2()
978 SMS_INIT_MSG(&msg->x_msg_header, MSG_SMS_DATA_VALIDITY_REQ, in smscore_load_firmware_family2()
979 sizeof(msg->x_msg_header) + in smscore_load_firmware_family2()
981 msg->msg_data[0] = firmware->start_address; in smscore_load_firmware_family2()
983 msg->msg_data[1] = firmware->length; in smscore_load_firmware_family2()
984 msg->msg_data[2] = 0; /* Regular checksum*/ in smscore_load_firmware_family2()
986 msg->x_msg_header.msg_length, in smscore_load_firmware_family2()
987 &coredev->data_validity_done); in smscore_load_firmware_family2()
991 if (coredev->mode == DEVICE_MODE_NONE) { in smscore_load_firmware_family2()
993 SMS_INIT_MSG(&msg->x_msg_header, in smscore_load_firmware_family2()
997 msg->msg_data[0] = firmware->start_address; in smscore_load_firmware_family2()
999 msg->msg_data[1] = 6; /* Priority */ in smscore_load_firmware_family2()
1000 msg->msg_data[2] = 0x200; /* Stack size */ in smscore_load_firmware_family2()
1001 msg->msg_data[3] = 0; /* Parameter */ in smscore_load_firmware_family2()
1002 msg->msg_data[4] = 4; /* Task ID */ in smscore_load_firmware_family2()
1005 msg->x_msg_header.msg_length, in smscore_load_firmware_family2()
1006 &coredev->trigger_done); in smscore_load_firmware_family2()
1008 SMS_INIT_MSG(&msg->x_msg_header, MSG_SW_RELOAD_EXEC_REQ, in smscore_load_firmware_family2()
1010 rc = coredev->sendrequest_handler(coredev->context, msg, in smscore_load_firmware_family2()
1011 msg->x_msg_header.msg_length); in smscore_load_firmware_family2()
1018 * backward compatibility - wait to device_ready_done for in smscore_load_firmware_family2()
1026 if (coredev->postload_handler) { in smscore_load_firmware_family2()
1028 rc, coredev->postload_handler); in smscore_load_firmware_family2()
1030 return coredev->postload_handler(coredev->context); in smscore_load_firmware_family2()
1091 * @param mode requested mode of operation
1098 int mode) in smscore_get_fw_filename() argument
1104 type = smscore_registry_gettype(coredev->devpath); in smscore_get_fw_filename()
1109 if (mode <= DEVICE_MODE_NONE || mode >= DEVICE_MODE_MAX) in smscore_get_fw_filename()
1112 pr_debug("trying to get fw name from sms_boards board_id %d mode %d\n", in smscore_get_fw_filename()
1113 board_id, mode); in smscore_get_fw_filename()
1114 fw = sms_get_board(board_id)->fw; in smscore_get_fw_filename()
1115 if (!fw || !fw[mode]) { in smscore_get_fw_filename()
1116 pr_debug("cannot find fw name in sms_boards, getting from lookup table mode %d type %d\n", in smscore_get_fw_filename()
1117 mode, type); in smscore_get_fw_filename()
1118 return smscore_fw_lkup[type][mode]; in smscore_get_fw_filename()
1121 return fw[mode]; in smscore_get_fw_filename()
1129 * @param filename null-terminated string specifies firmware file name
1135 int mode) in smscore_load_firmware_from_file() argument
1137 int rc = -ENOENT; in smscore_load_firmware_from_file()
1142 char *fw_filename = smscore_get_fw_filename(coredev, mode); in smscore_load_firmware_from_file()
1144 pr_err("mode %d not supported on this device\n", mode); in smscore_load_firmware_from_file()
1145 return -ENOENT; in smscore_load_firmware_from_file()
1149 if (!(coredev->device_flags & SMS_DEVICE_FAMILY2)) in smscore_load_firmware_from_file()
1150 return -EINVAL; in smscore_load_firmware_from_file()
1152 rc = request_firmware(&fw, fw_filename, coredev->device); in smscore_load_firmware_from_file()
1157 pr_debug("read fw %s, buffer size=0x%zx\n", fw_filename, fw->size); in smscore_load_firmware_from_file()
1158 fw_buf = kmalloc(ALIGN(fw->size + sizeof(struct sms_firmware), in smscore_load_firmware_from_file()
1159 SMS_ALLOC_ALIGNMENT), GFP_KERNEL | coredev->gfp_buf_flags); in smscore_load_firmware_from_file()
1162 rc = -ENOMEM; in smscore_load_firmware_from_file()
1164 memcpy(fw_buf, fw->data, fw->size); in smscore_load_firmware_from_file()
1165 fw_buf_size = fw->size; in smscore_load_firmware_from_file()
1204 while (!list_empty(&coredev->buffers)) { in smscore_unregister_device()
1205 cb = (struct smscore_buffer_t *) coredev->buffers.next; in smscore_unregister_device()
1206 list_del(&cb->entry); in smscore_unregister_device()
1210 if (num_buffers == coredev->num_buffers) in smscore_unregister_device()
1218 coredev->num_buffers - num_buffers); in smscore_unregister_device()
1226 if (coredev->common_buffer) { in smscore_unregister_device()
1227 if (coredev->usb_device) in smscore_unregister_device()
1228 kfree(coredev->common_buffer); in smscore_unregister_device()
1230 dma_free_coherent(coredev->device, in smscore_unregister_device()
1231 coredev->common_buffer_size, in smscore_unregister_device()
1232 coredev->common_buffer, in smscore_unregister_device()
1233 coredev->common_buffer_phys); in smscore_unregister_device()
1235 kfree(coredev->fw_buf); in smscore_unregister_device()
1237 list_del(&coredev->entry); in smscore_unregister_device()
1249 GFP_KERNEL | coredev->gfp_buf_flags); in smscore_detect_mode()
1255 return -ENOMEM; in smscore_detect_mode()
1260 rc = smscore_sendrequest_and_wait(coredev, msg, msg->msg_length, in smscore_detect_mode()
1261 &coredev->version_ex_done); in smscore_detect_mode()
1262 if (rc == -ETIME) { in smscore_detect_mode()
1265 if (wait_for_completion_timeout(&coredev->resume_done, in smscore_detect_mode()
1268 coredev, msg, msg->msg_length, in smscore_detect_mode()
1269 &coredev->version_ex_done); in smscore_detect_mode()
1274 rc = -ETIME; in smscore_detect_mode()
1287 * @param mode requested mode of operation
1291 static int smscore_init_device(struct smscore_device_t *coredev, int mode) in smscore_init_device() argument
1298 SMS_DMA_ALIGNMENT, GFP_KERNEL | coredev->gfp_buf_flags); in smscore_init_device()
1300 return -ENOMEM; in smscore_init_device()
1303 SMS_INIT_MSG(&msg->x_msg_header, MSG_SMS_INIT_DEVICE_REQ, in smscore_init_device()
1305 msg->msg_data = mode; in smscore_init_device()
1308 msg->x_msg_header. msg_length, in smscore_init_device()
1309 &coredev->init_device_done); in smscore_init_device()
1316 * calls device handler to change mode of operation
1317 * NOTE: stellar/usb may disconnect when changing mode
1321 * @param mode requested mode of operation
1325 int smscore_set_device_mode(struct smscore_device_t *coredev, int mode) in smscore_set_device_mode() argument
1329 pr_debug("set device mode to %d\n", mode); in smscore_set_device_mode()
1330 if (coredev->device_flags & SMS_DEVICE_FAMILY2) { in smscore_set_device_mode()
1331 if (mode <= DEVICE_MODE_NONE || mode >= DEVICE_MODE_MAX) { in smscore_set_device_mode()
1332 pr_err("invalid mode specified %d\n", mode); in smscore_set_device_mode()
1333 return -EINVAL; in smscore_set_device_mode()
1336 smscore_registry_setmode(coredev->devpath, mode); in smscore_set_device_mode()
1338 if (!(coredev->device_flags & SMS_DEVICE_NOT_READY)) { in smscore_set_device_mode()
1341 pr_err("mode detect failed %d\n", rc); in smscore_set_device_mode()
1346 if (coredev->mode == mode) { in smscore_set_device_mode()
1347 pr_debug("device mode %d already set\n", mode); in smscore_set_device_mode()
1351 if (!(coredev->modes_supported & (1 << mode))) { in smscore_set_device_mode()
1352 rc = smscore_load_firmware_from_file(coredev, mode); in smscore_set_device_mode()
1356 pr_debug("mode %d is already supported by running firmware\n", in smscore_set_device_mode()
1357 mode); in smscore_set_device_mode()
1359 if (coredev->fw_version >= 0x800) { in smscore_set_device_mode()
1360 rc = smscore_init_device(coredev, mode); in smscore_set_device_mode()
1365 if (mode <= DEVICE_MODE_NONE || mode >= DEVICE_MODE_MAX) { in smscore_set_device_mode()
1366 pr_err("invalid mode specified %d\n", mode); in smscore_set_device_mode()
1367 return -EINVAL; in smscore_set_device_mode()
1370 smscore_registry_setmode(coredev->devpath, mode); in smscore_set_device_mode()
1372 if (coredev->detectmode_handler) in smscore_set_device_mode()
1373 coredev->detectmode_handler(coredev->context, in smscore_set_device_mode()
1374 &coredev->mode); in smscore_set_device_mode()
1376 if (coredev->mode != mode && coredev->setmode_handler) in smscore_set_device_mode()
1377 rc = coredev->setmode_handler(coredev->context, mode); in smscore_set_device_mode()
1382 coredev->mode = mode; in smscore_set_device_mode()
1383 coredev->device_flags &= ~SMS_DEVICE_NOT_READY; in smscore_set_device_mode()
1386 SMS_DMA_ALIGNMENT, GFP_KERNEL | coredev->gfp_buf_flags); in smscore_set_device_mode()
1390 SMS_INIT_MSG(&msg->x_msg_header, MSG_SMS_INIT_DEVICE_REQ, in smscore_set_device_mode()
1392 msg->msg_data = mode; in smscore_set_device_mode()
1395 coredev, msg, msg->x_msg_header.msg_length, in smscore_set_device_mode()
1396 &coredev->init_device_done); in smscore_set_device_mode()
1405 pr_debug("Success setting device mode.\n"); in smscore_set_device_mode()
1411 * calls device handler to get current mode of operation
1416 * return: current mode
1420 return coredev->mode; in smscore_get_device_mode()
1444 spin_lock_irqsave(&coredev->clientslock, flags); in smscore_find_client()
1445 first = &coredev->clients; in smscore_find_client()
1447 firstid = &client->idlist; in smscore_find_client()
1449 if ((client_id->id == id) && in smscore_find_client()
1450 (client_id->data_type == data_type || in smscore_find_client()
1451 (client_id->data_type == 0))) in smscore_find_client()
1457 spin_unlock_irqrestore(&coredev->clientslock, flags); in smscore_find_client()
1472 struct sms_msg_hdr *phdr = (struct sms_msg_hdr *) ((u8 *) cb->p in smscore_onresponse()
1473 + cb->offset); in smscore_onresponse()
1475 int rc = -EBUSY; in smscore_onresponse()
1483 if (time_now - last_sample_time > 10000) { in smscore_onresponse()
1486 (time_now - last_sample_time))); in smscore_onresponse()
1492 data_total += cb->size; in smscore_onresponse()
1493 /* Do we need to re-route? */ in smscore_onresponse()
1494 if ((phdr->msg_type == MSG_SMS_HO_PER_SLICES_IND) || in smscore_onresponse()
1495 (phdr->msg_type == MSG_SMS_TRANSMISSION_IND)) { in smscore_onresponse()
1496 if (coredev->mode == DEVICE_MODE_DVBT_BDA) in smscore_onresponse()
1497 phdr->msg_dst_id = DVBT_BDA_CONTROL_MSG_ID; in smscore_onresponse()
1501 client = smscore_find_client(coredev, phdr->msg_type, phdr->msg_dst_id); in smscore_onresponse()
1506 rc = client->onresponse_handler(client->context, cb); in smscore_onresponse()
1509 switch (phdr->msg_type) { in smscore_onresponse()
1529 ver->firmware_id, ver->supported_protocols, in smscore_onresponse()
1530 ver->rom_ver_major, ver->rom_ver_minor); in smscore_onresponse()
1532 coredev->mode = ver->firmware_id == 255 ? in smscore_onresponse()
1533 DEVICE_MODE_NONE : ver->firmware_id; in smscore_onresponse()
1534 coredev->modes_supported = ver->supported_protocols; in smscore_onresponse()
1535 coredev->fw_version = ver->rom_ver_major << 8 | in smscore_onresponse()
1536 ver->rom_ver_minor; in smscore_onresponse()
1538 complete(&coredev->version_ex_done); in smscore_onresponse()
1542 complete(&coredev->init_device_done); in smscore_onresponse()
1545 complete(&coredev->reload_start_done); in smscore_onresponse()
1552 validity->msg_data); in smscore_onresponse()
1553 complete(&coredev->data_validity_done); in smscore_onresponse()
1557 complete(&coredev->data_download_done); in smscore_onresponse()
1562 complete(&coredev->trigger_done); in smscore_onresponse()
1565 complete(&coredev->resume_done); in smscore_onresponse()
1568 complete(&coredev->gpio_configuration_done); in smscore_onresponse()
1571 complete(&coredev->gpio_set_level_done); in smscore_onresponse()
1576 coredev->gpio_get_res = msgdata[1]; in smscore_onresponse()
1578 coredev->gpio_get_res); in smscore_onresponse()
1579 complete(&coredev->gpio_get_level_done); in smscore_onresponse()
1583 complete(&coredev->ir_init_done); in smscore_onresponse()
1590 (int)phdr->msg_length in smscore_onresponse()
1591 - sizeof(struct sms_msg_hdr)); in smscore_onresponse()
1599 * and re-inserted, without powering the device off in smscore_onresponse()
1605 smscore_translate_msg(phdr->msg_type), in smscore_onresponse()
1606 phdr->msg_type); in smscore_onresponse()
1615 * return pointer to next free buffer descriptor from core pool
1628 spin_lock_irqsave(&coredev->bufferslock, flags); in get_entry()
1629 if (!list_empty(&coredev->buffers)) { in get_entry()
1630 cb = (struct smscore_buffer_t *) coredev->buffers.next; in get_entry()
1631 list_del(&cb->entry); in get_entry()
1633 spin_unlock_irqrestore(&coredev->bufferslock, flags); in get_entry()
1641 wait_event(coredev->buffer_mng_waitq, (cb = get_entry(coredev))); in smscore_getbuffer()
1657 wake_up_interruptible(&coredev->buffer_mng_waitq); in smscore_putbuffer()
1658 list_add_locked(&cb->entry, &coredev->buffers, &coredev->bufferslock); in smscore_putbuffer()
1671 return -EINVAL; in smscore_validate_client()
1679 return -EEXIST; in smscore_validate_client()
1683 return -ENOMEM; in smscore_validate_client()
1685 listentry->id = id; in smscore_validate_client()
1686 listentry->data_type = data_type; in smscore_validate_client()
1687 list_add_locked(&listentry->entry, &client->idlist, in smscore_validate_client()
1688 &coredev->clientslock); in smscore_validate_client()
1701 * @param context client-specific context
1712 if (smscore_find_client(coredev, params->data_type, in smscore_register_client()
1713 params->initial_id)) { in smscore_register_client()
1715 return -EEXIST; in smscore_register_client()
1720 return -ENOMEM; in smscore_register_client()
1722 INIT_LIST_HEAD(&newclient->idlist); in smscore_register_client()
1723 newclient->coredev = coredev; in smscore_register_client()
1724 newclient->onresponse_handler = params->onresponse_handler; in smscore_register_client()
1725 newclient->onremove_handler = params->onremove_handler; in smscore_register_client()
1726 newclient->context = params->context; in smscore_register_client()
1727 list_add_locked(&newclient->entry, &coredev->clients, in smscore_register_client()
1728 &coredev->clientslock); in smscore_register_client()
1729 smscore_validate_client(coredev, newclient, params->data_type, in smscore_register_client()
1730 params->initial_id); in smscore_register_client()
1732 pr_debug("%p %d %d\n", params->context, params->data_type, in smscore_register_client()
1733 params->initial_id); in smscore_register_client()
1748 struct smscore_device_t *coredev = client->coredev; in smscore_unregister_client()
1751 spin_lock_irqsave(&coredev->clientslock, flags); in smscore_unregister_client()
1754 while (!list_empty(&client->idlist)) { in smscore_unregister_client()
1756 (struct smscore_idlist_t *) client->idlist.next; in smscore_unregister_client()
1757 list_del(&identry->entry); in smscore_unregister_client()
1761 pr_debug("%p\n", client->context); in smscore_unregister_client()
1763 list_del(&client->entry); in smscore_unregister_client()
1766 spin_unlock_irqrestore(&coredev->clientslock, flags); in smscore_unregister_client()
1790 return -EINVAL; in smsclient_sendrequest()
1793 coredev = client->coredev; in smsclient_sendrequest()
1798 return -EINVAL; in smsclient_sendrequest()
1801 rc = smscore_validate_client(client->coredev, client, 0, in smsclient_sendrequest()
1802 phdr->msg_src_id); in smsclient_sendrequest()
1806 return coredev->sendrequest_handler(coredev->context, buffer, size); in smsclient_sendrequest()
1820 if (coredev->device_flags & SMS_DEVICE_FAMILY2) { in smscore_configure_gpio()
1828 msg.data[1] = pinconfig->pullupdown; in smscore_configure_gpio()
1831 msg.data[2] = pinconfig->outputslewrate == 0 ? 3 : 0; in smscore_configure_gpio()
1833 switch (pinconfig->outputdriving) { in smscore_configure_gpio()
1835 msg.data[3] = 7; /* Nova - 16mA */ in smscore_configure_gpio()
1838 msg.data[3] = 5; /* Nova - 11mA */ in smscore_configure_gpio()
1841 msg.data[3] = 3; /* Nova - 7mA */ in smscore_configure_gpio()
1845 msg.data[3] = 2; /* Nova - 4mA */ in smscore_configure_gpio()
1849 msg.data[4] = pinconfig->direction; in smscore_configure_gpio()
1852 return -EINVAL; in smscore_configure_gpio()
1854 return coredev->sendrequest_handler(coredev->context, in smscore_configure_gpio()
1866 return -EINVAL; in smscore_set_gpio()
1878 return coredev->sendrequest_handler(coredev->context, in smscore_set_gpio()
1926 return -1; in get_gpio_pin_params()
1951 return -EINVAL; in smscore_gpio_configure()
1954 return -EINVAL; in smscore_gpio_configure()
1959 GFP_KERNEL | coredev->gfp_buf_flags); in smscore_gpio_configure()
1961 return -ENOMEM; in smscore_gpio_configure()
1965 p_msg->x_msg_header.msg_src_id = DVBT_BDA_CONTROL_MSG_ID; in smscore_gpio_configure()
1966 p_msg->x_msg_header.msg_dst_id = HIF_TASK; in smscore_gpio_configure()
1967 p_msg->x_msg_header.msg_flags = 0; in smscore_gpio_configure()
1968 p_msg->x_msg_header.msg_length = (u16) total_len; in smscore_gpio_configure()
1969 p_msg->msg_data[0] = pin_num; in smscore_gpio_configure()
1971 if (!(coredev->device_flags & SMS_DEVICE_FAMILY2)) { in smscore_gpio_configure()
1972 p_msg->x_msg_header.msg_type = MSG_SMS_GPIO_CONFIG_REQ; in smscore_gpio_configure()
1975 rc = -EINVAL; in smscore_gpio_configure()
1979 p_msg->msg_data[1] = translatedpin_num; in smscore_gpio_configure()
1980 p_msg->msg_data[2] = group_num; in smscore_gpio_configure()
1981 electric_char = (p_gpio_config->pullupdown) in smscore_gpio_configure()
1982 | (p_gpio_config->inputcharacteristics << 2) in smscore_gpio_configure()
1983 | (p_gpio_config->outputslewrate << 3) in smscore_gpio_configure()
1984 | (p_gpio_config->outputdriving << 4); in smscore_gpio_configure()
1985 p_msg->msg_data[3] = electric_char; in smscore_gpio_configure()
1986 p_msg->msg_data[4] = p_gpio_config->direction; in smscore_gpio_configure()
1987 p_msg->msg_data[5] = group_cfg; in smscore_gpio_configure()
1989 p_msg->x_msg_header.msg_type = MSG_SMS_GPIO_CONFIG_EX_REQ; in smscore_gpio_configure()
1990 p_msg->msg_data[1] = p_gpio_config->pullupdown; in smscore_gpio_configure()
1991 p_msg->msg_data[2] = p_gpio_config->outputslewrate; in smscore_gpio_configure()
1992 p_msg->msg_data[3] = p_gpio_config->outputdriving; in smscore_gpio_configure()
1993 p_msg->msg_data[4] = p_gpio_config->direction; in smscore_gpio_configure()
1994 p_msg->msg_data[5] = 0; in smscore_gpio_configure()
1998 &coredev->gpio_configuration_done); in smscore_gpio_configure()
2001 if (rc == -ETIME) in smscore_gpio_configure()
2025 return -EINVAL; in smscore_gpio_set_level()
2031 GFP_KERNEL | coredev->gfp_buf_flags); in smscore_gpio_set_level()
2033 return -ENOMEM; in smscore_gpio_set_level()
2037 p_msg->x_msg_header.msg_src_id = DVBT_BDA_CONTROL_MSG_ID; in smscore_gpio_set_level()
2038 p_msg->x_msg_header.msg_dst_id = HIF_TASK; in smscore_gpio_set_level()
2039 p_msg->x_msg_header.msg_flags = 0; in smscore_gpio_set_level()
2040 p_msg->x_msg_header.msg_type = MSG_SMS_GPIO_SET_LEVEL_REQ; in smscore_gpio_set_level()
2041 p_msg->x_msg_header.msg_length = (u16) total_len; in smscore_gpio_set_level()
2042 p_msg->msg_data[0] = pin_num; in smscore_gpio_set_level()
2043 p_msg->msg_data[1] = new_level; in smscore_gpio_set_level()
2047 &coredev->gpio_set_level_done); in smscore_gpio_set_level()
2050 if (rc == -ETIME) in smscore_gpio_set_level()
2074 return -EINVAL; in smscore_gpio_get_level()
2079 GFP_KERNEL | coredev->gfp_buf_flags); in smscore_gpio_get_level()
2081 return -ENOMEM; in smscore_gpio_get_level()
2085 p_msg->x_msg_header.msg_src_id = DVBT_BDA_CONTROL_MSG_ID; in smscore_gpio_get_level()
2086 p_msg->x_msg_header.msg_dst_id = HIF_TASK; in smscore_gpio_get_level()
2087 p_msg->x_msg_header.msg_flags = 0; in smscore_gpio_get_level()
2088 p_msg->x_msg_header.msg_type = MSG_SMS_GPIO_GET_LEVEL_REQ; in smscore_gpio_get_level()
2089 p_msg->x_msg_header.msg_length = (u16) total_len; in smscore_gpio_get_level()
2090 p_msg->msg_data[0] = pin_num; in smscore_gpio_get_level()
2091 p_msg->msg_data[1] = 0; in smscore_gpio_get_level()
2095 &coredev->gpio_get_level_done); in smscore_gpio_get_level()
2098 if (rc == -ETIME) in smscore_gpio_get_level()
2106 * global 'coredev->gpio_get_res' to the function's variable 'level' in smscore_gpio_get_level()
2108 *level = coredev->gpio_get_res; in smscore_gpio_get_level()
2128 g_smscore_notifyees.next; in smscore_module_exit()
2130 list_del(&notifyee->entry); in smscore_module_exit()
2139 g_smscore_registry.next; in smscore_module_exit()
2141 list_del(&entry->entry); in smscore_module_exit()
2153 MODULE_AUTHOR("Siano Mobile Silicon, Inc. <uris@siano-ms.com>");