/////////////////////////////////////////////////////////////////////////////// // // SiiMhlTxClrPathEn // bool SiiMhlTxClrPathEn( void ) { TPI_DEBUG_PRINT(("MhlTx: SiiMhlTxClrPathEn\n")); SiiMhlTxDrvTmdsControl( false ); mhlTxConfig.linkMode &= ~MHL_STATUS_PATH_ENABLED; // update local copy return SiiMhlTxSetStatus( MHL_STATUS_REG_LINK_MODE, mhlTxConfig.linkMode); }
static void SiiMhlTxTmdsEnable(void) { TPI_DEBUG_PRINT(("MhlTx:SiiMhlTxTmdsEnable\n")); /*if (MHL_RSEN & mhlTxConfig.mhlHpdRSENflags) { TPI_DEBUG_PRINT(("\tMHL_RSEN\n")); if (MHL_HPD & mhlTxConfig.mhlHpdRSENflags) { TPI_DEBUG_PRINT(("\t\tMHL_HPD\n")); if (MHL_STATUS_PATH_ENABLED & mhlTxConfig.status_1) { TPI_DEBUG_PRINT(("\t\t\tMHL_STATUS_PATH_ENABLED\n")); */ SiiMhlTxDrvTmdsControl(true); /* } } } */ }
void SiiMhlTxNotifyDsHpdChange( uint8_t dsHpdStatus ) { if( 0 == dsHpdStatus ) { /* Mark this by Michael TPI_DEBUG_PRINT(("MhlTx: Disable TMDS\n")); SiiMhlTxDrvTmdsControl( false );*/ } else { TPI_DEBUG_PRINT(("MhlTx: Enable TMDS\n")); SiiMhlTxDrvTmdsControl( true ); } }
uint8_t siMhlTx_VideoAudioSet (void) { TX_DEBUG_PRINT(("[MHL]: >>siMhlTx_VideoAudioSet()\n")); SiiRegModify(TX_PAGE_L1 | 0xDF, BIT0, SET_BITS); SiiMhlTxDrvTmdsControl( false ); HalTimerWait(T_RES_CHANGE_DELAY); // allow control InfoFrames to pass through to the sink device. //siMhlTx_AudioSet(); AudioVideoIsr(true); //siMhlTx_Init(); SiiRegModify(TX_PAGE_L1 | 0xDF, BIT0, CLEAR_BITS); SiiMhlTxTmdsEnable(); return 0; }
void SiiMhlTxTmdsEnable(void) { TX_DEBUG_PRINT(("MhlTx:SiiMhlTxTmdsEnable\n")); if (MHL_RSEN & mhlTxConfig.mhlHpdRSENflags) { TX_DEBUG_PRINT(("\tMHL_RSEN\n")); if (MHL_HPD & mhlTxConfig.mhlHpdRSENflags) { TX_DEBUG_PRINT(("\t\tMHL_HPD\n")); if (QualifyPathEnable()) { if (RAP_CONTENT_ON & mhlTxConfig.rapFlags) { TX_DEBUG_PRINT(("\t\t\t\tRAP CONTENT_ON\n")); SiiMhlTxDrvTmdsControl(true); } } } } }
void SiiMhlTxGetEvents(uint8_t *event, uint8_t *eventParameter) { TPI_Poll(); MhlTxDriveStates(); *event = MHL_TX_EVENT_NONE; *eventParameter = 0; if (mhlTxConfig.mhlConnectionEvent) { TPI_DEBUG_PRINT(("MhlTx: SiiMhlTxGetEvents mhlConnectionEvent\n")); mhlTxConfig.mhlConnectionEvent = false; *event = mhlTxConfig.mhlConnected; *eventParameter = mhlTxConfig.mscFeatureFlag; if (MHL_TX_EVENT_DISCONNECTION == mhlTxConfig.mhlConnected) { MhlTxResetStates(); } else if (MHL_TX_EVENT_CONNECTION == mhlTxConfig.mhlConnected) { WriteByteCBUS(0x13, 0x30) ; WriteByteCBUS(0x14, 0x01) ; WriteByteCBUS(0x12, 0x08) ; WriteByteCBUS(0x13, 0x20) ; WriteByteCBUS(0x14, 0x01) ; WriteByteCBUS(0x12, 0x08) ; } } else if (mhlTxConfig.mscMsgArrived) { TPI_DEBUG_PRINT(("MhlTx: SiiMhlTxGetEvents MSC MSG <%02X, %02X>\n", (int) (mhlTxConfig.mscMsgSubCommand), (int) (mhlTxConfig.mscMsgData))); mhlTxConfig.mscMsgArrived = false; switch (mhlTxConfig.mscMsgSubCommand) { case MHL_MSC_MSG_RAP: if (0x10 == mhlTxConfig.mscMsgData) SiiMhlTxDrvTmdsControl(true); else if (0x11 == mhlTxConfig.mscMsgData) SiiMhlTxDrvTmdsControl(false); SiiMhlTxRapkSend(); break; case MHL_MSC_MSG_RCP: if (MHL_LOGICAL_DEVICE_MAP & rcpSupportTable[mhlTxConfig.mscMsgData & 0x7F]) { *event = MHL_TX_EVENT_RCP_RECEIVED; *eventParameter = mhlTxConfig.mscMsgData; } else { mhlTxConfig.mscSaveRcpKeyCode = mhlTxConfig.mscMsgData; SiiMhlTxRcpeSend(RCPE_INEEFECTIVE_KEY_CODE); } break; case MHL_MSC_MSG_RCPK: *event = MHL_TX_EVENT_RCPK_RECEIVED; *eventParameter = mhlTxConfig.mscMsgData; break; case MHL_MSC_MSG_RCPE: *event = MHL_TX_EVENT_RCPE_RECEIVED; *eventParameter = mhlTxConfig.mscMsgData; break; case MHL_MSC_MSG_RAPK: break; default: break; } } }
static void SiiMhlTxTmdsEnable(void) { TPI_DEBUG_PRINT(("MhlTx:SiiMhlTxTmdsEnable\n")); SiiMhlTxDrvTmdsControl(true); }