hdmirx: Modify emp buffer address [1/1]

PD#SWPL-132553

Problem:
The emp buffer address is always the starting address of the page

Solution:
Offset the emp buffer address.

Verify:
t5m

Change-Id: I89ef78807f0ba3c25387bd1a21e8f9aa3d0fbd9d
Signed-off-by: Haotian Guo <haotian.guo@amlogic.com>
This commit is contained in:
Haotian Guo
2023-08-14 16:52:41 +08:00
committed by gerrit autosubmit
parent e330e43cde
commit 149cfe7b7e
2 changed files with 7 additions and 2 deletions
+2 -1
View File
@@ -96,7 +96,8 @@
/* 2023.7.5 clear dv packet when no emp */
/* 2023.7.12 txhd2 bring up debug */
/* 2023.8.1 add ctrl of 5v wake up */
#define RX_VER1 "ver.2023/7/12"
/* 2023.08.14 modify the mapped emp buffer address*/
#define RX_VER1 "ver.2023/8/14"
/* 50ms timer for hdmirx main loop (HDMI_STATE_CHECK_FREQ is 20) */
+5 -1
View File
@@ -6647,7 +6647,11 @@ void rx_emp_field_done_irq(u8 port)
for (i = 0; i < recv_pagenum;) {
/*one page 4k*/
cur_start_pg_addr = phys_to_page(p_addr + i * PAGE_SIZE);
src_addr = kmap_atomic(cur_start_pg_addr);
if (p_addr == rx_info.emp_buff_a.p_addr_a)
src_addr = kmap_atomic(cur_start_pg_addr);
else
src_addr = kmap_atomic(cur_start_pg_addr) + (rx_info.emp_buff_a.p_addr_b -
rx_info.emp_buff_a.p_addr_a) % PAGE_SIZE;
if (!src_addr)
return;
dma_sync_single_for_cpu(hdmirx_dev, (p_addr + i * PAGE_SIZE),