osd: fix osd afbc can't display on android5.1 [1/1]

PD#SWPL-6869

Problem:
afbc can't display with android5.1, because blank enable
called before afbc set, which make osd enable not updated
and afbc not enable when hwc post frame

Solution:
if mali afbc enable, call osd enable.

Verify:
verified on x301

Change-Id: I1d727a586a66c6e7848d09dfb5c5b74ff7a2e3e6
Signed-off-by: Shuide Chen <shuide.chen@amlogic.com>
This commit is contained in:
Shuide Chen
2019-04-11 13:20:46 +08:00
committed by Tao Zeng
parent 1d23c1e6c2
commit e9fadfe57f

View File

@@ -4286,7 +4286,10 @@ static void osd_pan_display_single_fence(struct osd_fence_map_s *fence_map)
.update_func(index);
osd_update_window_axis = false;
}
if ((osd_enable != osd_hw.enable[index])
if ((osd_enable != osd_hw.enable[index] ||
(osd_hw.osd_meson_dev.afbc_type
== MALI_AFBC &&
osd_hw.osd_afbcd[index].enable))
&& (skip == false)
&& (suspend_flag == false)) {
osd_hw.enable[index] = osd_enable;
@@ -4407,7 +4410,10 @@ static void osd_pan_display_single_fence(struct osd_fence_map_s *fence_map)
.update_func(index);
osd_update_window_axis = false;
}
if ((osd_enable != osd_hw.enable[index])
if ((osd_enable != osd_hw.enable[index] ||
(osd_hw.osd_meson_dev.afbc_type
== MALI_AFBC &&
osd_hw.osd_afbcd[index].enable))
&& (skip == false)
&& (suspend_flag == false)) {
osd_hw.enable[index] = osd_enable;
@@ -4419,7 +4425,9 @@ static void osd_pan_display_single_fence(struct osd_fence_map_s *fence_map)
osd_mali_afbc_start();
spin_unlock_irqrestore(&osd_lock, lock_flags);
osd_wait_vsync_hw();
} else if ((osd_enable != osd_hw.enable[index])
} else if ((osd_enable != osd_hw.enable[index] ||
(osd_hw.osd_meson_dev.afbc_type == MALI_AFBC &&
osd_hw.osd_afbcd[index].enable))
&& (skip == false)) {
spin_lock_irqsave(&osd_lock, lock_flags);
if (suspend_flag == false) {