瀏覽代碼

qcacmn: Retain defaults in REO_GENERAL_ENABLE

Use read-modify-write to retain default values in
REO_GENERAL_ENABLE register.

Change-Id: I94eb05328117adf02acc2cb14b50b02a008cd322
CRs-Fixed: 2254739
Karunakar Dasineni 6 年之前
父節點
當前提交
b277479e83
共有 1 個文件被更改,包括 14 次插入4 次删除
  1. 14 4
      hal/wifi3.0/hal_rx.c

+ 14 - 4
hal/wifi3.0/hal_rx.c

@@ -243,13 +243,23 @@ void hal_reo_setup(void *hal_soc,
 	 struct hal_reo_params *reo_params)
 {
 	struct hal_soc *soc = (struct hal_soc *)hal_soc;
+	uint32_t reg_val;
 
-	HAL_REG_WRITE(soc, HWIO_REO_R0_GENERAL_ENABLE_ADDR(
-		SEQ_WCSS_UMAC_REO_REG_OFFSET),
-		HAL_SM(HWIO_REO_R0_GENERAL_ENABLE,
+	reg_val = HAL_REG_READ(soc, HWIO_REO_R0_GENERAL_ENABLE_ADDR(
+		SEQ_WCSS_UMAC_REO_REG_OFFSET));
+
+	reg_val &= ~(HWIO_REO_R0_GENERAL_ENABLE_FRAGMENT_DEST_RING_BMSK |
+		HWIO_REO_R0_GENERAL_ENABLE_AGING_LIST_ENABLE_BMSK |
+		HWIO_REO_R0_GENERAL_ENABLE_AGING_FLUSH_ENABLE_BMSK);
+
+	reg_val |= HAL_SM(HWIO_REO_R0_GENERAL_ENABLE,
 		FRAGMENT_DEST_RING, reo_params->frag_dst_ring) |
 		HAL_SM(HWIO_REO_R0_GENERAL_ENABLE, AGING_LIST_ENABLE, 1) |
-		HAL_SM(HWIO_REO_R0_GENERAL_ENABLE, AGING_FLUSH_ENABLE, 1));
+		HAL_SM(HWIO_REO_R0_GENERAL_ENABLE, AGING_FLUSH_ENABLE, 1);
+
+	HAL_REG_WRITE(soc, HWIO_REO_R0_GENERAL_ENABLE_ADDR(
+		SEQ_WCSS_UMAC_REO_REG_OFFSET), reg_val);
+
 	/* Other ring enable bits and REO_ENABLE will be set by FW */
 
 	/* TODO: Setup destination ring mapping if enabled */