mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-24 13:44:26 -04:00
qcacld-3.0: Avoid unexpected TSF GPIO failure
qcacld-2.0 to qcacld-3.0 propagation A customer observed the following error log: wlan: [1662:E :HDD] hdd_wlan_startup: 12873: set tsf GPIO fail The customer was concerned that the device was not working correctly. The reality is that the TSF GPIO is only expected to be set on specific hardware platforms, and the customer platform was not one of those platforms. Fix this issue by making sure that all of the TSF GPIO logic is properly encapsulated within the WLAN_FEATURE_TSF feature flag. Change-Id: I34eab623243d4674c5fc1d0c8139d80efe5786a7 CRs-Fixed: 962955
This commit is contained in:
parent
296d4b5d32
commit
89c66ff56c
2 changed files with 32 additions and 7 deletions
|
|
@ -3585,7 +3585,9 @@ struct hdd_config {
|
|||
uint16_t obss_passive_dwelltime;
|
||||
uint16_t obss_width_trigger_interval;
|
||||
uint8_t inform_bss_rssi_raw;
|
||||
#ifdef WLAN_FEATURE_TSF
|
||||
uint32_t tsf_gpio_pin;
|
||||
#endif
|
||||
#ifdef QCA_WIFI_3_0_EMU
|
||||
bool enable_m2m_limitation;
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -5671,6 +5671,35 @@ QDF_STATUS hdd_register_for_sap_restart_with_channel_switch(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* hdd_tsf_init() - Initialize the TSF synchronization interface
|
||||
* @hdd_ctx: HDD global context
|
||||
*
|
||||
* When TSF synchronization via GPIO is supported by the driver and
|
||||
* has been enabled in the configuration file, this function plumbs
|
||||
* the GPIO value down to firmware via SME.
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
#ifdef WLAN_FEATURE_TSF
|
||||
static void hdd_tsf_init(hdd_context_t *hdd_ctx)
|
||||
{
|
||||
QDF_STATUS status;
|
||||
|
||||
if (hdd_ctx->config->tsf_gpio_pin == TSF_GPIO_PIN_INVALID)
|
||||
return;
|
||||
|
||||
status = sme_set_tsf_gpio(hdd_ctx->hHal,
|
||||
hdd_ctx->config->tsf_gpio_pin);
|
||||
if (!QDF_IS_STATUS_SUCCESS(status))
|
||||
hdd_err("Set tsf GPIO failed, status: %d", status);
|
||||
}
|
||||
#else
|
||||
static void hdd_tsf_init(hdd_context_t *hdd_ctx)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* hdd_wlan_startup() - HDD init function
|
||||
* @dev: Pointer to the underlying device
|
||||
|
|
@ -5943,13 +5972,7 @@ int hdd_wlan_startup(struct device *dev, void *hif_sc)
|
|||
if (QDF_IS_STATUS_SUCCESS(status))
|
||||
hdd_err("Error setting txlimit in sme: %d", status);
|
||||
|
||||
if (hdd_ctx->config->tsf_gpio_pin != TSF_GPIO_PIN_INVALID) {
|
||||
status = sme_set_tsf_gpio(hdd_ctx->hHal,
|
||||
hdd_ctx->config->tsf_gpio_pin);
|
||||
if (!QDF_IS_STATUS_SUCCESS(status))
|
||||
hdd_err("set tsf GPIO fail");
|
||||
}
|
||||
|
||||
hdd_tsf_init(hdd_ctx);
|
||||
#ifdef MSM_PLATFORM
|
||||
spin_lock_init(&hdd_ctx->bus_bw_lock);
|
||||
qdf_mc_timer_init(&hdd_ctx->bus_bw_timer,
|
||||
|
|
|
|||
Loading…
Reference in a new issue