mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 12:17:12 +09:00
mfd:rk616:vif:disable vif when hdmi remove
This commit is contained in:
@@ -117,7 +117,34 @@ int rk616_vif_cfg(struct mfd_rk616 *rk616,rk_screen *screen,int id)
|
||||
}
|
||||
|
||||
|
||||
static int rk616_vif_disable(struct mfd_rk616 *rk616,int id)
|
||||
{
|
||||
u32 val = 0;
|
||||
int ret = 0;
|
||||
|
||||
printk(KERN_INFO "rk616 vif%d disable\n",id);
|
||||
|
||||
if(id == 0) //video interface 0
|
||||
{
|
||||
|
||||
val = (VIF0_EN << 16); //disable vif0
|
||||
ret = rk616->write_dev(rk616,VIF0_REG0,&val);
|
||||
clk_set_rate(rk616->mclk, 11289600);
|
||||
return 0;
|
||||
|
||||
}
|
||||
else //vide0 interface 1
|
||||
{
|
||||
|
||||
val = (VIF0_EN << 16); //disabl VIF1
|
||||
ret = rk616->write_dev(rk616,VIF1_REG0,&val);
|
||||
clk_set_rate(rk616->mclk, 11289600);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
static int rk616_scaler_disable(struct mfd_rk616 *rk616)
|
||||
{
|
||||
u32 val = 0;
|
||||
@@ -612,6 +639,13 @@ int rk616_set_vif(struct mfd_rk616 *rk616,rk_screen *screen,bool connect)
|
||||
{
|
||||
pdata = rk616->pdata;
|
||||
}
|
||||
|
||||
if(!connect)
|
||||
{
|
||||
rk616_vif_disable(rk616,0);
|
||||
rk616_vif_disable(rk616,1);
|
||||
return 0;
|
||||
}
|
||||
#if defined(CONFIG_ONE_LCDC_DUAL_OUTPUT_INF)
|
||||
return 0;
|
||||
#else
|
||||
|
||||
Reference in New Issue
Block a user