blob: ddb11618718e03a53b1277349775c405d602210a [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2016
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS (""MEDIATEK SOFTWARE"")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN ""AS-IS"" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35/*************************************************************
36*
37* This Software is the property of VIA Telecom, Inc. and may only be used pursuant to a license from VIA Telecom, Inc.
38*
39* Any unauthorized use inconsistent with the terms of such license is strictly prohibited.
40*
41* Copyright (c) 1999-2010 VIA Telecom, Inc. All rights reserved.
42*
43*************************************************************/
44/****************************************************************************
45 *
46 * Module: cptimer.h
47 *
48 * Purpose: Definitions for Call Processing Timer Services.
49 *
50 ****************************************************************************
51 *
52 * PVCS Header Information
53 *
54 * $Revision: 1.7 $
55 * $Author: mclee $
56 *
57 * $Log: cptimer.h $
58 *
59 * 09 18 2020 tina.ma
60 * [MOLY00555839] ?Maxwell-AN00A 10.1.1.160?APR????modemcrash
61 *
62 * .
63 *
64 * 06 08 2020 tina.ma
65 * [MOLY00514816] ??(Bugs) 2883828??19165?????????????19165????CMCC??+CT?IMS+1x????5G?? ???????
66 *
67 * .
68 *
69 * 05 06 2020 tina.ma
70 * [MOLY00514816] ??(Bugs) 2883828??19165?????????????19165????CMCC??+CT?IMS+1x????5G?? ???????
71 *
72 * .
73 *
74 * 03 27 2020 yanfeng.xu
75 * [MOLY00507451] [MT6885][Petrus][China][[SH][MP2][5GMM][Static][CU][MDST][SWIFT][S][ASSERT] file:mcu/protocol/lte_sec/errc/cel/src/errc_cel_cscom.c line:6558
76 *
77 * 07 09 2019 tina.ma
78 * [MOLY00418383] [Rose][Merlot][Q0][BSP+]The call was auto end when you make a call.(once)
79 *
80 * power down registration
81 *
82 * 12 18 2018 danny.dai
83 * [MOLY00370973] [MT6779][Lafite][P0][BSP+][MP2][CTC FT][SH][om_c2k6m][Benchmark][FT_SQC_CS Performace_08]DUT MTC failure 12 times however REF-MI 8 se failure 1 times
84 *
85 * VMOLY.EVB.SEPT.DEV: opt for PCH resync denied issue
86 *
87 * 09 11 2018 yanfeng.xu
88 * [MOLY00348345] [Lafite][SLT]BriefException: [1][core0,vpe0,tc0(vpe0)] Assert fail: clcidp.c 8570 0x0 0x0 0x0 ¨C EVCLC
89 *
90 * 06 07 2018 yanfeng.xu
91 * [MOLY00331827] [Eiger][O1 BSP+][SRLTE][CT 6M C][LTE IOT][FT][SH][ALU][Auto][CAT][PLMN_LIST][Fatal error(task)] err_code1:0x00000305 err_code2:0x88880002 err_code3:0xCCCCCCCC MD Offender:DDM
92 *
93 * 05 23 2018 yanfeng.xu
94 * [MOLY00327962] [EIGER][MT3967][RDIT][FT][TDD][CMCC][GZ][VoLTE][Overnight][Auto][CAT]Externel (EE),0,0,99,/data/vendor/core/,1,modem,[ASSERT] file:mcu/protocol/as_multimode/rsva/rsvas/src/rsvas_utils.c line:286
95 *
96 * 09 07 2017 tina.ma
97 * [MOLY00275192] [Merge from MP5.TC10]after airplane mode,DUT register network slowly than REF
98 *
99 * merge from MP5.TC10 to UMOLYA
100 *
101 * 08 25 2017 danny.dai
102 * [MOLY00273514] Expends 180ms Idle HO delay timer length to 200ms
103 *
104 * Trunk: Expends 180ms Idle HO delay timer length to 200ms
105 *
106 * 06 29 2017 sue.zhong
107 * [MOLY00259241] [6293][C2K]Replace with KAL data type
108 * ::KAL type - folder inc
109 *
110 * 05 18 2017 gavin.zhang
111 * [MOLY00247455] [6293][C2K][PS]Change KAL timer API to event scheduler API
112 *
113 * PSW timer change.
114 *
115 * 02 28 2017 scott.song
116 * [MOLY00223502] [93m][RTT][FL]merge T0 to Trunk 3322251 3322920 3325989 3326264 3328096 3328437 3331529 3332165 3334136
117 *
118 * .
119 *
120 * 02 24 2017 yanfeng.xu
121 * [MOLY00232146] SIXTH00016529 merge to UMOLYA TRUNK
122 *
123 * 12 01 2016 sue.zhong
124 * [MOLY00213777] [6293][C2K]Sync C2K code to UMOLYA TRUNK(W1648)
125 * Update C2K source
126 * Revision 1.7 2006/03/16 11:55:46 mclee
127 * - Reorder Timer enum in order to keep consistent with ETS.
128 * Revision 1.6 2005/05/06 18:09:11 hans
129 * Test mode sleep delay for Slotted
130 * Revision 1.5 2005/03/18 11:43:05 hans
131 * Merged code changes from CBP4.05 revision 2.02 to CBP4.05 revision 4.21.
132 * Revision 1.4 2004/09/28 16:25:30 hans
133 * Changes from CBP6.0 merged.
134 * Revision 1.3 2004/04/06 14:02:01 dstecker
135 * CBP6.1 release 1
136 * Revision 1.2 2004/03/25 12:09:23 fpeng
137 * Updated from 6.0 CP 2.5.0
138 * Revision 1.3 2004/02/10 12:50:40 bcolford
139 * Merged CBP4.0 Release 8.05.0 changes.
140 * Revision 1.21 2003/12/12 09:55:36 mclee
141 * - Add SLOTTED_IDLE_HO_DELAY 100L
142 * - Add CP_SLOTTED_IDLE_HO_DELAY_TIMER to CPTimerId enum.
143 * Revision 1.20 2003/11/06 11:37:19 ameya
144 * Added the CP_CSS_REDIR_END_TIMER and CP_CSS_MORE_PREF_SCAN_TIMER to the timer enum.
145 * Revision 1.19 2003/09/05 10:17:34 mclee
146 * Add Silent Retry Reset Timer
147 * Revision 1.18 2003/08/22 16:34:12 mclee
148 * Fix CR2554 to properly decrement reg zone timers
149 * Revision 1.17 2003/08/22 11:43:50 mclee
150 * Uim Feature Introduction in SW Base
151 * Revision 1.16 2003/08/12 16:20:43 bcolford
152 * Change the value of the macro ALERT_TIMEOUT back to
153 * the original value of 65sec. See CR No. 2461 for details.
154 * Revision 1.15 2003/07/22 14:10:24 robertk
155 * CR 2461: Changed the value of the AMPS ALERT_TIMEOUT to
156 * get it closer to the specified 65sec.
157 * Revision 1.14 2003/02/19 18:55:06 hans
158 * Absolut timer added for RETRY_DELAY order msg used by RC
159 * Revision 1.13 2002/11/26 19:37:31 hans
160 * 1 sec timer added to time 1 sec between each SCRM msg
161 * with no reply from BS
162 * Revision 1.12 2002/08/27 17:00:44 byang
163 * Add timer ID for ping timer: CP_TC_DCCH_ONLY_PING_TIMER.
164 * Revision 1.11 2002/08/08 14:56:31 mclee
165 * Add LocServ AGPS & LocServ General Timers
166 * Revision 1.10 2002/06/06 13:11:17 chinh
167 * Changed and Added Copyright
168 * Revision 1.9 2002/04/18 09:49:55 mclee
169 * Add Loc Serv timers
170 * Revision 1.8 2002/04/03 16:03:42 chinh
171 * Removed compile option ifdefIS2000A for T72m and T40m.
172 * Revision 1.7 2002/02/25 08:48:29 AMALA
173 * Corrected SS Re-Scan errors.
174 * Revision 1.6 2002/02/06 11:36:30 mclee
175 * Move PSMM and Hard Handoff timers to Traffic CH timer block.
176 * Revision 1.5 2002/01/17 17:14:29 akayvan
177 * Slotted Mode Mods.
178 * Revision 1.4 2001/08/03 15:14:29 dstecker
179 * Modifications for IS2000 handoffs
180 * Revision 1.3 2001/07/18 15:02:05 chinh
181 * cbp3 porting for Idle and Access
182 * Revision 1.2 2001/01/29 18:20:51 dstecker
183 * new access probe architecture
184 * Revision 1.1 2001/01/17 10:58:17 plabarbe
185 * Initial revision
186 * Revision 1.3 2000/11/27 11:55:58 chinh
187 * Changed T40m and added T72m
188 * Revision 1.2 2000/11/13 22:25:21Z byang
189 * IS-2000A Idle Mode and LAC intergration - Initial Release.
190 * Revision 1.1 2000/10/24 21:11:06Z fpeng
191 * Initial revision
192 * Revision 1.4 2000/08/31 23:41:47Z bcolford
193 * Replaced AMPS_SUPPORTED with SYS_OPTION_AMPS.
194 * Revision 1.3 2000/08/23 22:05:21Z RSATTARI
195 * Isotel release 2.8 plus LSI applicable IS-95B changes
196 * Revision 1.18 2000/02/25 01:13:11 gfrye
197 * Added analog SMS re-assembly timer.
198 *
199 * Revision 1.17 2000/02/19 00:01:10 gfrye
200 * Added new defined timeouts for the order timer when an
201 * Alert With Info SMS order is received.
202 * see IS-91, section 2.6.4.3.1.
203 *
204 * Revision 1.16 1999/12/10 22:12:11 gfrye
205 * Removed null character.
206 *
207 * Revision 1.15 1999/12/09 21:49:06 gfrye
208 * Added timer for Out Of Service.
209 *
210 * Revision 1.14 1999/06/23 22:46:06 gfrye
211 * New timer CP_SLEEP_WAKEUP_TIMER to guard if ENG_IND_WAKEUP is lost.
212 *
213 * Revision 1.12 1999/06/04 23:27:26 scotvold
214 * New Message Transmitter.
215 *
216 * Revision 1.11 1999/03/02 00:56:20 dfischer
217 * Added sysdet delay timer
218 *
219 * Revision 1.10 1998/10/20 23:58:23 mhayduk
220 * Added T53 support.
221 *
222 * Revision 1.9 1998/09/22 18:44:57 tdaly
223 * Added IS-95 analog mode support.
224 *
225 * Revision 1.8 1998/08/19 15:10:34 mhayduk
226 * Changed to just include stype.h instead of tracemac.h.
227 *
228 * Revision 1.7 1998/07/03 16:57:30 dfischer
229 * New load
230 *
231 * Revision 1.6 1998/06/08 21:48:25 scotvold
232 * Updated for Release 0.06
233 *
234 * Revision 1.5 1998/05/27 17:16:28 scotvold
235 * Updated for Release 0.05.
236 *
237 * Revision 1.4 1998/05/01 18:13:54 scotvold
238 * Update for release 0.04
239 *
240 * Revision 1.3 1998/03/30 23:26:03 mhayduk
241 * Release 0.03.
242 *
243 * Revision 1.1 1997/11/06 17:49:24 mhayduk
244 * Initial revision
245 *
246 *
247 ****************************************************************************
248 ****************************************************************************/
249
250
251#ifndef _CPTIMER_H_
252
253 #define _CPTIMER_H_ 1
254
255#include "sysdefs.h"
256
257/*****************************************************************************
258 * Includes
259 ****************************************************************************/
260
261/*****************************************************************************
262 * CMDA Definitions
263 ****************************************************************************/
264 #define ACTION_TIME_NOW 0L
265 #define ACTION_TIME_MULT 80L
266
267 /* Defined Timer Constant values - in milliseconds */
268 #define T1m 400L /* Max time MS waits for ACK */
269 #define T2m 200L /* Max time MS to send ACK */
270 #define T3m 320L /* TC duplicate message timeout */
271 #define T4m 2200L /* PCH duplicate message timeout */
272 #define T5m 5000L /* FTC fade timeout */
273 #define T20m 15000L /* pilot acquistion timeout */
274 #define T21m 1000L /* time to receive sync msg */
275 #define T30m 3000L /* PCH monitor timeout */
276 #define T31m 600000L /* Config. Parameters timeout */
277 #define T40m 3000L /* PCH timeout for access */
278 #define T41m 4000L /* time to rx updated ovhd msgs */
279 #define T42m 12000L /* time to rx page/orig response */
280 #define T50m 1000L /* time to rx N5m good TC frames */
281 #define T51m 2000L /* time to rx BS Ack Order */
282 #define T52m 5000L /* Waiting for Order timeout */
283 #define T53m 65000L /* Waiting for Answer timeout */
284 #define T55m 2000L /* Release timeout */
285 #define T56m 200L /* time to rx FTC msg or order */
286#ifdef MTK_PLT_ON_PC_IT
287 #define T57m 1000L /* Registration initialization */
288#else
289 #define T57m 20000L /* Registration initialization */
290#endif
291 #define T59m 5000L /* Response to Service Req/Resp */
292 #define T64m 10000L /* SSD Update Procedure */
293 #define T65m 5000L /* Waiting For Service Connect */
294 #define T66m 200000L /* TMSI_EXP_TIME timer */
295 #define T68m 5000L /* Waiting For Service Req/Resp */
296 #define T69m 24000L /* Full TMSI Timer base period */
297 #define T70m 800L /* time btween meas and CRSRM */
298 #define T71m 40L /* send CFSRM after srch */
299 #define T72m 1000L /* Timeout for access in ho */
300 #define T78m 30000L /* Timeout for TCH ping timer */
301
302/* Frame based counters */
303 #define N1m 13 /* Maximum IS2000 retransmissions */
304 #define N2m 12
305 #define N3m 2
306 #define N5m 2
307 #define N6m 6
308 #define N7m 10
309 #define N8m 40
310 #define N9m 7 /* max size of Zone List */
311 #define N10m 4 /* max size of Sid Nid List */
312 #define N11m 1
313 #define N12m 10 /* Number of frames over which the mobile station *
314 * maintains a running average of the total rcvd power */
315 #define N13m 6 /* max number of pilots in Access HO List */
316
317/*****************************************************************************
318 * PS Implementation Definitions
319 ****************************************************************************/
320 #define CP_1_SECOND 1000L /* generic 1 second interval */
321 #define CP_100_MSEC 100L /* generic 100 ms interval */
322 #define ENG_SLEEP_WAKEUP_TIMEOUT 800L /* time to expect wakeup */
323
324/*****************************************************************************
325 * AMPS Definitions
326 ****************************************************************************/
327
328 /* AMPS Timer Constant values - in milliseconds (as per EIA/TIA-553) */
329 #define MESSAGE_TIMEOUT 3000L /* Default wait for FOCC messages */
330 #define RCF_0_TIMEOUT 400L /* Wait for Message if RCFs = 0 */
331 #define RCF_1_TIMEOUT 1000L /* Wait for CFiller if RCFs = 1 */
332 #define WFOM_TIMEOUT 1500L /* Wait for OMT before Access */
333 #define REGCONF_TIMEOUT 5000L /* Wait for Registration Confirmation */
334 #define WAITMSG_TIMEOUT 5000L /* Timeout in Await Message state */
335 #define ORDER_TIMEOUT 5000L /* Order Timer value */
336 #define ALERT_TIMEOUT 65000L /* Alert Timer value */
337 #define FADE_TIMEOUT 5000L /* SAT Fade Timer value */
338 #define RLSDELAY_TIMEOUT 500L /* Delay if Termination Status set */
339 #define FLASH_TIMEOUT 10000L /* Valid HookFlash window */
340 #define BSCHALL_TIMEOUT 5000L /* Base Station Challenge window */
341 #define TIMING_CHANGE_TIMEOUT 2000L /* Timing Change substate timeout */
342
343 /* IS-91 defines special timers for waiting for order if an
344 * Alert with Info SMS is received, see IS-91, section 2.6.4.3.1 */
345 #define ORDER_TMO_SHORT 600L
346 #define ORDER_TMO_LONG 10000L
347 #define SMS_SEGMENT_TMO 2000L
348
349 /* Max time (ms) we'll sit in IDLE state before we decide to rescan */
350 #define MAX_REDIRECT_DELAY 31000L
351
352 /* Signaling Tone Guard Delay (ms) - for ST Burst separation on Release */
353 #define GUARD_DELAY 250L
354
355 /* Signaling Tone Burst Durations (ms) */
356 #define FLASH_BURST 400L /* HookFlash */
357 #define HANDOFF_BURST 50L /* Handoff */
358 #define RELEASE_BURST 1800L /* Release */
359
360 /* Timer Values (ms) for Discontinuous Transmission (DTX) */
361 #define DTX_SHORT_DELAY 1500L /* Short Delay fot DTX-High */
362 #define DTX_LONG_DELAY 5000L /* Long delay for DTX-High (Audits) */
363 #define DTX_HILO_INTERVAL 300L /* Hi -> Lo Transition Interval */
364 #define DTX_LOHI_WAIT 200L /* Wait after forced Lo -> High */
365
366/* IS801 Location Services Timers */
367 #define LOC_T1_TIMEOUT 2000L /* Pilot Phase Measurement PREF_RESP_QUAL = 000 */
368 #define LOC_T2_TIMEOUT 4000L /* Pilot Phase Measurement PREF_RESP_QUAL = 001 */
369 #define LOC_T3_TIMEOUT 8000L /* Pilot Phase Measurement PREF_RESP_QUAL = 010 */
370 #define LOC_T4_TIMEOUT 16000L /* Pilot Phase Measurement PREF_RESP_QUAL = 011 */
371 #define LOC_T5_TIMEOUT 32000L /* Pilot Phase Measurement PREF_RESP_QUAL = 100 */
372 #define LOC_T6_TIMEOUT 64000L /* Pilot Phase Measurement PREF_RESP_QUAL = 101 */
373 #define LOC_T7_TIMEOUT 128000L /* Pilot Phase Measurement PREF_RESP_QUAL = 110 */
374 #define LOC_T8_TIMEOUT 256000L /* Pilot Phase Measurement PREF_RESP_QUAL = 111 */
375 #define LOC_T9_TIMEOUT 35000L /* Outstanding Response Timeout */
376 #define LOC_GENERAL_TIMEOUT 300000L /* General Session Keep Alive Time */
377
378 /* From Gen93, the low layer shall report the first frame to PSW after 40ms from PCH wakeup.
379 * Corresponding, which time is 20ms from PCH wakeup before Gen93 projects. */
380 #define SLOTTED_IDLE_HO_DELAY 200L /* There exist PCH message (.e.g Data Burst) large than 4 frames in Sprint.
381 * and paging record maybe located after 200ms from PCH wakeup in Vzw.
382 * Expand this timer length for all network, as it is has not risk. */
383
384 #define E911_ACCESS_RESCAN_TIMEOUT 16000L /* Continuous time for E911 access
385 before triggering a rescan */
386 #define MO_BKOFF_TIMEOUT 2000 /* time out before an 1X MO call can be made. */
387 #define CP_1X_ANTENNA_GRANT_TIMEOUT 15*CP_1_SECOND
388 #define CP_BS_RLO_DELAY_TIMEOUT 60L /* Number of ms to wait before releasing TCH
389 * after Lmd TC Msg Sent Ind is processed for BS RLO.
390 */
391
392 #define T1M_FRAME T1m/20 /* T1m (in frames) */
393 #define T2M_FRAME T2m/20 /* T2m (in frames) */
394 #define T4M_FRAMES T4m/20 /* T4m value in frames */
395 #define T5M_FRAME T5m/20 /* T5m in frames */
396 #define T31M_FRAMES T31m/20 /* T31m value in frames */
397 #define ENG_100MSEC_COUNT CP_100_MSEC/20 /* 5 frames to 100 msec */
398 #define ENG_ONESEC_COUNT CP_1_SECOND/20 /* 50 frames in 1 sec */
399
400#ifdef MTK_DEV_C2K_IRAT
401 #define C2K_LTE_CSFB_TIMEOUT 500L /* timer to wait CSFB confirm from MD1 */
402 #define C2K_REPORT_NO_SVC_AFTER_RESUME_TIMEOUT 5000L /* timer to wait report no service to VAL */
403 #define PS_PROTECT_DELAY_TIMEOUT 500L /* PS protection delay for receiving ECAM after valod Ack */
404 #define CP_C2K_POWERDOWN_IN_SUSPEND_TIMEOUT 5000L /* timer expired to disabled*/
405 #define RSVAS_WAIT_SUSPEND_CNF_TIMEOUT 60*CP_1_SECOND /* timer to wait suspend cnf from CSS */
406 #define RSVAS_WAIT_VIRTUAL_SUSPEND_CNF_TIMEOUT 60*CP_1_SECOND /* timer to wait virtual suspend cnf from CSS */
407 #define RSVAS_WAIT_OCCUPY_IND_TIMEOUT 60*CP_1_SECOND /* timer to wait occupy ind from RSVAS */
408 #define PS_SERVICE_ACCESS_PROTECT_TIMEOUT 15*CP_1_SECOND /* max time to PS service access protect */
409#endif
410
411 #define CP_PAGING_PRIORITY_OPT_TIMER_TIMEOUT 30000 /* Timer for boosting slotted mode paging RF priority */
412
413#ifdef MTK_CBP_ENCRYPT_VOICE
414 #define ENCRYPT_VOICE_PROTECT_TIMEOUT 8000L /* encrypt voice fail after timer expired */
415 #define ENCRYPT_RANDOM_NUMBER_TIMEOUT 1L /* encrypt random number generate timer expired */
416#endif
417 #define CP_IMPROVE_SYNC_PRIO_TIMEOUT 10000L /* when exit flight mode, improve 1x priority when sync acquire*/
418 #define CP_ACCESS_PROTECTION_TIMEOUT 60000L /* ACCESS PROTRCT: can not start access attempt, such as
419 *waiting OCCUPY IND, UIM AUTH */
420 #define CP_IDLE_NO_SLEEP_PROTECT_TIMEOUT 60000L /* Protect 1xRTT does not stay in no slotted Idle mode too long */
421
422 /* Absolute Timers */
423 typedef enum
424 {
425 CP_PILOT_ACQUIRE_TIMER, /* 0 pilot acquisition timer */
426 CP_SYNC_ACQUIRE_TIMER, /* 1 sync acquisition timer */
427 CP_RADIO_TUNE_TIMER, /* 2 radio tune timer */
428 /* BCY 08/25/00: renamed from CP_PCH_MONITOR_TIMER */
429 CP_FCSCH_MONITOR_TIMER, /* 3 new page channel msg timer */
430 CP_SYSTEM_ACCESS_STATE_TIMER, /* 4 System Access State timer */
431 CP_TA_TIMER, /* 5 Access timer */
432 CP_SILENT_RETRY_TIMER, /* 6 Silent retry timer */
433
434 /* KEEP TC TIMERS CONTIGUOUS - remember to update FIRST and LAST TIMER *
435 * definitions in eng_tc.c */
436 CP_TC_N5M_GOOD_FRAMES_TIMER, /* 7 N5m Good TC Frames (TC_INIT) */
437 CP_TC_BS_ACK_TIMER, /* 8 BS Ack Order (TC_INIT) */
438 CP_TC_WAITING_FOR_ORDER_STATE_TIMER, /* 9 Waiting for Order State */
439 CP_TC_WAITING_FOR_ANSWER_STATE_TIMER, /* 10 Waiting for Answer State */
440 CP_TC_RELEASE_STATE_TIMER, /* 11 Release State */
441 CP_TC_FADE_TIMER, /* 12 FTC Supervision Fade */
442 CP_TC_SERV_NEG_SUBFUNCTION_TIMER, /* 13 Service Negotiation Subfnc */
443 CP_TC_CF_PERIODIC_SEARCH_TIMER, /* 14 Cand Freq Periodic Search */
444 CP_TC_PSMM_PERIODIC_TIMER, /* 15 Periodic PSMM timer */
445 CP_TC_HARD_HANDOFF_TIMER, /* 16 HHO w return on fail timer */
446 CP_TC_PING_TIMER, /* 17 CPCCH timer */
447
448 /* KEEP TC TIMERS CONTIGUOUS */
449 CP_TMSI_EXP_TIMER = 19, /* 19 TMSI expiration timer */
450 CP_REG_INIT_TIMER, /* 20 Registration Initialization timer */
451 CP_SSD_UPDATE_TIMER, /* 21 SSD Update Procedure timer */
452 CP_FULL_TMSI_TIMER, /* 22 Full TMSI timer */
453 CP_IDLE_HO_TIMER, /* 23 Idle Handoff timer */
454 CP_SLEEP_WAKEUP_TIMER, /* 24 Sleep wakeup timer */
455 CP_WAIT_FOR_SRCH_RSLTS_TIMER, /* 25 Waiting for search rslts in access entry */
456 CP_EC_IO_TIMER, /* 26 Eo/Io Enhanced Access timer */
457 CP_DELAYED_ORIG_WAITING_TIMER, /* 27 Waiting to do delayed orig timer */
458 CP_EMERGENCY_CALLBACK_MODE_TIMER, /* 28 leave emergency call back mode */
459 CP_SLOTTED_TIMER, /* 29 slotted timer */
460 CP_UNUSED_TIMER, /* 30 UNUSED/AVAILABLE TIMER ID */
461
462 CP_LOC_REQ_TIMER0, /* 31 Location Services Outstanding Request Timer #1 */
463 CP_LOC_REQ_TIMER1, /* 32 Loc Timer #2 */
464 CP_LOC_REQ_TIMER2, /* 33 Loc Timer #3 */
465 CP_LOC_PPM_BTWEEN_FIX_TIMER0, /* 34 Pilot Phase Meas Between Fix timer 0 */
466 CP_LOC_PPM_BTWEEN_FIX_TIMER1, /* 35 Pilot PHase Meas Between Fix timer 1 */
467 CP_LOC_PPM_PREF_RESP_QUAL_TIMER0, /* 36 Time window to respond to PPM Request Timer 0*/
468 CP_LOC_PPM_PREF_RESP_QUAL_TIMER1, /* 37 Time window to respond to PPM Request Timer 1*/
469 CP_LOC_GEN_TIMER0, /* 38 General Keep Alive Session Timer */
470 CP_LOC_GEN_TIMER1, /* 39 */
471 CP_LOC_GEN_TIMER2, /* 40 */
472 CP_LOC_PRM_BTWEEN_FIX_TIMER, /* 41 PseudoRange Meas Between Fix Timer */
473 CP_LOC_ACQ_ASST_FRESH_TIMER, /* 42 Acquisition Assist Refresh Timer */
474 CP_LOC_BS_ALM_FRESH_TIMER, /* 43 BS Almanac Refresh Timer */
475 CP_PE_RC_RETRY_DELAY_TIMER, /* 44 rev sch retry delay order received from BS */
476 CP_PE_RC_RSR_REQ_TIMER, /* 45 1 sec ESCAM timer for resource control */
477 CP_SILENT_RETRY_RESET_TIMER, /* 46 Silent Retry Reset Timer */
478 CP_CSS_REDIR_END_TIMER, /* 47 Redirection End timer */
479 CP_CSS_MORE_PREF_SCAN_TIMER, /* 48 When not most pref sys acq, rescan for better serv */
480 CP_SLOTTED_IDLE_HO_DELAY_TIMER, /* 49 Slotted Idle HO Delay Timer */
481 CP_CDMA_TO_AMPS_ACQ_DELAY_TIMER, /* 50 CDMA to AMPS system selection delay timer */
482 CP_RETRY_ORIG_DELAY_TIMER, /* 51 Orig should not be allowed */
483 CP_TC_SLOTTED_DELAY_TIMER, /* 52 Slotted Paging sleep delay */
484 CP_UNUSED_2_TIMER, /* 53 UNUSED/AVAILABLE TIMER ID */
485 CP_IDLE_STATE_TIMER, /* 54 Slotted Paging sleep delay */
486 /* 55: AVAILABLE */
487 CP_REG_THROTTLING_TIMER = 56, /* 56 Timer for Unsuccessful Registration */
488 CP_CSS_EPRL_ESPM_WAIT_TIMER, /* 57 Time to wait for ESPM to validate
489 System Selection */
490 CP_E911_ACCESS_FAIL_TIMER, /* 58 Rescan after E911_ACCESS_RESCAN_TIMEOUT
491 * of continuous E911 probing */
492 CP_1XMO_BKOFF_TIMER, /* 59 Back off timer before origination request is sent. */
493 CP_NO_SERVICE_TIME, /* 60 SMS timer for no svc */
494 CP_1X_ANTENNA_GRANT_TIMER, /* 61 No Pilot Acq Rsp from L1d */
495 CP_TIMING_CHANGE_TIMER, /* 62 Timing Change substate timer */
496 CP_BS_RELEASE_DELAY_TIMER, /* 63 TCH Release delay for BS RLO */
497
498 CP_LOC_PREEMPTION_TIMER,
499#if defined(MTK_CBP) && defined(MTK_DEV_ENGINEER_MODE)
500 CP_TMSI_DURATION_TIMER, /* 65 TMIS duration TIMER from TSAM */
501#endif
502#ifdef MTK_DEV_C2K_IRAT
503 CP_C2K_LTE_CSFB_TIMER, /* 66 C2K LTE CSFB TIMER */
504 CP_C2K_REPORT_NO_SVC_AFTER_RESUME_TIMER, /* 67 wait for report nosvc timer */
505 CP_PS_PROTECT_DELAY_TIMER, /* 68 PS Protection Delay after Valid Ack */
506 CP_C2K_POWERDOWN_IN_SUSPEND_TIMER, /*69 receive power down in suspend delay timer*/
507 CP_IMPROVE_SYNC_PRIO, /* 70 when exit flight mode, improve 1x priority when sync acquire*/
508#endif
509#ifdef MTK_CBP_ENCRYPT_VOICE
510 CP_ENCRYPT_VOICE_TIMER, /* 71 encrypt voice fail after timer expired */
511 CP_ENCRYPT_RANDOM_NUMBER_TIMER, /* 72 encrypt random number generate timer */
512#endif
513#ifdef MTK_DEV_C2K_IRAT
514 CP_RSVAS_WAIT_SUSPEND_CNF_TIMER, /* 73 PSW wait suspend cnf from CSS timer */
515 CP_RSVAS_WAIT_VIRTUAL_SUSPEND_CNF_TIMER, /* 74 PSW wait virtual suspend cnf from CSS timer */
516 CP_RSVAS_WAIT_OCCUPY_IND_TIMER, /* 75 PSW wait occupy ind from RSVAS timer */
517#endif
518
519 CP_PAGING_PRIORITY_OPT_TIMER, /* 76 Timer for boosting slotted mode paging RF priority */
520
521 CP_ACCESS_PROTECTION_TIMER, /* 77 access protection timer */
522#ifdef MTK_DEV_C2K_IRAT
523 CP_PS_SERVICE_ACCESS_PROTECT_TIMER, /* 78 PS service access protect timer */
524#endif
525 CP_REG_REJECT_BAR_TIMER, /* 79 1xRTT reg reject bar timer*/
526 CP_IDLE_NO_SLEEP_PROTECT_TIMER, /* 80 1xRTT Idle no sleep ptotect timer */
527 NUM_TIMERS /* This one MUST be last!! */
528 }
529CPTimerId;
530
531
532/* NOTE: If this enum is changed, please update ets enum PETimerId in ps_trace.txt */
533
534
535 /* Frame Based Timers */
536 typedef enum
537 {
538 CP_TC_SERVICE_ACTION_FRAME_TIMER, /* Service Action timer */
539 NUM_FRAME_TIMERS /* This one MUST be last!! */
540 }
541CPFrameTimerId;
542
543
544
545
546 /* Call Processing Absolute Timer structure */
547 typedef struct
548 {
549 kal_int16 id; /* Timer ID - for WBIOS */
550 kal_uint32 value; /* Timer Value */
551 } CPTimer;
552
553
554 /* Call Processing Frame Based Timer structure */
555 typedef struct
556 {
557 kal_bool active; /* Frame timer state */
558 kal_uint32 frameCount; /* Current frame count */
559#ifdef TRACEON
560 const char *name; /* Frame Timer Name - for TRACE etc. */
561#endif
562 } CPFrameTimer;
563
564
565/*****************************************************************************
566 * Timer function prototypes
567 ****************************************************************************/
568
569 void cpInitTimers (void);
570 void cpInitNonRsvasTimers(void);
571 kal_bool cpStartTimer (CPTimerId timer, kal_uint32 interval);
572 void cpStopTimer (CPTimerId timer);
573 void cpStopAllNonRsvasTimers(void);
574 kal_bool cpIsTimerActive(CPTimerId timer);
575 kal_bool cpLocateTimer(kal_int16 id, CPTimerId *timer);
576
577#endif /* _CPTIMER_H_ */
578
579