diff --git a/src/soc/mediatek/common/include/soc/display.h b/src/soc/mediatek/common/include/soc/display.h index a874412aff..fdcfcfdef2 100644 --- a/src/soc/mediatek/common/include/soc/display.h +++ b/src/soc/mediatek/common/include/soc/display.h @@ -33,5 +33,6 @@ int mtk_display_init(void); void mtk_ddp_init(void); void mtk_ddp_mode_set(const struct edid *edid, enum disp_path_sel path); +void mtk_ddp_ovlsys_start(uintptr_t fb_addr); #endif diff --git a/src/soc/mediatek/mt8196/ddp.c b/src/soc/mediatek/mt8196/ddp.c index 9453622a6e..6e57e78301 100644 --- a/src/soc/mediatek/mt8196/ddp.c +++ b/src/soc/mediatek/mt8196/ddp.c @@ -310,3 +310,11 @@ void mtk_ddp_mode_set(const struct edid *edid, enum disp_path_sel path) main_disp_path_setup(width, height, vrefresh, path); ovlsys_layer_config(fmt, bpp, width, height); } + +void mtk_ddp_ovlsys_start(uintptr_t fb_addr) +{ + write32(&exdma2_reg->ovl_addr, fb_addr); + setbits32(&exdma2_reg->ovl_en, BIT(0)); + setbits32(&exdma2_reg->ovl_l_en, BIT(0)); + setbits32(&blenders[0]->bld_l_en, BIT(0)); +}