Ver Fonte

mac80211: merge a big batch of upstream changes/improvements

Signed-off-by: Felix Fietkau <[email protected]>

SVN-Revision: 37918
Felix Fietkau há 12 anos atrás
pai
commit
249c396583
26 ficheiros alterados com 698 adições e 179 exclusões
  1. 580 59
      package/kernel/mac80211/patches/300-pending_work.patch
  2. 10 10
      package/kernel/mac80211/patches/301-pending_work-rt2x00.patch
  3. 1 1
      package/kernel/mac80211/patches/310-ap_scan.patch
  4. 1 1
      package/kernel/mac80211/patches/402-ath9k-fix-invalid-mac-address-handling.patch
  5. 1 1
      package/kernel/mac80211/patches/410-ath9k_allow_adhoc_and_ap.patch
  6. 2 2
      package/kernel/mac80211/patches/500-ath9k_eeprom_debugfs.patch
  7. 2 2
      package/kernel/mac80211/patches/501-ath9k-eeprom_endianess.patch
  8. 1 1
      package/kernel/mac80211/patches/502-ath9k_ahb_init.patch
  9. 1 1
      package/kernel/mac80211/patches/510-ath9k_intr_mitigation_tweak.patch
  10. 10 11
      package/kernel/mac80211/patches/512-ath9k_channelbw_debugfs.patch
  11. 2 2
      package/kernel/mac80211/patches/513-ath9k_add_pci_ids.patch
  12. 2 2
      package/kernel/mac80211/patches/520-mac80211_cur_txpower.patch
  13. 2 2
      package/kernel/mac80211/patches/521-ath9k_cur_txpower.patch
  14. 19 20
      package/kernel/mac80211/patches/522-ath9k_per_chain_signal_strength.patch
  15. 15 15
      package/kernel/mac80211/patches/523-mac80211_configure_antenna_gain.patch
  16. 2 2
      package/kernel/mac80211/patches/524-ath9k_use_configured_antenna_gain.patch
  17. 5 5
      package/kernel/mac80211/patches/530-ath9k_extra_leds.patch
  18. 9 9
      package/kernel/mac80211/patches/542-ath9k_debugfs_diag.patch
  19. 3 3
      package/kernel/mac80211/patches/543-ath9k-allow-to-disable-bands-via-platform-data.patch
  20. 1 1
      package/kernel/mac80211/patches/603-rt2x00-introduce-rt2x00eeprom.patch
  21. 2 2
      package/kernel/mac80211/patches/605-rt2x00-pci-eeprom.patch
  22. 6 6
      package/kernel/mac80211/patches/610-rt2x00-fix-rt3352-ext-pa.patch
  23. 5 5
      package/kernel/mac80211/patches/611-rt2x00-rf_vals-rt3352-xtal20.patch
  24. 1 1
      package/kernel/mac80211/patches/615-rt2x00-fix_20mhz_clk.patch
  25. 14 14
      package/kernel/mac80211/patches/616-rt2x00-support-rt5350.patch
  26. 1 1
      package/kernel/mac80211/patches/619-rt2x00-change-led-polarity-from-OF.patch

Diff do ficheiro suprimidas por serem muito extensas
+ 580 - 59
package/kernel/mac80211/patches/300-pending_work.patch


+ 10 - 10
package/kernel/mac80211/patches/301-pending_work-rt2x00.patch

@@ -2354,7 +2354,7 @@ Contains the following changes from wireless-testing/master-2013-08-26:
  	case RF3290:
  	case RF5360:
  	case RF5370:
-@@ -3442,17 +4487,25 @@ static int rt2800_init_registers(struct
+@@ -3442,17 +4487,25 @@ static int rt2800_init_registers(struct 
  		return ret;
  
  	rt2800_register_read(rt2x00dev, BCN_OFFSET0, &reg);
@@ -2388,7 +2388,7 @@ Contains the following changes from wireless-testing/master-2013-08-26:
  	rt2800_register_write(rt2x00dev, BCN_OFFSET1, reg);
  
  	rt2800_register_write(rt2x00dev, LEGACY_BASIC_RATE, 0x0000013f);
-@@ -3528,7 +4581,8 @@ static int rt2800_init_registers(struct
+@@ -3528,7 +4581,8 @@ static int rt2800_init_registers(struct 
  		if (rt2x00_rt_rev_lt(rt2x00dev, RT3071, REV_RT3071E) ||
  		    rt2x00_rt_rev_lt(rt2x00dev, RT3090, REV_RT3090E) ||
  		    rt2x00_rt_rev_lt(rt2x00dev, RT3390, REV_RT3390E)) {
@@ -2398,7 +2398,7 @@ Contains the following changes from wireless-testing/master-2013-08-26:
  			if (rt2x00_get_field16(eeprom, EEPROM_NIC_CONF1_DAC_TEST))
  				rt2800_register_write(rt2x00dev, TX_SW_CFG2,
  						      0x0000002c);
-@@ -3559,6 +4613,23 @@ static int rt2800_init_registers(struct
+@@ -3559,6 +4613,23 @@ static int rt2800_init_registers(struct 
  	} else if (rt2x00_rt(rt2x00dev, RT3572)) {
  		rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000400);
  		rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x00080606);
@@ -2422,7 +2422,7 @@ Contains the following changes from wireless-testing/master-2013-08-26:
  	} else if (rt2x00_rt(rt2x00dev, RT5390) ||
  		   rt2x00_rt(rt2x00dev, RT5392) ||
  		   rt2x00_rt(rt2x00dev, RT5592)) {
-@@ -3786,14 +4857,8 @@ static int rt2800_init_registers(struct
+@@ -3786,14 +4857,8 @@ static int rt2800_init_registers(struct 
  	/*
  	 * Clear all beacons
  	 */
@@ -2448,7 +2448,7 @@ Contains the following changes from wireless-testing/master-2013-08-26:
  	if (rt2x00_get_field16(eeprom, EEPROM_NIC_CONF0_TXPATH) == 1)
  		value |= 0x20;
  	if (rt2x00_get_field16(eeprom, EEPROM_NIC_CONF0_RXPATH) == 1)
-@@ -4332,6 +5397,22 @@ static void rt2800_init_bbp_3572(struct
+@@ -4332,6 +5397,22 @@ static void rt2800_init_bbp_3572(struct 
  	rt2800_disable_unused_dac_adc(rt2x00dev);
  }
  
@@ -2471,7 +2471,7 @@ Contains the following changes from wireless-testing/master-2013-08-26:
  static void rt2800_init_bbp_53xx(struct rt2x00_dev *rt2x00dev)
  {
  	int ant, div_mode;
-@@ -4402,7 +5483,7 @@ static void rt2800_init_bbp_53xx(struct
+@@ -4402,7 +5483,7 @@ static void rt2800_init_bbp_53xx(struct 
  
  	rt2800_disable_unused_dac_adc(rt2x00dev);
  
@@ -2480,7 +2480,7 @@ Contains the following changes from wireless-testing/master-2013-08-26:
  	div_mode = rt2x00_get_field16(eeprom,
  				      EEPROM_NIC_CONF1_ANT_DIVERSITY);
  	ant = (div_mode == 3) ? 1 : 0;
-@@ -4488,7 +5569,7 @@ static void rt2800_init_bbp_5592(struct
+@@ -4488,7 +5569,7 @@ static void rt2800_init_bbp_5592(struct 
  
  	rt2800_bbp4_mac_if_ctrl(rt2x00dev);
  
@@ -3212,7 +3212,7 @@ Contains the following changes from wireless-testing/master-2013-08-26:
  		queue->priv_size = sizeof(struct queue_entry_priv_mmio);
  		break;
  
-@@ -1205,7 +1214,7 @@ static void rt2800pci_queue_init(struct
+@@ -1205,7 +1214,7 @@ static void rt2800pci_queue_init(struct 
  		queue->limit = 64;
  		queue->data_size = AGGREGATION_SIZE;
  		queue->desc_size = TXD_DESC_SIZE;
@@ -3221,7 +3221,7 @@ Contains the following changes from wireless-testing/master-2013-08-26:
  		queue->priv_size = sizeof(struct queue_entry_priv_mmio);
  		break;
  
-@@ -1213,7 +1222,7 @@ static void rt2800pci_queue_init(struct
+@@ -1213,7 +1222,7 @@ static void rt2800pci_queue_init(struct 
  		queue->limit = 8;
  		queue->data_size = 0; /* No DMA required for beacons */
  		queue->desc_size = TXD_DESC_SIZE;
@@ -3232,7 +3232,7 @@ Contains the following changes from wireless-testing/master-2013-08-26:
  
 --- a/drivers/net/wireless/rt2x00/rt2800usb.c
 +++ b/drivers/net/wireless/rt2x00/rt2800usb.c
-@@ -854,13 +854,7 @@ static void rt2800usb_queue_init(struct
+@@ -854,13 +854,7 @@ static void rt2800usb_queue_init(struct 
  	struct rt2x00_dev *rt2x00dev = queue->rt2x00dev;
  	unsigned short txwi_size, rxwi_size;
  

+ 1 - 1
package/kernel/mac80211/patches/310-ap_scan.patch

@@ -1,6 +1,6 @@
 --- a/net/mac80211/cfg.c
 +++ b/net/mac80211/cfg.c
-@@ -2092,7 +2092,7 @@ static int ieee80211_scan(struct wiphy *
+@@ -2102,7 +2102,7 @@ static int ieee80211_scan(struct wiphy *
  		 * the  frames sent while scanning on other channel will be
  		 * lost)
  		 */

+ 1 - 1
package/kernel/mac80211/patches/402-ath9k-fix-invalid-mac-address-handling.patch

@@ -8,7 +8,7 @@
  #include <asm/unaligned.h>
  
  #include "hw.h"
-@@ -518,8 +519,16 @@ static int ath9k_hw_init_macaddr(struct 
+@@ -517,8 +518,16 @@ static int ath9k_hw_init_macaddr(struct 
  		common->macaddr[2 * i] = eeval >> 8;
  		common->macaddr[2 * i + 1] = eeval & 0xff;
  	}

+ 1 - 1
package/kernel/mac80211/patches/410-ath9k_allow_adhoc_and_ap.patch

@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ath/ath9k/init.c
 +++ b/drivers/net/wireless/ath/ath9k/init.c
-@@ -755,6 +755,7 @@ static const struct ieee80211_iface_limi
+@@ -779,6 +779,7 @@ static const struct ieee80211_iface_limi
  #endif
  				 BIT(NL80211_IFTYPE_AP) |
  				 BIT(NL80211_IFTYPE_P2P_GO) },

+ 2 - 2
package/kernel/mac80211/patches/500-ath9k_eeprom_debugfs.patch

@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ath/ath9k/debug.c
 +++ b/drivers/net/wireless/ath/ath9k/debug.c
-@@ -1746,6 +1746,53 @@ void ath9k_deinit_debug(struct ath_softc
+@@ -1871,6 +1871,53 @@ void ath9k_deinit_debug(struct ath_softc
  	}
  }
  
@@ -54,7 +54,7 @@
  int ath9k_init_debug(struct ath_hw *ah)
  {
  	struct ath_common *common = ath9k_hw_common(ah);
-@@ -1763,6 +1810,8 @@ int ath9k_init_debug(struct ath_hw *ah)
+@@ -1888,6 +1935,8 @@ int ath9k_init_debug(struct ath_hw *ah)
  
  	ath9k_dfs_init_debug(sc);
  

+ 2 - 2
package/kernel/mac80211/patches/501-ath9k-eeprom_endianess.patch

@@ -71,7 +71,7 @@
  
 --- a/drivers/net/wireless/ath/ath9k/hw.h
 +++ b/drivers/net/wireless/ath/ath9k/hw.h
-@@ -739,6 +739,7 @@ enum ath_cal_list {
+@@ -747,6 +747,7 @@ enum ath_cal_list {
  #define AH_USE_EEPROM   0x1
  #define AH_UNPLUGGED    0x2 /* The card has been physically removed. */
  #define AH_FASTCC       0x4
@@ -81,7 +81,7 @@
  	struct ath_ops reg_ops;
 --- a/drivers/net/wireless/ath/ath9k/init.c
 +++ b/drivers/net/wireless/ath/ath9k/init.c
-@@ -613,6 +613,8 @@ static int ath9k_init_softc(u16 devid, s
+@@ -631,6 +631,8 @@ static int ath9k_init_softc(u16 devid, s
  		ah->is_clk_25mhz = pdata->is_clk_25mhz;
  		ah->get_mac_revision = pdata->get_mac_revision;
  		ah->external_reset = pdata->external_reset;

+ 1 - 1
package/kernel/mac80211/patches/502-ath9k_ahb_init.patch

@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ath/ath9k/init.c
 +++ b/drivers/net/wireless/ath/ath9k/init.c
-@@ -1012,23 +1012,23 @@ static int __init ath9k_init(void)
+@@ -1036,23 +1036,23 @@ static int __init ath9k_init(void)
  		goto err_out;
  	}
  

+ 1 - 1
package/kernel/mac80211/patches/510-ath9k_intr_mitigation_tweak.patch

@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ath/ath9k/hw.c
 +++ b/drivers/net/wireless/ath/ath9k/hw.c
-@@ -2010,8 +2010,8 @@ int ath9k_hw_reset(struct ath_hw *ah, st
+@@ -2017,8 +2017,8 @@ int ath9k_hw_reset(struct ath_hw *ah, st
  		REG_WRITE(ah, AR_OBS, 8);
  
  	if (ah->config.rx_intr_mitigation) {

+ 10 - 11
package/kernel/mac80211/patches/512-ath9k_channelbw_debugfs.patch

@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ath/ath9k/ath9k.h
 +++ b/drivers/net/wireless/ath/ath9k/ath9k.h
-@@ -697,6 +697,7 @@ struct ath_softc {
+@@ -701,6 +701,7 @@ struct ath_softc {
  	struct ieee80211_hw *hw;
  	struct device *dev;
  
@@ -8,7 +8,7 @@
  	struct survey_info *cur_survey;
  	struct survey_info survey[ATH9K_NUM_CHANNELS];
  
-@@ -901,6 +902,7 @@ struct fft_sample_ht20 {
+@@ -905,6 +906,7 @@ struct fft_sample_ht20 {
  	u8 data[SPECTRAL_HT20_NUM_BINS];
  } __packed;
  
@@ -18,7 +18,7 @@
  
 --- a/drivers/net/wireless/ath/ath9k/debug.c
 +++ b/drivers/net/wireless/ath/ath9k/debug.c
-@@ -1793,6 +1793,50 @@ static const struct file_operations fops
+@@ -1918,6 +1918,50 @@ static const struct file_operations fops
  	.owner = THIS_MODULE
  };
  
@@ -69,7 +69,7 @@
  int ath9k_init_debug(struct ath_hw *ah)
  {
  	struct ath_common *common = ath9k_hw_common(ah);
-@@ -1812,6 +1856,8 @@ int ath9k_init_debug(struct ath_hw *ah)
+@@ -1937,6 +1981,8 @@ int ath9k_init_debug(struct ath_hw *ah)
  
  	debugfs_create_file("eeprom", S_IRUSR, sc->debug.debugfs_phy, sc,
  			    &fops_eeprom);
@@ -80,7 +80,7 @@
  	debugfs_create_file("interrupt", S_IRUSR, sc->debug.debugfs_phy, sc,
 --- a/drivers/net/wireless/ath/ath9k/main.c
 +++ b/drivers/net/wireless/ath/ath9k/main.c
-@@ -1150,7 +1150,7 @@ int ath9k_spectral_scan_config(struct ie
+@@ -1146,7 +1146,7 @@ int ath9k_spectral_scan_config(struct ie
  	return 0;
  }
  
@@ -89,19 +89,18 @@
  {
  	struct ath_softc *sc = hw->priv;
  	struct ath_hw *ah = sc->sc_ah;
-@@ -1206,9 +1206,11 @@ static int ath9k_config(struct ieee80211
+@@ -1200,8 +1200,10 @@ static int ath9k_config(struct ieee80211
+ 
+ 	if ((changed & IEEE80211_CONF_CHANGE_CHANNEL) || reset_channel) {
  		struct ieee80211_channel *curchan = hw->conf.chandef.chan;
- 		enum nl80211_channel_type channel_type =
- 			cfg80211_get_chandef_type(&conf->chandef);
 +		struct ath9k_channel *hchan;
  		int pos = curchan->hw_value;
  		int old_pos = -1;
- 		unsigned long flags;
 +		u32 oldflags;
+ 		unsigned long flags;
  
  		if (ah->curchan)
- 			old_pos = ah->curchan - &ah->channels[0];
-@@ -1244,7 +1246,23 @@ static int ath9k_config(struct ieee80211
+@@ -1238,7 +1240,23 @@ static int ath9k_config(struct ieee80211
  			memset(&sc->survey[pos], 0, sizeof(struct survey_info));
  		}
  

+ 2 - 2
package/kernel/mac80211/patches/513-ath9k_add_pci_ids.patch

@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ath/ath9k/hw.c
 +++ b/drivers/net/wireless/ath/ath9k/hw.c
-@@ -729,6 +729,7 @@ int ath9k_hw_init(struct ath_hw *ah)
+@@ -728,6 +728,7 @@ int ath9k_hw_init(struct ath_hw *ah)
  	case AR9300_DEVID_AR9462:
  	case AR9485_DEVID_AR1111:
  	case AR9300_DEVID_AR9565:
@@ -20,7 +20,7 @@
  
 --- a/drivers/net/wireless/ath/ath9k/pci.c
 +++ b/drivers/net/wireless/ath/ath9k/pci.c
-@@ -139,6 +139,7 @@ static DEFINE_PCI_DEVICE_TABLE(ath_pci_i
+@@ -270,6 +270,7 @@ static DEFINE_PCI_DEVICE_TABLE(ath_pci_i
  	{ PCI_VDEVICE(ATHEROS, 0x0034) }, /* PCI-E  AR9462 */
  	{ PCI_VDEVICE(ATHEROS, 0x0037) }, /* PCI-E  AR1111/AR9485 */
  	{ PCI_VDEVICE(ATHEROS, 0x0036) }, /* PCI-E  AR9565 */

+ 2 - 2
package/kernel/mac80211/patches/520-mac80211_cur_txpower.patch

@@ -1,6 +1,6 @@
 --- a/include/net/mac80211.h
 +++ b/include/net/mac80211.h
-@@ -1617,6 +1617,7 @@ struct ieee80211_hw {
+@@ -1622,6 +1622,7 @@ struct ieee80211_hw {
  	u8 max_tx_aggregation_subframes;
  	u8 offchannel_tx_hw_queue;
  	u8 radiotap_mcs_details;
@@ -10,7 +10,7 @@
  	u8 uapsd_queues;
 --- a/net/mac80211/cfg.c
 +++ b/net/mac80211/cfg.c
-@@ -2273,7 +2273,9 @@ static int ieee80211_get_tx_power(struct
+@@ -2283,7 +2283,9 @@ static int ieee80211_get_tx_power(struct
  	struct ieee80211_local *local = wiphy_priv(wiphy);
  	struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev);
  

+ 2 - 2
package/kernel/mac80211/patches/521-ath9k_cur_txpower.patch

@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ath/ath9k/main.c
 +++ b/drivers/net/wireless/ath/ath9k/main.c
-@@ -1269,6 +1269,8 @@ int ath9k_config(struct ieee80211_hw *hw
+@@ -1263,6 +1263,8 @@ int ath9k_config(struct ieee80211_hw *hw
  			return -EINVAL;
  		}
  
@@ -9,7 +9,7 @@
  		/*
  		 * The most recent snapshot of channel->noisefloor for the old
  		 * channel is only available after the hardware reset. Copy it to
-@@ -1305,6 +1307,7 @@ int ath9k_config(struct ieee80211_hw *hw
+@@ -1299,6 +1301,7 @@ int ath9k_config(struct ieee80211_hw *hw
  		sc->config.txpowlimit = 2 * conf->power_level;
  		ath9k_cmn_update_txpow(ah, sc->curtxpow,
  				       sc->config.txpowlimit, &sc->curtxpow);

+ 19 - 20
package/kernel/mac80211/patches/522-ath9k_per_chain_signal_strength.patch

@@ -13,21 +13,21 @@
 +	int8_t rs_rssi_ctl[3];
 +	int8_t rs_rssi_ext[3];
  	u8 rs_isaggr;
+ 	u8 rs_firstaggr;
  	u8 rs_moreaggr;
- 	u8 rs_num_delims;
 --- a/drivers/net/wireless/ath/ath9k/recv.c
 +++ b/drivers/net/wireless/ath/ath9k/recv.c
-@@ -948,6 +948,7 @@ static int ath9k_rx_skb_preprocess(struc
- 	struct ath_hw *ah = sc->sc_ah;
- 	struct ath_common *common = ath9k_hw_common(ah);
- 	bool discard_current = sc->rx.discard_next;
+@@ -892,6 +892,7 @@ static void ath9k_process_rssi(struct at
+ 	struct ath_hw *ah = common->ah;
+ 	int last_rssi;
+ 	int rssi = rx_stats->rs_rssi;
 +	int i, j;
  
- 	sc->rx.discard_next = rx_stats->rs_more;
- 	if (discard_current)
-@@ -977,6 +978,21 @@ static int ath9k_rx_skb_preprocess(struc
- 	if (rx_stats->rs_moreaggr)
- 		rx_status->flag |= RX_FLAG_NO_SIGNAL_VAL;
+ 	/*
+ 	 * RSSI is not available for subframes in an A-MPDU.
+@@ -910,6 +911,20 @@ static void ath9k_process_rssi(struct at
+ 		return;
+ 	}
  
 +	for (i = 0, j = 0; i < ARRAY_SIZE(rx_stats->rs_rssi_ctl); i++) {
 +		s8 rssi;
@@ -37,17 +37,16 @@
 +
 +		rssi = rx_stats->rs_rssi_ctl[i];
 +		if (rssi != ATH9K_RSSI_BAD) {
-+		    rx_status->chains |= BIT(j);
-+		    rx_status->chain_signal[j] = ah->noise + rssi;
++		    rxs->chains |= BIT(j);
++		    rxs->chain_signal[j] = ah->noise + rssi;
 +		}
 +		j++;
 +	}
 +
-+
- 	sc->rx.discard_next = false;
- 	return 0;
- }
-@@ -1086,7 +1102,7 @@ static int ath_process_fft(struct ath_so
+ 	/*
+ 	 * Update Beacon RSSI, this is used by ANI.
+ 	 */
+@@ -1000,7 +1015,7 @@ static int ath_process_fft(struct ath_so
  	fft_sample.tlv.length = __cpu_to_be16(length);
  
  	fft_sample.freq = __cpu_to_be16(ah->curchan->chan->center_freq);
@@ -132,7 +131,7 @@
  	 * hardware stores this as 8 bit signed value.
 --- a/drivers/net/wireless/ath/ath9k/antenna.c
 +++ b/drivers/net/wireless/ath/ath9k/antenna.c
-@@ -546,14 +546,14 @@ void ath_ant_comb_scan(struct ath_softc 
+@@ -744,14 +744,14 @@ void ath_ant_comb_scan(struct ath_softc 
  	struct ath_ant_comb *antcomb = &sc->ant_comb;
  	int alt_ratio = 0, alt_rssi_avg = 0, main_rssi_avg = 0, curr_alt_set;
  	int curr_main_set;
@@ -141,7 +140,7 @@
 +	int main_rssi = rs->rs_rssi_ctl[0];
 +	int alt_rssi = rs->rs_rssi_ctl[1];
  	int rx_ant_conf,  main_ant_conf;
- 	bool short_scan = false;
+ 	bool short_scan = false, ret;
  
 -	rx_ant_conf = (rs->rs_rssi_ctl2 >> ATH_ANT_RX_CURRENT_SHIFT) &
 +	rx_ant_conf = (rs->rs_rssi_ctl[2] >> ATH_ANT_RX_CURRENT_SHIFT) &
@@ -150,4 +149,4 @@
 +	main_ant_conf = (rs->rs_rssi_ctl[2] >> ATH_ANT_RX_MAIN_SHIFT) &
  			 ATH_ANT_RX_MASK;
  
- 	/* Record packet only when both main_rssi and  alt_rssi is positive */
+ 	if (alt_rssi >= antcomb->low_rssi_thresh) {

+ 15 - 15
package/kernel/mac80211/patches/523-mac80211_configure_antenna_gain.patch

@@ -1,6 +1,6 @@
 --- a/include/net/mac80211.h
 +++ b/include/net/mac80211.h
-@@ -999,6 +999,7 @@ enum ieee80211_smps_mode {
+@@ -1002,6 +1002,7 @@ enum ieee80211_smps_mode {
   *
   * @power_level: requested transmit power (in dBm), backward compatibility
   *	value only that is set to the minimum of all interfaces
@@ -8,7 +8,7 @@
   *
   * @chandef: the channel definition to tune to
   * @radar_enabled: whether radar detection is enabled
-@@ -1020,6 +1021,7 @@ struct ieee80211_conf {
+@@ -1023,6 +1024,7 @@ struct ieee80211_conf {
  	u32 flags;
  	int power_level, dynamic_ps_timeout;
  	int max_sleep_period;
@@ -18,7 +18,7 @@
  	u8 ps_dtim_period;
 --- a/net/mac80211/ieee80211_i.h
 +++ b/net/mac80211/ieee80211_i.h
-@@ -1126,6 +1126,7 @@ struct ieee80211_local {
+@@ -1130,6 +1130,7 @@ struct ieee80211_local {
  	int dynamic_ps_forced_timeout;
  
  	int user_power_level; /* in dBm, for all interfaces */
@@ -28,9 +28,9 @@
  
 --- a/include/uapi/linux/nl80211.h
 +++ b/include/uapi/linux/nl80211.h
-@@ -1736,6 +1736,8 @@ enum nl80211_attrs {
- 
- 	NL80211_ATTR_PEER_AID,
+@@ -1766,6 +1766,8 @@ enum nl80211_attrs {
+ 	NL80211_ATTR_CSA_C_OFF_BEACON,
+ 	NL80211_ATTR_CSA_C_OFF_PRESP,
  
 +	NL80211_ATTR_WIPHY_ANTENNA_GAIN,
 +
@@ -39,15 +39,15 @@
  	__NL80211_ATTR_AFTER_LAST,
 --- a/net/wireless/nl80211.c
 +++ b/net/wireless/nl80211.c
-@@ -349,6 +349,7 @@ static const struct nla_policy nl80211_p
- 	[NL80211_ATTR_IE_RIC] = { .type = NLA_BINARY,
- 				  .len = IEEE80211_MAX_DATA_LEN },
- 	[NL80211_ATTR_PEER_AID] = { .type = NLA_U16 },
+@@ -354,6 +354,7 @@ static const struct nla_policy nl80211_p
+ 	[NL80211_ATTR_CSA_IES] = { .type = NLA_NESTED },
+ 	[NL80211_ATTR_CSA_C_OFF_BEACON] = { .type = NLA_U16 },
+ 	[NL80211_ATTR_CSA_C_OFF_PRESP] = { .type = NLA_U16 },
 +	[NL80211_ATTR_WIPHY_ANTENNA_GAIN] = { .type = NLA_U32 },
  };
  
  /* policy for the key attributes */
-@@ -1993,6 +1994,22 @@ static int nl80211_set_wiphy(struct sk_b
+@@ -2000,6 +2001,22 @@ static int nl80211_set_wiphy(struct sk_b
  			goto bad_res;
  	}
  
@@ -72,7 +72,7 @@
  		u32 tx_ant, rx_ant;
 --- a/net/mac80211/cfg.c
 +++ b/net/mac80211/cfg.c
-@@ -2283,6 +2283,19 @@ static int ieee80211_get_tx_power(struct
+@@ -2293,6 +2293,19 @@ static int ieee80211_get_tx_power(struct
  	return 0;
  }
  
@@ -92,7 +92,7 @@
  static int ieee80211_set_wds_peer(struct wiphy *wiphy, struct net_device *dev,
  				  const u8 *addr)
  {
-@@ -3474,6 +3487,7 @@ struct cfg80211_ops mac80211_config_ops 
+@@ -3656,6 +3669,7 @@ struct cfg80211_ops mac80211_config_ops 
  	.set_wiphy_params = ieee80211_set_wiphy_params,
  	.set_tx_power = ieee80211_set_tx_power,
  	.get_tx_power = ieee80211_get_tx_power,
@@ -102,7 +102,7 @@
  	CFG80211_TESTMODE_CMD(ieee80211_testmode_cmd)
 --- a/include/net/cfg80211.h
 +++ b/include/net/cfg80211.h
-@@ -1970,6 +1970,7 @@ struct cfg80211_update_ft_ies_params {
+@@ -1994,6 +1994,7 @@ struct cfg80211_update_ft_ies_params {
   *	(as advertised by the nl80211 feature flag.)
   * @get_tx_power: store the current TX power into the dbm variable;
   *	return 0 if successful
@@ -110,7 +110,7 @@
   *
   * @set_wds_peer: set the WDS peer for a WDS interface
   *
-@@ -2189,6 +2190,7 @@ struct cfg80211_ops {
+@@ -2215,6 +2216,7 @@ struct cfg80211_ops {
  				enum nl80211_tx_power_setting type, int mbm);
  	int	(*get_tx_power)(struct wiphy *wiphy, struct wireless_dev *wdev,
  				int *dbm);

+ 2 - 2
package/kernel/mac80211/patches/524-ath9k_use_configured_antenna_gain.patch

@@ -10,7 +10,7 @@
  
 --- a/drivers/net/wireless/ath/ath9k/hw.c
 +++ b/drivers/net/wireless/ath/ath9k/hw.c
-@@ -2848,7 +2848,7 @@ void ath9k_hw_apply_txpower(struct ath_h
+@@ -2856,7 +2856,7 @@ void ath9k_hw_apply_txpower(struct ath_h
  	channel = chan->chan;
  	chan_pwr = min_t(int, channel->max_power * 2, MAX_RATE_POWER);
  	new_pwr = min_t(int, chan_pwr, reg->power_limit);
@@ -21,7 +21,7 @@
  	if (ant_gain > max_gain)
 --- a/drivers/net/wireless/ath/ath9k/main.c
 +++ b/drivers/net/wireless/ath/ath9k/main.c
-@@ -1303,7 +1303,10 @@ int ath9k_config(struct ieee80211_hw *hw
+@@ -1297,7 +1297,10 @@ int ath9k_config(struct ieee80211_hw *hw
  	}
  
  	if (changed & IEEE80211_CONF_CHANGE_POWER) {

+ 5 - 5
package/kernel/mac80211/patches/530-ath9k_extra_leds.patch

@@ -10,7 +10,7 @@
  #else
  static inline void ath_init_leds(struct ath_softc *sc)
  {
-@@ -693,6 +696,13 @@ enum spectral_mode {
+@@ -697,6 +700,13 @@ enum spectral_mode {
  	SPECTRAL_CHANSCAN,
  };
  
@@ -24,7 +24,7 @@
  struct ath_softc {
  	struct ieee80211_hw *hw;
  	struct device *dev;
-@@ -735,9 +745,8 @@ struct ath_softc {
+@@ -739,9 +749,8 @@ struct ath_softc {
  	struct ieee80211_supported_band sbands[IEEE80211_NUM_BANDS];
  
  #ifdef CPTCFG_MAC80211_LEDS
@@ -162,7 +162,7 @@
  void ath_fill_led_pin(struct ath_softc *sc)
 --- a/drivers/net/wireless/ath/ath9k/init.c
 +++ b/drivers/net/wireless/ath/ath9k/init.c
-@@ -919,7 +919,7 @@ int ath9k_init_device(u16 devid, struct 
+@@ -943,7 +943,7 @@ int ath9k_init_device(u16 devid, struct 
  
  #ifdef CPTCFG_MAC80211_LEDS
  	/* must be initialized before ieee80211_register_hw */
@@ -173,7 +173,7 @@
  #endif
 --- a/drivers/net/wireless/ath/ath9k/debug.c
 +++ b/drivers/net/wireless/ath/ath9k/debug.c
-@@ -1836,6 +1836,61 @@ static const struct file_operations fops
+@@ -1961,6 +1961,61 @@ static const struct file_operations fops
  	.llseek = default_llseek,
  };
  
@@ -235,7 +235,7 @@
  
  int ath9k_init_debug(struct ath_hw *ah)
  {
-@@ -1858,6 +1913,10 @@ int ath9k_init_debug(struct ath_hw *ah)
+@@ -1983,6 +2038,10 @@ int ath9k_init_debug(struct ath_hw *ah)
  			    &fops_eeprom);
  	debugfs_create_file("chanbw", S_IRUSR | S_IWUSR, sc->debug.debugfs_phy,
  			    sc, &fops_chanbw);

+ 9 - 9
package/kernel/mac80211/patches/542-ath9k_debugfs_diag.patch

@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ath/ath9k/debug.c
 +++ b/drivers/net/wireless/ath/ath9k/debug.c
-@@ -1892,6 +1892,50 @@ static const struct file_operations fops
+@@ -2017,6 +2017,50 @@ static const struct file_operations fops
  #endif
  
  
@@ -51,7 +51,7 @@
  int ath9k_init_debug(struct ath_hw *ah)
  {
  	struct ath_common *common = ath9k_hw_common(ah);
-@@ -1917,6 +1961,8 @@ int ath9k_init_debug(struct ath_hw *ah)
+@@ -2042,6 +2086,8 @@ int ath9k_init_debug(struct ath_hw *ah)
  	debugfs_create_file("gpio_led", S_IWUSR,
  			   sc->debug.debugfs_phy, sc, &fops_gpio_led);
  #endif
@@ -62,7 +62,7 @@
  	debugfs_create_file("interrupt", S_IRUSR, sc->debug.debugfs_phy, sc,
 --- a/drivers/net/wireless/ath/ath9k/hw.h
 +++ b/drivers/net/wireless/ath/ath9k/hw.h
-@@ -500,6 +500,12 @@ enum {
+@@ -505,6 +505,12 @@ enum {
  	ATH9K_RESET_COLD,
  };
  
@@ -75,7 +75,7 @@
  struct ath9k_hw_version {
  	u32 magic;
  	u16 devid;
-@@ -778,6 +784,8 @@ struct ath_hw {
+@@ -785,6 +791,8 @@ struct ath_hw {
  	u32 rfkill_polarity;
  	u32 ah_flags;
  
@@ -84,7 +84,7 @@
  	bool reset_power_on;
  	bool htc_reset_init;
  
-@@ -1028,6 +1036,7 @@ void ath9k_hw_set_sta_beacon_timers(stru
+@@ -1035,6 +1043,7 @@ void ath9k_hw_set_sta_beacon_timers(stru
  bool ath9k_hw_check_alive(struct ath_hw *ah);
  
  bool ath9k_hw_setpower(struct ath_hw *ah, enum ath9k_power_mode mode);
@@ -94,7 +94,7 @@
  void ath9k_debug_sync_cause(struct ath_common *common, u32 sync_cause);
 --- a/drivers/net/wireless/ath/ath9k/hw.c
 +++ b/drivers/net/wireless/ath/ath9k/hw.c
-@@ -1854,6 +1854,20 @@ fail:
+@@ -1861,6 +1861,20 @@ fail:
  	return -EINVAL;
  }
  
@@ -115,17 +115,17 @@
  int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan,
  		   struct ath9k_hw_cal_data *caldata, bool fastcc)
  {
-@@ -2056,6 +2070,7 @@ int ath9k_hw_reset(struct ath_hw *ah, st
+@@ -2063,6 +2077,7 @@ int ath9k_hw_reset(struct ath_hw *ah, st
  	}
  
  	ath9k_hw_apply_gpio_override(ah);
 +	ath9k_hw_update_diag(ah);
  
- 	if (AR_SREV_9565(ah) && ah->shared_chain_lnadiv)
+ 	if (AR_SREV_9565(ah) && common->bt_ant_diversity)
  		REG_SET_BIT(ah, AR_BTCOEX_WL_LNADIV, AR_BTCOEX_WL_LNADIV_FORCE_ON);
 --- a/drivers/net/wireless/ath/ath9k/main.c
 +++ b/drivers/net/wireless/ath/ath9k/main.c
-@@ -462,6 +462,11 @@ irqreturn_t ath_isr(int irq, void *dev)
+@@ -458,6 +458,11 @@ irqreturn_t ath_isr(int irq, void *dev)
  	ath9k_hw_getisr(ah, &status);	/* NB: clears ISR too */
  	status &= ah->imask;	/* discard unasked-for bits */
  

+ 3 - 3
package/kernel/mac80211/patches/543-ath9k-allow-to-disable-bands-via-platform-data.patch

@@ -12,7 +12,7 @@
  
 --- a/drivers/net/wireless/ath/ath9k/hw.c
 +++ b/drivers/net/wireless/ath/ath9k/hw.c
-@@ -2449,17 +2449,25 @@ int ath9k_hw_fill_cap_info(struct ath_hw
+@@ -2456,17 +2456,25 @@ int ath9k_hw_fill_cap_info(struct ath_hw
  	}
  
  	eeval = ah->eep_ops->get_eeprom(ah, EEP_OP_MODE);
@@ -48,7 +48,7 @@
  	    AR_SREV_9285(ah) ||
 --- a/drivers/net/wireless/ath/ath9k/hw.h
 +++ b/drivers/net/wireless/ath/ath9k/hw.h
-@@ -948,6 +948,8 @@ struct ath_hw {
+@@ -955,6 +955,8 @@ struct ath_hw {
  	bool is_clk_25mhz;
  	int (*get_mac_revision)(void);
  	int (*external_reset)(void);
@@ -59,7 +59,7 @@
  };
 --- a/drivers/net/wireless/ath/ath9k/init.c
 +++ b/drivers/net/wireless/ath/ath9k/init.c
-@@ -613,6 +613,8 @@ static int ath9k_init_softc(u16 devid, s
+@@ -631,6 +631,8 @@ static int ath9k_init_softc(u16 devid, s
  		ah->is_clk_25mhz = pdata->is_clk_25mhz;
  		ah->get_mac_revision = pdata->get_mac_revision;
  		ah->external_reset = pdata->external_reset;

+ 1 - 1
package/kernel/mac80211/patches/603-rt2x00-introduce-rt2x00eeprom.patch

@@ -186,7 +186,7 @@
  obj-$(CPTCFG_RT2X00_LIB_MMIO)		+= rt2x00mmio.o
 --- a/drivers/net/wireless/rt2x00/rt2800pci.c
 +++ b/drivers/net/wireless/rt2x00/rt2800pci.c
-@@ -90,25 +90,11 @@ static void rt2800pci_mcu_status(struct
+@@ -90,25 +90,11 @@ static void rt2800pci_mcu_status(struct 
  	rt2x00mmio_register_write(rt2x00dev, H2M_MAILBOX_CID, ~0);
  }
  

+ 2 - 2
package/kernel/mac80211/patches/605-rt2x00-pci-eeprom.patch

@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/rt2x00/rt2800pci.c
 +++ b/drivers/net/wireless/rt2x00/rt2800pci.c
-@@ -90,7 +90,7 @@ static void rt2800pci_mcu_status(struct
+@@ -90,7 +90,7 @@ static void rt2800pci_mcu_status(struct 
  	rt2x00mmio_register_write(rt2x00dev, H2M_MAILBOX_CID, ~0);
  }
  
@@ -9,7 +9,7 @@
  {
  	memcpy(rt2x00dev->eeprom, rt2x00dev->eeprom_file->data, EEPROM_SIZE);
  	return 0;
-@@ -1097,8 +1097,9 @@ static int rt2800pci_read_eeprom(struct
+@@ -1097,8 +1097,9 @@ static int rt2800pci_read_eeprom(struct 
  {
  	int retval;
  

+ 6 - 6
package/kernel/mac80211/patches/610-rt2x00-fix-rt3352-ext-pa.patch

@@ -33,7 +33,7 @@
  		rt2800_bbp_write(rt2x00dev, 86, 0);
  	}
  
-@@ -6086,6 +6086,12 @@ static void rt2800_init_rfcsr_3290(struc
+@@ -6093,6 +6093,12 @@ static void rt2800_init_rfcsr_3290(struc
  
  static void rt2800_init_rfcsr_3352(struct rt2x00_dev *rt2x00dev)
  {
@@ -46,7 +46,7 @@
  	rt2800_rf_init_calibration(rt2x00dev, 30);
  
  	rt2800_rfcsr_write(rt2x00dev, 0, 0xf0);
-@@ -6121,15 +6127,30 @@ static void rt2800_init_rfcsr_3352(struc
+@@ -6128,15 +6134,30 @@ static void rt2800_init_rfcsr_3352(struc
  	rt2800_rfcsr_write(rt2x00dev, 31, 0x80);
  	rt2800_rfcsr_write(rt2x00dev, 32, 0x80);
  	rt2800_rfcsr_write(rt2x00dev, 33, 0x00);
@@ -80,7 +80,7 @@
  	rt2800_rfcsr_write(rt2x00dev, 43, 0xdb);
  	rt2800_rfcsr_write(rt2x00dev, 44, 0xdb);
  	rt2800_rfcsr_write(rt2x00dev, 45, 0xdb);
-@@ -6137,15 +6158,20 @@ static void rt2800_init_rfcsr_3352(struc
+@@ -6144,15 +6165,20 @@ static void rt2800_init_rfcsr_3352(struc
  	rt2800_rfcsr_write(rt2x00dev, 47, 0x0d);
  	rt2800_rfcsr_write(rt2x00dev, 48, 0x14);
  	rt2800_rfcsr_write(rt2x00dev, 49, 0x00);
@@ -110,7 +110,7 @@
  	rt2800_rfcsr_write(rt2x00dev, 59, 0x00);
  	rt2800_rfcsr_write(rt2x00dev, 60, 0x00);
  	rt2800_rfcsr_write(rt2x00dev, 61, 0x00);
-@@ -6996,6 +7022,7 @@ static int rt2800_init_eeprom(struct rt2
+@@ -7003,6 +7029,7 @@ static int rt2800_init_eeprom(struct rt2
  	 * RT53xx: defined in "EEPROM_CHIP_ID" field
  	 */
  	if (rt2x00_rt(rt2x00dev, RT3290) ||
@@ -118,7 +118,7 @@
  	    rt2x00_rt(rt2x00dev, RT5390) ||
  	    rt2x00_rt(rt2x00dev, RT5392))
  		rt2800_eeprom_read(rt2x00dev, EEPROM_CHIP_ID, &rf);
-@@ -7086,7 +7113,8 @@ static int rt2800_init_eeprom(struct rt2
+@@ -7093,7 +7120,8 @@ static int rt2800_init_eeprom(struct rt2
  	/*
  	 * Detect if this device has Bluetooth co-existence.
  	 */
@@ -128,7 +128,7 @@
  		__set_bit(CAPABILITY_BT_COEXIST, &rt2x00dev->cap_flags);
  
  	/*
-@@ -7115,6 +7143,22 @@ static int rt2800_init_eeprom(struct rt2
+@@ -7122,6 +7150,22 @@ static int rt2800_init_eeprom(struct rt2
  					EIRP_MAX_TX_POWER_LIMIT)
  		__set_bit(CAPABILITY_POWER_LIMIT, &rt2x00dev->cap_flags);
  

+ 5 - 5
package/kernel/mac80211/patches/611-rt2x00-rf_vals-rt3352-xtal20.patch

@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -7501,6 +7501,27 @@ static const struct rf_channel rf_vals_3
+@@ -7508,6 +7508,27 @@ static const struct rf_channel rf_vals_3
  	{173, 0x61, 0, 9},
  };
  
@@ -28,7 +28,7 @@
  static int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
  {
  	struct hw_mode_spec *spec = &rt2x00dev->spec;
-@@ -7581,7 +7602,6 @@ static int rt2800_probe_hw_mode(struct r
+@@ -7588,7 +7609,6 @@ static int rt2800_probe_hw_mode(struct r
  		   rt2x00_rf(rt2x00dev, RF3022) ||
  		   rt2x00_rf(rt2x00dev, RF3290) ||
  		   rt2x00_rf(rt2x00dev, RF3320) ||
@@ -36,7 +36,7 @@
  		   rt2x00_rf(rt2x00dev, RF5360) ||
  		   rt2x00_rf(rt2x00dev, RF5370) ||
  		   rt2x00_rf(rt2x00dev, RF5372) ||
-@@ -7589,6 +7609,12 @@ static int rt2800_probe_hw_mode(struct r
+@@ -7596,6 +7616,12 @@ static int rt2800_probe_hw_mode(struct r
  		   rt2x00_rf(rt2x00dev, RF5392)) {
  		spec->num_channels = 14;
  		spec->channels = rf_vals_3x;
@@ -49,7 +49,7 @@
  	} else if (rt2x00_rf(rt2x00dev, RF3052)) {
  		spec->supported_bands |= SUPPORT_BAND_5GHZ;
  		spec->num_channels = ARRAY_SIZE(rf_vals_3x);
-@@ -7761,6 +7787,19 @@ static int rt2800_probe_rt(struct rt2x00
+@@ -7768,6 +7794,19 @@ static int rt2800_probe_rt(struct rt2x00
  	return 0;
  }
  
@@ -69,7 +69,7 @@
  int rt2800_probe_hw(struct rt2x00_dev *rt2x00dev)
  {
  	int retval;
-@@ -7790,6 +7829,15 @@ int rt2800_probe_hw(struct rt2x00_dev *r
+@@ -7797,6 +7836,15 @@ int rt2800_probe_hw(struct rt2x00_dev *r
  	rt2800_register_write(rt2x00dev, GPIO_CTRL, reg);
  
  	/*

+ 1 - 1
package/kernel/mac80211/patches/615-rt2x00-fix_20mhz_clk.patch

@@ -8,7 +8,7 @@
  
  #include "rt2x00.h"
  #include "rt2800lib.h"
-@@ -7789,13 +7790,14 @@ static int rt2800_probe_rt(struct rt2x00
+@@ -7796,13 +7797,14 @@ static int rt2800_probe_rt(struct rt2x00
  
  int rt2800_probe_clk(struct rt2x00_dev *rt2x00dev)
  {

+ 14 - 14
package/kernel/mac80211/patches/616-rt2x00-support-rt5350.patch

@@ -52,7 +52,7 @@
  		rt2800_bbp_read(rt2x00dev, 49, &bbp);
  		rt2x00_set_field8(&bbp, BBP49_UPDATE_FLAG, 0);
  		rt2800_bbp_write(rt2x00dev, 49, bbp);
-@@ -4259,6 +4271,7 @@ void rt2800_vco_calibration(struct rt2x0
+@@ -4266,6 +4278,7 @@ void rt2800_vco_calibration(struct rt2x0
  		break;
  	case RF3053:
  	case RF3290:
@@ -60,7 +60,7 @@
  	case RF5360:
  	case RF5370:
  	case RF5372:
-@@ -4630,6 +4643,8 @@ static int rt2800_init_registers(struct
+@@ -4637,6 +4650,8 @@ static int rt2800_init_registers(struct 
  		rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000404);
  		rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x00080606);
  		rt2800_register_write(rt2x00dev, TX_SW_CFG2, 0x00000000);
@@ -69,7 +69,7 @@
  	} else {
  		rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000000);
  		rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x00080606);
-@@ -5271,9 +5286,13 @@ static void rt2800_init_bbp_3352(struct
+@@ -5278,9 +5293,13 @@ static void rt2800_init_bbp_3352(struct 
  
  	rt2800_bbp_write(rt2x00dev, 82, 0x62);
  
@@ -86,7 +86,7 @@
  
  	rt2800_bbp_write(rt2x00dev, 86, 0x38);
  
-@@ -5287,9 +5306,13 @@ static void rt2800_init_bbp_3352(struct
+@@ -5294,9 +5313,13 @@ static void rt2800_init_bbp_3352(struct 
  
  	rt2800_bbp_write(rt2x00dev, 104, 0x92);
  
@@ -103,7 +103,7 @@
  
  	rt2800_bbp_write(rt2x00dev, 120, 0x50);
  
-@@ -5314,6 +5337,13 @@ static void rt2800_init_bbp_3352(struct
+@@ -5321,6 +5344,13 @@ static void rt2800_init_bbp_3352(struct 
  	rt2800_bbp_write(rt2x00dev, 143, 0xa2);
  
  	rt2800_bbp_write(rt2x00dev, 148, 0xc8);
@@ -117,7 +117,7 @@
  }
  
  static void rt2800_init_bbp_3390(struct rt2x00_dev *rt2x00dev)
-@@ -5614,6 +5644,7 @@ static void rt2800_init_bbp(struct rt2x0
+@@ -5621,6 +5651,7 @@ static void rt2800_init_bbp(struct rt2x0
  		rt2800_init_bbp_3290(rt2x00dev);
  		break;
  	case RT3352:
@@ -125,7 +125,7 @@
  		rt2800_init_bbp_3352(rt2x00dev);
  		break;
  	case RT3390:
-@@ -6424,6 +6455,76 @@ static void rt2800_init_rfcsr_3593(struc
+@@ -6431,6 +6462,76 @@ static void rt2800_init_rfcsr_3593(struc
  	/* TODO: enable stream mode support */
  }
  
@@ -202,7 +202,7 @@
  static void rt2800_init_rfcsr_5390(struct rt2x00_dev *rt2x00dev)
  {
  	rt2800_rf_init_calibration(rt2x00dev, 2);
-@@ -6655,6 +6756,9 @@ static void rt2800_init_rfcsr(struct rt2
+@@ -6662,6 +6763,9 @@ static void rt2800_init_rfcsr(struct rt2
  	case RT3593:
  		rt2800_init_rfcsr_3593(rt2x00dev);
  		break;
@@ -212,7 +212,7 @@
  	case RT5390:
  		rt2800_init_rfcsr_5390(rt2x00dev);
  		break;
-@@ -6894,6 +6998,12 @@ static int rt2800_validate_eeprom(struct
+@@ -6901,6 +7005,12 @@ static int rt2800_validate_eeprom(struct
  		rt2x00_set_field16(&word, EEPROM_NIC_CONF0_RF_TYPE, RF2820);
  		rt2800_eeprom_write(rt2x00dev, EEPROM_NIC_CONF0, word);
  		rt2x00_eeprom_dbg(rt2x00dev, "Antenna: 0x%04x\n", word);
@@ -225,7 +225,7 @@
  	} else if (rt2x00_rt(rt2x00dev, RT2860) ||
  		   rt2x00_rt(rt2x00dev, RT2872)) {
  		/*
-@@ -7027,6 +7137,8 @@ static int rt2800_init_eeprom(struct rt2
+@@ -7034,6 +7144,8 @@ static int rt2800_init_eeprom(struct rt2
  	    rt2x00_rt(rt2x00dev, RT5390) ||
  	    rt2x00_rt(rt2x00dev, RT5392))
  		rt2800_eeprom_read(rt2x00dev, EEPROM_CHIP_ID, &rf);
@@ -234,7 +234,7 @@
  	else
  		rf = rt2x00_get_field16(eeprom, EEPROM_NIC_CONF0_RF_TYPE);
  
-@@ -7044,6 +7156,7 @@ static int rt2800_init_eeprom(struct rt2
+@@ -7051,6 +7163,7 @@ static int rt2800_init_eeprom(struct rt2
  	case RF3290:
  	case RF3320:
  	case RF3322:
@@ -242,7 +242,7 @@
  	case RF5360:
  	case RF5370:
  	case RF5372:
-@@ -7610,7 +7723,8 @@ static int rt2800_probe_hw_mode(struct r
+@@ -7617,7 +7730,8 @@ static int rt2800_probe_hw_mode(struct r
  		   rt2x00_rf(rt2x00dev, RF5392)) {
  		spec->num_channels = 14;
  		spec->channels = rf_vals_3x;
@@ -252,7 +252,7 @@
  		spec->num_channels = 14;
  		if (spec->clk_is_20mhz)
  			spec->channels = rf_vals_xtal20mhz_3x;
-@@ -7735,6 +7849,7 @@ static int rt2800_probe_hw_mode(struct r
+@@ -7742,6 +7856,7 @@ static int rt2800_probe_hw_mode(struct r
  	case RF3052:
  	case RF3053:
  	case RF3290:
@@ -260,7 +260,7 @@
  	case RF5360:
  	case RF5370:
  	case RF5372:
-@@ -7773,6 +7888,7 @@ static int rt2800_probe_rt(struct rt2x00
+@@ -7780,6 +7895,7 @@ static int rt2800_probe_rt(struct rt2x00
  	case RT3390:
  	case RT3572:
  	case RT3593:

+ 1 - 1
package/kernel/mac80211/patches/619-rt2x00-change-led-polarity-from-OF.patch

@@ -8,7 +8,7 @@
  
  #include "rt2x00.h"
  #include "rt2800lib.h"
-@@ -7245,6 +7246,17 @@ static int rt2800_init_eeprom(struct rt2
+@@ -7252,6 +7253,17 @@ static int rt2800_init_eeprom(struct rt2
  	rt2800_init_led(rt2x00dev, &rt2x00dev->led_assoc, LED_TYPE_ASSOC);
  	rt2800_init_led(rt2x00dev, &rt2x00dev->led_qual, LED_TYPE_QUALITY);
  

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff