浏览代码

qca-wifi: CFR: Fix cookie lookup failure during RXTLV processing

37th bit is being set as an exchange between FW and ucode
to indicate that it is a DDR address to PCSS module.
As a result of which Cookie lookup fails while comparing
all 40 bits, since the physical address of DBR buffer 
does not match with the physical address of the received
buffer.

Since lower 36bits represents physical address,
Use only 4 least significant bits from higher 32bits along
with lower 32 bits while programming the physical address in
DBR SRNG. Format: ( low32 + 4 bits of high32 ).

Change-Id: I2cb09c00a9942966266ba81f56f0c6c173671e2f
Adwait Nayak 5 年之前
父节点
当前提交
3c90187c47
共有 1 个文件被更改,包括 3 次插入3 次删除
  1. 3 3
      target_if/cfr/src/target_if_cfr_6018.c

+ 3 - 3
target_if/cfr/src/target_if_cfr_6018.c

@@ -626,7 +626,7 @@ void target_if_cfr_rx_tlv_process(struct wlan_objmgr_pdev *pdev, void *nbuf)
 	struct cdp_rx_indication_ppdu *cdp_rx_ppdu;
 	struct cdp_rx_stats_ppdu_user *rx_stats_peruser;
 	struct cdp_rx_ppdu_cfr_info *cfr_info;
-	qdf_dma_addr_t buf_addr = 0, buf_addr_temp = 0;
+	qdf_dma_addr_t buf_addr = 0, buf_addr_extn = 0;
 	struct pdev_cfr *pcfr;
 	struct look_up_table *lut = NULL;
 	struct csi_cfr_header *header = NULL;
@@ -701,9 +701,9 @@ void target_if_cfr_rx_tlv_process(struct wlan_objmgr_pdev *pdev, void *nbuf)
 	}
 
 	cfr_rx_ops = &psoc->soc_cb.rx_ops.cfr_rx_ops;
-	buf_addr_temp = cfr_info->rtt_che_buffer_pointer_high8;
+	buf_addr_extn = cfr_info->rtt_che_buffer_pointer_high8 & 0xF;
 	buf_addr = (cfr_info->rtt_che_buffer_pointer_low32 |
-		    ((uint64_t)buf_addr_temp << 32));
+		    ((uint64_t)buf_addr_extn << 32));
 
 
 	if (target_if_dbr_cookie_lookup(pdev, DBR_MODULE_CFR, buf_addr,