From 28d1a12970507987a1e064ec1f59e73c11e65b4e Mon Sep 17 00:00:00 2001 From: Octasic Inc Date: Fri, 2 Jun 2006 17:20:02 +0300 Subject: importing OCT612x-01.00-PR41 --- .../oct6100api/oct6100_api/oct6100_chip_open.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'software/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.c') diff --git a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.c b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.c index dd54e2c..8b017ce 100644 --- a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.c +++ b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_chip_open.c @@ -24,9 +24,9 @@ You should have received a copy of the GNU General Public License along with the OCT6100 GPL API; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -$Octasic_Release: OCT612xAPI-01.00-PR40 $ +$Octasic_Release: OCT612xAPI-01.00-PR41 $ -$Octasic_Revision: 310 $ +$Octasic_Revision: 312 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -281,7 +281,7 @@ UINT32 Oct6100ChipOpen( ulStructSize = sizeof( tOCT6100_INSTANCE_API ); mOCT6100_ROUND_MEMORY_SIZE( ulStructSize, ulTempVar ) - f_pApiInstance->pSharedInfo = ( tPOCT6100_SHARED_INFO )(( UINT32 )f_pApiInstance + ulStructSize); + f_pApiInstance->pSharedInfo = ( tPOCT6100_SHARED_INFO )(( PUINT8 )f_pApiInstance + ulStructSize); /* Save the process context specified by the user. */ f_pApiInstance->pProcessContext = f_pChipOpen->pProcessContext; @@ -551,7 +551,7 @@ UINT32 Oct6100CreateLocalInstance( ulApiInstSize = sizeof( tOCT6100_INSTANCE_API ); mOCT6100_ROUND_MEMORY_SIZE( ulApiInstSize, ulTempVar ) - pApiInstLocal->pSharedInfo = ( tPOCT6100_SHARED_INFO )(( UINT32 )f_pCreateLocal->pApiInstShared + ulApiInstSize); + pApiInstLocal->pSharedInfo = ( tPOCT6100_SHARED_INFO )(( PUINT8 )f_pCreateLocal->pApiInstShared + ulApiInstSize); pApiInstLocal->pProcessContext = f_pCreateLocal->pProcessContext; /* Create serialization object handles needed. */ @@ -4501,6 +4501,7 @@ UINT32 Oct6100ApiInitChannels( UINT16 usLastMclkRead; UINT16 usMclkDiff; UINT32 ulNumberOfCycleToWait; + UINT32 ulTimeoutCounter; pSharedInfo = f_pApiInstance->pSharedInfo; @@ -4728,6 +4729,9 @@ UINT32 Oct6100ApiInitChannels( if ( ulResult != cOCT6100_ERR_OK ) return ulResult; + /* Reset loop timeout counter. */ + ulTimeoutCounter = 0x0; + do { ReadParams.pusReadData = &usMclkRead; @@ -4746,6 +4750,11 @@ UINT32 Oct6100ApiInitChannels( /* Evaluate the difference. */ usMclkDiff = (UINT16)(( usMclkRead - usLastMclkRead ) & 0xFFFF); + + /* Check for loop timeout. Bad mclk? */ + ulTimeoutCounter++; + if ( ulTimeoutCounter == cOCT6100_MAX_LOOP_CPU_TIMEOUT ) + return cOCT6100_ERR_FATAL_EA; } while( usMclkDiff <= ulNumberOfCycleToWait ); } @@ -4953,7 +4962,7 @@ UINT32 Oct6100ApiInitToneInfo( /* Extract the number of char used to represent the tone event number ( 1 or 2 ). */ pszNextInfo = Oct6100ApiStrStr( pszCurrentInfo, (PUINT8)",", pszToneInfoEnd ); - ulNumCharForValue = pszNextInfo - pszCurrentInfo; + ulNumCharForValue = (UINT32)( pszNextInfo - pszCurrentInfo ); /* Retreive the event number */ ulToneEventNumber = 0; @@ -4998,7 +5007,7 @@ UINT32 Oct6100ApiInitToneInfo( pszNextInfo = pszToneInfoEnd; /* Extract the name size. */ - ulToneNameSize = pszNextInfo - pszCurrentInfo - 2; /* - 2 for 0x0D and 0x0A.*/ + ulToneNameSize = (UINT32)( pszNextInfo - pszCurrentInfo - 2 ); /* - 2 for 0x0D and 0x0A.*/ if ( ulToneNameSize > cOCT6100_TLV_MAX_TONE_NAME_SIZE ) return cOCT6100_ERR_OPEN_INVALID_TONE_NAME; -- cgit v1.2.3