From 6f95b4aadb8e64fc0d65d8846cd341005017f124 Mon Sep 17 00:00:00 2001 From: Jianmin Zhu Date: Tue, 12 May 2020 22:45:03 +0800 Subject: [PATCH] qcacmn: Force wake PCIe for hsp register write make sure both PCIe and device are force woken for the register writes for hsp, or write may fail. Earlier WAR is not required as we have root caused it. Change-Id: I350b810a6cef8eec46428e57f5b779f888552c1b CRs-Fixed: 2677342 --- hal/wifi3.0/hal_generic_api.h | 25 ------------------------- hal/wifi3.0/hal_srng.c | 13 +++++++------ 2 files changed, 7 insertions(+), 31 deletions(-) diff --git a/hal/wifi3.0/hal_generic_api.h b/hal/wifi3.0/hal_generic_api.h index 7e760f3929..d0374605d1 100644 --- a/hal/wifi3.0/hal_generic_api.h +++ b/hal/wifi3.0/hal_generic_api.h @@ -1787,29 +1787,6 @@ void hal_get_hw_hptp_generic(struct hal_soc *hal_soc, } } -#if defined(WBM_IDLE_LSB_WRITE_CONFIRM_WAR) -/** - * hal_wbm_idle_lsb_write_confirm() - Check and update WBM_IDLE_LINK ring LSB - * @srng: srng handle - * - * Return: None - */ -static void hal_wbm_idle_lsb_write_confirm(struct hal_srng *srng) -{ - if (srng->ring_id == HAL_SRNG_WBM_IDLE_LINK) { - while (SRNG_SRC_REG_READ(srng, BASE_LSB) != - ((unsigned int)srng->ring_base_paddr & 0xffffffff)) - SRNG_SRC_REG_WRITE(srng, BASE_LSB, - srng->ring_base_paddr & - 0xffffffff); - } -} -#else -static void hal_wbm_idle_lsb_write_confirm(struct hal_srng *srng) -{ -} -#endif - /** * hal_srng_src_hw_init - Private function to initialize SRNG * source ring HW @@ -1837,8 +1814,6 @@ void hal_srng_src_hw_init_generic(struct hal_soc *hal, } SRNG_SRC_REG_WRITE(srng, BASE_LSB, srng->ring_base_paddr & 0xffffffff); - hal_wbm_idle_lsb_write_confirm(srng); - reg_val = SRNG_SM(SRNG_SRC_FLD(BASE_MSB, RING_BASE_ADDR_MSB), ((uint64_t)(srng->ring_base_paddr) >> 32)) | SRNG_SM(SRNG_SRC_FLD(BASE_MSB, RING_SIZE), diff --git a/hal/wifi3.0/hal_srng.c b/hal/wifi3.0/hal_srng.c index 3f305ee200..8b25986063 100644 --- a/hal/wifi3.0/hal_srng.c +++ b/hal/wifi3.0/hal_srng.c @@ -273,6 +273,12 @@ error: static void hal_target_based_configure(struct hal_soc *hal) { + /** + * Indicate Initialization of srngs to avoid force wake + * as umac power collapse is not enabled yet + */ + hal->init_phase = true; + switch (hal->target_type) { #ifdef QCA_WIFI_QCA6290 case TARGET_TYPE_QCA6290: @@ -290,6 +296,7 @@ static void hal_target_based_configure(struct hal_soc *hal) case TARGET_TYPE_QCA6490: hal->use_register_windowing = true; hal_qca6490_attach(hal); + hal->init_phase = false; break; #endif #ifdef QCA_WIFI_QCA6750 @@ -772,12 +779,6 @@ void *hal_attach(struct hif_opaque_softc *hif_handle, qdf_device_t qdf_dev) hal_reg_write_fail_history_init(hal); - /** - * Indicate Initialization of srngs to avoid force wake - * as umac power collapse is not enabled yet - */ - hal->init_phase = true; - qdf_minidump_log(hal, sizeof(*hal), "hal_soc"); qdf_atomic_init(&hal->active_work_cnt);