From b277479e830d38c8ed8d604bdad1bb988005545a Mon Sep 17 00:00:00 2001 From: Karunakar Dasineni Date: Tue, 5 Jun 2018 13:32:41 -0700 Subject: [PATCH] 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 --- hal/wifi3.0/hal_rx.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/hal/wifi3.0/hal_rx.c b/hal/wifi3.0/hal_rx.c index c982b346d07d..cf27b47665d2 100644 --- a/hal/wifi3.0/hal_rx.c +++ b/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 */