void SiiMhlTxDrvTimerPollingCallBack(void *pArg) { APP_DEBUG_PRINT("TIMER_POLLING expired\n"); //PlatformGPIOSet(pinSinkVbusOn,PlatformGPIOGet(pinMhlVbusSense)); HalTimerSet(TIMER_POLLING,T_MONITORING_PERIOD); // do nothing }
static uint8_t CBusProcessErrors( uint8_t intStatus ) { uint8_t result = 0; uint8_t abortReason = 0; intStatus &= (BIT_MSC_ABORT | BIT_MSC_XFR_ABORT | BIT_DDC_ABORT); if ( intStatus ) { if( intStatus & BIT_DDC_ABORT ) { abortReason |= SiiRegRead(REG_DDC_ABORT_REASON); TX_DEBUG_PRINT( ("CBUS:: DDC ABORT happened. Clearing 0x0C\n")); SiiRegWrite(REG_DDC_ABORT_REASON, 0xFF); } if ( intStatus & BIT_MSC_XFR_ABORT ) { abortReason |= SiiRegRead(REG_MSC_REQ_ABORT_REASON ); TX_DEBUG_PRINT( ("CBUS:: MSC Requester ABORTED. Clearing 0x0D\n")); SiiRegWrite(REG_MSC_REQ_ABORT_REASON , 0xFF); } if ( intStatus & BIT_MSC_ABORT ) { abortReason |= SiiRegRead(REG_MSC_RES_ABORT_REASON ); TX_DEBUG_PRINT( ("CBUS:: MSC Responder ABORT. Clearing 0x0E\n")); SiiRegWrite(REG_MSC_RES_ABORT_REASON , 0xFF); } if ( abortReason & (BIT0|BIT1|BIT2|BIT3|BIT4|BIT7) ) { TX_DEBUG_PRINT( ("CBUS:: Reason for ABORT is ....0x%02X \n", (int)abortReason )); if ( abortReason & CBUSABORT_BIT_REQ_MAXFAIL) { TX_DEBUG_PRINT( ("Retry threshold exceeded\n")); } if ( abortReason & CBUSABORT_BIT_PROTOCOL_ERROR) { TX_DEBUG_PRINT( ("Protocol Error\n")); } if ( abortReason & CBUSABORT_BIT_REQ_TIMEOUT) { TX_DEBUG_PRINT( ("Translation layer timeout\n")); } if ( abortReason & CBUSABORT_BIT_UNDEFINED_OPCODE) { TX_DEBUG_PRINT( ("Undefined opcode\n")); } if ( abortReason & CBUSABORT_BIT_UNDEFINED_OFFSET) { TX_DEBUG_PRINT( ("Undefined offset\n")); } if ( abortReason & CBUSABORT_BIT_PEER_BUSY) { TX_DEBUG_PRINT( ("Opposite device is busy\n")); } if ( abortReason & CBUSABORT_BIT_PEER_ABORTED) { #ifndef __KERNEL__ HalTimerSet(TIMER_ABORT, T_ABORT_NEXT); mscAbortFlag = true; #else if(MscAbortTimer) { SiiOsTimerDelete(MscAbortTimer); MscAbortTimer = NULL; } mscAbortFlag = true; SiiOsTimerCreate("Abort Time Out", SiiMhlMscAbortTimerCB, NULL, true, 2000, false, &MscAbortTimer); #endif TX_DEBUG_PRINT( ("Peer sent an abort, start 2s timer Tabort_next\n")); } } } return( result ); }