author | pengcheng chen <pengcheng.chen@amlogic.com> | 2018-04-18 01:44:17 (GMT) |
---|---|---|
committer | Xindong Xu <xindong.xu@amlogic.com> | 2018-04-19 06:01:05 (GMT) |
commit | dd828892823ee8a43fcc1becac55fcc4773736d9 (patch) | |
tree | 70e8a8d893da81385b4aea04468ce92bd26a084d | |
parent | 78d8e91dbd87901a4c8eba6a88fbb695ccc8bae5 (diff) | |
download | common-dd828892823ee8a43fcc1becac55fcc4773736d9.zip common-dd828892823ee8a43fcc1becac55fcc4773736d9.tar.gz common-dd828892823ee8a43fcc1becac55fcc4773736d9.tar.bz2 |
osd: fix osd rdma recovery reg
PD#160942: osd: fix osd rdma recovery reg
1. modify VIU_OSD1_BLK0_CFG_W0 init value in update_color_mode
2. add DOLBY_CORE2A_SWAP_CTRL1&CTRL2 in recovery table
Change-Id: I04c569bc4919e8adc5bd17d376ee65d084e49082
Signed-off-by: pengcheng chen <pengcheng.chen@amlogic.com>
-rw-r--r-- | drivers/amlogic/media/osd/osd_backup.c | 10 | ||||
-rw-r--r-- | drivers/amlogic/media/osd/osd_hw.c | 2 |
2 files changed, 9 insertions, 3 deletions
diff --git a/drivers/amlogic/media/osd/osd_backup.c b/drivers/amlogic/media/osd/osd_backup.c index 53688c516..fef043e 100644 --- a/drivers/amlogic/media/osd/osd_backup.c +++ b/drivers/amlogic/media/osd/osd_backup.c @@ -700,6 +700,8 @@ static struct reg_item misc_recovery_table_g12a[] = { {VIU_OSD2_BLK1_CFG_W4, 0x0, 0xffffffff, 1}, {VIU_OSD2_BLK2_CFG_W4, 0x0, 0xffffffff, 1}, {VIU_OSD2_MALI_UNPACK_CTRL, 0x0, 0x9f01ffff, 1}, + {DOLBY_CORE2A_SWAP_CTRL1, 0x0, 0x0fffffff, 1}, + {DOLBY_CORE2A_SWAP_CTRL2, 0x0, 0xffffffff, 1}, }; static void recovery_regs_init_old(void) @@ -1288,7 +1290,9 @@ static int update_recovery_item_g12a(u32 addr, u32 value) (addr == VIU_OSD2_BLK0_CFG_W4) || (addr == VIU_OSD2_BLK1_CFG_W4) || (addr == VIU_OSD2_BLK2_CFG_W4) || - (addr == VIU_OSD2_MALI_UNPACK_CTRL)) { + (addr == VIU_OSD2_MALI_UNPACK_CTRL) || + (addr == DOLBY_CORE2A_SWAP_CTRL1) || + (addr == DOLBY_CORE2A_SWAP_CTRL2)) { table = gRecovery[10].table; for (i = 0; i < gRecovery[10].size; i++) { if (addr == table[i].addr) { @@ -1487,7 +1491,9 @@ static s32 get_recovery_item_g12a(u32 addr, u32 *value, u32 *mask) (addr == VIU_OSD2_BLK0_CFG_W4) || (addr == VIU_OSD2_BLK1_CFG_W4) || (addr == VIU_OSD2_BLK2_CFG_W4) || - (addr == VIU_OSD2_MALI_UNPACK_CTRL)) { + (addr == VIU_OSD2_MALI_UNPACK_CTRL) || + (addr == DOLBY_CORE2A_SWAP_CTRL1) || + (addr == DOLBY_CORE2A_SWAP_CTRL2)) { table = gRecovery[10].table; for (i = 0; i < gRecovery[10].size; i++) { if (addr == table[i].addr) { diff --git a/drivers/amlogic/media/osd/osd_hw.c b/drivers/amlogic/media/osd/osd_hw.c index 1fb087d..d3297b0 100644 --- a/drivers/amlogic/media/osd/osd_hw.c +++ b/drivers/amlogic/media/osd/osd_hw.c @@ -3848,7 +3848,7 @@ static void osd_update_color_mode(u32 index) SCAN_MODE_INTERLACE) ? 2 : 0; data32 |= VSYNCOSD_RD_MPEG_REG( osd_reg->osd_blk0_cfg_w0) - & 0x30007040; + & 0x70007040; data32 |= osd_hw.fb_gem[index].canvas_idx << 16; if ((osd_hw.osd_afbcd[index].enable) && (osd_hw.osd_meson_dev.afbc_type == MALI_AFBC)) |