mirror of
https://github.com/hardkernel/kernel_common_drivers.git
synced 2026-06-25 12:03:48 +09:00
drm: use gfcd only for S7D [1/1]
PD#SWPL-165984 Problem: S7D uses different PATH_MISC_CTRL definition from other platforms, and causes rdma issue in case of multiple displays in other platforms. Solution: use gfcd only for S7D. Verify: t7c Test: DRM-OSD-2 Change-Id: Ie13eff1c9e330340e2f4c21d9a90f72500c373f1 Signed-off-by: yujun.zhang <yujun.zhang@amlogic.com>
This commit is contained in:
@@ -238,6 +238,7 @@ struct meson_vpu_osd {
|
||||
struct osd_mif_reg_s *reg;
|
||||
int mif_acc_mode;
|
||||
u32 mali_src_en_switch;
|
||||
bool has_gfcd;
|
||||
};
|
||||
|
||||
struct osd_zorder_s {
|
||||
|
||||
@@ -1454,19 +1454,22 @@ static void osd_set_state(struct meson_vpu_block *vblk,
|
||||
old_mvos = to_osd_state(old_state);
|
||||
|
||||
osd_ctrl_init(vblk, reg_ops, reg);
|
||||
process_unit = mvos->process_unit;
|
||||
if (process_unit == GFCD_AFBC || process_unit == GFCD_AFRC) {
|
||||
MESON_DRM_BLOCK("set gfcd %d.\n", process_unit);
|
||||
osd_gfcd_axi_input_en(vblk, reg_ops, reg, vblk->index, 1);
|
||||
osd_gfcd_dout_en(vblk, reg_ops, reg, vblk->index, 1);
|
||||
if (osd->mali_src_en_switch)
|
||||
osd_mali_src_en(vblk, reg_ops, reg, vblk->index, 1);
|
||||
return;
|
||||
}
|
||||
|
||||
MESON_DRM_BLOCK("set mif or afbc.\n");
|
||||
osd_gfcd_axi_input_en(vblk, reg_ops, reg, vblk->index, 0);
|
||||
osd_gfcd_dout_en(vblk, reg_ops, reg, vblk->index, 0);
|
||||
if (osd->has_gfcd) {
|
||||
process_unit = mvos->process_unit;
|
||||
if (process_unit == GFCD_AFBC || process_unit == GFCD_AFRC) {
|
||||
MESON_DRM_BLOCK("set gfcd %d.\n", process_unit);
|
||||
osd_gfcd_axi_input_en(vblk, reg_ops, reg, vblk->index, 1);
|
||||
osd_gfcd_dout_en(vblk, reg_ops, reg, vblk->index, 1);
|
||||
if (osd->mali_src_en_switch)
|
||||
osd_mali_src_en(vblk, reg_ops, reg, vblk->index, 1);
|
||||
return;
|
||||
}
|
||||
|
||||
MESON_DRM_BLOCK("set mif or afbc.\n");
|
||||
osd_gfcd_axi_input_en(vblk, reg_ops, reg, vblk->index, 0);
|
||||
osd_gfcd_dout_en(vblk, reg_ops, reg, vblk->index, 0);
|
||||
}
|
||||
|
||||
if (mvos->crtc_index == 1)
|
||||
/*for multi-vpp, the vpp1 default is 4*/
|
||||
@@ -1935,6 +1938,7 @@ static void s7d_osd_hw_init(struct meson_vpu_block *vblk)
|
||||
//osd_ctrl_init(vblk, pipeline->subs[0].reg_ops, osd->reg);
|
||||
osd->mif_acc_mode = LINEAR_MIF;
|
||||
osd->mali_src_en_switch = 1;
|
||||
osd->has_gfcd = true;
|
||||
|
||||
/* osd secure function init */
|
||||
#ifdef CONFIG_AMLOGIC_MEDIA_SECURITY
|
||||
|
||||
Reference in New Issue
Block a user