From eeff165bf42f3fcd96907facb3604395830e8fe5 Mon Sep 17 00:00:00 2001 From: Joy Cho Date: Tue, 12 Feb 2019 14:05:36 +0900 Subject: [PATCH] ODROID-N2: osd: support flexible fb size with free scale option Change-Id: I87a63eda62b96e3d54cb88f92e16364ba8250acf --- drivers/amlogic/media/osd/osd_fb.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/drivers/amlogic/media/osd/osd_fb.c b/drivers/amlogic/media/osd/osd_fb.c index 2454dc3d20fd..198ed9c42058 100644 --- a/drivers/amlogic/media/osd/osd_fb.c +++ b/drivers/amlogic/media/osd/osd_fb.c @@ -396,6 +396,16 @@ static int osd_set_fb_var(int index, const struct vinfo_s *vinfo) return 0; } + +static void osd_set_fb_parameters(int index, const struct vinfo_s *vinfo) +{ + osd_set_free_scale_enable_hw(index, 0); + osd_set_free_scale_mode_hw(index, 1); + osd_set_free_scale_axis_hw(index, 0, 0, vinfo->width, vinfo->height); + osd_set_window_axis_hw(index, 0, 0, vinfo->width, vinfo->height); + osd_enable_hw(index, 1); + +} #endif /* CONFIG_ARCH_MESON64_ODROID_COMMON */ phys_addr_t get_fb_rmem_paddr(int index) @@ -3942,6 +3952,11 @@ static int osd_probe(struct platform_device *pdev) for (i = 0; i < ARRAY_SIZE(osd_attrs_viu2); i++) ret = device_create_file(fbi->dev, &osd_attrs_viu2[i]); } + +#if defined(CONFIG_ARCH_MESON64_ODROID_COMMON) + if (index == DEV_OSD0) + osd_set_fb_parameters(DEV_OSD0, vinfo); +#endif } #ifdef CONFIG_AMLOGIC_LEGACY_EARLY_SUSPEND early_suspend.level = EARLY_SUSPEND_LEVEL_STOP_DRAWING;