bschmidt
aafd4acbe2
Add module version to iwi/ipw/wpi and iwn.
...
The version is used to check if a module is already preset, not setting
it results in:
can't re-use a leaf (ipw)!
module_register: module pci/ipw already exists!
Module pci/ipw failed to register: 17
while trying to load the module due to an entry in loader.conf. With this
commit we get the expected:
module ipw already present!
Reported by: Dru Lavigne, bz
Tested by: bz
MFC after: 1 week
2011-05-31 19:08:25 +00:00
bschmidt
a58fc6f0fd
Only update the scheduler's byte count table for aggregation queues.
...
The other queues, especially the command queue, uses the FIFO mode
which doesn't require the byte count table because queued entries are
processed in order.
Pointed out by: Lucius Windschuh <lwindschuh at googlemail dot com>
2011-05-15 08:09:36 +00:00
bschmidt
fae1db6c96
Enable 11n (sans HT40) support.
2011-05-08 12:23:01 +00:00
bschmidt
03c359efa6
Notify firmware about various HT parameters once associated.
2011-05-08 12:11:20 +00:00
bschmidt
174adce103
Add support for TX packet aggregation.
2011-05-08 12:06:12 +00:00
bschmidt
0d4f015824
Add support for RX packet aggregation.
2011-05-08 11:58:23 +00:00
bschmidt
d5baa66cc1
Add support for transmitting frames at MCS rates.
2011-05-08 11:54:38 +00:00
bschmidt
8cc008f8dd
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
bschmidt
141d7e265f
Read chainmask information before announcing it.
2011-05-08 11:05:03 +00:00
bschmidt
641edf4468
Add HT capabilities to probe requests.
2011-05-08 11:03:16 +00:00
bschmidt
e4f441b16c
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
bschmidt
b442b21ba0
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
bschmidt
84a991c0b4
Allocate all TX rings, those will be use for TX packet aggregation.
2011-05-08 10:54:50 +00:00
bschmidt
9332775363
Use the enhanced TX power information availabe on newer EEPROMs.
2011-05-08 10:35:16 +00:00
bschmidt
21e2e4c106
Hook HT channel setup.
2011-05-08 10:31:22 +00:00
bschmidt
8a48a077f7
The 6000 series adapters have a slightly different offset for band 6,
...
2GHz HT40 channels.
2011-05-08 10:21:42 +00:00
bschmidt
938615cca5
Re-add 2 device IDs which got lost.
...
Pointed out by: benjsc
2011-05-08 10:19:29 +00:00
bschmidt
94b4783acd
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
bschmidt
51f1120c73
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
bschmidt
0ba66a6c39
Add basic support for advanced bluetooth coexistence required
...
for 6005 gen2b (1030/6030) adapters.
2011-04-20 16:59:27 +00:00
bschmidt
edb0bf8d55
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
bschmidt
6128b7ccd7
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
bschmidt
d47945ce8b
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
bschmidt
5f1e6f7da3
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
bschmidt
13b495cd85
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
bschmidt
688aa54089
Just a whitespace sync, some more style(9) conform then others.
2011-04-16 14:40:42 +00:00
bschmidt
28acd24a60
Sync comments with OpenBSD.
2011-04-16 14:38:57 +00:00
bschmidt
0e01d92c6f
Sync debug and error messages with OpenBSD.
2011-04-16 14:38:01 +00:00
bschmidt
414ffc4eda
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
bschmidt
e0b1e85870
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
bschmidt
20e8c16a03
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
bschmidt
52a6150689
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
bschmidt
d10ef1ad6b
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
bschmidt
322300a743
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
bschmidt
ad65a3b837
Prevent double-free, also use the same error codes as OpenBSD.
2011-04-16 11:11:22 +00:00
bschmidt
7100785646
Add missing bus_dmamap_sync calls as well as remove two duplicate ones.
...
Obtained from: OpenBSD
2011-04-16 10:52:11 +00:00
bschmidt
5e7a436f9a
Unify TX/RX ring allocation, finish the descriptior DMA stuff before
...
starting with data.
2011-04-16 10:38:27 +00:00
bschmidt
ebcc30282e
Make sure to destroy all DMA tags and maps.
2011-04-16 10:35:02 +00:00
bschmidt
7c20ac5e15
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
bschmidt
021ca1d5e8
scratch_paddr has the same address pre-assigned, use that instead.
2011-04-16 09:39:08 +00:00
bschmidt
aa270ec747
In case a new mbuf can't be loaded, reuse the old one.
2011-04-16 09:34:40 +00:00
bschmidt
a6840d80df
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
bschmidt
d72bcb668e
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
bschmidt
fb5d86e081
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
bschmidt
faacd12d69
Pass errors that might happen during state transitions up to net80211.
2011-04-16 07:21:00 +00:00
bschmidt
20625a61f2
Obtain the channel number directly from the laster RXON command, also
...
chan is an uint8_t.
2011-04-16 07:17:03 +00:00
bschmidt
52481f8930
fix the order of the prototypes from the previosu commit
2011-04-15 20:40:49 +00:00
bschmidt
f3e88fddee
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
bschmidt
23c4ff42c1
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
bschmidt
36c570a8f4
remove debug left-overs
2011-04-15 20:19:18 +00:00