void hdmi_drv_power_off(void)
{

	HDMI_FUNC();
	
    if(not_switch_to_d3 > 0)
    {
        HDMI_LOG("hdmi_drv_power_off direct to exit for forceon(%d_\n", not_switch_to_d3 );
        return ;
    }

    cust_hdmi_dpi_gpio_on(false);
    if(audio_enable == 0)
	    cust_hdmi_i2s_gpio_on(false);

  	return ;
	
	Mask_MHL_Intr();

    if(ReadConnectionStatus()==1){
        need_reset_usb_switch = true;
    	 ForceSwitchToD3(si_dev_context);
    }
    else
        need_reset_usb_switch = false;

	cust_hdmi_power_on(false);
	chip_inited = false;
    return ;

}
void hdmi_drv_power_off(void)
{

	MHL_FUNC();
	
    if(not_switch_to_d3 > 0)
    {
        MHL_DBG("hdmi_drv_power_off direct to exit for forceon(%d_\n", not_switch_to_d3 );
        return ;
    }


#ifdef CONFIG_MTK_LEGACY      
    cust_hdmi_dpi_gpio_on(false);
    if(audio_enable == 0)
	    cust_hdmi_i2s_gpio_on(false);
#else
    if(audio_enable == 0)
	    i2s_gpio_ctrl(1);
    dpi_gpio_ctrl(0);
#endif
  	return ;
	
    if(ReadConnectionStatus()==1){
        need_reset_usb_switch = true;
    	 ForceSwitchToD3(si_dev_context);
    }
    else
        need_reset_usb_switch = false;

	cust_hdmi_power_on(false);
	chip_inited = false;
    return ;

}
void hdmi_drv_power_off(void)
{
	HDMI_FUNC();
	SiiMhlTxHwGpioSuspend();
	SiiMhlTxHwReset(50,200);
	ForceSwitchToD3();
	//SwitchToD3();
	//SiiMhlTxHwResetKeepLow();
	//pmic_config_interface(0x87,0x0,0x01,0x0);
}
void hdmi_drv_power_off(void)
{
	HDMI_FUNC();

#if 1
	SiiMhlTxHwGpioSuspend();
#endif

	SiiMhlTxHwReset(50,200);
	ForceSwitchToD3();
	//SwitchToD3();
	//SiiMhlTxHwResetKeepLow();
	//pmic_config_interface(0x87,0x0,0x01,0x0);
/* Vanzo:lubaoquan on: Tue, 21 May 2013 22:38:24 +0800
 * TODO: replace this line with your comment
 */
    hwPowerDown(MT65XX_POWER_LDO_VGP5, "HDMI");
 // End of Vanzo: lubaoquan
}
/* for otg currency leakage */
void switch_mhl_to_d3(void)
{    
    if(si_dev_context)
        ForceSwitchToD3(si_dev_context);
}