Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9ae5d8d4 authored by Arik Nemtsov's avatar Arik Nemtsov Committed by Luciano Coelho
Browse files

wlcore: consolidate Rx BA bitmap management to links struct



Remove the STA specific ba_rx_bitmap field and use the common links
structure. This simplifies code setting/checking the BA bitmap.

Signed-off-by: default avatarArik Nemtsov <arik@wizery.com>
Signed-off-by: default avatarLuciano Coelho <coelho@ti.com>
parent d6037d22
Loading
Loading
Loading
Loading
+0 −1
Original line number Original line Diff line number Diff line
@@ -560,7 +560,6 @@ static ssize_t vifs_state_read(struct file *file, char __user *user_buf,
		if (wlvif->bss_type == BSS_TYPE_STA_BSS ||
		if (wlvif->bss_type == BSS_TYPE_STA_BSS ||
		    wlvif->bss_type == BSS_TYPE_IBSS) {
		    wlvif->bss_type == BSS_TYPE_IBSS) {
			VIF_STATE_PRINT_INT(sta.hlid);
			VIF_STATE_PRINT_INT(sta.hlid);
			VIF_STATE_PRINT_INT(sta.ba_rx_bitmap);
			VIF_STATE_PRINT_INT(sta.basic_rate_idx);
			VIF_STATE_PRINT_INT(sta.basic_rate_idx);
			VIF_STATE_PRINT_INT(sta.ap_rate_idx);
			VIF_STATE_PRINT_INT(sta.ap_rate_idx);
			VIF_STATE_PRINT_INT(sta.p2p_rate_idx);
			VIF_STATE_PRINT_INT(sta.p2p_rate_idx);
+3 −2
Original line number Original line Diff line number Diff line
@@ -58,9 +58,10 @@ static void wl1271_stop_ba_event(struct wl1271 *wl, struct wl12xx_vif *wlvif)
	struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif);
	struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif);


	if (wlvif->bss_type != BSS_TYPE_AP_BSS) {
	if (wlvif->bss_type != BSS_TYPE_AP_BSS) {
		if (!wlvif->sta.ba_rx_bitmap)
		u8 hlid = wlvif->sta.hlid;
		if (!wl->links[hlid].ba_bitmap)
			return;
			return;
		ieee80211_stop_rx_ba_session(vif, wlvif->sta.ba_rx_bitmap,
		ieee80211_stop_rx_ba_session(vif, wl->links[hlid].ba_bitmap,
					     vif->bss_conf.bssid);
					     vif->bss_conf.bssid);
	} else {
	} else {
		u8 hlid;
		u8 hlid;
+2 −2
Original line number Original line Diff line number Diff line
@@ -4764,18 +4764,18 @@ static int wl1271_op_ampdu_action(struct ieee80211_hw *hw,


	if (wlvif->bss_type == BSS_TYPE_STA_BSS) {
	if (wlvif->bss_type == BSS_TYPE_STA_BSS) {
		hlid = wlvif->sta.hlid;
		hlid = wlvif->sta.hlid;
		ba_bitmap = &wlvif->sta.ba_rx_bitmap;
	} else if (wlvif->bss_type == BSS_TYPE_AP_BSS) {
	} else if (wlvif->bss_type == BSS_TYPE_AP_BSS) {
		struct wl1271_station *wl_sta;
		struct wl1271_station *wl_sta;


		wl_sta = (struct wl1271_station *)sta->drv_priv;
		wl_sta = (struct wl1271_station *)sta->drv_priv;
		hlid = wl_sta->hlid;
		hlid = wl_sta->hlid;
		ba_bitmap = &wl->links[hlid].ba_bitmap;
	} else {
	} else {
		ret = -EINVAL;
		ret = -EINVAL;
		goto out;
		goto out;
	}
	}


	ba_bitmap = &wl->links[hlid].ba_bitmap;

	ret = wl1271_ps_elp_wakeup(wl);
	ret = wl1271_ps_elp_wakeup(wl);
	if (ret < 0)
	if (ret < 0)
		goto out;
		goto out;
+0 −1
Original line number Original line Diff line number Diff line
@@ -1066,7 +1066,6 @@ void wl12xx_tx_reset_wlvif(struct wl1271 *wl, struct wl12xx_vif *wlvif)
			wl1271_free_sta(wl, wlvif, i);
			wl1271_free_sta(wl, wlvif, i);
		} else {
		} else {
			u8 hlid = i;
			u8 hlid = i;
			wlvif->sta.ba_rx_bitmap = 0;
			wl12xx_free_link(wl, wlvif, &hlid);
			wl12xx_free_link(wl, wlvif, &hlid);
		}
		}
	}
	}
+0 −1
Original line number Original line Diff line number Diff line
@@ -330,7 +330,6 @@ struct wl12xx_vif {
	union {
	union {
		struct {
		struct {
			u8 hlid;
			u8 hlid;
			u8 ba_rx_bitmap;


			u8 basic_rate_idx;
			u8 basic_rate_idx;
			u8 ap_rate_idx;
			u8 ap_rate_idx;