From 877b7eb1f095fd3579176aafefd72ce3da9235c6 Mon Sep 17 00:00:00 2001 From: nbd Date: Thu, 20 Jan 2011 23:35:30 +0000 Subject: ath9k: remove virtual wiphy support - it was only experimental anyway and it is not going to be maintained anymore git-svn-id: svn://svn.openwrt.org/openwrt/trunk@25055 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../patches/542-ath9k_remove_bf_aphy.patch | 170 +++++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 package/mac80211/patches/542-ath9k_remove_bf_aphy.patch (limited to 'package/mac80211/patches/542-ath9k_remove_bf_aphy.patch') diff --git a/package/mac80211/patches/542-ath9k_remove_bf_aphy.patch b/package/mac80211/patches/542-ath9k_remove_bf_aphy.patch new file mode 100644 index 000000000..0238fab25 --- /dev/null +++ b/package/mac80211/patches/542-ath9k_remove_bf_aphy.patch @@ -0,0 +1,170 @@ +--- a/drivers/net/wireless/ath/ath9k/xmit.c ++++ b/drivers/net/wireless/ath/ath9k/xmit.c +@@ -57,8 +57,9 @@ static void ath_tx_complete_buf(struct a + static void ath_tx_txqaddbuf(struct ath_softc *sc, struct ath_txq *txq, + struct list_head *head); + static void ath_buf_set_rate(struct ath_softc *sc, struct ath_buf *bf, int len); +-static void ath_tx_rc_status(struct ath_buf *bf, struct ath_tx_status *ts, +- int nframes, int nbad, int txok, bool update_rc); ++static void ath_tx_rc_status(struct ath_softc *sc, struct ath_buf *bf, ++ struct ath_tx_status *ts, int nframes, int nbad, ++ int txok, bool update_rc); + static void ath_tx_update_baw(struct ath_softc *sc, struct ath_atx_tid *tid, + int seqno); + +@@ -297,7 +298,6 @@ static struct ath_buf* ath_clone_txbuf(s + + ATH_TXBUF_RESET(tbf); + +- tbf->aphy = bf->aphy; + tbf->bf_mpdu = bf->bf_mpdu; + tbf->bf_buf_addr = bf->bf_buf_addr; + memcpy(tbf->bf_desc, bf->bf_desc, sc->sc_ah->caps.tx_desc_len); +@@ -345,7 +345,7 @@ static void ath_tx_complete_aggr(struct + struct ath_node *an = NULL; + struct sk_buff *skb; + struct ieee80211_sta *sta; +- struct ieee80211_hw *hw; ++ struct ieee80211_hw *hw = sc->hw; + struct ieee80211_hdr *hdr; + struct ieee80211_tx_info *tx_info; + struct ath_atx_tid *tid = NULL; +@@ -364,7 +364,6 @@ static void ath_tx_complete_aggr(struct + hdr = (struct ieee80211_hdr *)skb->data; + + tx_info = IEEE80211_SKB_CB(skb); +- hw = bf->aphy->hw; + + memcpy(rates, tx_info->control.rates, sizeof(rates)); + +@@ -383,7 +382,7 @@ static void ath_tx_complete_aggr(struct + !bf->bf_stale || bf_next != NULL) + list_move_tail(&bf->list, &bf_head); + +- ath_tx_rc_status(bf, ts, 1, 1, 0, false); ++ ath_tx_rc_status(sc, bf, ts, 1, 1, 0, false); + ath_tx_complete_buf(sc, bf, txq, &bf_head, ts, + 0, 0); + +@@ -489,10 +488,10 @@ static void ath_tx_complete_aggr(struct + + if (rc_update && (acked_cnt == 1 || txfail_cnt == 1)) { + memcpy(tx_info->control.rates, rates, sizeof(rates)); +- ath_tx_rc_status(bf, ts, nframes, nbad, txok, true); ++ ath_tx_rc_status(sc, bf, ts, nframes, nbad, txok, true); + rc_update = false; + } else { +- ath_tx_rc_status(bf, ts, nframes, nbad, txok, false); ++ ath_tx_rc_status(sc, bf, ts, nframes, nbad, txok, false); + } + + ath_tx_complete_buf(sc, bf, txq, &bf_head, ts, +@@ -516,7 +515,7 @@ static void ath_tx_complete_aggr(struct + + bf->bf_state.bf_type |= + BUF_XRETRY; +- ath_tx_rc_status(bf, ts, nframes, ++ ath_tx_rc_status(sc, bf, ts, nframes, + nbad, 0, false); + ath_tx_complete_buf(sc, bf, txq, + &bf_head, +@@ -1677,7 +1676,6 @@ static struct ath_buf *ath_tx_setup_buff + + ATH_TXBUF_RESET(bf); + +- bf->aphy = aphy; + bf->bf_flags = setup_tx_flags(skb); + bf->bf_mpdu = skb; + +@@ -1831,8 +1829,7 @@ int ath_tx_start(struct ieee80211_hw *hw + /*****************/ + + static void ath_tx_complete(struct ath_softc *sc, struct sk_buff *skb, +- struct ath_wiphy *aphy, int tx_flags, int ftype, +- struct ath_txq *txq) ++ int tx_flags, int ftype, struct ath_txq *txq) + { + struct ieee80211_hw *hw = sc->hw; + struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb); +@@ -1842,9 +1839,6 @@ static void ath_tx_complete(struct ath_s + + ath_dbg(common, ATH_DBG_XMIT, "TX complete: skb: %p\n", skb); + +- if (aphy) +- hw = aphy->hw; +- + if (tx_flags & ATH_TX_BAR) + tx_info->flags |= IEEE80211_TX_STAT_AMPDU_NO_BACK; + +@@ -1918,7 +1912,7 @@ static void ath_tx_complete_buf(struct a + complete(&sc->paprd_complete); + } else { + ath_debug_stat_tx(sc, bf, ts); +- ath_tx_complete(sc, skb, bf->aphy, tx_flags, ++ ath_tx_complete(sc, skb, tx_flags, + bf->bf_state.bfs_ftype, txq); + } + /* At this point, skb (bf->bf_mpdu) is consumed...make sure we don't +@@ -1934,14 +1928,14 @@ static void ath_tx_complete_buf(struct a + spin_unlock_irqrestore(&sc->tx.txbuflock, flags); + } + +-static void ath_tx_rc_status(struct ath_buf *bf, struct ath_tx_status *ts, +- int nframes, int nbad, int txok, bool update_rc) ++static void ath_tx_rc_status(struct ath_softc *sc, struct ath_buf *bf, ++ struct ath_tx_status *ts, int nframes, int nbad, ++ int txok, bool update_rc) + { + struct sk_buff *skb = bf->bf_mpdu; + struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; + struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb); +- struct ieee80211_hw *hw = bf->aphy->hw; +- struct ath_softc *sc = bf->aphy->sc; ++ struct ieee80211_hw *hw = sc->hw; + struct ath_hw *ah = sc->sc_ah; + u8 i, tx_rateindex; + +@@ -2077,7 +2071,7 @@ static void ath_tx_processq(struct ath_s + */ + if (ts.ts_status & ATH9K_TXERR_XRETRY) + bf->bf_state.bf_type |= BUF_XRETRY; +- ath_tx_rc_status(bf, &ts, 1, txok ? 0 : 1, txok, true); ++ ath_tx_rc_status(sc, bf, &ts, 1, txok ? 0 : 1, txok, true); + } + + if (bf_isampdu(bf)) +@@ -2196,7 +2190,7 @@ void ath_tx_edma_tasklet(struct ath_soft + if (!bf_isampdu(bf)) { + if (txs.ts_status & ATH9K_TXERR_XRETRY) + bf->bf_state.bf_type |= BUF_XRETRY; +- ath_tx_rc_status(bf, &txs, 1, txok ? 0 : 1, txok, true); ++ ath_tx_rc_status(sc, bf, &txs, 1, txok ? 0 : 1, txok, true); + } + + if (bf_isampdu(bf)) +--- a/drivers/net/wireless/ath/ath9k/ath9k.h ++++ b/drivers/net/wireless/ath/ath9k/ath9k.h +@@ -32,6 +32,7 @@ + */ + + struct ath_node; ++struct ath_wiphy; + + /* Macro to expand scalars to 64-bit objects */ + +@@ -233,7 +234,6 @@ struct ath_buf { + bool bf_stale; + u16 bf_flags; + struct ath_buf_state bf_state; +- struct ath_wiphy *aphy; + }; + + struct ath_atx_tid { +@@ -550,7 +550,6 @@ struct ath_ant_comb { + #define PS_WAIT_FOR_TX_ACK BIT(3) + #define PS_BEACON_SYNC BIT(4) + +-struct ath_wiphy; + struct ath_rate_table; + + struct ath9k_vif_iter_data { -- cgit v1.2.3