diff options
author | Octasic Inc <support@octasic.com> | 2011-05-20 10:56:30 +0300 |
---|---|---|
committer | Tzafrir Cohen <tzafrir.cohen@xorcom.com> | 2011-05-31 10:47:00 +0300 |
commit | 543281d15d1c725f1e7be06b4bd542f3ff368f1c (patch) | |
tree | 2daf4aeda335adf8e1d403ed4443af39d6f99c9c /software/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c | |
parent | 7e2fd687eb0f6a42f213f750c12e5acc7d626b8b (diff) |
Diffstat (limited to 'software/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c')
-rw-r--r-- | software/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c | 76 |
1 files changed, 52 insertions, 24 deletions
diff --git a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c index 79801dc..a037aa5 100644 --- a/software/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c +++ b/software/octdeviceapi/oct6100api/oct6100_api/oct6100_channel.c @@ -23,9 +23,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.04.05 $ +$Octasic_Release: OCT612xAPI-01.04.06 $ -$Octasic_Revision: 524 $ +$Octasic_Revision: 526 $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ @@ -8143,7 +8143,13 @@ UINT32 Oct6100ApiCheckVqeConfig( ( f_pVqeConfig->lDefaultErlDb != -3 ) && ( f_pVqeConfig->lDefaultErlDb != -6 ) && ( f_pVqeConfig->lDefaultErlDb != -9 ) && - ( f_pVqeConfig->lDefaultErlDb != -12 ) ) + ( f_pVqeConfig->lDefaultErlDb != -12 ) && + ( f_pVqeConfig->lDefaultErlDb != -15 ) && + ( f_pVqeConfig->lDefaultErlDb != -18 ) && + ( f_pVqeConfig->lDefaultErlDb != -21 ) && + ( f_pVqeConfig->lDefaultErlDb != -24 ) && + ( f_pVqeConfig->lDefaultErlDb != -27 ) && + ( f_pVqeConfig->lDefaultErlDb != -30 ) ) return cOCT6100_ERR_CHANNEL_DEFAULT_ERL; /* Validate the Default AEC ERL parameter.*/ @@ -12725,7 +12731,11 @@ UINT32 Oct6100ApiDisableChannelRecordingSer( tPOCT6100_SHARED_INFO pSharedInfo; tOCT6100_WRITE_PARAMS WriteParams; tOCT6100_WRITE_SMEAR_PARAMS SmearParams; - UINT32 ulResult; + tPOCT6100_API_CHANNEL pChanEntry; + UINT32 ulResult; + UINT32 ulTempData; + UINT32 ulBaseAddress; + UINT32 ulOffset; pSharedInfo = f_pApiInstance->pSharedInfo; @@ -12747,6 +12757,9 @@ UINT32 Oct6100ApiDisableChannelRecordingSer( /* We let through even though this could already be disabled.. */ if ( pSharedInfo->DebugInfo.fRecordChanUp == TRUE ) { + /* Obtain a pointer to the new buffer's list entry. */ + mOCT6100_GET_CHANNEL_ENTRY_PNT( pSharedInfo, pChanEntry, pSharedInfo->DebugInfo.usRecordChanIndex ); + /*------------------------------------------------------------------------------*/ /* Deactivate the ECHO control memory entry.*/ @@ -12769,13 +12782,17 @@ UINT32 Oct6100ApiDisableChannelRecordingSer( /*------------------------------------------------------------------------------*/ /* Clear the VQE memory. */ - - SmearParams.ulWriteAddress = cOCT6100_CHANNEL_ROOT_BASE + ( pSharedInfo->DebugInfo.usRecordChanIndex * cOCT6100_CHANNEL_ROOT_SIZE ) + pSharedInfo->MemoryMap.ulChanRootConfOfst + 0x20; - SmearParams.usWriteData = 0x0000; - SmearParams.ulWriteLength = 2; - - mOCT6100_DRIVER_WRITE_SMEAR_API( SmearParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) + + ulBaseAddress = cOCT6100_CHANNEL_ROOT_BASE + ( pSharedInfo->DebugInfo.usRecordChanIndex * cOCT6100_CHANNEL_ROOT_SIZE ) + pSharedInfo->MemoryMap.ulChanRootConfOfst + 0x20; + ulTempData = 0x0000; + + /* Save the new DWORD where the field is located.*/ + mOCT6100_SAVE_NLP_CONF_DWORD( f_pApiInstance, + pChanEntry, + ulBaseAddress, + ulTempData, + ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) return ulResult; /*------------------------------------------------------------------------------*/ @@ -12783,12 +12800,16 @@ UINT32 Oct6100ApiDisableChannelRecordingSer( /*------------------------------------------------------------------------------*/ /* Clear the NLP memory. */ - SmearParams.ulWriteAddress = cOCT6100_CHANNEL_ROOT_BASE + ( pSharedInfo->DebugInfo.usRecordChanIndex * cOCT6100_CHANNEL_ROOT_SIZE ) + pSharedInfo->MemoryMap.ulChanRootConfOfst + 0x28; - SmearParams.usWriteData = 0x0000; - SmearParams.ulWriteLength = 2; - - mOCT6100_DRIVER_WRITE_SMEAR_API( SmearParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) + ulBaseAddress = cOCT6100_CHANNEL_ROOT_BASE + ( pSharedInfo->DebugInfo.usRecordChanIndex * cOCT6100_CHANNEL_ROOT_SIZE ) + pSharedInfo->MemoryMap.ulChanRootConfOfst + 0x28; + ulTempData = 0x0000; + + /* Save the new DWORD where the field is located.*/ + mOCT6100_SAVE_NLP_CONF_DWORD( f_pApiInstance, + pChanEntry, + ulBaseAddress, + ulTempData, + ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) return ulResult; /*------------------------------------------------------------------------------*/ @@ -12796,13 +12817,20 @@ UINT32 Oct6100ApiDisableChannelRecordingSer( /*------------------------------------------------------------------------------*/ /* Clear the AF information memory. */ - SmearParams.ulWriteAddress = pSharedInfo->MemoryMap.ulChanMainMemBase + ( pSharedInfo->DebugInfo.usRecordChanIndex * f_pApiInstance->pSharedInfo->MemoryMap.ulChanMainMemSize ) + f_pApiInstance->pSharedInfo->MemoryMap.ulChanMainIoMemOfst; - SmearParams.usWriteData = 0x0000; - SmearParams.ulWriteLength = 12; - - mOCT6100_DRIVER_WRITE_SMEAR_API( SmearParams, ulResult ); - if ( ulResult != cOCT6100_ERR_OK ) - return ulResult; + ulBaseAddress = pSharedInfo->MemoryMap.ulChanMainMemBase + ( pSharedInfo->DebugInfo.usRecordChanIndex * f_pApiInstance->pSharedInfo->MemoryMap.ulChanMainMemSize ) + f_pApiInstance->pSharedInfo->MemoryMap.ulChanMainIoMemOfst; + ulTempData = 0x0000; + + for(ulOffset=0; ulOffset<=0x14; ulOffset+=4) + { + /* Save the new DWORD where the field is located.*/ + mOCT6100_SAVE_NLP_CONF_DWORD( f_pApiInstance, + pChanEntry, + ulBaseAddress + ulOffset, + ulTempData, + ulResult ); + if ( ulResult != cOCT6100_ERR_OK ) + return ulResult; + } /*------------------------------------------------------------------------------*/ |