|
@@ -277,7 +277,7 @@ dp_umac_reset_get_rx_event(struct dp_soc_umac_reset_ctx *umac_reset_ctx)
|
|
*
|
|
*
|
|
* Return: QDF_STATUS of operation
|
|
* Return: QDF_STATUS of operation
|
|
*/
|
|
*/
|
|
-static QDF_STATUS
|
|
|
|
|
|
+QDF_STATUS
|
|
dp_umac_reset_validate_n_update_state_machine_on_rx(
|
|
dp_umac_reset_validate_n_update_state_machine_on_rx(
|
|
struct dp_soc_umac_reset_ctx *umac_reset_ctx,
|
|
struct dp_soc_umac_reset_ctx *umac_reset_ctx,
|
|
enum umac_reset_rx_event rx_event,
|
|
enum umac_reset_rx_event rx_event,
|
|
@@ -325,14 +325,21 @@ bool dp_check_umac_reset_in_progress(struct dp_soc *soc)
|
|
/**
|
|
/**
|
|
* dp_umac_reset_initiate_umac_recovery() - Initiate Umac reset session
|
|
* dp_umac_reset_initiate_umac_recovery() - Initiate Umac reset session
|
|
* @soc: dp soc handle
|
|
* @soc: dp soc handle
|
|
|
|
+ * @umac_reset_ctx: Umac reset context
|
|
|
|
+ * @rx_event: Rx event received
|
|
* @is_target_recovery: Flag to indicate if it is triggered for target recovery
|
|
* @is_target_recovery: Flag to indicate if it is triggered for target recovery
|
|
*
|
|
*
|
|
* Return: status
|
|
* Return: status
|
|
*/
|
|
*/
|
|
static QDF_STATUS dp_umac_reset_initiate_umac_recovery(struct dp_soc *soc,
|
|
static QDF_STATUS dp_umac_reset_initiate_umac_recovery(struct dp_soc *soc,
|
|
- bool is_target_recovery)
|
|
|
|
|
|
+ struct dp_soc_umac_reset_ctx *umac_reset_ctx,
|
|
|
|
+ enum umac_reset_rx_event rx_event,
|
|
|
|
+ bool is_target_recovery)
|
|
{
|
|
{
|
|
- return QDF_STATUS_SUCCESS;
|
|
|
|
|
|
+ return dp_umac_reset_validate_n_update_state_machine_on_rx(
|
|
|
|
+ umac_reset_ctx, rx_event,
|
|
|
|
+ UMAC_RESET_STATE_WAIT_FOR_TRIGGER,
|
|
|
|
+ UMAC_RESET_STATE_DO_TRIGGER_RECEIVED);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -472,23 +479,16 @@ static int dp_umac_reset_rx_event_handler(void *dp_ctx)
|
|
target_recovery = true;
|
|
target_recovery = true;
|
|
/* Fall through */
|
|
/* Fall through */
|
|
case UMAC_RESET_RX_EVENT_DO_TRIGGER_RECOVERY:
|
|
case UMAC_RESET_RX_EVENT_DO_TRIGGER_RECOVERY:
|
|
- status = dp_umac_reset_validate_n_update_state_machine_on_rx(
|
|
|
|
- umac_reset_ctx, rx_event,
|
|
|
|
- UMAC_RESET_STATE_WAIT_FOR_TRIGGER,
|
|
|
|
- UMAC_RESET_STATE_DO_TRIGGER_RECEIVED);
|
|
|
|
-
|
|
|
|
- if (status == QDF_STATUS_E_FAILURE)
|
|
|
|
- goto exit;
|
|
|
|
-
|
|
|
|
- umac_reset_ctx->ts.trigger_start =
|
|
|
|
- qdf_get_log_timestamp_usecs();
|
|
|
|
-
|
|
|
|
status =
|
|
status =
|
|
- dp_umac_reset_initiate_umac_recovery(soc, target_recovery);
|
|
|
|
|
|
+ dp_umac_reset_initiate_umac_recovery(soc, umac_reset_ctx,
|
|
|
|
+ rx_event, target_recovery);
|
|
|
|
|
|
if (status != QDF_STATUS_SUCCESS)
|
|
if (status != QDF_STATUS_SUCCESS)
|
|
break;
|
|
break;
|
|
|
|
|
|
|
|
+ umac_reset_ctx->ts.trigger_start =
|
|
|
|
+ qdf_get_log_timestamp_usecs();
|
|
|
|
+
|
|
action = UMAC_RESET_ACTION_DO_TRIGGER_RECOVERY;
|
|
action = UMAC_RESET_ACTION_DO_TRIGGER_RECOVERY;
|
|
|
|
|
|
break;
|
|
break;
|