Lines Matching refs:stream
111 /* Each HW queue can have one AMPDU stream.
207 /* Ampdu stream information */
1784 /* caller must hold priv->stream_lock when calling the stream functions */
1788 struct mwl8k_ampdu_stream *stream;
1793 stream = &priv->ampdu[i];
1794 if (stream->state == AMPDU_NO_STREAM) {
1795 stream->sta = sta;
1796 stream->state = AMPDU_STREAM_NEW;
1797 stream->tid = tid;
1798 stream->idx = i;
1799 wiphy_debug(hw->wiphy, "Added a new stream for %pM %d",
1801 return stream;
1808 mwl8k_start_stream(struct ieee80211_hw *hw, struct mwl8k_ampdu_stream *stream)
1812 /* if the stream has already been started, don't start it again */
1813 if (stream->state != AMPDU_STREAM_NEW)
1815 ret = ieee80211_start_tx_ba_session(stream->sta, stream->tid, 0);
1817 wiphy_debug(hw->wiphy, "Failed to start stream for %pM %d: "
1818 "%d\n", stream->sta->addr, stream->tid, ret);
1820 wiphy_debug(hw->wiphy, "Started stream for %pM %d\n",
1821 stream->sta->addr, stream->tid);
1826 mwl8k_remove_stream(struct ieee80211_hw *hw, struct mwl8k_ampdu_stream *stream)
1828 wiphy_debug(hw->wiphy, "Remove stream for %pM %d\n", stream->sta->addr,
1829 stream->tid);
1830 memset(stream, 0, sizeof(*stream));
1840 struct mwl8k_ampdu_stream *stream;
1841 stream = &priv->ampdu[i];
1842 if (stream->state == AMPDU_NO_STREAM)
1844 if (!memcmp(stream->sta->addr, addr, ETH_ALEN) &&
1845 stream->tid == tid)
1846 return stream;
1877 * an ampdu stream to be started.
1911 struct mwl8k_ampdu_stream *stream = NULL;
1965 * the ampdu stream, mac80211 queues further packets for that
1970 * ampdu packets getting dropped at the receiver after the stream has
1989 stream = mwl8k_lookup_stream(hw, sta->addr, tid);
1990 if (stream != NULL) {
1991 if (stream->state == AMPDU_STREAM_ACTIVE) {
1993 txpriority = (BA_QUEUE + stream->idx) %
1995 if (stream->idx <= 1)
1996 index = stream->idx +
1999 } else if (stream->state == AMPDU_STREAM_NEW) {
2001 * after we've initiated a stream, but before
2016 * packets in the BA stream to be discarded.
2034 stream = mwl8k_add_stream(hw, sta, tid);
2035 if (stream != NULL)
2053 mwl8k_remove_stream(hw, stream);
2076 mwl8k_remove_stream(hw, stream);
2126 if (mwl8k_start_stream(hw, stream))
2127 mwl8k_remove_stream(hw, stream);
3968 mwl8k_check_ba(struct ieee80211_hw *hw, struct mwl8k_ampdu_stream *stream,
3983 cmd->create_params.queue_id = stream->idx;
3984 memcpy(&cmd->create_params.peer_mac_addr[0], stream->sta->addr,
3986 cmd->create_params.tid = stream->tid;
4000 mwl8k_create_ba(struct ieee80211_hw *hw, struct mwl8k_ampdu_stream *stream,
4018 cmd->create_params.queue_id = stream->idx;
4020 memcpy(cmd->create_params.peer_mac_addr, stream->sta->addr, ETH_ALEN);
4021 cmd->create_params.tid = stream->tid;
4026 (stream->sta->ht_cap.ampdu_factor &
4028 ((stream->sta->ht_cap.ampdu_density << 2) &
4037 wiphy_debug(hw->wiphy, "Created a BA stream for %pM : tid %d\n",
4038 stream->sta->addr, stream->tid);
4060 wiphy_debug(hw->wiphy, "Deleted BA stream index %d\n", idx);
5447 struct mwl8k_ampdu_stream *stream;
5455 stream = mwl8k_lookup_stream(hw, addr, tid);
5469 * to O for the first MPDU in this BA stream.
5472 if (stream == NULL) {
5480 stream = mwl8k_add_stream(hw, sta, tid);
5482 if (stream == NULL) {
5487 stream->state = AMPDU_STREAM_IN_PROGRESS;
5496 mwl8k_remove_stream(hw, stream);
5501 rc = mwl8k_check_ba(hw, stream, vif);
5520 mwl8k_remove_stream(hw, stream);
5529 if (stream) {
5530 if (stream->state == AMPDU_STREAM_ACTIVE) {
5531 idx = stream->idx;
5536 mwl8k_remove_stream(hw, stream);
5541 BUG_ON(stream == NULL);
5542 BUG_ON(stream->state != AMPDU_STREAM_IN_PROGRESS);
5544 rc = mwl8k_create_ba(hw, stream, buf_size, vif);
5547 stream->state = AMPDU_STREAM_ACTIVE;
5549 idx = stream->idx;
5554 "Failed adding stream for sta %pM tid %d\n",
5556 mwl8k_remove_stream(hw, stream);