From f59b7a60b2ea149906151ecd9ebc82d61bd6fd91 Mon Sep 17 00:00:00 2001 From: Dezhi Kong Date: Thu, 7 Mar 2019 14:06:41 +0800 Subject: [PATCH] drm: a113d support drm issue [1/1] PD#SH-397 Problem: use modetest to test A113D DRM function, displaying is incorrect Solution: add linear addr config for a113d drm mode Verify: verified on s400 Change-Id: Id6a2c6ad94bc0148815076561d9dc2ae8ded6884 Signed-off-by: Dezhi Kong --- drivers/amlogic/media/osd/osd_hw.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/drivers/amlogic/media/osd/osd_hw.c b/drivers/amlogic/media/osd/osd_hw.c index 6923a5747b13..c8b85a3ca9cd 100644 --- a/drivers/amlogic/media/osd/osd_hw.c +++ b/drivers/amlogic/media/osd/osd_hw.c @@ -9751,11 +9751,17 @@ static bool osd_direct_render(struct osd_plane_map_s *plane_map) plane_map->byte_stride * plane_map->src_h; osd_log_dbg(MODULE_RENDER, "canvas_id=%x, phy_addr=%x\n", osd_hw.fb_gem[index].canvas_idx, phy_addr); - canvas_config(osd_hw.fb_gem[index].canvas_idx, - phy_addr, - plane_map->byte_stride, - plane_map->src_h, - CANVAS_ADDR_NOWRAP, CANVAS_BLKMODE_LINEAR); + if (osd_hw.osd_meson_dev.osd_ver == OSD_SIMPLE) { + osd_hw.fb_gem[index].addr = phy_addr; + osd_hw.fb_gem[index].width = plane_map->byte_stride; + osd_update_phy_addr(0); + } else { + canvas_config(osd_hw.fb_gem[index].canvas_idx, + phy_addr, + plane_map->byte_stride, + plane_map->src_h, + CANVAS_ADDR_NOWRAP, CANVAS_BLKMODE_LINEAR); + } if (osd_hw.hwc_enable) { /* just get para, need update via do_hwc */ osd_hw.order[index] = plane_map->zorder;