drm: a113d support drm issue [1/1]
authorDezhi Kong <dezhi.kong@amlogic.com>
Thu, 7 Mar 2019 06:06:41 +0000 (14:06 +0800)
committerTao Zeng <tao.zeng@amlogic.com>
Fri, 22 Mar 2019 06:49:12 +0000 (23:49 -0700)
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 <dezhi.kong@amlogic.com>
drivers/amlogic/media/osd/osd_hw.c

index 6923a57..c8b85a3 100644 (file)
@@ -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;