Bernhard Schmidt
97fadf57df
Add support for TX packet aggregation.
2011-05-08 12:06:12 +00:00
Bernhard Schmidt
b2ad04c708
Add support for RX packet aggregation.
2011-05-08 11:58:23 +00:00
Bernhard Schmidt
fa818eae51
Add support for transmitting frames at MCS rates.
2011-05-08 11:54:38 +00:00
Bernhard Schmidt
1647639a26
Prepare for transmitting frames at MCS rates:
...
- instead of calling iwn_plcp_signal() for every frame, map the expected
value directly within wn->ridx
- concat plcp, rflags and xrflags, there is no clean byte boundary within
the flags, for example the antenna setting uses bit 6, 7 and 8
- there is still need for a custom rate to plcp mapping, as those expected
by the hardware are not conform to the std
2011-05-08 11:49:50 +00:00
Bernhard Schmidt
e9823bf8c9
Read chainmask information before announcing it.
2011-05-08 11:05:03 +00:00
Bernhard Schmidt
d86e3b2227
Add HT capabilities to probe requests.
2011-05-08 11:03:16 +00:00
Bernhard Schmidt
c9ce626212
Disable background scan support for 4965 adapters.
...
On legacy channels every once in a while the firmware throws a SYSASSERT
on line 208. On HT channels though this does always happen and I'm not
aware of any workaround currently.
2011-05-08 11:01:53 +00:00
Bernhard Schmidt
b648a23887
RX aggregation is slightly different then the legacy path, we will only
...
receive one RX_PHY for each aggregate and not one RX_PHY per frame.
2011-05-08 10:57:44 +00:00
Bernhard Schmidt
45e562203f
Allocate all TX rings, those will be use for TX packet aggregation.
2011-05-08 10:54:50 +00:00
Bernhard Schmidt
3c2a1fc39d
Use the enhanced TX power information availabe on newer EEPROMs.
2011-05-08 10:35:16 +00:00
Bernhard Schmidt
c07d5014de
Hook HT channel setup.
2011-05-08 10:31:22 +00:00
Bernhard Schmidt
688f94830d
The 6000 series adapters have a slightly different offset for band 6,
...
2GHz HT40 channels.
2011-05-08 10:21:42 +00:00
Bernhard Schmidt
3016ab149d
Re-add 2 device IDs which got lost.
...
Pointed out by: benjsc
2011-05-08 10:19:29 +00:00
Bernhard Schmidt
9cfb2cd173
Now that all bits are in for 1030/6230 adapters enable those.
...
While here pull the adapter names from the Linux driver and sort
the list by ID.
2011-04-20 17:49:05 +00:00
Bernhard Schmidt
57becf59ea
The 6000 series gen2 adapters have 2 firmware images, one with
...
advanced btcoex support and one without.
2011-04-20 17:43:20 +00:00
Bernhard Schmidt
8bb237d949
Add basic support for advanced bluetooth coexistence required
...
for 6005 gen2b (1030/6030) adapters.
2011-04-20 16:59:27 +00:00
Bernhard Schmidt
d37f258ba9
Enable DC calibration for all 6000 series devices, except those
...
with an internal PA.
Override the chainmask also for the 6050.
2011-04-19 19:51:35 +00:00
Bernhard Schmidt
9ff2129fbe
Pull some features out of the firmware:
...
- If a ENH_SENS TLV section exit the firmware is capable of doing
enhanced sensitivity calibration.
- Newer devices/firmwares have more calibration commands therefore
hardcoding the noise gain/reset commands no longer works. It is
supposed to use the next index after the newest calibration type
support. Read the command index of the TLV section if available.
2011-04-19 19:47:41 +00:00
Bernhard Schmidt
9dd0e40b62
Add some new features:
...
- 6000 series devices need enhanced sensitivity calibration.
- 6000 series devices need a different setting for the shadow reg.
- set the IWN_FLAG_HAS_11N bit if the EEPROM says the device has 11n
support.
Obtained from: OpenBSD
2011-04-16 14:56:13 +00:00
Bernhard Schmidt
552e368d27
Bring over the HAL/OPS changes, instead of two const structs it is now
...
slightly more dynamic.
Obtained from: OpenBSD
2011-04-16 14:51:46 +00:00
Bernhard Schmidt
61a504f68f
Read RX/TX chainmasks directly of the EEPROM. Some chips are known to
...
have the wrong/broken information stored, keep the hardcoded values for
those.
Obtained from: OpenBSD
2011-04-16 14:49:29 +00:00
Bernhard Schmidt
a987f807de
Just a whitespace sync, some more style(9) conform then others.
2011-04-16 14:40:42 +00:00
Bernhard Schmidt
6cc1bb61fa
Sync comments with OpenBSD.
2011-04-16 14:38:57 +00:00
Bernhard Schmidt
80ee921916
Sync debug and error messages with OpenBSD.
2011-04-16 14:38:01 +00:00
Bernhard Schmidt
786b72c5bc
Shuffle code around a bit. Mostly to group functional connected things,
...
others to get the same order as the OpenBSD code.
2011-04-16 14:36:43 +00:00
Bernhard Schmidt
5fd12c76a8
Rename some stuff in favour of the OpenBSD names:
...
- prefer EDCA over WME
- qid for a TXQ ID
- reg for register values
2011-04-16 13:40:32 +00:00
Bernhard Schmidt
4e61a8e57c
Fix WME/QoS handling:
...
- move the TX queue selection into iwn_tx_data/iwn_tx_data_raw
- extract traffic identifier and use it
- do not expect ACKs for frames marked as such
2011-04-16 13:25:19 +00:00
Bernhard Schmidt
baa8b4ad20
Remove if_ierrors which do not necessarily indicate a RX error, also
...
do account send packets. While here use the IWN_TX_FAIL constant.
2011-04-16 13:12:12 +00:00
Bernhard Schmidt
3096855e8c
Instead of hardcoding TX rates and using that to fill the retry table
...
use the neogotiated ni_rates instead.
2011-04-16 12:42:54 +00:00
Bernhard Schmidt
7223fe84f2
Replace RX/TX ring allocation error messages with something more sane
...
and remove those where the caller already prints one.
2011-04-16 11:14:42 +00:00
Bernhard Schmidt
0df53de1c3
Prevent double-free, also use the same error codes as OpenBSD.
2011-04-16 11:11:22 +00:00
Bernhard Schmidt
47c2ecefcc
Add missing bus_dmamap_sync calls as well as remove two duplicate ones.
...
Obtained from: OpenBSD
2011-04-16 10:52:11 +00:00
Bernhard Schmidt
fac0198998
Unify TX/RX ring allocation, finish the descriptior DMA stuff before
...
starting with data.
2011-04-16 10:38:27 +00:00
Bernhard Schmidt
a59641a1a4
Make sure to destroy all DMA tags and maps.
2011-04-16 10:35:02 +00:00
Bernhard Schmidt
1f43fb20f2
Rewrite DMA segment handling to be more inline with the OpenBSD code.
...
Also change the m_len == 0 hack to have less code churn.
2011-04-16 10:32:46 +00:00
Bernhard Schmidt
58e6c20852
scratch_paddr has the same address pre-assigned, use that instead.
2011-04-16 09:39:08 +00:00
Bernhard Schmidt
f75e83846a
In case a new mbuf can't be loaded, reuse the old one.
2011-04-16 09:34:40 +00:00
Bernhard Schmidt
3f01dc2d9d
OpenBSD uses IWN_RBUF_SIZE not MJUMPAGESIZE for the RX path, also replace
...
caddr_t with void * to be in sync.
2011-04-16 08:59:21 +00:00
Bernhard Schmidt
5c222f4bc8
Remove the flags argument of iwn_dma_contig_alloc(), it is always set
...
as BUS_DMA_NOWAIT. While here also set BUS_DMA_COHERENT.
2011-04-16 08:57:17 +00:00
Bernhard Schmidt
65aa0234f0
RSSI related syncs with the OpenBSD code:
...
- read RSSI only for the active chains
- cast RSSI/NF to int8_t before passing it up to radiotap
- remove the htole64() for the timestamp
Obtained from: OpenBSD
2011-04-16 07:32:57 +00:00
Bernhard Schmidt
1eccdf31c1
Pass errors that might happen during state transitions up to net80211.
2011-04-16 07:21:00 +00:00
Bernhard Schmidt
c2c3b03223
Obtain the channel number directly from the laster RXON command, also
...
chan is an uint8_t.
2011-04-16 07:17:03 +00:00
Bernhard Schmidt
f6bb3360b6
fix the order of the prototypes from the previosu commit
2011-04-15 20:40:49 +00:00
Bernhard Schmidt
89a84499e4
The 6005 series devices need additional temperature offset calibration
...
as well as the IWN_GP_DRIVER_CALIB_VER6 bit set.
Obtained from: OpenBSD
2011-04-15 20:35:15 +00:00
Bernhard Schmidt
083e216732
Revert some of local calibration changes in favour of the OpenBSD
...
implementation. This includes the fix required for the 6050 series
devices.
2011-04-15 20:31:02 +00:00
Bernhard Schmidt
518e267e38
remove debug left-overs
2011-04-15 20:19:18 +00:00
Bernhard Schmidt
af2e228dc4
Split up watchdog and calibration callout. This allows us to use different
...
timing on both and to remove some monitor mode specific hacks (which has
no calibration).
2011-04-15 20:17:52 +00:00
Bernhard Schmidt
16b483cb8d
Split out bluetooth coexistence setup.
2011-04-15 17:10:52 +00:00
Bernhard Schmidt
b558f70709
Fixes for firmware handling:
...
- there is a local variable for sc->fw_dma, use that instead
- OpenBSD uses 5*hz to wait for firmware to be loaded
- in case the firmware module contains invalid data, actually release it
2011-04-15 16:59:56 +00:00
Bernhard Schmidt
a7387751dd
Only handle beacon misses while in RUN state and not scanning.
2011-04-15 16:55:45 +00:00