| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reduces CPU load during traffic bursts.
Based on an older diff we had in CVS history, updated to work with
newer firmware versions we use today.
Tested on the following devices, with great support from several people:
3160 (stsp)
3168 (stsp)
7260 (jmatthew, tobhe)
7265 (stsp, procter, gonzalo)
8265 (benno, tb)
8260 (stsp, Liberto on bsd.network)
9260 (stsp, Jesper Wallin)
9560 (stsp)
Not tested: 3165; these run the same firmware as 7265 so will likely be fine.
I couldn't find a 3165 device in my pile.
ok jmatthew@ (who also found a small bug in my diff)
|
|
|
|
| |
Both drivers currently use SCAN_CHANNEL_CFG_S_VER1, not VER2.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
related fields in Tx commands and responses:
- IWM_AGG_TX_STATE_SEQ_NUM_MSK does not exist, remove it from documentation
- In our case, iwm_agg_tx_status's "sequence" field contains the Tx queue ID
and index of aggregated subframes, not sequence numbers. Update the struct
definition accordingly. (This struct is not used yet.)
- iwm_tx_resp and iwm_ba_notif contain frame header sequence control fields.
Be explicit about this in documentation.
I don't understand which frame the sequence control field in iwm_ba_notif
corresponds to. Leave a comment about that. iwlwifi doesn't use this field.
|
|
|
|
|
|
|
|
|
|
|
|
| |
interrupt vectors and mapping events (RX on queues, commands,
mgmt frames) to those vectors. For now we keep the existing
behaviour, establish a single vector and map all events to it.
Makes my Intel NUC 8i5BEH 9560 work
Tested by jcs@ on a 9560 (w/ MSI-X)
Tested by deraadt@ on a 9260 (w/ MSI-X)
Tested by phessler@ on a 8260 (w/o MSI-X)
ok stsp@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Joint work with patrick@
Parts lifted from FreeBSD's r354492, r354502, r354508, r354516, r354508.
Firmware is available with fw_update(1) thanks to sthen@
7265 device tested by myself (still works)
8260 device tested by phessler@ (still works)
9260 devices tested by Travis Cole and myself
9560 devices tested by jcs@, mlarkin@, kevlo@, guenther@
Some 9560 devices have known issues. Those are being worked on.
ok patrick@
|
|
|
|
|
|
| |
Based on FreeBSD r345002 and Linux 44fd09dad5d2b78efbabbbbf623774e561e36cca.
Tested for regressions by phessler@ (8260), kevlo@ (3165), and myself (7265)
ok kevlo@
|
|
|
|
| |
Tested by phessler@, Tracey Emery, and myself on 8260 and 8265.
|
|
|
|
| |
Tested by phessler@, Tracey Emery, and myself on 8260 and 8265.
|
|
|
|
| |
ok patrick@
|
|
|
|
|
|
|
| |
Our outdated copies of these had a bug.
See Linux commit cb6bb128b73ae898d6ee0281c2b2644f70633d58
ok patrick@
|
|
|
|
|
|
|
| |
Patch by Imre Vadasz
Tested for regressions by phessler and Krystian Lewandowski
No very obvious mistakes found by kettenis@
ok patrick@
|
|
|
|
|
|
| |
Patch by Imre Vadasz.
Cross-check and pcireg.h tweak by kettenis@
ok patrick@
|
|
|
|
|
|
|
|
|
| |
be generated by version 17 firmware. While at it, declare all known
firmware command groups and all PHY_OPS subcomand ids.
Patch by Imre Vadasz, with tweaks by me
ok patrick@
|
|
|
|
|
|
|
|
|
| |
All supported firmware versions support IWM_UCODE_TLV_FLAGS_TIME_EVENT_API_V2.
Rename struct iwm_time_event_cmd_v2 to iwm_time_event_cmd, and remove helper
functions for converting from V2 API structs to V1 versions.
Patch by Imre Vadasz
ok patrick@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
IWM_UCODE_TLV_FLAGS_PM_CMD_SUPPORT
IWM_UCODE_TLV_FLAGS_NEWBT_COEX
IWM_UCODE_TLV_FLAGS_BF_UPDATED
IWM_UCODE_TLV_FLAGS_D3_CONTINUITY_API
IWM_UCODE_TLV_FLAGS_STA_KEY_CMD
IWM_UCODE_TLV_FLAGS_DEVICE_PS_CMD
IWM_UCODE_TLV_FLAGS_SCHED_SCAN
All supported firmware versions have these flags set.
Patch by Imre Vadasz
ok patrick@
|
|
|
|
|
|
|
|
| |
All supported firmware versions have this feature flag set.
Remove now unneeded iwm_calc_rssi() function.
Patch by Imre Vadasz.
ok patrick@
|
|
|
|
|
|
| |
Patch by Imre Vadasz.
Matches Linux commit 176aa60bf148b5af4209ac323cef941dee76e390 by Sara Sharon.
ok patrick@
|
|
|
|
|
|
|
|
| |
which had a value different from the IWL_DEFAULT_MAX_TX_POWER
constant in Linux iwlwifi.
Patch by Imre Vadasz.
ok patrick@
|
|
|
|
|
|
|
|
| |
Required for new firmware images because the command queue index has changed.
The driver remains compatible with our current firmware images for now.
Tested by benno, jan, kevlo, florian, jmatthew, Tracey Emery
ok jmatthew
|
|
|
|
|
|
|
| |
We offload crypto operations for unicast data frames only.
Based on an initial diff from procter@
Tested in snaps for almost a week.
ok procter@ deraadt@
|
|
|
|
|
|
| |
Kills "iwm0: unhandled firmware response 0xff/0xb8000010 rx ring" dmesg spam.
Patch by jes@posteo via tech@, who found the corresponding change in Linux:
https://patchwork.kernel.org/patch/9869017/
|
|
|
|
|
|
|
|
|
|
|
| |
When MIMO support was added several entries in the rate table index enum
got a wrong value. On most devices the firmware ended up using a Tx rate
different from the rate net80211 asked for (which is bad, but not fatal).
But on 3165 devices which do not support MIMO the firmware rightly raised
a fatal error whenever the driver mistakenly asked for a MIMO Tx rate.
Reported by Georgios Pediaditis, Steve Throckmorton, and Kai Wirt on misc@
Thanks to benno@ for providing 3165 hardware I could use to debug this.
|
|
|
|
|
|
|
|
|
|
| |
We can now clear SINGLE_FRAME_MSK in the receive configuration register.
Linux has not set this bit in years, and Dragonfly stopped setting it
in commit b5eb43f0280bbcfd26af51cf5a4b8e8ff3590b67.
This is a prerequisite for monitor mode since the firmware seems to ignore
the SINGLE_FRAME_MSK bit while running in monitor mode and sends us garbage.
Tested on 7260, 7265, and 8260 devices.
|
|
|
|
|
|
|
|
| |
need to be installed by hand until the iwm-firmware package has been updated.
This includes handling (by ignoring) of IWM_UCODE_TLV_FW_MEM_SEG and
IWM_DEBUG_LOG_MSG firmware commands. Mostly stolen from dragonflybsd.
With this in the X270 has working ethernet and wifi.
Commit! deraadt@
|
|
|
|
|
|
|
|
|
|
|
|
| |
the unused enum iwm_scan_complete_status status codes.
This corresponds to parts of the Linux iwlwifi commits
1083fd7391e989be52022f0f338e9dadc048b063 and
75118fdb63496e4611ab50380499ddd62b9de69f.
No functional change, since struct iwm_scan_results_notif isn't accessed
in iwm at the moment.
Patch by Imre Vadasz.
|
|
|
|
|
|
|
| |
used and which were removed from iwlwifi in Linux git commit
76f8c0e17edc6eba43f84952e5a87c7f50f69370.
Patch by Imre Vadasz.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
unused since the upgrade to version 16 firmware.
Also, matching the iwlwifi code, use IWM_DEFAULT_SCAN_CHANNELS (== 40)
instead of IWM_MAX_NUM_SCAN_CHANNELS (== 36) as default value for
sc->sc_capa_n_scan_channels.
Mostly matches the header-file changes in Linux iwlwifi git
commit 1f9403863c080478ad78247c89b018e95bdfb027.
Patch by Imre Vadasz.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The nominal maximum Tx rate is now 144Mbit/s (MCS 15, 20MHz channel, SGI).
In practice it's more around 30Mbit/s, though. The most significant limiting
factor is probably lack of Tx aggregation support. (Due to protocol overhead,
reaching the nominal max is pretty much impossible anyway. When shopping wifi
devices, do not believe what stickers on the box are saying; full of lies!)
But APs will send us aggregates, so Rx should be faster than Tx (which was
already the case, just less pronounced).
Tested by phessler@, bmercer@, tb@
ok tb@
|
|
|
|
|
|
|
| |
from getting stuck in the firmware's Tx queue for a long time behind other
frames large enough to trigger RTS but not making it out (e.g. due to bad
channel conditions).
ok tb@
|
|
|
|
|
| |
Remove the unused struct iwm_powertable_cmd. Fix typos in comments.
Add macros for default power-save Tx/Rx timeout values (from iwlwifi).
|
|
|
|
|
|
|
|
| |
Linux iwlwifi implements support for iwn(4) chips in the 'DVM' driver,
and support for iwm(4) chips in the 'MVM' driver.
In OpenBSD the 'MVM' prefix is redundant, so we can remove it to shorten
many lines and reduce noise: s/iwm_mvm_/iwm_/g
|
| |
|
|
|
|
| |
ok mpi benno
|
|
|
|
|
| |
enum type in a __packed struct should be avoided.
Patch by Imre Vadasz
|
|
|
|
|
|
| |
the stack while associated, which in turn makes it possible to keep track of
HT protection changes.
ok mpi@
|
|
|
|
|
|
|
| |
Firmware has been available in fw_update(1) for some time (thanks sthen!).
Tested by robert, reyk, Imre Vadasz, Bryan Vyhmeister.
Thank you, Emmanuel Grumbach, for helping me diagnose issues during development.
ok kettenis
|
|
|
|
|
|
|
|
|
| |
Requires new firmware! Which has been available in fw_update(1) for some time.
With helpful hints from Emmanuel Grumbach and contributions from Imre Vadasz.
Tested verbatim by phessler@, jasper@, gilles@. Tested as part of a larger
diff by reyk@, robert@, Imre Vadasz, and Bryan Vyhmeister.
Earlier version tested by many. Also passed by kettenis@ very early on.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move some declarations to if_iwmreg.h so we can use iwm_phy_db_* prototypes.
Remove redundant declaration of iwm_send_phy_db_data().
Remove pointless iwm_fw_alive(); just call iwm_post_alive() directly.
Simplify iwm_prepare_card_hw() and iwm_mvm_add_sta().
Return timeout error from iwm_apm_init().
Print a message when init (i.e. boot) firmware fails to load.
Remove some commented-out code which wouldn't compile anyway.
Move iwm_mvm_tx_fifo to if_iwmreg.h to match better where Linux puts it.
ok kettenis@ mpi@
|
|
|
|
|
| |
the 12 bits available for it in struct iwm_tfd_tb.hi_n_len.
Patch by Imre Vadasz via tech@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds support for HT MCS 0-7 (theoretical limit 65 Mbit/s) and the
reception of A-MSDU and A-MPDU aggregated frames.
None of the optional 11n features are supported for now.
MIMO, 40Mhz channels, short guard interval, etc. are left for future work.
And we're not sending A-MSDU or A-MPDU frames yet either.
Tested with various 11a/b/g/n access points. With some APs I'm seeing
a noticable increase in throughput, especially on 5Ghz.
Also, fix automatic rate selection by using the current Tx rate selected
by AMRR as the upper bound for the firmware's rate table and updating the
firmware's table whenever AMRR switches Tx rate, rather than setting the
table just once after association and ignoring AMRR updates.
ok mpi@ krw@ (earlier version), ok jasper@
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
prevent it from moving off-channel during association. The firmware issues
interrupts at beginning and end of the time event. The driver tried detecting
the beginning with a tsleep() in the newstate task followed by a wakeup()
from the interrupt handler. However, sometimes the newstate task did not get
scheduled until the time event had already passed, and association was aborted.
In rare cases the newstate task would even sleep forever and the iwm(4)
interface would stop working until reboot.
Fix these issues by issuing the time event and continuing association without
checking for a "go" from the firmware. Our kernel does not provide the
scheduling guarantees required for such precise synchronization so
association is more likely to fail with the additional check than without.
ok mpi@ tedu@
|
| |
|
|
|
|
|
| |
Fixes occasional firmware errors while bringing the interface up or scanning.
ok phessler@
|
|
|
|
|
| |
Linux is a moving target so these comments provide little value.
Discussed with kettenis and deraadt.
|
| |
|
|
|
|
| |
ok deraadt
|
|
Based on iwn(4) and Linux iwlwifi (which is dual BSD/GPLv2 licenced).
Created by Fixup Software Ltd. for genua mbh, who then passed on the code
base to the OpenBSD project.
The genua version of this driver was written for OpenBSD 5.4; ported to
-current by myself, phessler@, and deraadt@. So far, we've done semantic
and stylistic cleanup without functional changes. The driver is functional
but has some known issues which will be worked on in-tree.
Requires iwm firmware which is available in ports thanks to sthen@.
ok deraadt@ phessler@
|