summaryrefslogtreecommitdiff
path: root/sys/dev/pci/if_iwn.c
AgeCommit message (Collapse)Author
2016-01-25Keep track of HT protection settings in beacons and have 11n-capableStefan Sperling
drivers update hardware configuration accordingly. tested by myself, tb@, deraadt@, abieber@ ok mpi@
2016-01-13Revert most of if_iwm.c r1.155. Use of channel zero was a symptom ofStefan Sperling
another bug introduced in my turbo mode removal commit; Now fixed. Keep the debug printf added in r1.155.
2016-01-13Tell the iwn(4) firmware to retry failed Tx at 1Mbit/s instead of MCS 0.Stefan Sperling
Seems to make Tx rate scaling go up faster and helps Rx performance. ok deraadt@
2016-01-13Fix iwn(4) firmware SYSASSERT during hardware initialization.Stefan Sperling
For some reason we would end up passing channel number zero to the RXON firmware command, which the firmware doesn't like. ok sthen@ reyk@ and also tested by stefan@, deraadt@, mikeb@
2016-01-12fix a misplaced curly braceStefan Sperling
2016-01-07Fix A-MPDU parameters in link quality firmware commands in iwn(4) and iwm(4).Stefan Sperling
ok deraadt@
2016-01-06Initialize the A-MPDU parameters field in HT capability elements.Stefan Sperling
ok kettenis@
2016-01-06Ensure that iwn(4) always uses a CCK rate as last fallback in the firmware'sStefan Sperling
tx rate retry table. This will hopefully make 11n mode work in very noisy environments. iwm(4) already does the same. ok kettenis@
2016-01-05Remove the IEEE80211_NO_HT macro. Reduces ifdef spaghetti, enables 11n modeStefan Sperling
in bsd.rd, and might uncover some bugs. Suggested by tedu@ and deraadt@. ok sthen@ jasper@ deraadt@
2016-01-04Add initial support for 11n mode to the iwn(4) driver.Stefan Sperling
Only MCS 0 to 7 are supported for now. Tested by many. There might still be outstanding issues but they now appear to be rare. I'm putting this in so that additional fixes can be developed and tested more easily if required. This diff is already quite large for one commit. ok deraadt
2015-11-25replace IFF_OACTIVE manipulation with mpsafe operations.David Gwynne
there are two things shared between the network stack and drivers in the send path: the send queue and the IFF_OACTIVE flag. the send queue is now protected by a mutex. this diff makes the oactive functionality mpsafe too. IFF_OACTIVE is part of if_flags. there are two problems with that. firstly, if_flags is a short and we dont have any MI atomic operations to manipulate a short. secondly, while we could make the IFF_OACTIVE operates mpsafe, all changes to other flags would have to be made safe at the same time, otherwise a read-modify-write cycle on their updates could clobber the oactive change. instead, this moves the oactive mark into struct ifqueue and provides an API for changing it. there's ifq_set_oactive, ifq_clr_oactive, and ifq_is_oactive. these are modelled on ifsq_set_oactive, ifsq_clr_oactive, and ifsq_is_oactive in dragonflybsd. this diff includes changes to all the drivers manipulating IFF_OACTIVE to now use the ifsq_{set,clr_is}_oactive API too. ok kettenis@ mpi@ jmatthew@ deraadt@
2015-11-24The only network driver needing <net/if_types.h> is upl(4) for IFT_OTHER.Martin Pieuchot
2015-11-04replace the ifqueues in net80211 with mbuf_queues.David Gwynne
the specific queues are ic_mgtq, ic_pwrsaveq, and ni_savedq. rtw had its own queue for beacons. tested by mpi@ and jmc@ ok mpi@
2015-10-25arp_ifinit() is no longer needed.Martin Pieuchot
2015-09-01sizes for free(), mostly related to firmwares.Theo de Raadt
ok dlg
2015-05-27Use m_defrag(9) instead of rolling our own inlined version.Mark Kettenis
ok mikeb@
2015-04-08don't leak the chip's hardware address during scans when a randomized addressJasper Lievisse Adriaanse
is set by the user. previously the address read from the eeprom would also be used in discovery frames, even if later data frames would contain the spoofed address. ok stsp@
2015-03-14Remove some includes include-what-you-use claims don'tJonathan Gray
have any direct symbols used. Tested for indirect use by compiling amd64/i386/sparc64 kernels. ok tedu@ deraadt@
2015-02-10Wireless drivers call if_input() via ieee80211_input() which set `rcvif'Martin Pieuchot
on every received mbuf, so there's no need to initialize this pointer in the drivers. Tested by and ok phessler@
2015-02-08Sprinkle some string constant consistency on iwn(4) as well.Stefan Sperling
2015-01-27remove the second void * argument on tasks.David Gwynne
when workqs were introduced, we provided a second argument so you could pass a thing and some context to work on it in. there were very few things that took advantage of the second argument, so when i introduced pools i suggested removing it. since tasks were meant to replace workqs, it was requested that we keep the second argument to make porting from workqs to tasks easier. now that workqs are gone, i had a look at the use of the second argument again and found only one good use of it (vdsp(4) on sparc64 if you're interested) and a tiny handful of questionable uses. the vast majority of tasks only used a single argument. i have since modified all tasks that used two args to only use one, so now we can remove the second argument. so this is a mechanical change. all tasks only passed NULL as their second argument, so we can just remove it. ok krw@
2014-12-22unifdef INETTed Unangst
2014-12-19Use <sys/endian.h> instead of <machine/endian.h>Philip Guenther
ok dlg@ mpi@ bcook@ millert@ miod@
2014-09-10s/IWL/IWN/ in comment here tooDavid Coppa
2014-09-09Backport https://svnweb.freebsd.org/base?view=revision&revision=258829 to fixStuart Henderson
scans with various iwn(4) devices. From Fabian Raetz, testing by Fabian, Marcin Piotr Pawlowski, Mike Burns, kettenis@ and myself. ok kettenis@ with minor tweaks for whitespace in #define lines which I've done; also I have done s/IWL/IWN/ in comments as noticed by dcoppa@.
2014-07-22Fewer <netinet/in_systm.h>Martin Pieuchot
2014-07-12add a size argument to free. will be used soon, but for now default to 0.Ted Unangst
after discussions with beck deraadt kettenis.
2014-03-19Stop abusing the rcvif pointer to pass wireless nodes down to theMartin Pieuchot
driver start routines. Instead add & use a pointer in the pkthdr since we don't want the overhead of using a mbuf_tags(9). claudio@ pointed out that other subsystems might want to use this pointer too, so here's a new cookie! ok claudio@, mikeb@, deraadt@
2014-02-11Adjust for renamed pcidevs defines.Mark Kettenis
2014-02-11Intel Centrino Wireless-N 2200 (tested) and Wireless-N 105/135 (untested)Mark Kettenis
support. Tested by mlarkin@
2014-02-10Intel Centrino Wireless-N 2230 support. From Fabian Raetz, with a little bitMark Kettenis
of polishing from yours truly. Tested by Fabian and Benoit Lecocq.
2013-12-06Add a DVACT_WAKEUP op to the *_activate() API. This is called after theTheo de Raadt
kernel resumes normal (non-cold, able to run processes, etc) operation. Previously we were relying on specific DVACT_RESUME op's in drivers creating callback/threads themselves, but that has become too common, indicating the need for a built-in mechanism. ok dlg kettenis, tested by a sufficient amount of people
2013-11-30Seems we simply have to live with fatal firmware errors. Even Linux, with itsMark Kettenis
driver written by Intel engineers occasionally gets them. So when we get one, simply reset the chip, reload the firware and bring the interface up again. tested by stsp@, pascal@ ok stsp@
2013-11-14replace workqs with tasks for handling resumeDavid Gwynne
from kimberley manning
2013-10-01Use %z* for size_tStefan Fritsch
while there, fix a few %d into %u
2013-08-29Add support for advanced btcoex. This commit is not really neededSylvestre Gallon
but it reduces the diff against the FreeBSD version. Tested on: My Wifi Link 130. jca@ Wifi Link 5300. Jan Stary Wifi Link 4965 (thanks). Adapted from FreeBSD r220894. ok mpi@.
2013-08-08Add support for Intel Wifi Link 130.Sylvestre Gallon
ok kettenis@, mpi@
2013-08-07Most network drivers include netinet/in_var.h, but apparently theyAlexander Bluhm
don't have to. Just remove these include lines. Compiled on amd64 i386 sparc64; OK henning@ mikeb@
2013-06-11Replace all ovbcopy with memmove; swap the src and dst arguments tooTheo de Raadt
ok otto
2013-05-29add another pid of Centrino Advanced-N 6235.Yojiro Uo
2012-11-17Newer chips feature "advanced" bluetooth coexistence, which is why sendingMark Kettenis
them the "normal" command to configure bluetooth coexistence fails and makes the firmware crash. Rename the IWN_FLAG_NO_BT_COEX flag and adjust some comments to reflect this knowledge. ok jcs@, mikeb@, mpi@
2012-11-17Add support for Intel Centrino Wireless-N 1030. Might not fully work yet, butMark Kettenis
instead of causing a firmware crash, scanning now works. Tested by Daniel Levai.
2012-11-14Use the iwn-6030 firmware for the Intel Centrino Advanced-N 6030 as well.Mark Kettenis
Makes these variants actually work. Based on a diff from James Turned, also confirmed by weerd@
2012-11-11add support for the Intel Centrino Advanced-N 6235 to iwn(4).joshua stein
committed over a 6235 device, of course. ok deraadt@ kettenis@ stsp@ armani@
2012-10-12Cleanup false positives for uninitialized uses.Christiano F. Haesbaert
Part of the work to remove -Wno-uninitialized. ok blambert jsg
2012-01-26stop the calibration timeout when stopping the interface (i noticedTheo de Raadt
this issue due to suspend/resume during a calibration) ok stsp miod
2011-09-02Differential gain calibration makes the 6005 firmware crap out, so skip it forMark Kettenis
now until we figure out why. This probably means the device won't function optimally, but that's better than not functioning at all. Makes my "Intel Centrinto Advanced-N 6205" work quite well.
2011-09-01The 6005 and 6050-based parts need DC calibration turned on, otherwise theMark Kettenis
firmware will crap out, at least on the 6005. First step to getting my "Intel Centrino Advanced-N 6205" to work.
2011-06-16Enable msi support on iwn.Owain Ainsworth
tested by many for over a week. ok kettenis@ phessler@.
2011-01-24unbreak 6200 support by forcing Tx/Rx chains masks since ROMDamien Bergamini
contains broken data. reported by matthew@; verified by me against Linux driver. remove two if_ierrors++ while i'm here.