Browse Source

qcacld-3.0: Fix to get correct 64-bit htt rx address

Fix is to get correct 64-bit htt rx in order address
when ENABLE_DEBUG_ADDRESS_MARKING is disabled.

Change-Id: I479ed4a2dd5cee3427f9a3714cda4ed50afa271a
CRs-Fixed: 2161207
Poddar, Siddarth 7 years ago
parent
commit
d021751ded
1 changed files with 12 additions and 2 deletions
  1. 12 2
      core/dp/htt/htt_rx.c

+ 12 - 2
core/dp/htt/htt_rx.c

@@ -449,10 +449,20 @@ htt_rx_in_ord_paddr_get(uint32_t *u32p)
 	return paddr;
 }
 #else
-static inline qdf_dma_addr_t
+static qdf_dma_addr_t
 htt_rx_in_ord_paddr_get(uint32_t *u32p)
 {
-	return HTT_RX_IN_ORD_PADDR_IND_PADDR_GET(*u32p);
+	qdf_dma_addr_t paddr = 0;
+
+	paddr = (qdf_dma_addr_t)HTT_RX_IN_ORD_PADDR_IND_PADDR_GET(*u32p);
+	if (sizeof(qdf_dma_addr_t) > 4) {
+		u32p++;
+		/* 32 bit architectures dont like <<32 */
+		paddr |= (((qdf_dma_addr_t)
+			  HTT_RX_IN_ORD_PADDR_IND_PADDR_GET(*u32p))
+			  << 16 << 16);
+	}
+	return paddr;
 }
 #endif /* ENABLE_DEBUG_ADDRESS_MARKING */
 #endif /* CONFIG_HL_SUPPORT*/