diff options
Diffstat (limited to 'package/mac80211/patches/561-ath9k_antenna_mask_validate.patch')
-rw-r--r-- | package/mac80211/patches/561-ath9k_antenna_mask_validate.patch | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/package/mac80211/patches/561-ath9k_antenna_mask_validate.patch b/package/mac80211/patches/561-ath9k_antenna_mask_validate.patch deleted file mode 100644 index 63fce77..0000000 --- a/package/mac80211/patches/561-ath9k_antenna_mask_validate.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- a/drivers/net/wireless/ath/ath9k/main.c -+++ b/drivers/net/wireless/ath/ath9k/main.c -@@ -1840,12 +1840,29 @@ static u32 fill_chainmask(u32 cap, u32 n - return filled; - } - -+static bool validate_antenna_mask(struct ath_hw *ah, u32 val) -+{ -+ switch (val & 0x7) { -+ case 0x1: -+ case 0x3: -+ case 0x7: -+ return true; -+ case 0x2: -+ return (ah->caps.rx_chainmask == 1); -+ default: -+ return false; -+ } -+} -+ - static int ath9k_set_antenna(struct ieee80211_hw *hw, u32 tx_ant, u32 rx_ant) - { - struct ath_softc *sc = hw->priv; - struct ath_hw *ah = sc->sc_ah; - -- if (!rx_ant || !tx_ant) -+ if (ah->caps.rx_chainmask != 1) -+ rx_ant |= tx_ant; -+ -+ if (!validate_antenna_mask(ah, rx_ant) || !tx_ant) - return -EINVAL; - - sc->ant_rx = rx_ant; |