123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- --- a/src/include/drv_dsl_cpe_pm_core.h
- +++ b/src/include/drv_dsl_cpe_pm_core.h
- @@ -1510,9 +1510,9 @@ typedef struct
- /** Common PM module mutex*/
- DSL_DRV_Mutex_t pmMutex;
- /** PM module direction Near-End mutex*/
- - DSL_DRV_Mutex_t pmNeMutex;
- + struct semaphore pmNeMutex;
- /** PM module direction Far-End mutex*/
- - DSL_DRV_Mutex_t pmFeMutex;
- + struct semaphore pmFeMutex;
- /** PM module Near-End access mutex*/
- DSL_DRV_Mutex_t pmNeAccessMutex;
- /** PM module Far-End access mutex*/
- --- a/src/pm/drv_dsl_cpe_api_pm.c
- +++ b/src/pm/drv_dsl_cpe_api_pm.c
- @@ -220,9 +220,9 @@ DSL_Error_t DSL_DRV_PM_Start(
- /* init PM module common mutex */
- DSL_DRV_MUTEX_INIT(DSL_DRV_PM_CONTEXT(pContext)->pmMutex);
- /* init PM module direction Near-End mutex */
- - DSL_DRV_MUTEX_INIT(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex);
- + sema_init(&(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex),1);
- /* init PM module direction Far-End mutex */
- - DSL_DRV_MUTEX_INIT(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex);
- + sema_init(&(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex),1);
- /* init PM module Near-End access mutex */
- DSL_DRV_MUTEX_INIT(DSL_DRV_PM_CONTEXT(pContext)->pmNeAccessMutex);
- /* init PM module Far-End access mutex */
- @@ -592,7 +592,7 @@ DSL_Error_t DSL_DRV_PM_Stop(
- if( DSL_DRV_PM_CONTEXT(pContext)->pmThreadFe.bRun != DSL_TRUE )
- {
- DSL_DEBUG(DSL_DBG_WRN,
- - (pContext, SYS_DBG_WRN"DSL[%02d]: PM module Near-End thread already stopped"
- + (pContext, SYS_DBG_WRN"DSL[%02d]: PM module Far-End thread already stopped"
- DSL_DRV_CRLF, DSL_DEV_NUM(pContext)));
- }
- else
- --- a/src/pm/drv_dsl_cpe_pm_core.c
- +++ b/src/pm/drv_dsl_cpe_pm_core.c
- @@ -1022,7 +1022,7 @@ DSL_Error_t DSL_DRV_PM_DirectionMutexCon
- {
- if( bLock )
- {
- - if( DSL_DRV_MUTEX_LOCK(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex) )
- + if(down_interruptible(&(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex)))
- {
- DSL_DEBUG( DSL_DBG_ERR,
- (pContext, SYS_DBG_ERR"DSL[%02d]: ERROR - Couldn't lock PM NE mutex!"
- @@ -1034,14 +1034,14 @@ DSL_Error_t DSL_DRV_PM_DirectionMutexCon
- else
- {
- /* Unlock PM module NE Mutex*/
- - DSL_DRV_MUTEX_UNLOCK(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex);
- + up(&(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex));
- }
- }
- else
- {
- if( bLock )
- {
- - if( DSL_DRV_MUTEX_LOCK(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex) )
- + if(down_interruptible(&(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex)))
- {
- DSL_DEBUG( DSL_DBG_ERR,
- (pContext, SYS_DBG_ERR"DSL[%02d]: ERROR - Couldn't lock PM FE mutex!"
- @@ -1053,7 +1053,7 @@ DSL_Error_t DSL_DRV_PM_DirectionMutexCon
- else
- {
- /* Unlock PM module FE Mutex*/
- - DSL_DRV_MUTEX_UNLOCK(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex);
- + up(&(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex));
- }
- }
-
- @@ -1139,7 +1139,7 @@ DSL_Error_t DSL_DRV_PM_Lock(DSL_Context_
- if( !(DSL_DRV_PM_CONTEXT(pContext)->bPmLock) )
- {
- /* Lock PM module Near-End Mutex*/
- - if( DSL_DRV_MUTEX_LOCK(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex) )
- + if(down_interruptible(&(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex)))
- {
- DSL_DEBUG( DSL_DBG_ERR,
- (pContext, SYS_DBG_ERR"DSL[%02d]: ERROR - Couldn't lock PM NE mutex!"
- @@ -1148,8 +1148,8 @@ DSL_Error_t DSL_DRV_PM_Lock(DSL_Context_
- return DSL_ERR_SEMAPHORE_GET;
- }
-
- - /* Lock PM module Near-End Mutex*/
- - if( DSL_DRV_MUTEX_LOCK(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex) )
- + /* Lock PM module Far-End Mutex*/
- + if( down_interruptible(&(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex)) )
- {
- DSL_DEBUG( DSL_DBG_ERR,
- (pContext, SYS_DBG_ERR"DSL[%02d]: ERROR - Couldn't lock PM FE mutex!"
- @@ -1193,10 +1193,10 @@ DSL_Error_t DSL_DRV_PM_UnLock(DSL_Contex
- if( DSL_DRV_PM_CONTEXT(pContext)->bPmLock )
- {
- /* Unlock PM module NE Mutex*/
- - DSL_DRV_MUTEX_UNLOCK(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex);
- + up(&(DSL_DRV_PM_CONTEXT(pContext)->pmNeMutex));
-
- /* Unlock PM module FE Mutex*/
- - DSL_DRV_MUTEX_UNLOCK(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex);
- + up(&(DSL_DRV_PM_CONTEXT(pContext)->pmFeMutex));
-
- /* Clear bPmLock flag*/
- DSL_DRV_PM_CONTEXT(pContext)->bPmLock = DSL_FALSE;
|