|
@@ -546,40 +546,16 @@ dp_rx_err_nbuf_pn_check(struct dp_soc *soc, hal_ring_desc_t ring_desc,
|
|
return QDF_STATUS_E_FAILURE;
|
|
return QDF_STATUS_E_FAILURE;
|
|
}
|
|
}
|
|
|
|
|
|
-#ifdef WLAN_VENDOR_SPECIFIC_BAR_UPDATE
|
|
|
|
-/**
|
|
|
|
- * dp_rx_skip_bar_frame() - Check whether BAR update need to be skipped
|
|
|
|
- *
|
|
|
|
- * @vdev: vdev reference
|
|
|
|
- *
|
|
|
|
- * Function to check whether BAR update need to be skipped
|
|
|
|
- *
|
|
|
|
- * Return: none
|
|
|
|
- */
|
|
|
|
-static bool dp_rx_skip_bar_frame(struct dp_vdev *vdev)
|
|
|
|
|
|
+#ifdef WLAN_SKIP_BAR_UPDATE
|
|
|
|
+static
|
|
|
|
+void dp_rx_err_handle_bar(struct dp_soc *soc,
|
|
|
|
+ struct dp_peer *peer,
|
|
|
|
+ qdf_nbuf_t nbuf)
|
|
{
|
|
{
|
|
- unsigned long cur_ts, prev_ts;
|
|
|
|
-
|
|
|
|
- if (vdev->skip_bar_update) {
|
|
|
|
- prev_ts = vdev->skip_bar_update_last_ts;
|
|
|
|
- cur_ts = qdf_get_system_timestamp();
|
|
|
|
- vdev->skip_bar_update_last_ts = cur_ts;
|
|
|
|
- if ((cur_ts - prev_ts) < DP_SKIP_BAR_UPDATE_TIMEOUT) {
|
|
|
|
- dp_info_rl("Skipping BAR update for vdev_id:%u",
|
|
|
|
- vdev->vdev_id);
|
|
|
|
- return true;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- return false;
|
|
|
|
|
|
+ dp_info_rl("BAR update to H.W is skipped");
|
|
|
|
+ DP_STATS_INC(soc, rx.err.bar_handle_fail_count, 1);
|
|
}
|
|
}
|
|
#else
|
|
#else
|
|
-static bool dp_rx_skip_bar_frame(struct dp_vdev *vdev)
|
|
|
|
-{
|
|
|
|
- return false;
|
|
|
|
-}
|
|
|
|
-#endif
|
|
|
|
-
|
|
|
|
static
|
|
static
|
|
void dp_rx_err_handle_bar(struct dp_soc *soc,
|
|
void dp_rx_err_handle_bar(struct dp_soc *soc,
|
|
struct dp_peer *peer,
|
|
struct dp_peer *peer,
|
|
@@ -592,9 +568,6 @@ void dp_rx_err_handle_bar(struct dp_soc *soc,
|
|
QDF_STATUS status;
|
|
QDF_STATUS status;
|
|
struct ieee80211_frame_bar *bar;
|
|
struct ieee80211_frame_bar *bar;
|
|
|
|
|
|
- if (dp_rx_skip_bar_frame(peer->vdev))
|
|
|
|
- return;
|
|
|
|
-
|
|
|
|
/*
|
|
/*
|
|
* 1. Is this a BAR frame. If not Discard it.
|
|
* 1. Is this a BAR frame. If not Discard it.
|
|
* 2. If it is, get the peer id, tid, ssn
|
|
* 2. If it is, get the peer id, tid, ssn
|
|
@@ -632,6 +605,7 @@ void dp_rx_err_handle_bar(struct dp_soc *soc,
|
|
DP_STATS_INC(soc, rx.err.ssn_update_count, 1);
|
|
DP_STATS_INC(soc, rx.err.ssn_update_count, 1);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+#endif
|
|
|
|
|
|
/**
|
|
/**
|
|
* _dp_rx_bar_frame_handle(): Core of the BAR frame handling
|
|
* _dp_rx_bar_frame_handle(): Core of the BAR frame handling
|