qcacld-3.0: Add changes to read tsf via scratch register

Read TSF via scratch registers instead of WMI commands. Added framework
to initialize/de-initialize the deferred context for register reads.

Change-Id: Id5309bf3117f04fb3d321ddd3af50e4bdf223561
CRs-Fixed: 3287534
This commit is contained in:
Amit Mehta
2022-09-08 03:40:19 -07:00
zatwierdzone przez Madan Koyyalamudi
rodzic 5d10c60628
commit 8d830534f3
4 zmienionych plików z 285 dodań i 60 usunięć

Wyświetl plik

@@ -315,22 +315,29 @@ end:
#ifdef WLAN_FEATURE_TSF
#ifdef WLAN_FEATURE_TSF_UPLINK_DELAY
static void wma_vdev_tsf_set_mac_id(struct stsf *ptsf, uint32_t mac_id,
uint32_t mac_id_valid)
#if defined(WLAN_FEATURE_TSF_UPLINK_DELAY) || defined(QCA_GET_TSF_VIA_REG)
static inline void
wma_vdev_tsf_set_mac_id_tsf_id(struct stsf *ptsf, uint32_t mac_id,
uint32_t mac_id_valid, uint32_t tsf_id,
uint32_t tsf_id_valid)
{
ptsf->mac_id = mac_id;
ptsf->mac_id_valid = mac_id_valid;
ptsf->tsf_id = tsf_id;
ptsf->tsf_id_valid = tsf_id_valid;
wma_nofl_debug("mac_id %d mac_id_valid %d", ptsf->mac_id,
ptsf->mac_id_valid);
wma_nofl_debug("mac_id %d mac_id_valid %d tsf_id %d tsf_id_valid %d",
ptsf->mac_id, ptsf->mac_id_valid, ptsf->tsf_id,
ptsf->tsf_id_valid);
}
#else /* !WLAN_FEATURE_TSF_UPLINK_DELAY */
static inline void wma_vdev_tsf_set_mac_id(struct stsf *ptsf, uint32_t mac_id,
uint32_t mac_id_valid)
#else /* !WLAN_FEATURE_TSF_UPLINK_DELAY || !QCA_GET_TSF_VIA_REG*/
static inline void
wma_vdev_tsf_set_mac_id_tsf_id(struct stsf *ptsf, uint32_t mac_id,
uint32_t mac_id_valid, uint32_t tsf_id,
uint32_t tsf_id_valid)
{
}
#endif /* WLAN_FEATURE_TSF_UPLINK_DELAY */
#endif /* WLAN_FEATURE_TSF_UPLINK_DELAY || QCA_GET_TSF_VIA_REG*/
/**
* wma_vdev_tsf_handler() - handle tsf event indicated by FW
@@ -372,9 +379,10 @@ int wma_vdev_tsf_handler(void *handle, uint8_t *data, uint32_t data_len)
ptsf->global_tsf_low, ptsf->global_tsf_high,
ptsf->soc_timer_low, ptsf->soc_timer_high);
wma_vdev_tsf_set_mac_id(ptsf, tsf_event->mac_id,
tsf_event->mac_id_valid);
wma_vdev_tsf_set_mac_id_tsf_id(ptsf, tsf_event->mac_id,
tsf_event->mac_id_valid,
tsf_event->tsf_id,
tsf_event->tsf_id_valid);
tsf_msg.type = eWNI_SME_TSF_EVENT;
tsf_msg.bodyptr = ptsf;
tsf_msg.bodyval = 0;