Example #1
0
///////////////////////////////////////////////////////////////////////////////
//
// 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);
}
Example #2
0
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);
	/*		}
		}
	} */
}
Example #3
0
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 );
    }
}
Example #4
0
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;
}
Example #5
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);
				}
			}
		}
	}
}
Example #6
0
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;
		}
	}
}
Example #7
0
static void SiiMhlTxTmdsEnable(void)
{
	TPI_DEBUG_PRINT(("MhlTx:SiiMhlTxTmdsEnable\n"));
				SiiMhlTxDrvTmdsControl(true);
}