From: ShenZhengyi Date: Thu, 18 Jun 2015 09:08:56 +0000 (+0800) Subject: tve:rk1000:modify suspend and resume condition X-Git-Tag: firefly_0821_release~4011 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=f29270bbfe10d045ff1f16c458d82c2330ecd938;p=firefly-linux-kernel-4.4.55.git tve:rk1000:modify suspend and resume condition Signed-off-by: ShenZhengyi Signed-off-by: Zheng Yang --- diff --git a/drivers/video/rockchip/tve/rk1000/rk1000_tve.c b/drivers/video/rockchip/tve/rk1000/rk1000_tve.c index ea0e0af0bba3..82fb904916b5 100755 --- a/drivers/video/rockchip/tve/rk1000/rk1000_tve.c +++ b/drivers/video/rockchip/tve/rk1000/rk1000_tve.c @@ -214,14 +214,18 @@ static void rk1000_early_suspend(void *h) { pr_info("rk1000_early_suspend\n"); if (rk1000_tve.ypbpr) { - rk1000_tve.ypbpr->ddev->ops->setenable(rk1000_tve.ypbpr->ddev, - 0); - rk1000_tve.ypbpr->suspend = 1; + if (!rk1000_tve.ypbpr->suspend) + rk1000_tve.ypbpr->suspend = 1; + if (rk1000_tve.ypbpr->enable) + rk1000_tve.ypbpr->ddev->ops->setenable( + rk1000_tve.ypbpr->ddev, 0); } if (rk1000_tve.cvbs) { - rk1000_tve.cvbs->ddev->ops->setenable(rk1000_tve.cvbs->ddev, - 0); - rk1000_tve.cvbs->suspend = 1; + if (!rk1000_tve.cvbs->suspend) + rk1000_tve.cvbs->suspend = 1; + if (rk1000_tve.cvbs->enable) + rk1000_tve.cvbs->ddev->ops->setenable( + rk1000_tve.cvbs->ddev, 0); } } @@ -230,14 +234,22 @@ static void rk1000_early_resume(void *h) { pr_info("rk1000 tve exit early resume\n"); if (rk1000_tve.cvbs) { - rk1000_tve.cvbs->suspend = 0; - if (rk1000_tve.mode < TVOUT_YPBPR_720X480P_60) - rk_display_device_enable((rk1000_tve.cvbs)->ddev); + if (rk1000_tve.cvbs->suspend) + rk1000_tve.cvbs->suspend = 0; + if (rk1000_tve.mode < TVOUT_YPBPR_720X480P_60) { + if (rk1000_tve.cvbs->enable) + rk_display_device_enable( + (rk1000_tve.cvbs)->ddev); + } } if (rk1000_tve.ypbpr) { - rk1000_tve.ypbpr->suspend = 0; - if (rk1000_tve.mode > TVOUT_CVBS_PAL) - rk_display_device_enable((rk1000_tve.ypbpr)->ddev); + if (rk1000_tve.ypbpr->suspend) + rk1000_tve.ypbpr->suspend = 0; + if (rk1000_tve.mode > TVOUT_CVBS_PAL) { + if (rk1000_tve.ypbpr->enable) + rk_display_device_enable( + (rk1000_tve.ypbpr)->ddev); + } } }