drm: disable OSD2 for txhd2's postblend disable interface [1/1]

PD#SWPL-167470

Problem:
osd2 was not disabled

Solution:
txhd2 postblend disable interface disable OSD2

Verify:
txhd2

Test:
DRM-OSD-25, DRM-OSD-53

Change-Id: Iae8e0a74906d99e1bdefc8bb50cfadfc4c382bff
Signed-off-by: Ao Xu <ao.xu@amlogic.com>
This commit is contained in:
Ao Xu
2024-04-29 17:52:28 +08:00
committed by Luan Yuan
parent a01be46a77
commit bf034cefa3
+17 -1
View File
@@ -814,6 +814,22 @@ static void g12b_postblend_hw_disable(struct meson_vpu_block *vblk,
MESON_DRM_BLOCK("%s disable called.\n", postblend->base.name);
}
static void txhd2_postblend_hw_disable(struct meson_vpu_block *vblk,
struct meson_vpu_block_state *state)
{
struct meson_vpu_postblend *postblend = to_postblend_block(vblk);
struct rdma_reg_ops *reg_ops = state->sub->reg_ops;
u32 project_en = reg_ops->rdma_read_reg(VPP_PROJECTOR) & (1 << 27);
if (vblk->index == 0) {
vpp_osd1_postblend_mux_set(vblk, reg_ops, postblend->reg, VPP_NULL);
if (!project_en)
vpp_osd2_postblend_mux_set(vblk, reg_ops, postblend->reg, VPP_NULL);
}
MESON_DRM_BLOCK("%s disable called.\n", postblend->base.name);
}
static void s5_postblend_hw_disable(struct meson_vpu_block *vblk,
struct meson_vpu_block_state *state)
{
@@ -1296,7 +1312,7 @@ struct meson_vpu_block_ops txhd2_postblend_ops = {
.check_state = postblend_check_state,
.update_state = txhd2_postblend_set_state,
.enable = postblend_hw_enable,
.disable = g12b_postblend_hw_disable,
.disable = txhd2_postblend_hw_disable,
.dump_register = postblend_dump_register,
.init = txhd2_postblend_hw_init,
};