1
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
3
File: oct6100_chip_stats.c
5
Copyright (c) 2001-2006 Octasic Inc.
9
This file contains functions used to retreive the OCT6100 chip stats.
11
This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
12
free software; you can redistribute it and/or modify it under the terms of
13
the GNU General Public License as published by the Free Software Foundation;
14
either version 2 of the License, or (at your option) any later version.
16
The OCT6100 GPL API is distributed in the hope that it will be useful, but
17
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
18
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21
You should have received a copy of the GNU General Public License
22
along with the OCT6100 GPL API; if not, write to the Free Software
23
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
25
$Octasic_Release: OCT612xAPI-01.00-PR43 $
27
$Octasic_Revision: 87 $
29
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
32
/***************************** INCLUDE FILES *******************************/
37
#include "oct6100api/oct6100_defines.h"
38
#include "oct6100api/oct6100_errors.h"
39
#include "oct6100api/oct6100_apiud.h"
41
#include "apilib/octapi_llman.h"
43
#include "oct6100api/oct6100_tlv_inst.h"
44
#include "oct6100api/oct6100_chip_open_inst.h"
45
#include "oct6100api/oct6100_chip_stats_inst.h"
46
#include "oct6100api/oct6100_interrupts_inst.h"
47
#include "oct6100api/oct6100_remote_debug_inst.h"
48
#include "oct6100api/oct6100_debug_inst.h"
49
#include "oct6100api/oct6100_api_inst.h"
51
#include "oct6100api/oct6100_interrupts_pub.h"
52
#include "oct6100api/oct6100_chip_open_pub.h"
53
#include "oct6100api/oct6100_channel_pub.h"
54
#include "oct6100api/oct6100_chip_stats_pub.h"
56
#include "oct6100_chip_open_priv.h"
57
#include "oct6100_chip_stats_priv.h"
58
#include "oct6100_miscellaneous_priv.h"
59
#include "oct6100_chip_stats_priv.h"
61
/**************************** PUBLIC FUNCTIONS *****************************/
64
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
66
Function: Oct6100ChipGetStats
68
Description: Retreives the chip statistics and configuration.
70
-------------------------------------------------------------------------------
71
| Argument | Description
72
-------------------------------------------------------------------------------
73
f_pApiInstance Pointer to API instance. This memory is used to keep the
74
present state of the chip and all its resources.
76
f_pChipStats Pointer to a tOCT6100_CHIP_STATS structure.
78
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
79
#if !SKIP_Oct6100ChipGetStatsDef
80
UINT32 Oct6100ChipGetStatsDef(
81
tPOCT6100_CHIP_STATS f_pChipStats )
83
f_pChipStats->fResetChipStats = FALSE;
85
f_pChipStats->ulNumberChannels = cOCT6100_INVALID_STAT;
86
f_pChipStats->ulNumberTsiCncts = cOCT6100_INVALID_STAT;
87
f_pChipStats->ulNumberConfBridges = cOCT6100_INVALID_STAT;
88
f_pChipStats->ulNumberPlayoutBuffers = cOCT6100_INVALID_STAT;
89
f_pChipStats->ulPlayoutFreeMemSize = cOCT6100_INVALID_STAT;
91
f_pChipStats->ulNumberPhasingTssts = cOCT6100_INVALID_STAT;
92
f_pChipStats->ulNumberAdpcmChannels = cOCT6100_INVALID_STAT;
94
f_pChipStats->ulH100OutOfSynchCount = cOCT6100_INVALID_STAT;
95
f_pChipStats->ulH100ClockABadCount = cOCT6100_INVALID_STAT;
96
f_pChipStats->ulH100FrameABadCount = cOCT6100_INVALID_STAT;
97
f_pChipStats->ulH100ClockBBadCount = cOCT6100_INVALID_STAT;
98
f_pChipStats->ulInternalReadTimeoutCount = cOCT6100_INVALID_STAT;
99
f_pChipStats->ulSdramRefreshTooLateCount = cOCT6100_INVALID_STAT;
100
f_pChipStats->ulPllJitterErrorCount = cOCT6100_INVALID_STAT;
102
f_pChipStats->ulOverflowToneEventsCount = cOCT6100_INVALID_STAT;
103
f_pChipStats->ulSoftOverflowToneEventsCount = cOCT6100_INVALID_STAT;
104
f_pChipStats->ulSoftOverflowBufferPlayoutEventsCount = cOCT6100_INVALID_STAT;
108
return cOCT6100_ERR_OK;
113
#if !SKIP_Oct6100ChipGetStats
114
UINT32 Oct6100ChipGetStats(
115
tPOCT6100_INSTANCE_API f_pApiInstance,
116
tPOCT6100_CHIP_STATS f_pChipStats )
118
tOCT6100_SEIZE_SERIALIZE_OBJECT SeizeSerObj;
119
tOCT6100_RELEASE_SERIALIZE_OBJECT ReleaseSerObj;
120
UINT32 ulSerRes = cOCT6100_ERR_OK;
121
UINT32 ulFncRes = cOCT6100_ERR_OK;
123
/* Set the process context of the serialize structure. */
124
SeizeSerObj.pProcessContext = f_pApiInstance->pProcessContext;
125
ReleaseSerObj.pProcessContext = f_pApiInstance->pProcessContext;
127
/* Seize all list semaphores needed by this function. */
128
SeizeSerObj.ulSerialObjHndl = f_pApiInstance->ulApiSerObj;
129
SeizeSerObj.ulTryTimeMs = cOCT6100_WAIT_INFINITELY;
130
ulSerRes = Oct6100UserSeizeSerializeObject( &SeizeSerObj );
131
if ( ulSerRes == cOCT6100_ERR_OK )
133
/* Call the serialized function. */
134
ulFncRes = Oct6100ChipGetStatsSer( f_pApiInstance, f_pChipStats );
141
/* Release the seized semaphores. */
142
ReleaseSerObj.ulSerialObjHndl = f_pApiInstance->ulApiSerObj;
143
ulSerRes = Oct6100UserReleaseSerializeObject( &ReleaseSerObj );
145
/* If an error occured then return the error code. */
146
if ( ulSerRes != cOCT6100_ERR_OK )
148
if ( ulFncRes != cOCT6100_ERR_OK )
151
return cOCT6100_ERR_OK;
156
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
158
Function: Oct6100ChipGetImageInfo
160
Description: Retrieves the chip image information indicating the supported
163
-------------------------------------------------------------------------------
164
| Argument | Description
165
-------------------------------------------------------------------------------
166
f_pApiInstance Pointer to API instance. This memory is used to keep the
167
present state of the chip and all its resources.
169
f_pChipImageInfo Pointer to a tPOCT6100_CHIP_IMAGE_INFO structure.
171
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
172
#if !SKIP_Oct6100ChipGetImageInfoDef
173
UINT32 Oct6100ChipGetImageInfoDef(
174
tPOCT6100_CHIP_IMAGE_INFO f_pChipImageInfo )
178
Oct6100UserMemSet( f_pChipImageInfo->szVersionNumber, 0x0, cOCT6100_VERSION_NUMBER_MAX_SIZE );
180
f_pChipImageInfo->fBufferPlayout = FALSE;
181
f_pChipImageInfo->fAdaptiveNoiseReduction = FALSE;
182
f_pChipImageInfo->fSoutNoiseBleaching = FALSE;
183
f_pChipImageInfo->fConferencingNoiseReduction = FALSE;
184
f_pChipImageInfo->fAutoLevelControl = FALSE;
185
f_pChipImageInfo->fHighLevelCompensation = FALSE;
186
f_pChipImageInfo->fSilenceSuppression = FALSE;
188
f_pChipImageInfo->fAdpcm = FALSE;
189
f_pChipImageInfo->fConferencing = FALSE;
190
f_pChipImageInfo->fDominantSpeaker = FALSE;
191
f_pChipImageInfo->ulMaxChannels = cOCT6100_INVALID_VALUE;
192
f_pChipImageInfo->ulNumTonesAvailable = cOCT6100_INVALID_VALUE;
193
f_pChipImageInfo->ulToneProfileNumber = cOCT6100_INVALID_VALUE;
194
f_pChipImageInfo->ulMaxTailDisplacement = cOCT6100_INVALID_VALUE;
195
f_pChipImageInfo->ulBuildId = cOCT6100_INVALID_VALUE;
196
f_pChipImageInfo->ulMaxTailLength = cOCT6100_INVALID_VALUE;
197
f_pChipImageInfo->ulDebugEventSize = cOCT6100_INVALID_VALUE;
198
f_pChipImageInfo->ulMaxPlayoutEvents = cOCT6100_INVALID_VALUE;
199
f_pChipImageInfo->ulImageType = cOCT6100_INVALID_VALUE;
201
f_pChipImageInfo->fAcousticEcho = FALSE;
202
f_pChipImageInfo->fAecTailLength = FALSE;
203
f_pChipImageInfo->fToneRemoval = FALSE;
205
f_pChipImageInfo->fDefaultErl = FALSE;
206
f_pChipImageInfo->fNonLinearityBehaviorA = FALSE;
207
f_pChipImageInfo->fNonLinearityBehaviorB = FALSE;
208
f_pChipImageInfo->fPerChannelTailDisplacement = FALSE;
209
f_pChipImageInfo->fPerChannelTailLength = FALSE;
210
f_pChipImageInfo->fListenerEnhancement = FALSE;
211
f_pChipImageInfo->fRoutNoiseReduction = FALSE;
212
f_pChipImageInfo->fAnrSnrEnhancement = FALSE;
213
f_pChipImageInfo->fAnrVoiceNoiseSegregation = FALSE;
214
f_pChipImageInfo->fToneDisablerVqeActivationDelay = FALSE;
215
f_pChipImageInfo->fMusicProtection = FALSE;
216
f_pChipImageInfo->fDoubleTalkBehavior = FALSE;
217
f_pChipImageInfo->fIdleCodeDetection = TRUE;
218
f_pChipImageInfo->fSinLevel = TRUE;
219
f_pChipImageInfo->fResetAlcOnTones = FALSE;
220
f_pChipImageInfo->fAlcNoiseBleedOutTime = FALSE;
222
for ( i = 0; i < cOCT6100_MAX_TONE_EVENT; i++ )
224
Oct6100UserMemSet( f_pChipImageInfo->aToneInfo[ i ].aszToneName, 0x00, cOCT6100_TLV_MAX_TONE_NAME_SIZE );
225
f_pChipImageInfo->aToneInfo[ i ].ulDetectionPort = cOCT6100_INVALID_PORT;
226
f_pChipImageInfo->aToneInfo[ i ].ulToneID = cOCT6100_INVALID_VALUE;
229
return cOCT6100_ERR_OK;
234
#if !SKIP_Oct6100ChipGetImageInfo
235
UINT32 Oct6100ChipGetImageInfo(
236
tPOCT6100_INSTANCE_API f_pApiInstance,
237
tPOCT6100_CHIP_IMAGE_INFO f_pChipImageInfo )
239
tPOCT6100_API_IMAGE_INFO pImageInfo;
242
/* Get local pointer(s). */
243
pImageInfo = &f_pApiInstance->pSharedInfo->ImageInfo;
245
Oct6100UserMemCopy( f_pChipImageInfo->szVersionNumber, pImageInfo->szVersionNumber, cOCT6100_VERSION_NUMBER_MAX_SIZE );
247
/* Copy the customer info. */
248
f_pChipImageInfo->ulBuildId = pImageInfo->ulBuildId;
250
/* Copy the features list. */
251
f_pChipImageInfo->fBufferPlayout = pImageInfo->fBufferPlayout;
252
f_pChipImageInfo->fAdaptiveNoiseReduction = pImageInfo->fAdaptiveNoiseReduction;
253
f_pChipImageInfo->fSoutNoiseBleaching = pImageInfo->fSoutNoiseBleaching;
254
f_pChipImageInfo->fSilenceSuppression = pImageInfo->fSilenceSuppression;
256
f_pChipImageInfo->fAdpcm = pImageInfo->fAdpcm;
257
f_pChipImageInfo->fConferencing = pImageInfo->fConferencing;
258
f_pChipImageInfo->fDominantSpeaker = pImageInfo->fDominantSpeakerEnabled;
259
f_pChipImageInfo->fConferencingNoiseReduction = pImageInfo->fConferencingNoiseReduction;
260
f_pChipImageInfo->fAcousticEcho = pImageInfo->fAcousticEcho;
261
f_pChipImageInfo->fAecTailLength = pImageInfo->fAecTailLength;
262
f_pChipImageInfo->fDefaultErl = pImageInfo->fDefaultErl;
263
f_pChipImageInfo->fToneRemoval = pImageInfo->fToneRemoval;
265
f_pChipImageInfo->fNonLinearityBehaviorA = pImageInfo->fNonLinearityBehaviorA;
266
f_pChipImageInfo->fNonLinearityBehaviorB = pImageInfo->fNonLinearityBehaviorB;
267
f_pChipImageInfo->fPerChannelTailDisplacement = pImageInfo->fPerChannelTailDisplacement;
268
f_pChipImageInfo->fListenerEnhancement = pImageInfo->fListenerEnhancement;
269
f_pChipImageInfo->fRoutNoiseReduction = pImageInfo->fRoutNoiseReduction;
270
f_pChipImageInfo->fAnrSnrEnhancement = pImageInfo->fAnrSnrEnhancement;
271
f_pChipImageInfo->fAnrVoiceNoiseSegregation = pImageInfo->fAnrVoiceNoiseSegregation;
272
f_pChipImageInfo->fMusicProtection = pImageInfo->fMusicProtection;
273
f_pChipImageInfo->fIdleCodeDetection = pImageInfo->fIdleCodeDetection;
274
f_pChipImageInfo->fSinLevel = pImageInfo->fSinLevel;
275
f_pChipImageInfo->fDoubleTalkBehavior = pImageInfo->fDoubleTalkBehavior;
276
f_pChipImageInfo->fHighLevelCompensation = pImageInfo->fRinHighLevelCompensation;
277
f_pChipImageInfo->fAlcNoiseBleedOutTime = pImageInfo->fAlcNoiseBleedOutTime;
279
if ( ( pImageInfo->fRinAutoLevelControl == TRUE ) && ( pImageInfo->fSoutAutoLevelControl == TRUE ) )
280
f_pChipImageInfo->fAutoLevelControl = TRUE;
282
f_pChipImageInfo->fAutoLevelControl = FALSE;
284
if ( ( pImageInfo->fResetRinAlcOnTones == TRUE ) || ( pImageInfo->fResetSoutAlcOnTones == TRUE ) )
285
f_pChipImageInfo->fResetAlcOnTones = TRUE;
287
f_pChipImageInfo->fResetAlcOnTones = FALSE;
289
f_pChipImageInfo->ulMaxChannels = pImageInfo->usMaxNumberOfChannels;
290
f_pChipImageInfo->ulNumTonesAvailable = pImageInfo->byNumToneDetectors;
291
f_pChipImageInfo->ulToneProfileNumber = pImageInfo->ulToneProfileNumber;
292
f_pChipImageInfo->ulMaxTailDisplacement = pImageInfo->usMaxTailDisplacement;
293
f_pChipImageInfo->ulMaxTailLength = pImageInfo->usMaxTailLength;
294
f_pChipImageInfo->fPerChannelTailLength = pImageInfo->fPerChannelTailLength;
295
f_pChipImageInfo->ulDebugEventSize = f_pApiInstance->pSharedInfo->DebugInfo.ulDebugEventSize;
296
f_pChipImageInfo->fToneDisablerVqeActivationDelay = pImageInfo->fToneDisablerVqeActivationDelay;
297
f_pChipImageInfo->ulMaxPlayoutEvents = pImageInfo->byMaxNumberPlayoutEvents - 1; /* 127 or 31 */
298
f_pChipImageInfo->ulImageType = pImageInfo->byImageType;
300
for ( i = 0; i < cOCT6100_MAX_TONE_EVENT; i++ )
302
Oct6100UserMemCopy( f_pChipImageInfo->aToneInfo[ i ].aszToneName, pImageInfo->aToneInfo[ i ].aszToneName, cOCT6100_TLV_MAX_TONE_NAME_SIZE );
303
f_pChipImageInfo->aToneInfo[ i ].ulDetectionPort = pImageInfo->aToneInfo[ i ].ulDetectionPort;
304
f_pChipImageInfo->aToneInfo[ i ].ulToneID = pImageInfo->aToneInfo[ i ].ulToneID;
307
return cOCT6100_ERR_OK;
312
/**************************** PRIVATE FUNCTIONS ****************************/
314
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
316
Function: Oct6100ApiChipStatsSwInit
318
Description: Initializes portions of API instance associated to chip stats.
320
-------------------------------------------------------------------------------
321
| Argument | Description
322
-------------------------------------------------------------------------------
323
f_pApiInstance Pointer to API instance. This memory is used to keep
324
the present state of the chip and all its resources.
326
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
327
#if !SKIP_Oct6100ApiChipStatsSwInit
328
UINT32 Oct6100ApiChipStatsSwInit(
329
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance )
331
tPOCT6100_SHARED_INFO pSharedInfo;
333
/* Get local pointer to shared portion of API instance. */
334
pSharedInfo = f_pApiInstance->pSharedInfo;
336
/* Initialize chip stats. */
337
pSharedInfo->ErrorStats.fFatalChipError = FALSE;
339
pSharedInfo->ErrorStats.ulH100ClkABadCnt = 0;
340
pSharedInfo->ErrorStats.ulH100ClkBBadCnt = 0;
341
pSharedInfo->ErrorStats.ulH100FrameABadCnt = 0;
342
pSharedInfo->ErrorStats.ulH100OutOfSyncCnt = 0;
344
pSharedInfo->ErrorStats.ulInternalReadTimeoutCnt = 0;
345
pSharedInfo->ErrorStats.ulSdramRefreshTooLateCnt = 0;
346
pSharedInfo->ErrorStats.ulPllJitterErrorCnt = 0;
347
pSharedInfo->ErrorStats.ulOverflowToneEventsCnt = 0;
351
pSharedInfo->ErrorStats.ulToneDetectorErrorCnt = 0;
353
/* Init the chip stats. */
354
pSharedInfo->ChipStats.usNumberChannels = 0;
355
pSharedInfo->ChipStats.usNumberBiDirChannels = 0;
356
pSharedInfo->ChipStats.usNumberTsiCncts = 0;
357
pSharedInfo->ChipStats.usNumberConfBridges = 0;
358
pSharedInfo->ChipStats.usNumberPlayoutBuffers = 0;
359
pSharedInfo->ChipStats.usNumberActiveBufPlayoutPorts = 0;
360
pSharedInfo->ChipStats.ulPlayoutMemUsed = 0;
361
pSharedInfo->ChipStats.usNumEcChanUsingMixer = 0;
363
pSharedInfo->ChipStats.usNumberPhasingTssts = 0;
364
pSharedInfo->ChipStats.usNumberAdpcmChans = 0;
366
return cOCT6100_ERR_OK;
371
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
373
Function: Oct6100ChipGetStatsSer
375
Description: Serialized function retreiving the chip statistics.
377
-------------------------------------------------------------------------------
378
| Argument | Description
379
-------------------------------------------------------------------------------
380
f_pApiInstance Pointer to API instance. This memory is used to keep the
381
present state of the chip and all its resources.
383
f_pChipStats Pointer to master mode configuration structure.
385
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
386
#if !SKIP_Oct6100ChipGetStatsSer
387
UINT32 Oct6100ChipGetStatsSer(
388
IN OUT tPOCT6100_INSTANCE_API f_pApiInstance,
389
OUT tPOCT6100_CHIP_STATS f_pChipStats )
391
tPOCT6100_SHARED_INFO pSharedInfo;
393
/* Get local pointer(s). */
394
pSharedInfo = f_pApiInstance->pSharedInfo;
396
f_pChipStats->ulNumberChannels = pSharedInfo->ChipStats.usNumberChannels;
397
f_pChipStats->ulNumberTsiCncts = pSharedInfo->ChipStats.usNumberTsiCncts;
398
f_pChipStats->ulNumberConfBridges = pSharedInfo->ChipStats.usNumberConfBridges;
399
f_pChipStats->ulNumberPlayoutBuffers = pSharedInfo->ChipStats.usNumberPlayoutBuffers;
400
f_pChipStats->ulPlayoutFreeMemSize = ( f_pApiInstance->pSharedInfo->MiscVars.ulTotalMemSize - ( f_pApiInstance->pSharedInfo->MemoryMap.ulFreeMemBaseAddress - cOCT6100_EXTERNAL_MEM_BASE_ADDRESS ) ) - ( pSharedInfo->ChipStats.ulPlayoutMemUsed );
402
f_pChipStats->ulNumberPhasingTssts = pSharedInfo->ChipStats.usNumberPhasingTssts;
403
f_pChipStats->ulNumberAdpcmChannels = pSharedInfo->ChipStats.usNumberAdpcmChans;
405
/* Check the input parameters. */
406
if ( f_pChipStats->fResetChipStats != TRUE &&
407
f_pChipStats->fResetChipStats != FALSE )
408
return cOCT6100_ERR_CHIP_STATS_RESET;
410
if ( f_pChipStats->fResetChipStats == TRUE )
412
pSharedInfo->ErrorStats.ulH100OutOfSyncCnt = 0;
413
pSharedInfo->ErrorStats.ulH100ClkABadCnt = 0;
414
pSharedInfo->ErrorStats.ulH100FrameABadCnt = 0;
415
pSharedInfo->ErrorStats.ulH100ClkBBadCnt = 0;
417
pSharedInfo->ErrorStats.ulInternalReadTimeoutCnt = 0;
418
pSharedInfo->ErrorStats.ulPllJitterErrorCnt = 0;
419
pSharedInfo->ErrorStats.ulSdramRefreshTooLateCnt = 0;
421
pSharedInfo->ErrorStats.ulOverflowToneEventsCnt = 0;
422
pSharedInfo->SoftBufs.ulToneEventBufferOverflowCnt = 0;
423
pSharedInfo->SoftBufs.ulBufPlayoutEventBufferOverflowCnt = 0;
428
f_pChipStats->ulH100OutOfSynchCount = pSharedInfo->ErrorStats.ulH100OutOfSyncCnt;
429
f_pChipStats->ulH100ClockABadCount = pSharedInfo->ErrorStats.ulH100ClkABadCnt;
430
f_pChipStats->ulH100FrameABadCount = pSharedInfo->ErrorStats.ulH100FrameABadCnt;
431
f_pChipStats->ulH100ClockBBadCount = pSharedInfo->ErrorStats.ulH100ClkBBadCnt;
433
f_pChipStats->ulInternalReadTimeoutCount = pSharedInfo->ErrorStats.ulInternalReadTimeoutCnt;
434
f_pChipStats->ulPllJitterErrorCount = pSharedInfo->ErrorStats.ulPllJitterErrorCnt;
435
f_pChipStats->ulSdramRefreshTooLateCount = pSharedInfo->ErrorStats.ulSdramRefreshTooLateCnt;
437
f_pChipStats->ulOverflowToneEventsCount = pSharedInfo->ErrorStats.ulOverflowToneEventsCnt;
438
f_pChipStats->ulSoftOverflowToneEventsCount = pSharedInfo->SoftBufs.ulToneEventBufferOverflowCnt;
439
f_pChipStats->ulSoftOverflowBufferPlayoutEventsCount = pSharedInfo->SoftBufs.ulBufPlayoutEventBufferOverflowCnt;
443
return cOCT6100_ERR_OK;