diff --git a/drivers/video/rockchip/lcdc/rk3036_lcdc.c b/drivers/video/rockchip/lcdc/rk3036_lcdc.c index c278bb51d82f..aeb0b353af5b 100755 --- a/drivers/video/rockchip/lcdc/rk3036_lcdc.c +++ b/drivers/video/rockchip/lcdc/rk3036_lcdc.c @@ -349,9 +349,9 @@ static void lcdc_layer_enable(struct lcdc_device *lcdc_dev, "wakeup from standby!\n"); lcdc_dev->standby = 0; } - lcdc_dev->atv_layer_cnt++; - } else if ((lcdc_dev->atv_layer_cnt > 0) && (!open)) { - lcdc_dev->atv_layer_cnt--; + lcdc_dev->atv_layer_cnt |= (1 << win_id); + } else if ((lcdc_dev->atv_layer_cnt & (1 << win_id)) && (!open)) { + lcdc_dev->atv_layer_cnt &= ~(1 << win_id); } lcdc_dev->driver.win[win_id]->state = open; if (!open) {