]>
Commit | Line | Data |
---|---|---|
82bd42e9 | 1 | diff -ur linux-2.6.17.6/drivers/net/wireless/hostap/hostap_80211_tx.c linux-2.6.17.6-rawtx/drivers/net/wireless/hostap/hostap_80211_tx.c |
2 | --- linux-2.6.17.6/drivers/net/wireless/hostap/hostap_80211_tx.c 2006-07-15 15:00:43.000000000 -0400 | |
3 | +++ linux-2.6.17.6-rawtx/drivers/net/wireless/hostap/hostap_80211_tx.c 2006-07-15 23:35:27.000000000 -0400 | |
4 | @@ -69,6 +69,9 @@ | |
5 | iface = netdev_priv(dev); | |
6 | local = iface->local; | |
7 | ||
8 | + if (local->iw_mode == IW_MODE_MONITOR) | |
9 | + goto xmit; | |
10 | + | |
11 | if (skb->len < ETH_HLEN) { | |
12 | printk(KERN_DEBUG "%s: hostap_data_start_xmit: short skb " | |
13 | "(len=%d)\n", dev->name, skb->len); | |
14 | @@ -234,6 +237,7 @@ | |
15 | memcpy(skb_put(skb, ETH_ALEN), &hdr.addr4, ETH_ALEN); | |
16 | } | |
17 | ||
18 | +xmit: | |
19 | iface->stats.tx_packets++; | |
20 | iface->stats.tx_bytes += skb->len; | |
21 | ||
22 | @@ -404,8 +408,6 @@ | |
23 | } | |
24 | ||
25 | if (skb->len < 24) { | |
26 | - printk(KERN_DEBUG "%s: hostap_master_start_xmit: short skb " | |
27 | - "(len=%d)\n", dev->name, skb->len); | |
28 | ret = 0; | |
29 | iface->stats.tx_dropped++; | |
30 | goto fail; | |
31 | diff -ur linux-2.6.17.6/drivers/net/wireless/hostap/hostap_cs.c linux-2.6.17.6-rawtx/drivers/net/wireless/hostap/hostap_cs.c | |
32 | --- linux-2.6.17.6/drivers/net/wireless/hostap/hostap_cs.c 2006-07-15 15:00:43.000000000 -0400 | |
33 | +++ linux-2.6.17.6-rawtx/drivers/net/wireless/hostap/hostap_cs.c 2006-07-15 23:35:27.000000000 -0400 | |
34 | @@ -830,58 +830,105 @@ | |
35 | } | |
36 | ||
37 | static struct pcmcia_device_id hostap_cs_ids[] = { | |
38 | - PCMCIA_DEVICE_MANF_CARD(0x000b, 0x7100), | |
39 | - PCMCIA_DEVICE_MANF_CARD(0x000b, 0x7300), | |
40 | - PCMCIA_DEVICE_MANF_CARD(0x0101, 0x0777), | |
41 | - PCMCIA_DEVICE_MANF_CARD(0x0126, 0x8000), | |
42 | - PCMCIA_DEVICE_MANF_CARD(0x0138, 0x0002), | |
43 | - PCMCIA_DEVICE_MANF_CARD(0x0250, 0x0002), | |
44 | - PCMCIA_DEVICE_MANF_CARD(0x026f, 0x030b), | |
45 | - PCMCIA_DEVICE_MANF_CARD(0x0274, 0x1612), | |
46 | - PCMCIA_DEVICE_MANF_CARD(0x0274, 0x1613), | |
47 | - PCMCIA_DEVICE_MANF_CARD(0x028a, 0x0002), | |
48 | - PCMCIA_DEVICE_MANF_CARD(0x02aa, 0x0002), | |
49 | - PCMCIA_DEVICE_MANF_CARD(0x02d2, 0x0001), | |
50 | - PCMCIA_DEVICE_MANF_CARD(0x50c2, 0x0001), | |
51 | - PCMCIA_DEVICE_MANF_CARD(0x50c2, 0x7300), | |
52 | - PCMCIA_DEVICE_MANF_CARD(0xc00f, 0x0000), | |
53 | - PCMCIA_DEVICE_MANF_CARD(0xd601, 0x0002), | |
54 | - PCMCIA_DEVICE_MANF_CARD(0xd601, 0x0005), | |
55 | - PCMCIA_DEVICE_MANF_CARD(0xd601, 0x0010), | |
56 | + PCMCIA_DEVICE_MANF_CARD(0x026f, 0x030b), | |
57 | + PCMCIA_DEVICE_MANF_CARD(0x000b, 0x7100), // SonicWALL Long Range Wireless Card | |
58 | + PCMCIA_DEVICE_MANF_CARD(0x000b, 0x7110), // D-Link DWL-650 rev P 802.11b WLAN card | |
59 | + PCMCIA_DEVICE_MANF_CARD(0x000b, 0x7300), // Sohoware NCP110, Philips 802.11b | |
60 | +// PCMCIA_DEVICE_MANF_CARD(0x0089, 0x0001), // Intel PRO/Wireless 2011 (Symbol24) | |
61 | + PCMCIA_DEVICE_MANF_CARD(0x0089, 0x0002), // AnyPoint(TM) Wireless II PC Card | |
62 | + PCMCIA_DEVICE_MANF_CARD(0x0101, 0x0777), // 3Com AirConnect PCI 777A | |
63 | + PCMCIA_DEVICE_MANF_CARD(0x0126, 0x8000), // PROXIM RangeLAN-DS/LAN PC CARD | |
64 | + PCMCIA_DEVICE_MANF_CARD(0x0138, 0x0002), // Compaq WL100 11 Mbps Wireless Adapter | |
65 | +// PCMCIA_DEVICE_MANF_CARD(0x0156, 0x0002), // Mostly Lucent Orinoco (HermesI), but also some Prism2 :( | |
66 | +// PCMCIA_DEVICE_MANF_CARD(0x016b, 0x0001), // Ericsson WLAN Card C11 (Symbol24) | |
67 | +// PCMCIA_DEVICE_MANF_CARD(0x01eb, 0x080a), // Nortel eMobility 802.11 Wireless Adapter (Symbol24) | |
68 | + PCMCIA_DEVICE_MANF_CARD(0x01ff, 0x0008), // Intermec MobileLAN 11Mbps 802.11b WLAN Card | |
69 | + PCMCIA_DEVICE_MANF_CARD(0x0250, 0x0002), // Samsung SWL2000-N 11Mb/s WLAN Card | |
70 | +// PCMCIA_DEVICE_MANF_CARD(0x0261, 0x0002), // AirWay 802.11 Adapter (HermesI) | |
71 | +// PCMCIA_DEVICE_MANF_CARD(0x0268, 0x0001), // ARtem Onair (HermesI) | |
72 | +// PCMCIA_DEVICE_MANF_CARD(0x026c, 0x0001), // Symbol Technologies LA4111 (Symbol24) | |
73 | + PCMCIA_DEVICE_MANF_CARD(0x026f, 0x0305), // Buffalo WLI-PCM-S11 | |
74 | + PCMCIA_DEVICE_MANF_CARD(0x0274, 0x1612), // Linksys WPC11 Version 2.5 | |
75 | + PCMCIA_DEVICE_MANF_CARD(0x0274, 0x1613), // Linksys WPC11 Version 3 | |
76 | + PCMCIA_DEVICE_MANF_CARD(0x028a, 0x0002), // Compaq HNW-100 11 Mbps Wireless Adapter | |
77 | + PCMCIA_DEVICE_MANF_CARD(0x028a, 0x0673), // Linksys WCF12 11Mbps 802.11b WLAN Card (Prism 3) | |
78 | + PCMCIA_DEVICE_MANF_CARD(0x02aa, 0x0002), // ASUS SpaceLink WL-100 | |
79 | + PCMCIA_DEVICE_MANF_CARD(0x02ac, 0x0002), // SpeedStream SS1021 Wireless Adapter | |
80 | + PCMCIA_DEVICE_MANF_CARD(0x02ac, 0x3021), // SpeedStream SS1021 Wireless Adapter (newer) | |
81 | + PCMCIA_DEVICE_MANF_CARD(0x02d2, 0x0001), // Microsoft Wireless Notebook Adapter MN-520 | |
82 | + PCMCIA_DEVICE_MANF_CARD(0x14ea, 0xb001), // PLANEX RoadLannerWave GW-NS11H | |
83 | + PCMCIA_DEVICE_MANF_CARD(0x1668, 0x0101), // ActionTec 802CI2/HCW01170-01 | |
84 | + PCMCIA_DEVICE_MANF_CARD(0x50c2, 0x0001), // Airvast ? | |
85 | + PCMCIA_DEVICE_MANF_CARD(0x50c2, 0x7300), // Airvast WN-100 | |
86 | + PCMCIA_DEVICE_MANF_CARD(0x9005, 0x0021), // Adaptec Ultra Wireless ANW-8030 | |
87 | + PCMCIA_DEVICE_MANF_CARD(0xc001, 0x0008), // CONTEC FLEXSCAN/FX-DDS110-PCC | |
88 | + PCMCIA_DEVICE_MANF_CARD(0xc00f, 0x0000), // Corega KK Wireless LAN PCC-11 | |
89 | + PCMCIA_DEVICE_MANF_CARD(0xc250, 0x0002), // Conceptronic CON11Cpro, EMTAC A2424i | |
90 | + PCMCIA_DEVICE_MANF_CARD(0xd601, 0x0002), // Safeway 802.11b, ZCOMAX AirRunner/XI-300 | |
91 | + PCMCIA_DEVICE_MANF_CARD(0xd601, 0x0005), // D-Link DCF660, ZCOMAX XI-325HP 200mw | |
92 | + PCMCIA_DEVICE_MANF_CARD(0xd601, 0x0010), // SMC2532W-B V2 | |
93 | + | |
94 | + PCMCIA_MFC_DEVICE_PROD_ID12(0, "SanDisk", "ConnectPlus", 0x7a954bd9, 0x74be00c6), | |
95 | + | |
96 | PCMCIA_DEVICE_MANF_CARD_PROD_ID1(0x0156, 0x0002, "INTERSIL", | |
97 | 0x74c5e40d), | |
98 | PCMCIA_DEVICE_MANF_CARD_PROD_ID1(0x0156, 0x0002, "Intersil", | |
99 | 0x4b801a17), | |
100 | - PCMCIA_MFC_DEVICE_PROD_ID12(0, "SanDisk", "ConnectPlus", | |
101 | - 0x7a954bd9, 0x74be00c6), | |
102 | - PCMCIA_DEVICE_PROD_ID1234( | |
103 | - "Intersil", "PRISM 2_5 PCMCIA ADAPTER", "ISL37300P", | |
104 | - "Eval-RevA", | |
105 | - 0x4b801a17, 0x6345a0bf, 0xc9049a39, 0xc23adc0e), | |
106 | - PCMCIA_DEVICE_PROD_ID123( | |
107 | - "Addtron", "AWP-100 Wireless PCMCIA", "Version 01.02", | |
108 | - 0xe6ec52ce, 0x08649af2, 0x4b74baa0), | |
109 | - PCMCIA_DEVICE_PROD_ID123( | |
110 | - "D", "Link DWL-650 11Mbps WLAN Card", "Version 01.02", | |
111 | - 0x71b18589, 0xb6f1b0ab, 0x4b74baa0), | |
112 | - PCMCIA_DEVICE_PROD_ID123( | |
113 | - "Instant Wireless ", " Network PC CARD", "Version 01.02", | |
114 | - 0x11d901af, 0x6e9bd926, 0x4b74baa0), | |
115 | - PCMCIA_DEVICE_PROD_ID123( | |
116 | - "SMC", "SMC2632W", "Version 01.02", | |
117 | - 0xc4f8b18b, 0x474a1f2a, 0x4b74baa0), | |
118 | - PCMCIA_DEVICE_PROD_ID12("BUFFALO", "WLI-CF-S11G", | |
119 | - 0x2decece3, 0x82067c18), | |
120 | - PCMCIA_DEVICE_PROD_ID12("Compaq", "WL200_11Mbps_Wireless_PCI_Card", | |
121 | - 0x54f7c49c, 0x15a75e5b), | |
122 | - PCMCIA_DEVICE_PROD_ID12("INTERSIL", "HFA384x/IEEE", | |
123 | - 0x74c5e40d, 0xdb472a18), | |
124 | - PCMCIA_DEVICE_PROD_ID12("Linksys", "Wireless CompactFlash Card", | |
125 | - 0x0733cc81, 0x0c52f395), | |
126 | - PCMCIA_DEVICE_PROD_ID12( | |
127 | - "ZoomAir 11Mbps High", "Rate wireless Networking", | |
128 | - 0x273fe3db, 0x32a1eaee), | |
129 | - PCMCIA_DEVICE_NULL | |
130 | + | |
131 | + PCMCIA_DEVICE_PROD_ID12(" ", "IEEE 802.11 Wireless LAN/PC Card", 0x3b6e20c8, 0xefccafe9), | |
132 | +// PCMCIA_DEVICE_PROD_ID12("3Com", "3CRWE737A AirConnect Wireless LAN PC Card", 0x41240e5b, 0x56010af3), // Symbol24 | |
133 | + PCMCIA_DEVICE_PROD_ID12("ACTIONTEC", "PRISM Wireless LAN PC Card", 0x393089da, 0xa71e69d5), | |
134 | + PCMCIA_DEVICE_PROD_ID123("Addtron", "AWP-100 Wireless PCMCIA", "Version 01.02", 0xe6ec52ce, 0x08649af2, 0x4b74baa0), | |
135 | + PCMCIA_DEVICE_PROD_ID123("AIRVAST", "IEEE 802.11b Wireless PCMCIA Card", "HFA3863", 0xea569531, 0x4bcb9645, 0x355cb092), | |
136 | + PCMCIA_DEVICE_PROD_ID12("Allied Telesyn", "AT-WCL452 Wireless PCMCIA Radio", 0x5cd01705, 0x4271660f), | |
137 | + PCMCIA_DEVICE_PROD_ID12("ASUS", "802_11b_PC_CARD_25", 0x78fc06ee, 0xdb9aa842), | |
138 | + PCMCIA_DEVICE_PROD_ID12("ASUS", "802_11B_CF_CARD_25", 0x78fc06ee, 0x45a50c1e), | |
139 | +// PCMCIA_DEVICE_PROD_ID12("Avaya Communication", "Avaya Wireless PC Card", 0xd8a43b78, 0x0d341169), // HermesI | |
140 | + PCMCIA_DEVICE_PROD_ID12("BENQ", "AWL100 PCMCIA ADAPTER", 0x35dadc74, 0x01f7fedb), | |
141 | +// PCMCIA_DEVICE_PROD_ID12("BUFFALO", "WLI-PCM-L11G", 0x2decece3, 0xf57ca4b3), // HermesI | |
142 | + PCMCIA_DEVICE_PROD_ID12("BUFFALO", "WLI-CF-S11G", 0x2decece3, 0x82067c18), | |
143 | +// PCMCIA_DEVICE_PROD_ID12("Cabletron", "RoamAbout 802.11 DS", 0x32d445f5, 0xedeffd90), // HermesI | |
144 | + PCMCIA_DEVICE_PROD_ID12("Compaq", "WL200_11Mbps_Wireless_PCI_Card", 0x54f7c49c, 0x15a75e5b), | |
145 | + PCMCIA_DEVICE_PROD_ID123("corega", "WL PCCL-11", "ISL37300P", 0x0a21501a, 0x59868926, 0xc9049a39), | |
146 | + PCMCIA_DEVICE_PROD_ID12("corega K.K.", "Wireless LAN PCC-11", 0x5261440f, 0xa6405584), | |
147 | + PCMCIA_DEVICE_PROD_ID12("corega K.K.", "Wireless LAN PCCA-11", 0x5261440f, 0xdf6115f9), | |
148 | + PCMCIA_DEVICE_PROD_ID12("D", "Link DRC-650 11Mbps WLAN Card", 0x71b18589, 0xf144e3ac), | |
149 | + PCMCIA_DEVICE_PROD_ID123("D", "Link DWL-650 11Mbps WLAN Card", "Version 01.02", 0x71b18589, 0xb6f1b0ab, 0x4b74baa0), | |
150 | +// PCMCIA_DEVICE_PROD_ID12("D-Link Corporation", "D-Link DWL-650H 11Mbps WLAN Adapter", 0xef544d24, 0xcd8ea916), // Symbol24 | |
151 | + PCMCIA_DEVICE_PROD_ID12("Digital Data Communications", "WPC-0100", 0xfdd73470, 0xe0b6f146), | |
152 | +// PCMCIA_DEVICE_PROD_ID12("ELSA", "AirLancer MC-11", 0x4507a33a, 0xef54f0e3), // HermesI | |
153 | + PCMCIA_DEVICE_PROD_ID12("HyperLink", "Wireless PC Card 11Mbps", 0x56cc3f1a, 0x0bcf220c), | |
154 | + PCMCIA_DEVICE_PROD_ID123("Instant Wireless ", " Network PC CARD", "Version 01.02", 0x11d901af, 0x6e9bd926, 0x4b74baa0), | |
155 | +// PCMCIA_DEVICE_PROD_ID12("Intel", "PRO/Wireless 2011 LAN PC Card", 0x816cc815, 0x07f58077), // HermesI | |
156 | + PCMCIA_DEVICE_PROD_ID12("INTERSIL", "HFA384x/IEEE", 0x74c5e40d, 0xdb472a18), | |
157 | + PCMCIA_DEVICE_PROD_ID12("INTERSIL", "I-GATE 11M PC Card / PC Card plus", 0x74c5e40d, 0x8304ff77), | |
158 | + PCMCIA_DEVICE_PROD_ID1234("Intersil", "PRISM 2_5 PCMCIA ADAPTER", "ISL37300P", "Eval-RevA", 0x4b801a17, 0x6345a0bf, 0xc9049a39, 0xc23adc0e), | |
159 | + PCMCIA_DEVICE_PROD_ID123("Intersil", "PRISM Freedom PCMCIA Adapter", "ISL37100P", 0x4b801a17, 0xf222ec2d, 0x630d52b2), | |
160 | + PCMCIA_DEVICE_PROD_ID12("INTERSIL", "HFA384x/IEEE", 0x74c5e40d, 0xdb472a18), | |
161 | + PCMCIA_DEVICE_PROD_ID12("LeArtery", "SYNCBYAIR 11Mbps Wireless LAN PC Card", 0x7e3b326a, 0x49893e92), | |
162 | + PCMCIA_DEVICE_PROD_ID12("Linksys", "Wireless CompactFlash Card", 0x0733cc81, 0x0c52f395), | |
163 | +// PCMCIA_DEVICE_PROD_ID12("Lucent Technologies", "WaveLAN/IEEE", 0x23eb9949, 0xc562e72a), // HermesI | |
164 | +// PCMCIA_DEVICE_PROD_ID12("MELCO", "WLI-PCM-L11", 0x481e0094, 0x7360e410), // HermesI | |
165 | +// PCMCIA_DEVICE_PROD_ID12("MELCO", "WLI-PCM-L11G", 0x481e0094, 0xf57ca4b3), // HermesI | |
166 | + PCMCIA_DEVICE_PROD_ID12("Microsoft", "Wireless Notebook Adapter MN-520", 0x5961bf85, 0x6eec8c01), | |
167 | +// PCMCIA_DEVICE_PROD_ID12("NCR", "WaveLAN/IEEE", 0x24358cd4, 0xc562e72a), // HermesI | |
168 | + PCMCIA_DEVICE_PROD_ID12("NETGEAR MA401 Wireless PC", "Card", 0xa37434e9, 0x9762e8f1), | |
169 | + PCMCIA_DEVICE_PROD_ID12("NETGEAR MA401RA Wireless PC", "Card", 0x0306467f, 0x9762e8f1), | |
170 | +// PCMCIA_DEVICE_PROD_ID12("Nortel Networks", "emobility 802.11 Wireless LAN PC Card", 0x2d617ea0, 0x88cd5767), // Symbol24 | |
171 | + PCMCIA_DEVICE_PROD_ID12("OEM", "PRISM2 IEEE 802.11 PC-Card", 0xfea54c90, 0x48f2bdd6), | |
172 | + PCMCIA_DEVICE_PROD_ID12("OTC", "Wireless AirEZY 2411-PCC WLAN Card", 0x4ac44287, 0x235a6bed), | |
173 | + PCMCIA_DEVICE_PROD_ID123("PCMCIA", "11M WLAN Card v2.5", "ISL37300P", 0x281f1c5d, 0x6e440487, 0xc9049a39), | |
174 | + PCMCIA_DEVICE_PROD_ID12("PLANEX", "GeoWave/GW-CF110", 0x209f40ab, 0xd9715264), | |
175 | + PCMCIA_DEVICE_PROD_ID12("PLANEX", "GeoWave/GW-NS110", 0x209f40ab, 0x46263178), | |
176 | + PCMCIA_DEVICE_PROD_ID12("PROXIM", "LAN PC CARD HARMONY 80211B", 0xc6536a5e, 0x090c3cd9), | |
177 | + PCMCIA_DEVICE_PROD_ID12("PROXIM", "LAN PCI CARD HARMONY 80211B", 0xc6536a5e, 0x9f494e26), | |
178 | + PCMCIA_DEVICE_PROD_ID12("SAMSUNG", "11Mbps WLAN Card", 0x43d74cb4, 0x579bd91b), | |
179 | +// PCMCIA_DEVICE_PROD_ID1("Symbol Technologies", 0x3f02b4d6), // Symbol24 | |
180 | +// PCMCIA_DEVICE_PROD_ID12("Symbol Technologies", "LA4111 Spectrum24 Wireless LAN PC Card", 0x3f02b4d6, 0x3663cb0e), // Symbol24 | |
181 | + PCMCIA_DEVICE_PROD_ID123("SMC", "SMC2632W", "Version 01.02", 0xc4f8b18b, 0x474a1f2a, 0x4b74baa0), | |
182 | + PCMCIA_DEVICE_PROD_ID123("The Linksys Group, Inc.", "Instant Wireless Network PC Card", "ISL37300P", 0xa5f472c2, 0x590eb502, 0xc9049a39), | |
183 | + PCMCIA_DEVICE_PROD_ID12("ZoomAir 11Mbps High", "Rate wireless Networking", 0x273fe3db, 0x32a1eaee), | |
184 | + PCMCIA_DEVICE_NULL | |
185 | }; | |
186 | MODULE_DEVICE_TABLE(pcmcia, hostap_cs_ids); | |
187 | ||
188 | Only in linux-2.6.17.6-rawtx/drivers/net/wireless/hostap: hostap_cs.c.orig | |
189 | diff -ur linux-2.6.17.6/drivers/net/wireless/hostap/hostap_hw.c linux-2.6.17.6-rawtx/drivers/net/wireless/hostap/hostap_hw.c | |
190 | --- linux-2.6.17.6/drivers/net/wireless/hostap/hostap_hw.c 2006-07-15 15:00:43.000000000 -0400 | |
191 | +++ linux-2.6.17.6-rawtx/drivers/net/wireless/hostap/hostap_hw.c 2006-07-15 23:35:27.000000000 -0400 | |
192 | @@ -1006,6 +1006,35 @@ | |
193 | return fid; | |
194 | } | |
195 | ||
196 | +static int prism2_monitor_enable(struct net_device *dev) | |
197 | +{ | |
198 | + if (hostap_set_word(dev, HFA384X_RID_CNFPORTTYPE, 5)) { | |
199 | + printk(KERN_DEBUG "Port type setting for monitor mode " | |
200 | + "failed\n"); | |
201 | + return -EOPNOTSUPP; | |
202 | + } | |
203 | + | |
204 | + if (hfa384x_cmd(dev, HFA384X_CMDCODE_TEST | (0x0a << 8), | |
205 | + 0, NULL, NULL)) { | |
206 | + printk(KERN_DEBUG "Could not enter testmode 0x0a\n"); | |
207 | + return -EOPNOTSUPP; | |
208 | + } | |
209 | + | |
210 | + if (hostap_set_word(dev, HFA384X_RID_CNFWEPFLAGS, | |
211 | + HFA384X_WEPFLAGS_PRIVACYINVOKED | | |
212 | + HFA384X_WEPFLAGS_HOSTENCRYPT | | |
213 | + HFA384X_WEPFLAGS_HOSTDECRYPT)) { | |
214 | + printk(KERN_DEBUG "WEP flags setting failed\n"); | |
215 | + return -EOPNOTSUPP; | |
216 | + } | |
217 | + | |
218 | + if (hostap_set_word(dev, HFA384X_RID_PROMISCUOUSMODE, 1)) { | |
219 | + printk(KERN_DEBUG "Could not set promiscuous mode\n"); | |
220 | + return -EOPNOTSUPP; | |
221 | + } | |
222 | + | |
223 | + return 0; | |
224 | +} | |
225 | ||
226 | static int prism2_reset_port(struct net_device *dev) | |
227 | { | |
228 | @@ -1032,6 +1061,10 @@ | |
229 | "port\n", dev->name); | |
230 | } | |
231 | ||
232 | + if (local->iw_mode == IW_MODE_MONITOR) | |
233 | + /* force mode 0x0a after port 0 reset */ | |
234 | + return prism2_monitor_enable(dev); | |
235 | + | |
236 | /* It looks like at least some STA firmware versions reset | |
237 | * fragmentation threshold back to 2346 after enable command. Restore | |
238 | * the configured value, if it differs from this default. */ | |
239 | @@ -1464,6 +1497,10 @@ | |
240 | return 1; | |
241 | } | |
242 | ||
243 | + if (local->iw_mode == IW_MODE_MONITOR) | |
244 | + /* force mode 0x0a after port 0 reset */ | |
245 | + prism2_monitor_enable(dev); | |
246 | + | |
247 | local->hw_ready = 1; | |
248 | local->hw_reset_tries = 0; | |
249 | local->hw_resetting = 0; | |
250 | @@ -3146,6 +3183,7 @@ | |
251 | local->func->hw_config = prism2_hw_config; | |
252 | local->func->hw_reset = prism2_hw_reset; | |
253 | local->func->hw_shutdown = prism2_hw_shutdown; | |
254 | + local->func->monitor_enable = prism2_monitor_enable; | |
255 | local->func->reset_port = prism2_reset_port; | |
256 | local->func->schedule_reset = prism2_schedule_reset; | |
257 | #ifdef PRISM2_DOWNLOAD_SUPPORT | |
258 | diff -ur linux-2.6.17.6/drivers/net/wireless/hostap/hostap_ioctl.c linux-2.6.17.6-rawtx/drivers/net/wireless/hostap/hostap_ioctl.c | |
259 | --- linux-2.6.17.6/drivers/net/wireless/hostap/hostap_ioctl.c 2006-07-15 15:00:43.000000000 -0400 | |
260 | +++ linux-2.6.17.6-rawtx/drivers/net/wireless/hostap/hostap_ioctl.c 2006-07-15 23:35:27.000000000 -0400 | |
261 | @@ -1104,33 +1104,7 @@ | |
262 | ||
263 | printk(KERN_DEBUG "Enabling monitor mode\n"); | |
264 | hostap_monitor_set_type(local); | |
265 | - | |
266 | - if (hostap_set_word(dev, HFA384X_RID_CNFPORTTYPE, | |
267 | - HFA384X_PORTTYPE_PSEUDO_IBSS)) { | |
268 | - printk(KERN_DEBUG "Port type setting for monitor mode " | |
269 | - "failed\n"); | |
270 | - return -EOPNOTSUPP; | |
271 | - } | |
272 | - | |
273 | - /* Host decrypt is needed to get the IV and ICV fields; | |
274 | - * however, monitor mode seems to remove WEP flag from frame | |
275 | - * control field */ | |
276 | - if (hostap_set_word(dev, HFA384X_RID_CNFWEPFLAGS, | |
277 | - HFA384X_WEPFLAGS_HOSTENCRYPT | | |
278 | - HFA384X_WEPFLAGS_HOSTDECRYPT)) { | |
279 | - printk(KERN_DEBUG "WEP flags setting failed\n"); | |
280 | - return -EOPNOTSUPP; | |
281 | - } | |
282 | - | |
283 | - if (local->func->reset_port(dev) || | |
284 | - local->func->cmd(dev, HFA384X_CMDCODE_TEST | | |
285 | - (HFA384X_TEST_MONITOR << 8), | |
286 | - 0, NULL, NULL)) { | |
287 | - printk(KERN_DEBUG "Setting monitor mode failed\n"); | |
288 | - return -EOPNOTSUPP; | |
289 | - } | |
290 | - | |
291 | - return 0; | |
292 | + return local->func->reset_port(dev); | |
293 | } | |
294 | ||
295 | ||
296 | @@ -1199,7 +1173,7 @@ | |
297 | local->iw_mode = *mode; | |
298 | ||
299 | if (local->iw_mode == IW_MODE_MONITOR) | |
300 | - hostap_monitor_mode_enable(local); | |
301 | + return hostap_monitor_mode_enable(local); | |
302 | else if (local->iw_mode == IW_MODE_MASTER && !local->host_encrypt && | |
303 | !local->fw_encrypt_ok) { | |
304 | printk(KERN_DEBUG "%s: defaulting to host-based encryption as " | |
305 | diff -ur linux-2.6.17.6/drivers/net/wireless/hostap/hostap_main.c linux-2.6.17.6-rawtx/drivers/net/wireless/hostap/hostap_main.c | |
306 | --- linux-2.6.17.6/drivers/net/wireless/hostap/hostap_main.c 2006-07-15 15:00:43.000000000 -0400 | |
307 | +++ linux-2.6.17.6-rawtx/drivers/net/wireless/hostap/hostap_main.c 2006-07-15 23:35:27.000000000 -0400 | |
308 | @@ -332,7 +332,7 @@ | |
309 | if (local->iw_mode == IW_MODE_REPEAT) | |
310 | return HFA384X_PORTTYPE_WDS; | |
311 | if (local->iw_mode == IW_MODE_MONITOR) | |
312 | - return HFA384X_PORTTYPE_PSEUDO_IBSS; | |
313 | + return 5; /*HFA384X_PORTTYPE_PSEUDO_IBSS;*/ | |
314 | return HFA384X_PORTTYPE_HOSTAP; | |
315 | } | |
316 | ||
317 | diff -ur linux-2.6.17.6/drivers/net/wireless/hostap/hostap_pci.c linux-2.6.17.6-rawtx/drivers/net/wireless/hostap/hostap_pci.c | |
318 | --- linux-2.6.17.6/drivers/net/wireless/hostap/hostap_pci.c 2006-07-15 15:00:43.000000000 -0400 | |
319 | +++ linux-2.6.17.6-rawtx/drivers/net/wireless/hostap/hostap_pci.c 2006-07-15 23:35:27.000000000 -0400 | |
320 | @@ -49,6 +49,8 @@ | |
321 | { 0x1260, 0x3873, PCI_ANY_ID, PCI_ANY_ID }, | |
322 | /* Samsung MagicLAN SWL-2210P */ | |
323 | { 0x167d, 0xa000, PCI_ANY_ID, PCI_ANY_ID }, | |
324 | + /* NETGEAR MA311 */ | |
325 | + { 0x1385, 0x3872, PCI_ANY_ID, PCI_ANY_ID }, | |
326 | { 0 } | |
327 | }; | |
328 | ||
329 | diff -ur linux-2.6.17.6/drivers/net/wireless/hostap/hostap_plx.c linux-2.6.17.6-rawtx/drivers/net/wireless/hostap/hostap_plx.c | |
330 | --- linux-2.6.17.6/drivers/net/wireless/hostap/hostap_plx.c 2006-07-15 15:00:43.000000000 -0400 | |
331 | +++ linux-2.6.17.6-rawtx/drivers/net/wireless/hostap/hostap_plx.c 2006-07-15 23:35:27.000000000 -0400 | |
332 | @@ -100,6 +100,7 @@ | |
333 | { 0xc250, 0x0002 } /* EMTAC A2424i */, | |
334 | { 0xd601, 0x0002 } /* Z-Com XI300 */, | |
335 | { 0xd601, 0x0005 } /* Zcomax XI-325H 200mW */, | |
336 | + { 0xd601, 0x0010 } /* Zcomax XI-325H 100mW */, | |
337 | { 0, 0} | |
338 | }; | |
339 | ||
340 | diff -ur linux-2.6.17.6/drivers/net/wireless/hostap/hostap_wlan.h linux-2.6.17.6-rawtx/drivers/net/wireless/hostap/hostap_wlan.h | |
341 | --- linux-2.6.17.6/drivers/net/wireless/hostap/hostap_wlan.h 2006-07-15 15:00:43.000000000 -0400 | |
342 | +++ linux-2.6.17.6-rawtx/drivers/net/wireless/hostap/hostap_wlan.h 2006-07-15 23:35:27.000000000 -0400 | |
343 | @@ -575,6 +575,7 @@ | |
344 | int (*hw_config)(struct net_device *dev, int initial); | |
345 | void (*hw_reset)(struct net_device *dev); | |
346 | void (*hw_shutdown)(struct net_device *dev, int no_disable); | |
347 | + int (*monitor_enable)(struct net_device *dev); | |
348 | int (*reset_port)(struct net_device *dev); | |
349 | void (*schedule_reset)(local_info_t *local); | |
350 | int (*download)(local_info_t *local, |