rk3036 lcdc:

If same layer is closed twice, atv_layer_cnt may be
        set to zero, so vop go to standy. Now win0、win1、hwc
        is mapped to atv_layer_cnt bit[0-2]. When open/close
        layer, set coresponding atv_layer_cnt bit to one/zero.
This commit is contained in:
Zheng Yang
2014-11-18 11:07:02 +08:00
parent c529f8681b
commit c4a062eff7

View File

@@ -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) {