mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 06:09:23 -04:00
qcacld-3.0: Add NL event to indicate SSR shutdown is triggered
propagation from qcacld-2.0 to qcacld-3.0. On Dual-WiFi Platforms, Radio Device 1 (R1 - SDIO interface) should be functional only if Radio Device 0 (R0 - PCIe interface) is active. If SSR is indentified on R0, indicate userspace application to unload R1 on this event and Reload R1 once R0 SSR and reload is complete. CRs-Fixed: 1046397 Change-Id: I8a06b569fe536bb93dbb37bdb289295bfce62f6e
This commit is contained in:
parent
e492bfefbf
commit
78ff65a8c6
7 changed files with 41 additions and 2 deletions
|
|
@ -593,6 +593,7 @@ void ol_target_failure(void *instance, QDF_STATUS status)
|
|||
struct hif_opaque_softc *scn = ol_ctx->scn;
|
||||
tp_wma_handle wma = cds_get_context(QDF_MODULE_ID_WMA);
|
||||
struct ol_config_info *ini_cfg = ol_get_ini_handle(ol_ctx);
|
||||
qdf_device_t qdf_dev = ol_ctx->qdf_dev;
|
||||
int ret;
|
||||
enum hif_target_status target_status = hif_get_target_status(scn);
|
||||
|
||||
|
|
@ -640,6 +641,7 @@ void ol_target_failure(void *instance, QDF_STATUS status)
|
|||
|
||||
BMI_ERR("XXX TARGET ASSERTED XXX");
|
||||
|
||||
cds_svc_fw_shutdown_ind(qdf_dev->dev);
|
||||
/* Collect the RAM dump through a workqueue */
|
||||
if (ini_cfg->enable_ramdump_collection)
|
||||
qdf_sched_work(0, &ol_ctx->ramdump_work);
|
||||
|
|
|
|||
|
|
@ -264,7 +264,7 @@ QDF_STATUS cds_flush_logs(uint32_t is_fatal,
|
|||
bool dump_mac_trace,
|
||||
bool recovery_needed);
|
||||
void cds_logging_set_fw_flush_complete(void);
|
||||
|
||||
void cds_svc_fw_shutdown_ind(struct device *dev);
|
||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT
|
||||
void cds_tdls_tx_rx_mgmt_event(uint8_t event_id, uint8_t tx_rx,
|
||||
uint8_t type, uint8_t sub_type, uint8_t *peer_mac);
|
||||
|
|
|
|||
|
|
@ -2323,3 +2323,14 @@ bool cds_is_sub_20_mhz_enabled(void)
|
|||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* cds_svc_fw_shutdown_ind() - API to send userspace about FW crash
|
||||
*
|
||||
* @dev: Device Pointer
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void cds_svc_fw_shutdown_ind(struct device *dev)
|
||||
{
|
||||
hdd_svc_fw_shutdown_ind(dev);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1819,7 +1819,7 @@ QDF_STATUS hdd_sme_close_session_callback(void *pContext);
|
|||
|
||||
int hdd_reassoc(hdd_adapter_t *adapter, const uint8_t *bssid,
|
||||
const uint8_t channel, const handoff_src src);
|
||||
|
||||
void hdd_svc_fw_shutdown_ind(struct device *dev);
|
||||
int hdd_register_cb(hdd_context_t *hdd_ctx);
|
||||
void hdd_deregister_cb(hdd_context_t *hdd_ctx);
|
||||
int hdd_start_station_adapter(hdd_adapter_t *adapter);
|
||||
|
|
|
|||
|
|
@ -8168,6 +8168,7 @@ void wlan_hdd_send_svc_nlink_msg(int radio, int type, void *data, int len)
|
|||
|
||||
switch (type) {
|
||||
case WLAN_SVC_FW_CRASHED_IND:
|
||||
case WLAN_SVC_FW_SHUTDOWN_IND:
|
||||
case WLAN_SVC_LTE_COEX_IND:
|
||||
case WLAN_SVC_WLAN_AUTO_SHUTDOWN_IND:
|
||||
case WLAN_SVC_WLAN_AUTO_SHUTDOWN_CANCEL_IND:
|
||||
|
|
|
|||
|
|
@ -1384,6 +1384,30 @@ static void hdd_ssr_timer_start(int msec)
|
|||
ssr_timer_started = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* hdd_svc_fw_shutdown_ind() - API to send FW SHUTDOWN IND to Userspace
|
||||
*
|
||||
* @dev: Device Pointer
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void hdd_svc_fw_shutdown_ind(struct device *dev)
|
||||
{
|
||||
hdd_context_t *hdd_ctx;
|
||||
v_CONTEXT_t g_context;
|
||||
|
||||
g_context = cds_get_global_context();
|
||||
|
||||
if (!g_context)
|
||||
return;
|
||||
|
||||
hdd_ctx = cds_get_context(QDF_MODULE_ID_HDD);
|
||||
|
||||
hdd_ctx ? wlan_hdd_send_svc_nlink_msg(hdd_ctx->radio_index,
|
||||
WLAN_SVC_FW_SHUTDOWN_IND,
|
||||
NULL, 0) : 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* hdd_wlan_shutdown() - HDD SSR shutdown function
|
||||
*
|
||||
|
|
|
|||
|
|
@ -85,6 +85,7 @@
|
|||
#define WLAN_SVC_WLAN_TP_TX_IND 0x10B
|
||||
#define WLAN_SVC_WLAN_AUTO_SHUTDOWN_CANCEL_IND 0x10C
|
||||
#define WLAN_SVC_WLAN_RADIO_INDEX 0x10D
|
||||
#define WLAN_SVC_FW_SHUTDOWN_IND 0x10E
|
||||
#define WLAN_SVC_MAX_SSID_LEN 32
|
||||
#define WLAN_SVC_MAX_BSSID_LEN 6
|
||||
#define WLAN_SVC_MAX_STR_LEN 16
|
||||
|
|
|
|||
Loading…
Reference in a new issue