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.
"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) {