qcacmn: disable all apps CE irqs except wake_irq in bus suspend

In Moselle, currently CE interrupts are not disabled from apps
side during ipci bus suspend, so adding changes to disable all
the CE interrupts except wake_irq during bus suspend and do the
symmetric inverse operation during bus resume, also drain all
the pending FW diag logs from copy engine.

Change-Id: Ib54fc6660fd81aff18787b0b699f3a6cd2d7803d
CRs-Fixed: 2879752
This commit is contained in:
Vevek Venkatesan
2021-02-19 02:41:47 +05:30
committed by snandini
parent 4adab0e0a9
commit 17660198d7
7 changed files with 205 additions and 12 deletions

View File

@@ -4480,6 +4480,27 @@ int hif_get_wake_ce_id(struct hif_softc *scn, uint8_t *ce_id)
return 0;
}
int hif_get_fw_diag_ce_id(struct hif_softc *scn, uint8_t *ce_id)
{
int status;
uint8_t ul_pipe, dl_pipe;
int ul_is_polled, dl_is_polled;
/* DL pipe for WMI_CONTROL_DIAG_SVC should map to the FW DIAG CE_ID */
status = hif_map_service_to_pipe(GET_HIF_OPAQUE_HDL(scn),
WMI_CONTROL_DIAG_SVC,
&ul_pipe, &dl_pipe,
&ul_is_polled, &dl_is_polled);
if (status) {
hif_err("Failed to map pipe: %d", status);
return status;
}
*ce_id = dl_pipe;
return 0;
}
#ifdef HIF_CE_LOG_INFO
/**
* ce_get_index_info(): Get CE index info