📄 power.c
字号:
|(1<<10); // Post Processor 0
break;
case HWCLK_ALL_OFF:
pCtxt->pSysConReg->HCLK_GATE &= ~((1<<15)|/*(1<<9)| */(1<<8)|(1<<7)|(1<<5)|(1<<4)|(1<<3));
pCtxt->pSysConReg->SCLK_GATE &= ~((1<<19)|(1<<18)|(1<<16)|(1<<15)|(1<<14)|(1<<10));
break;
case HWCLK_DISPLAY_ON:
pCtxt->pSysConReg->HCLK_GATE |= (1<<15) // MSM I/F
|(1<<3); // Display Controller
pCtxt->pSysConReg->SCLK_GATE |= (1<<14); // Display Controller
break;
case HWCLK_DISPLAY_OFF:
pCtxt->pSysConReg->HCLK_GATE &= ~((1<<15)|(1<<3));
pCtxt->pSysConReg->SCLK_GATE &= ~(1<<14);
break;
case HWCLK_MSMIF_ON:
pCtxt->pSysConReg->HCLK_GATE |= (1<<15); // MSM I/F
break;
case HWCLK_MSMIF_OFF:
pCtxt->pSysConReg->HCLK_GATE &= ~(1<<15); // MSM I/F
break;
case HWCLK_POST_ON:
pCtxt->pSysConReg->HCLK_GATE |= (1<<5); // Post Processor
pCtxt->pSysConReg->SCLK_GATE |= (1<<10); // Post Processor 0
break;
case HWCLK_POST_OFF:
pCtxt->pSysConReg->HCLK_GATE &= ~(1<<5); // Post Processor
pCtxt->pSysConReg->SCLK_GATE &= ~(1<<10); // Post Processor 0
break;
case HWCLK_ROTATOR_ON:
pCtxt->pSysConReg->HCLK_GATE |= (1<<4); // Image Rotator
break;
case HWCLK_ROTATOR_OFF:
pCtxt->pSysConReg->HCLK_GATE &= ~(1<<4); // Image Rotator
break;
case HWCLK_TV_ON:
pCtxt->pSysConReg->HCLK_GATE |= (1<<9) // TV Scaler
|(1<<7); // TV Encoder
pCtxt->pSysConReg->SCLK_GATE |= (1<<19) // DAC 27MHz
|(1<<18) // TV Encoder 27MHz
|(1<<16) // TV Scaler
|(1<<15); // Display Controller 27MHz
break;
case HWCLK_TV_OFF:
pCtxt->pSysConReg->HCLK_GATE &= ~((1<<9)|(1<<7));
pCtxt->pSysConReg->SCLK_GATE &= ~((1<<19)|(1<<18)|(1<<16)|(1<<15));
break;
case HWCLK_2D_ON:
pCtxt->pSysConReg->HCLK_GATE |= (1<<8); // FIMG 2D
break;
case HWCLK_2D_OFF:
pCtxt->pSysConReg->HCLK_GATE &= ~(1<<8); // FIMG 2D
break;
default:
VDE_ERR((_T("[VDE:ERR] SVE_hw_clock_control() : Unknown Parameter = %d\n\r"), eParams));
bRet = FALSE;
break;
}
VDE_MSG((_T("[VDE] --SVE_hw_clock_control()\n\r")));
return bRet;
}
BOOL SVE_hw_power_control(HWPWR_GATING eParams)
{
SVEngineContext *pCtxt;
DWORD dwIPIndex, dwBytes;
BOOL bRet = TRUE;
VDE_MSG((_T("[VDE] ++SVE_hw_power_control(%d)\r\n"), eParams));
pCtxt = SVE_get_context();
switch(eParams)
{
case HWPWR_ALL_ON:
dwIPIndex = PWR_IP_DISPCON; // Power On Display Controller
if ( !DeviceIoControl(pCtxt->hPowerControl, IOCTL_PWRCON_SET_POWER_ON, &dwIPIndex, sizeof(DWORD), NULL, 0, &dwBytes, NULL) )
{
VDE_ERR((_T("[VDE:ERR] SVE_hw_power_control() : IOCTL_PWRCON_SET_POWER_ON Failed\n\r")));
bRet = FALSE;
}
dwIPIndex = PWR_IP_POST; // Power On Post Processor
if ( !DeviceIoControl(pCtxt->hPowerControl, IOCTL_PWRCON_SET_POWER_ON, &dwIPIndex, sizeof(DWORD), NULL, 0, &dwBytes, NULL) )
{
VDE_ERR((_T("[VDE:ERR] SVE_hw_power_control() : IOCTL_PWRCON_SET_POWER_ON Failed\n\r")));
bRet = FALSE;
}
dwIPIndex = PWR_IP_ROTATOR; // Power On Image Rotator
if ( !DeviceIoControl(pCtxt->hPowerControl, IOCTL_PWRCON_SET_POWER_ON, &dwIPIndex, sizeof(DWORD), NULL, 0, &dwBytes, NULL) )
{
VDE_ERR((_T("[VDE:ERR] SVE_hw_power_control() : IOCTL_PWRCON_SET_POWER_ON Failed\n\r")));
bRet = FALSE;
}
dwIPIndex = PWR_IP_TVENC; // Power On TV Encoder
if ( !DeviceIoControl(pCtxt->hPowerControl, IOCTL_PWRCON_SET_POWER_ON, &dwIPIndex, sizeof(DWORD), NULL, 0, &dwBytes, NULL) )
{
VDE_ERR((_T("[VDE:ERR] SVE_hw_power_control() : IOCTL_PWRCON_SET_POWER_ON Failed\n\r")));
bRet = FALSE;
}
dwIPIndex = PWR_IP_TVSC; // Power On TV Scaler
if ( !DeviceIoControl(pCtxt->hPowerControl, IOCTL_PWRCON_SET_POWER_ON, &dwIPIndex, sizeof(DWORD), NULL, 0, &dwBytes, NULL) )
{
VDE_ERR((_T("[VDE:ERR] SVE_hw_power_control() : IOCTL_PWRCON_SET_POWER_ON Failed\n\r")));
bRet = FALSE;
}
break;
case HWPWR_ALL_OFF:
dwIPIndex = PWR_IP_DISPCON; // Power Off Display Controller
if ( !DeviceIoControl(pCtxt->hPowerControl, IOCTL_PWRCON_SET_POWER_OFF, &dwIPIndex, sizeof(DWORD), NULL, 0, &dwBytes, NULL) )
{
VDE_ERR((_T("[VDE:ERR] SVE_hw_power_control() : IOCTL_PWRCON_SET_POWER_OFF Failed\n\r")));
bRet = FALSE;
}
dwIPIndex = PWR_IP_POST; // Power Off Post Processor
if ( !DeviceIoControl(pCtxt->hPowerControl, IOCTL_PWRCON_SET_POWER_OFF, &dwIPIndex, sizeof(DWORD), NULL, 0, &dwBytes, NULL) )
{
VDE_ERR((_T("[VDE:ERR] SVE_hw_power_control() : IOCTL_PWRCON_SET_POWER_OFF Failed\n\r")));
bRet = FALSE;
}
dwIPIndex = PWR_IP_ROTATOR; // Power Off Image Rotator
if ( !DeviceIoControl(pCtxt->hPowerControl, IOCTL_PWRCON_SET_POWER_OFF, &dwIPIndex, sizeof(DWORD), NULL, 0, &dwBytes, NULL) )
{
VDE_ERR((_T("[VDE:ERR] SVE_hw_power_control() : IOCTL_PWRCON_SET_POWER_OFF Failed\n\r")));
bRet = FALSE;
}
dwIPIndex = PWR_IP_TVENC; // Power Off TV Encoder
if ( !DeviceIoControl(pCtxt->hPowerControl, IOCTL_PWRCON_SET_POWER_OFF, &dwIPIndex, sizeof(DWORD), NULL, 0, &dwBytes, NULL) )
{
VDE_ERR((_T("[VDE:ERR] SVE_hw_power_control() : IOCTL_PWRCON_SET_POWER_OFF Failed\n\r")));
bRet = FALSE;
}
dwIPIndex = PWR_IP_TVSC; // Power Off TV Scaler
if ( !DeviceIoControl(pCtxt->hPowerControl, IOCTL_PWRCON_SET_POWER_OFF, &dwIPIndex, sizeof(DWORD), NULL, 0, &dwBytes, NULL) )
{
VDE_ERR((_T("[VDE:ERR] SVE_hw_power_control() : IOCTL_PWRCON_SET_POWER_OFF Failed\n\r")));
bRet = FALSE;
}
break;
case HWPWR_DISPLAY_ON:
dwIPIndex = PWR_IP_DISPCON; // Power On Display Controller
if ( !DeviceIoControl(pCtxt->hPowerControl, IOCTL_PWRCON_SET_POWER_ON, &dwIPIndex, sizeof(DWORD), NULL, 0, &dwBytes, NULL) )
{
VDE_ERR((_T("[VDE:ERR] SVE_hw_power_control() : IOCTL_PWRCON_SET_POWER_ON Failed\n\r")));
bRet = FALSE;
}
break;
case HWPWR_DISPLAY_OFF:
dwIPIndex = PWR_IP_DISPCON; // Power Off Display Controller
if ( !DeviceIoControl(pCtxt->hPowerControl, IOCTL_PWRCON_SET_POWER_OFF, &dwIPIndex, sizeof(DWORD), NULL, 0, &dwBytes, NULL) )
{
VDE_ERR((_T("[VDE:ERR] SVE_hw_power_control() : IOCTL_PWRCON_SET_POWER_OFF Failed\n\r")));
bRet = FALSE;
}
break;
case HWPWR_POST_ON:
dwIPIndex = PWR_IP_POST; // Power On Post Processor
if ( !DeviceIoControl(pCtxt->hPowerControl, IOCTL_PWRCON_SET_POWER_ON, &dwIPIndex, sizeof(DWORD), NULL, 0, &dwBytes, NULL) )
{
VDE_ERR((_T("[VDE:ERR] SVE_hw_power_control() : IOCTL_PWRCON_SET_POWER_ON Failed\n\r")));
bRet = FALSE;
}
break;
case HWPWR_POST_OFF:
dwIPIndex = PWR_IP_POST; // Power Off Post Processor
if ( !DeviceIoControl(pCtxt->hPowerControl, IOCTL_PWRCON_SET_POWER_OFF, &dwIPIndex, sizeof(DWORD), NULL, 0, &dwBytes, NULL) )
{
VDE_ERR((_T("[VDE:ERR] SVE_hw_power_control() : IOCTL_PWRCON_SET_POWER_OFF Failed\n\r")));
bRet = FALSE;
}
break;
case HWPWR_ROTATOR_ON:
dwIPIndex = PWR_IP_ROTATOR; // Power On Image Rotator
if ( !DeviceIoControl(pCtxt->hPowerControl, IOCTL_PWRCON_SET_POWER_ON, &dwIPIndex, sizeof(DWORD), NULL, 0, &dwBytes, NULL) )
{
VDE_ERR((_T("[VDE:ERR] SVE_hw_power_control() : IOCTL_PWRCON_SET_POWER_ON Failed\n\r")));
bRet = FALSE;
}
break;
case HWPWR_ROTATOR_OFF:
dwIPIndex = PWR_IP_ROTATOR; // Power Off Image Rotator
if ( !DeviceIoControl(pCtxt->hPowerControl, IOCTL_PWRCON_SET_POWER_OFF, &dwIPIndex, sizeof(DWORD), NULL, 0, &dwBytes, NULL) )
{
VDE_ERR((_T("[VDE:ERR] SVE_hw_power_control() : IOCTL_PWRCON_SET_POWER_OFF Failed\n\r")));
bRet = FALSE;
}
break;
case HWPWR_TV_ON:
dwIPIndex = PWR_IP_TVENC; // Power On TV Encoder
if ( !DeviceIoControl(pCtxt->hPowerControl, IOCTL_PWRCON_SET_POWER_ON, &dwIPIndex, sizeof(DWORD), NULL, 0, &dwBytes, NULL) )
{
VDE_ERR((_T("[VDE:ERR] SVE_hw_power_control() : IOCTL_PWRCON_SET_POWER_ON Failed\n\r")));
bRet = FALSE;
}
dwIPIndex = PWR_IP_TVSC; // Power On TV Scaler
if ( !DeviceIoControl(pCtxt->hPowerControl, IOCTL_PWRCON_SET_POWER_ON, &dwIPIndex, sizeof(DWORD), NULL, 0, &dwBytes, NULL) )
{
VDE_ERR((_T("[VDE:ERR] SVE_hw_power_control() : IOCTL_PWRCON_SET_POWER_ON Failed\n\r")));
bRet = FALSE;
}
break;
case HWPWR_TV_OFF:
dwIPIndex = PWR_IP_TVENC; // Power Off TV Encoder
if ( !DeviceIoControl(pCtxt->hPowerControl, IOCTL_PWRCON_SET_POWER_OFF, &dwIPIndex, sizeof(DWORD), NULL, 0, &dwBytes, NULL) )
{
VDE_ERR((_T("[VDE:ERR] SVE_hw_power_control() : IOCTL_PWRCON_SET_POWER_OFF Failed\n\r")));
bRet = FALSE;
}
dwIPIndex = PWR_IP_TVSC; // Power Off TV Scaler
if ( !DeviceIoControl(pCtxt->hPowerControl, IOCTL_PWRCON_SET_POWER_OFF, &dwIPIndex, sizeof(DWORD), NULL, 0, &dwBytes, NULL) )
{
VDE_ERR((_T("[VDE:ERR] SVE_hw_power_control() : IOCTL_PWRCON_SET_POWER_OFF Failed\n\r")));
bRet = FALSE;
}
break;
case HWPWR_2D_ON:
dwIPIndex = PWR_IP_2D; // Power On FIMG 2D
if ( !DeviceIoControl(pCtxt->hPowerControl, IOCTL_PWRCON_SET_POWER_ON, &dwIPIndex, sizeof(DWORD), NULL, 0, &dwBytes, NULL) )
{
VDE_ERR((_T("[VDE:ERR] SVE_hw_power_control() : IOCTL_PWRCON_SET_POWER_ON Failed\n\r")));
bRet = FALSE;
}
break;
case HWPWR_2D_OFF:
dwIPIndex = PWR_IP_2D; // Power Off FIMG 2D
if ( !DeviceIoControl(pCtxt->hPowerControl, IOCTL_PWRCON_SET_POWER_OFF, &dwIPIndex, sizeof(DWORD), NULL, 0, &dwBytes, NULL) )
{
VDE_ERR((_T("[VDE:ERR] SVE_hw_power_control() : IOCTL_PWRCON_SET_POWER_OFF Failed\n\r")));
bRet = FALSE;
}
break;
default:
VDE_ERR((_T("[VDE:ERR] SVE_hw_power_control() : Unknown Parameter = %d\n\r"), eParams));
bRet = FALSE;
break;
}
VDE_MSG((_T("[VDE] --SVE_hw_power_control()\n\r")));
return bRet;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -