ltq-vdsl/ltq-adsl: fix elapsed time calculation
[openwrt/openwrt.git] / package / kernel / lantiq / ltq-vdsl / patches / 200-fix-elapsed-time.patch
1 --- a/src/include/drv_dsl_cpe_pm_core.h
2 +++ b/src/include/drv_dsl_cpe_pm_core.h
3 @@ -1552,9 +1552,9 @@ typedef struct
4 DSL_boolean_t bShowtimeProcessingStart;
5 /** Showtime reached flag*/
6 DSL_boolean_t bShowtimeInvTrigger;
7 - /** Current Showtime synchronization time to be used, (msec) */
8 + /** Current Showtime synchronization time to be used, (sec) */
9 DSL_uint32_t nCurrShowtimeTime;
10 - /** Showtime synchronization time to be used, (msec) */
11 + /** Showtime synchronization time to be used, (sec) */
12 DSL_uint32_t nElapsedShowtimeTime;
13 /** Actual Line state*/
14 DSL_LineStateValue_t nLineState;
15 --- a/src/pm/drv_dsl_cpe_api_pm.c
16 +++ b/src/pm/drv_dsl_cpe_api_pm.c
17 @@ -1475,7 +1475,7 @@ DSL_Error_t DSL_DRV_PM_ChannelCountersTo
18 }
19
20 /* Fill Total Counters elapsed time*/
21 - pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime/DSL_PM_MSEC;
22 + pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime;
23
24 pChCounters = DSL_DRV_PM_PTR_CHANNEL_COUNTERS_TOTAL(pCounters->nChannel,pCounters->nDirection);
25
26 @@ -1535,7 +1535,7 @@ DSL_Error_t DSL_DRV_PM_ChannelCountersEx
27 }
28
29 /* Fill Total Counters elapsed time*/
30 - pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime/DSL_PM_MSEC;
31 + pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime;
32
33 pChCounters = DSL_DRV_PM_PTR_CHANNEL_COUNTERS_TOTAL_EXT(pCounters->nChannel);
34
35 @@ -2518,7 +2518,7 @@ DSL_Error_t DSL_DRV_PM_DataPathCountersT
36 }
37
38 /* Fill Total Counters elapsed time*/
39 - pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime/DSL_PM_MSEC;
40 + pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime;
41
42 pDpCounters = DSL_DRV_PM_PTR_DATAPATH_COUNTERS_TOTAL(pCounters->nChannel,pCounters->nDirection);
43
44 @@ -3352,7 +3352,7 @@ DSL_Error_t DSL_DRV_PM_DataPathFailureCo
45 }
46
47 /* Fill Total Counters elapsed time*/
48 - pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime/DSL_PM_MSEC;
49 + pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime;
50
51 pDpCounters = DSL_DRV_PM_PTR_DATAPATH_FAILURE_COUNTERS_TOTAL(pCounters->nChannel,pCounters->nDirection);
52
53 @@ -4130,7 +4130,7 @@ DSL_Error_t DSL_DRV_PM_LineSecCountersTo
54 }
55
56 /* Fill Total Counters elapsed time*/
57 - pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime/DSL_PM_MSEC;
58 + pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime;
59
60 pLineCounters = DSL_DRV_PM_PTR_LINE_SEC_COUNTERS_TOTAL(pCounters->nDirection);
61
62 @@ -4787,7 +4787,7 @@ DSL_Error_t DSL_DRV_PM_LineInitCountersT
63 }
64
65 /* Fill Total Counters elapsed time*/
66 - pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime/DSL_PM_MSEC;
67 + pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime;
68
69 pLinitCounters = DSL_DRV_PM_PTR_LINE_INIT_COUNTERS_TOTAL();
70
71 @@ -5240,7 +5240,7 @@ DSL_Error_t DSL_DRV_PM_LineEventShowtime
72 }
73
74 /* Fill Total Counters elapsed time*/
75 - pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime/DSL_PM_MSEC;
76 + pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime;
77
78 pLfCounters = DSL_DRV_PM_PTR_LINE_EVENT_SHOWTIME_COUNTERS_TOTAL(pCounters->nDirection);
79
80 @@ -5720,7 +5720,7 @@ DSL_Error_t DSL_DRV_PM_ReTxCountersTotal
81 }
82
83 /* Fill Total Counters elapsed time*/
84 - pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime/DSL_PM_MSEC;
85 + pCounters->total.nElapsedTime = DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime;
86
87 pReTxCounters = DSL_DRV_PM_PTR_RETX_COUNTERS_TOTAL(pCounters->nDirection);
88
89 --- a/src/pm/drv_dsl_cpe_pm_core.c
90 +++ b/src/pm/drv_dsl_cpe_pm_core.c
91 @@ -60,6 +60,7 @@ static DSL_Error_t DSL_DRV_PM_SyncTimeUp
92 {
93 DSL_Error_t nErrCode = DSL_SUCCESS;
94 DSL_uint32_t msecTimeFrame = DSL_PM_COUNTER_POLLING_CYCLE,
95 + secTimeFrame = DSL_PM_COUNTER_POLLING_CYCLE/DSL_PM_MSEC,
96 nCurrMsTime = 0;
97 #ifdef INCLUDE_DSL_CPE_PM_HISTORY
98 DSL_uint32_t nCurrSysTime = 0, nPrevElapsedTime = 0;
99 @@ -99,10 +100,13 @@ static DSL_Error_t DSL_DRV_PM_SyncTimeUp
100 {
101 /* Get elapsed time [msec] since the last entry*/
102 msecTimeFrame = nCurrMsTime - DSL_DRV_PM_CONTEXT(pContext)->nLastMsTimeCheck;
103 +
104 + /* Get elapsed time [sec] since the last entry*/
105 + secTimeFrame = (nCurrMsTime/DSL_PM_MSEC) - (DSL_DRV_PM_CONTEXT(pContext)->nLastMsTimeCheck/DSL_PM_MSEC);
106 }
107
108 /* Get Total Elapsed Time Since the PM module startup*/
109 - DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime += msecTimeFrame;
110 + DSL_DRV_PM_CONTEXT(pContext)->nPmTotalElapsedTime += secTimeFrame;
111
112 /* Set last time check to the current time*/
113 DSL_DRV_PM_CONTEXT(pContext)->nLastMsTimeCheck = nCurrMsTime;
114 @@ -140,7 +144,7 @@ static DSL_Error_t DSL_DRV_PM_SyncTimeUp
115 else
116 {
117 /* Update current showtime elapsed time*/
118 - DSL_DRV_PM_CONTEXT(pContext)->nCurrShowtimeTime += (msecTimeFrame/DSL_PM_MSEC);
119 + DSL_DRV_PM_CONTEXT(pContext)->nCurrShowtimeTime += secTimeFrame;
120 DSL_DRV_PM_CONTEXT(pContext)->nElapsedShowtimeTime =
121 DSL_DRV_PM_CONTEXT(pContext)->nCurrShowtimeTime;
122 }