comparison src/ui3/mfw/ti1_tmr.c @ 420:e8ddbb0837ed

src/ui3: initial import of TCS3/LoCosto BMI & MFW code
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 21 Jan 2018 03:09:00 +0000
parents
children
comparison
equal deleted inserted replaced
419:59143cd42ec7 420:e8ddbb0837ed
1 /*
2 +--------------------------------------------------------------------+
3 | PROJECT: MMI-Framework (8417) $Workfile:: ti1_tmr.c $|
4 | $Author:: Es $ CONDAT GmbH $Revision:: 8 $|
5 | CREATED: 28.01.99 $Modtime:: 18.02.00 17:57 $|
6 | STATE : code |
7 +--------------------------------------------------------------------+
8
9 MODULE : TI1_TMR
10
11 PURPOSE : timer driver interface (TI1 VERSION)
12 uses only one system timer (programmed in milliseconds)
13
14 EXPORT :
15
16 TO DO :
17
18 $History:: ti1_tmr.c $
19 *
20 *Sep 19, 2006 DRT OMAPS00091093 x0047075(Archana)
21 * Description: optimizing of the timer related vsi interface
22 * Solution:Replacing the Vsi_t_start ,Vsi_t_stop with TIMER_START and TIMER_STOP
23 ***************** Version 8 *****************
24 * User: Es Date: 18.02.00 Time: 17:58
25 * Updated in $/GSM/Condat/MS/SRC/MFW
26 * tmrStart(): bug in inner 'if'-clause
27 *
28 * ***************** Version 7 *****************
29 * User: Es Date: 6.07.99 Time: 12:41
30 * Updated in $/GSM/DEV/MS/SRC/MFW
31 *
32 * ***************** Version 6 *****************
33 * User: Es Date: 14.06.99 Time: 12:15
34 * Updated in $/GSM/DEV/MS/SRC/MFW
35 *
36 * ***************** Version 5 *****************
37 * User: Es Date: 1.04.99 Time: 17:07
38 * Updated in $/GSM/DEV/MS/SRC/MFW
39 * removed lots of traces
40 *
41 * ***************** Version 4 *****************
42 * User: Es Date: 17.02.99 Time: 19:11
43 * Updated in $/GSM/DEV/MS/SRC/MFW
44 *
45 * ***************** Version 3 *****************
46 * User: Es Date: 14.02.99 Time: 20:57
47 * Updated in $/GSM/DEV/MS/SRC/MFW
48 *
49 * ***************** Version 2 *****************
50 * User: Es Date: 11.02.99 Time: 16:43
51 * Updated in $/GSM/DEV/MS/SRC/MFW
52 *
53 * ***************** Version 1 *****************
54 * User: Es Date: 9.02.99 Time: 14:54
55 * Created in $/GSM/DEV/MS/SRC/MFW
56 * TI display & keyboard interface for MFW
57 */
58 #define ENTITY_MFW
59
60 #if defined (NEW_FRAME)
61
62 #include "typedefs.h"
63 #include "vsi.h"
64 #include "custom.h"
65 #include "gsm.h"
66
67 #else
68
69 #include "STDDEFS.H"
70 #include "custom.h"
71 #include "gsm.h"
72 #include "vsi.h"
73
74 #endif
75
76 #include "mfw_mfw.h"
77 #include "mfw_sys.h"
78 #include "drv_tmr.h"
79 #include "l4_tim.h"
80 #include "ti1_tmr.h"
81
82 #include "cus_aci.h"
83
84 #if !defined (NEW_FRAME)
85 void aci_flush_fifo (T_VSI_THANDLE timer);
86 #endif
87
88 static void (*sig) (void) = 0; /* timer signaling function */
89 #if !defined (NEW_FRAME)
90 static T_VSI_THANDLE timer = 0; /* VSI timer handle */
91 #endif
92
93 /*
94 +--------------------------------------------------------------------+
95 | PROJECT : MMI-Framework (8417) MODULE : ti1_tmr |
96 | STATE : code ROUTINE : tmrTimer |
97 +--------------------------------------------------------------------+
98
99 PURPOSE : forward timer signal
100
101 */
102 #if defined (NEW_FRAME)
103
104 int mfw_timeout (USHORT t)
105 {
106 if (sig AND t EQ MFW_TIMER)
107 {
108 sig();
109 return 1;
110 }
111 return 0;
112 }
113
114 #else
115
116 int mfw_timeout (T_VSI_THANDLE t)
117 {
118 if (sig && t == timer)
119 {
120 sig();
121 return 1;
122 }
123
124 return 0;
125 }
126 #endif
127
128 /*
129 +--------------------------------------------------------------------+
130 | PROJECT : MMI-Framework (8417) MODULE : ti1_tmr |
131 | STATE : code ROUTINE : tmrInit |
132 +--------------------------------------------------------------------+
133
134 PURPOSE : initialize timer driver
135
136 */
137
138 #if defined (NEW_FRAME)
139
140 int tmrInit (void (*s)(void))
141 {
142 sig = s;
143
144 TRACE_FUNCTION("tmrInit()");
145
146 if (!s)
147 return 0;
148
149 return 1;
150 }
151
152 #else
153
154 int tmrInit (void (*s)(void))
155 {
156 sig = s;
157
158 TRACE_FUNCTION("tmrInit()");
159
160 if (!s)
161 return 0;
162
163 timer = vsi_t_open(VSI_CALLER "mfwTimer");
164 if (timer < VSI_OK)
165 {
166 TRACE_ERROR("TI1_TMR_INIT: No Timer");
167 sig = 0;
168 return 0;
169 }
170
171 return 1;
172 }
173 #endif
174
175 /*
176 +--------------------------------------------------------------------+
177 | PROJECT : MMI-Framework (8417) MODULE : ti1_tmr |
178 | STATE : code ROUTINE : tmrExit |
179 +--------------------------------------------------------------------+
180
181 PURPOSE : finalize timer driver
182
183 */
184
185 #if defined (NEW_FRAME)
186
187 int tmrExit (void)
188 {
189 TRACE_FUNCTION("tmrExit()");
190
191 if (sig)
192 {
193 tmrStop();
194 }
195 sig = 0;
196
197 return 1;
198 }
199
200 #else
201
202 int tmrExit (void)
203 {
204 TRACE_FUNCTION("tmrExit()");
205
206 if (sig)
207 {
208 tmrStop();
209 vsi_t_close(VSI_CALLER timer);
210 }
211 timer = 0;
212 sig = 0;
213
214 return 1;
215 }
216
217 #endif
218
219 /*
220 +--------------------------------------------------------------------+
221 | PROJECT : MMI-Framework (8417) MODULE : ti1_tmr |
222 | STATE : code ROUTINE : tmrStart |
223 +--------------------------------------------------------------------+
224
225 PURPOSE : start timer
226
227 */
228 #if defined (NEW_FRAME)
229
230 void tmrStart (ULONG ms)
231 {
232 if (sig)
233 {
234 if (ms < 5) /* at least one tick */
235 ms = 5; /* set to minimum */
236 // Sep 19, 2006 DRT OMAPS00091093 x0047075(Archana)
237 //Replacing Vsi_t_start with TIMER_START
238 TIMER_START(aci_handle, MFW_TIMER, ms);
239 }
240 }
241
242 #else
243
244 void tmrStart (U32 ms)
245 {
246 T_VSI_TVALUE toTime; /* VSI timer value */
247
248 if (sig && timer >= VSI_OK)
249 {
250 toTime = (ms * TMR_PREC) / TMR_TICK;
251 if (ms && !toTime)
252 toTime = 1; /* set to minimum */
253
254 // Sep 19, 2006 DRT OMAPS00091093 x0047075(Archana)
255 //Replacing Vsi_t_start with TIMER_START
256 TIMER_START(VSI_CALLER timer,toTime);
257 }
258 }
259 #endif
260
261 /*
262 +--------------------------------------------------------------------+
263 | PROJECT : MMI-Framework (8417) MODULE : ti1_tmr |
264 | STATE : code ROUTINE : tmrStop |
265 +--------------------------------------------------------------------+
266
267 PURPOSE : stop timer
268
269 */
270
271 #if defined (NEW_FRAME)
272
273 ULONG tmrStop (void)
274 {
275 T_TIME left; /* VSI timer value */
276
277 if (sig)
278 {
279 vsi_t_status(VSI_CALLER MFW_TIMER, &left);
280 // Sep 19, 2006 DRT OMAPS00091093 x0047075(Archana)
281 //Replacing Vsi_t_stop with TIMER_STOP
282 TIMER_STOP(aci_handle, MFW_TIMER);
283 return (left);
284 }
285 return 0;
286 }
287
288 #else
289
290 U32 tmrStop (void)
291 {
292 T_VSI_TVALUE left; /* VSI timer value */
293
294 if (sig && timer >= VSI_OK)
295 {
296 vsi_t_status(VSI_CALLER timer,&left);
297 // Sep 19, 2006 DRT OMAPS00091093 x0047075(Archana)
298 //Replacing Vsi_t_stop with TIMER_STOP
299 TIMER_STOP(VSI_CALLER timer);
300 aci_flush_fifo(timer);
301 return ((left * TMR_TICK) / TMR_PREC);
302 }
303
304 return 0;
305 }
306
307 #endif
308
309 /*
310 +--------------------------------------------------------------------+
311 | PROJECT : MMI-Framework (8417) MODULE : ti1_tmr |
312 | STATE : code ROUTINE : tmrLeft |
313 +--------------------------------------------------------------------+
314
315 PURPOSE : report left time
316
317 */
318
319 #if defined (NEW_FRAME)
320
321 ULONG tmrLeft (void)
322 {
323 T_TIME left; /* VSI timer value */
324
325 if (sig)
326 {
327 vsi_t_status(VSI_CALLER MFW_TIMER, &left);
328 return (left);
329 }
330 return 0;
331 }
332
333 #else
334
335 U32 tmrLeft (void)
336 {
337 T_VSI_TVALUE left; /* VSI timer value */
338
339 if (sig && timer >= VSI_OK)
340 {
341 vsi_t_status(VSI_CALLER timer,&left);
342 return ((left * TMR_TICK) / TMR_PREC);
343 }
344
345 return 0;
346 }
347
348 #endif