mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 11:26:02 +09:00
osd: uboot logo scaler down in 4k issue [1/1]
PD#163001 Problem: uboot logo scaler down in 4k Solution: uboot logo size adjust when vout changed before first page flip command Verify: verified in u200 board Change-Id: Ic23e695fe716811eaf3faa62069c808a03c26f9d Signed-off-by: pengcheng chen <pengcheng.chen@amlogic.com>
This commit is contained in:
committed by
Dongjin Kim
parent
fdde80878f
commit
078086d53e
@@ -1410,7 +1410,6 @@ static int malloc_osd_memory(struct fb_info *info)
|
||||
(osd_meson_dev.cpu_id >= __MESON_CPU_MAJOR_ID_G12A)) {
|
||||
osd_log_info("---------------clear fb%d memory %p\n",
|
||||
fb_index, fbdev->fb_mem_vaddr);
|
||||
set_logo_loaded();
|
||||
if (fbdev->fb_mem_vaddr)
|
||||
memset(fbdev->fb_mem_vaddr, 0x0, fbdev->fb_len);
|
||||
if (osd_meson_dev.afbc_type && osd_get_afbc(fb_index)) {
|
||||
@@ -1442,7 +1441,6 @@ static int malloc_osd_memory(struct fb_info *info)
|
||||
static int osd_open(struct fb_info *info, int arg)
|
||||
{
|
||||
u32 fb_index;
|
||||
int logo_index;
|
||||
struct osd_fb_dev_s *fbdev;
|
||||
struct fb_fix_screeninfo *fix = NULL;
|
||||
int ret = 0;
|
||||
@@ -1490,13 +1488,14 @@ static int osd_open(struct fb_info *info, int arg)
|
||||
if (!fb_ion_client)
|
||||
fb_ion_client = meson_ion_client_create(-1, "meson-fb");
|
||||
}
|
||||
logo_index = osd_get_logo_index();
|
||||
/* clear osd buffer if not logo layer */
|
||||
if (((logo_index < 0) || (logo_index != fb_index)) ||
|
||||
(osd_meson_dev.cpu_id == __MESON_CPU_MAJOR_ID_AXG) ||
|
||||
(osd_meson_dev.cpu_id >= __MESON_CPU_MAJOR_ID_G12A)) {
|
||||
osd_log_info("set logo loaded\n");
|
||||
set_logo_loaded();
|
||||
if (get_logo_loaded()) {
|
||||
u32 logo_index;
|
||||
|
||||
logo_index = osd_get_logo_index();
|
||||
if (logo_index < 0) {
|
||||
osd_log_info("set logo loaded\n");
|
||||
set_logo_loaded();
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1166,7 +1166,15 @@ int osd_sync_do_hwc(struct do_hwc_cmd_s *hwc_cmd)
|
||||
osd_hw.out_fence_fd = -1;
|
||||
mutex_unlock(&post_fence_list_lock);
|
||||
kthread_queue_work(&buffer_toggle_worker, &buffer_toggle_work);
|
||||
if (get_logo_loaded()) {
|
||||
int logo_index;
|
||||
|
||||
logo_index = osd_get_logo_index();
|
||||
if (logo_index < 0) {
|
||||
osd_log_info("set logo loaded\n");
|
||||
set_logo_loaded();
|
||||
}
|
||||
}
|
||||
osd_log_dbg("osd_sync_do_hwc :out_fence_fd=%d\n",
|
||||
out_fence_fd);
|
||||
return out_fence_fd;
|
||||
|
||||
@@ -170,6 +170,7 @@ void osd_update_vsync_hit(void);
|
||||
void osd_hw_reset(void);
|
||||
void osd_mali_afbc_start(void);
|
||||
int logo_work_init(void);
|
||||
int get_logo_loaded(void);
|
||||
void set_logo_loaded(void);
|
||||
int set_osd_logo_freescaler(void);
|
||||
void osd_get_display_debug(u32 *osd_display_debug_enable);
|
||||
|
||||
@@ -250,6 +250,10 @@ int set_osd_logo_freescaler(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int get_logo_loaded(void)
|
||||
{
|
||||
return logo_info.loaded;
|
||||
}
|
||||
|
||||
void set_logo_loaded(void)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user