added a patch to compat-wireless

This commit is contained in:
Zero_Chaos 2009-09-08 19:30:15 +00:00
parent 230c7486cf
commit 29a0527492
3 changed files with 135 additions and 2 deletions

View file

@ -1,6 +1,7 @@
AUX 4000_mac80211_2.6.28-rc4-wl_frag+ack_v3.patch 1063 RMD160 0b8d08feefbf0de9d532c73066fda755ffeaf6f9 SHA1 0eea3b55ed7cb436a1464d35345d329cc47a0137 SHA256 4ae0d3926ed563cb961df0d3236b321ad86698843a2a6df26476657c5e20dac0
AUX 4002_mac80211-2.6.29-fix-tx-ctl-no-ack-retry-count.patch 559 RMD160 f6fb33ff15e989e280f5a6f230f88a36a0284e3e SHA1 ef5fb0bc41a6a169d82a8c04eae07e94df68b807 SHA256 2c9222e0c6aaafabac091766c7e0a71442f0e9521ec1c65fc7024fbca60a3354
AUX 4004_zd1211rw-2.6.28.patch 1412 RMD160 70c7cd8a8e03199b33c76ff16974d4a4980b846f SHA1 0bf4c9df519246ffbee94b7ffeb454b2408b8dfb SHA256 6696295acb2a8d12a33208525cba9ce8bd2971c9c0adaabb31debfa9ec15c7be
AUX 4005_ath5k-frequency-expansion-2.6.30.patch 4838 RMD160 e175138fd025ef0750178146c0c038c1664557bb SHA1 99322fe5cdf1a8ded58f65267503fddc90c934be SHA256 563a1644c51804d6014be54a7ce26cd4db70991a4b75c4b66370ea9136d40467
AUX 4007_ath5k-pass-failed-crc.patch 568 RMD160 1f38abc77887fc23b5f09b1ddd7e4159ab190e91 SHA1 22ecfbd59b4e7f1038ac9415003e182cddae8df2 SHA256 12e8549aa3fd85d83fc7c80ab2dbd4ed5a22ae446af6979bfbdd4a3c2d4e9fe6
AUX 4012_openwrt-b43-disable_qos_when_openfw.patch 721 RMD160 cd67c2425cd5b29f637781652a49a951a9ffda21 SHA1 382947ee332836c43c4eeb32eb8358b88e18fd22 SHA256 f03374faa0d41a5dca7e20079d7a7bd59aebd309b56aa6c7f7108b596d3f0da2
AUX blinky.patch 357 RMD160 6c93e916efc56412f316076e836c1c5d98e58047 SHA1 e23568801309cdf2a01fa5be8cd3b9a3fcff5edd SHA256 1c2f0e18ecbcf2c07ba732671e77408326d2566d260f0252002c5698f9e65e30
@ -18,4 +19,4 @@ DIST compat-wireless-2.6.31-rc7.tar.bz2 1949339 RMD160 ad1b6f63260d1e58734a5a3f5
EBUILD compat-wireless-2.6.30.ebuild 3389 RMD160 1eea3ef67a627df083f65bc84d62439bd0c12b12 SHA1 8f143cc406d583fafad08332e02a9552f290d75c SHA256 0a08cd49f0c4a4d1fef41dcaf7906c179cbb23a7193a6708e0f3f3901b71c115
EBUILD compat-wireless-2.6.30_rc6.ebuild 3324 RMD160 d6372701d7ae635497eefb0b7ead25ea8c71fd4a SHA1 82565ba3f3a61ab7c1a17f2b159e24e5e71b708e SHA256 d3ab1be0727d5566ae1d2769874418119bf3884a217ccf03e03fa26c6786b6ce
EBUILD compat-wireless-2.6.31_rc4.ebuild 1871 RMD160 a507e9841a00e03eb03d9e2da238012eee2617b2 SHA1 dbea89068f3c707fdc4fb34a7245b5eab706f48c SHA256 d84a8a1148366d10f874f54c4365666fad24b5f89b1955d97a4a71dae688de50
EBUILD compat-wireless-2.6.31_rc7.ebuild 1912 RMD160 ead210d3447d8a0994f927c95b804c286cefe695 SHA1 0bac2a48a3c290126c09c167ddd1315bc88c6594 SHA256 68374e573b4313168a9053e7f33808a41cdcb96266a9cd4d4c011573691b18cb
EBUILD compat-wireless-2.6.31_rc7.ebuild 1913 RMD160 4b919364152b8e4363f37bf226e85398b7214ecf SHA1 669b1d7533f6d74dfbff9859296a0593c635d605 SHA256 b4576695300917db98f4bc5c87a6244495458e2c1e83110dcbdbfe73d386e700

View file

@ -33,7 +33,7 @@ pkg_setup() {
}
src_compile() {
if use injection; then epatch "${FILESDIR}"/400[024]_*.patch; fi
if use injection; then epatch "${FILESDIR}"/400[0245]_*.patch; fi
# if use injection; then epatch "${FILESDIR}"/4012_*.patch; fi
epatch "${FILESDIR}"/whynot-2.6.31.patch
epatch "${FILESDIR}"/blinky.patch

View file

@ -0,0 +1,132 @@
diff -ru ./compat-wireless-2009-06-11clean/drivers/net/wireless/ath/ath5k/base.c ./compat-wireless-2009-06-11/drivers/net/wireless/ath/ath5k/base.c
--- ./compat-wireless-2009-06-11clean/drivers/net/wireless/ath/ath5k/base.c 2009-06-10 16:58:40.000000000 -0700
+++ ./compat-wireless-2009-06-11/drivers/net/wireless/ath/ath5k/base.c 2009-06-11 17:18:19.000000000 -0700
@@ -276,7 +276,7 @@
static void ath5k_detach(struct pci_dev *pdev,
struct ieee80211_hw *hw);
/* Channel/mode setup */
-static inline short ath5k_ieee2mhz(short chan);
+static inline short ath5k_ieee2mhz(int chan, unsigned int chfreq);
static unsigned int ath5k_copy_channels(struct ath5k_hw *ah,
struct ieee80211_channel *channels,
unsigned int mode,
@@ -875,12 +875,15 @@
* Convert IEEE channel number to MHz frequency.
*/
static inline short
-ath5k_ieee2mhz(short chan)
+ath5k_ieee2mhz(int chan, unsigned int chfreq)
{
- if (chan <= 14 || chan >= 27)
- return ieee80211chan2mhz(chan);
+ if (chan == CHANNEL_5GHZ)
+ return (chan + 1000) * 5;
else
- return 2212 + chan * 20;
+ if (chan <= 14 || chan >= 27)
+ return ieee80211chan2mhz(chan);
+ else
+ return 2212 + chan * 20;
}
/*
@@ -903,7 +906,8 @@
unsigned int mode,
unsigned int max)
{
- unsigned int i, count, size, chfreq, freq, ch;
+ unsigned int i, count, size, chfreq, freq;
+ int ch;
if (!test_bit(mode, ah->ah_modes))
return 0;
@@ -912,13 +916,15 @@
case AR5K_MODE_11A:
case AR5K_MODE_11A_TURBO:
/* 1..220, but 2GHz frequencies are filtered by check_channel */
- size = 220 ;
+ size = 241 ;
+ ch = -40;
chfreq = CHANNEL_5GHZ;
break;
case AR5K_MODE_11B:
case AR5K_MODE_11G:
case AR5K_MODE_11G_TURBO:
- size = 26;
+ size = 70;
+ ch = -43;
chfreq = CHANNEL_2GHZ;
break;
default:
@@ -926,9 +932,8 @@
return 0;
}
- for (i = 0, count = 0; i < size && max > 0; i++) {
- ch = i + 1 ;
- freq = ath5k_ieee2mhz(ch);
+ for (i = 0, count = 0; i < size && max > 0; i++,ch++) {
+ freq = ath5k_ieee2mhz(ch,chfreq);
/* Check if channel is supported by the chipset */
if (!ath5k_channel_ok(ah, freq, chfreq))
@@ -1244,7 +1249,9 @@
rate = ieee80211_get_tx_rate(sc->hw, info);
- if (info->flags & IEEE80211_TX_CTL_NO_ACK)
+ if (info->flags & IEEE80211_TX_CTL_NO_ACK ||
+ (info->flags & IEEE80211_TX_CTL_INJECTED &&
+ !(ieee80211_has_morefrags(((struct ieee80211_hdr *)skb->data)->frame_control))))
flags |= AR5K_TXDESC_NOACK;
rc_flags = info->control.rates[0].flags;
diff -ru ./compat-wireless-2009-06-11clean/drivers/net/wireless/ath/ath5k/base.h ./compat-wireless-2009-06-11/drivers/net/wireless/ath/ath5k/base.h
--- ./compat-wireless-2009-06-11clean/drivers/net/wireless/ath/ath5k/base.h 2009-06-10 16:58:50.000000000 -0700
+++ ./compat-wireless-2009-06-11/drivers/net/wireless/ath/ath5k/base.h 2009-06-11 17:21:55.000000000 -0700
@@ -107,9 +107,9 @@
};
#if CHAN_DEBUG
-#define ATH_CHAN_MAX (26+26+26+200+200)
+#define ATH_CHAN_MAX (70+70+70+240+240)
#else
-#define ATH_CHAN_MAX (14+14+14+252+20)
+#define ATH_CHAN_MAX (70+70+70+240+240)
#endif
/* Software Carrier, keeps track of the driver state
diff -ru ./compat-wireless-2009-06-11clean/drivers/net/wireless/ath/ath5k/caps.c ./compat-wireless-2009-06-11/drivers/net/wireless/ath/ath5k/caps.c
--- ./compat-wireless-2009-06-11clean/drivers/net/wireless/ath/ath5k/caps.c 2009-06-10 16:58:40.000000000 -0700
+++ ./compat-wireless-2009-06-11/drivers/net/wireless/ath/ath5k/caps.c 2009-06-11 17:24:22.000000000 -0700
@@ -69,8 +69,8 @@
if (AR5K_EEPROM_HDR_11A(ee_header)) {
/* 4920 */
- ah->ah_capabilities.cap_range.range_5ghz_min = 5005;
- ah->ah_capabilities.cap_range.range_5ghz_max = 6100;
+ ah->ah_capabilities.cap_range.range_5ghz_min = 4800;
+ ah->ah_capabilities.cap_range.range_5ghz_max = 6000;
/* Set supported modes */
__set_bit(AR5K_MODE_11A,
@@ -88,7 +88,7 @@
(AR5K_EEPROM_HDR_11G(ee_header) &&
ah->ah_version != AR5K_AR5211)) {
/* 2312 */
- ah->ah_capabilities.cap_range.range_2ghz_min = 2412;
+ ah->ah_capabilities.cap_range.range_2ghz_min = 2192;
ah->ah_capabilities.cap_range.range_2ghz_max = 2732;
if (AR5K_EEPROM_HDR_11B(ee_header))
diff -ru ./compat-wireless-2009-06-11clean/net/mac80211/tx.c ./compat-wireless-2009-06-11/net/mac80211/tx.c
--- ./compat-wireless-2009-06-11clean/net/mac80211/tx.c 2009-06-10 16:58:40.000000000 -0700
+++ ./compat-wireless-2009-06-11/net/mac80211/tx.c 2009-06-11 18:18:20.000000000 -0700
@@ -1387,6 +1387,7 @@
{
struct ieee80211_master_priv *mpriv = netdev_priv(dev);
struct ieee80211_local *local = mpriv->local;
+ struct ieee80211_channel *chan = local->hw.conf.channel;
struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
struct net_device *odev = NULL;