summaryrefslogtreecommitdiff
path: root/sys/dev/pci/if_iwi.c
AgeCommit message (Collapse)Author
2010-11-15Reset ic_scan_lock in {ipw,iwi}_stop similarly to {wpi,iwn}_stop.Damien Bergamini
From Jeremy Chase.
2010-09-07remove the powerhook code. All architectures now use the ca_activate treeTheo de Raadt
traversal code to suspend/resume ok oga kettenis blambert
2010-08-27Move the guts of the powerhook function into the activate function and makeTheo de Raadt
it stop calling the powerhook function; then make the powerhook function call activate. This basically inverts the whole goop. ok kettenis
2010-08-27remove the unused if_init callback in struct ifnetJonathan Gray
ok deraadt@ henning@ claudio@
2010-08-12homogeneous style.Damien Bergamini
no binary change.
2010-08-12Instead of returning EBUSY when the busy flag is set in the ioctl, sleepOwain Ainsworth
until whoever has it is done with it. This is kept as flag/sleep condvars instead of a rwlock because later we may want to quiesce the handler before suspend to make sure nothing is sleeping on a chip that is about to be whacked (doing so will change the proc so rwlocks won't work). ok damien@
2010-08-03Bring the suspend/resume code of all the Intel wireless drivers in line withMark Kettenis
iwn(4) again. ok deraadt@
2010-07-28Make legacy xxpower() functions call xxstop() on suspend, and simplify theirTheo de Raadt
resume paths. For new-style suspend/resume, add a ca_activate function where it is missing, and use a workq to resume because these drivers like to sleep. ok damien
2010-05-19BUS_DMA_ZERO instead of alloc, map, bzero.Owain Ainsworth
ok krw@
2010-04-20remove proc.h include from uvm_map.h. This has far reaching effects, asTed Unangst
sysctl.h was reliant on this particular include, and many drivers included sysctl.h unnecessarily. remove sysctl.h or add proc.h as needed. ok deraadt
2009-05-11sync setting of the capinfo field of assoc req frames w/ net80211.Damien Bergamini
fixes association with APs that refuse non short slot time capable STAs.
2009-03-29make various strings ("can't map mem space" and similar) more consistentStuart Henderson
between instances, saving space in the kernel. feedback from many (some incorporated, some left for future work). ok deraadt, kettenis, "why not" miod.
2009-01-26Add some initial HT bits (not enabled yet) based on 802.11n Draft 7.01:Damien Bergamini
- implement A-MPDU frames buffering and reordering - implement A-MSDU decapsulation - process/send ADDBA Request, ADDBA Response and DELBA action frames - process Block Ack Request control frames (including MTBAR) - implement PBAC support (Protected Block Ack) - add some incomplete HT Capabilities and HT Operation IEs parsing Add more Management Frame Protection bits based on 802.11w Draft 7.0: - implement SA Query procedure (both AP and STA) - cleanup BIP Fix some bugs: - fix check for WEP key length that otherwise caused a stack smash in ieee80211_wep_encrypt (pointed out by Xavier Santolaria on macppc) - properly stop EAPOL timeout: fixes a panic that occured in HostAP mode when turning the interface down while a 4-way handshake is in progress (pointed out by Doughertys) Did some code cleanup too. The HT bits are currently not compiled in (IEEE80211_NO_HT is defined) because they won't be ready until after the next release and I didn't want to grow the kernel or to inadvertently introduce new bugs. They are here such that other people can look at the code. Notice that I had to add an extra parameter to ic_send_mgmt() for action frames, that is why there are small changes in drivers defining their own ic_send_mgmt() handler. Sorry for the not very incremental diff but this has been sitting in my tree for too long now.
2008-12-22I swapped MGETHDR arguments in my m_defrag removal commit.Damien Bergamini
2008-12-21Undo m_defrag().Damien Bergamini
m_defrag() does not work. It seems to assume that if the length of the mbuf passed as parameter is less than MHLEN, then it is an mbuf header and not a cluster (or something like that.) It thus fails miserably in the bcopy path. I don't have the time to investigate further into this. Thanks to Okan Demirmen for reporting the issue on a ral(4) RT2560. The RT2560 chipset does not support TX scatter and thus m_defrag() was called much more often than in other drivers using m_defrag() where it was less noticeable.
2008-11-25more sizeof->nitemsDamien Bergamini
2008-11-25use shiny new m_defrag() and nitems() instead of rolling our own.Damien Bergamini
2008-09-04mostly cosmetic.Damien Bergamini
also, do not set the privacy bit in the capinfo field of (re)assoc requests, even for RSNA.
2008-09-03(Re)Association requests should contain a QoS Capability element,Damien Bergamini
not an EDCA Parameter Set element (spotted by IEEE80211_STA_ONLY).
2008-09-03redefine ic_send_mgmt() as a no-op instead of calling IF_PURGE inDamien Bergamini
{ipw,iwi}_start which is wrong (node reference is not released). from pgt(4).
2008-08-2880 cols.Damien Bergamini
no binary changes.
2008-08-28WPA support for iwi(4).Damien Bergamini
some initial WMM bits too. use license.template while i'm here.
2008-08-27the firmware is responsible for sending management frames, butDamien Bergamini
since we pass received management frames to net80211, net80211 may send replies (like deauth/disassoc), so we just call IF_PURGE(&ic->ic_mgtq) in {ipw,iwi}_start just to be on the safe side of things (so we don't leak mbufs).
2008-08-27introduce new IEEE80211_STA_ONLY kernel option that can be set toDamien Bergamini
remove IBSS and HostAP support from net80211 and 802.11 drivers. it can be used to shrink RAMDISK kernels for instance (like what was done for wi(4)). it also has the benefit of highlighting what is specific to IBSS and HostAP modes in the code. the cost is that we now have two code paths to maintain.
2008-07-21instead of passing rx tstamp and rssi to the ieee80211_input function,Damien Bergamini
pass a pointer to an ieee80211_rxinfo structure containing those two fields plus an extra flags field that indicates whether the frame was decrypted by hardware or not. required for a future fix.
2007-11-17update the physical address of the RX buffer after bus_dmamap_load()Damien Bergamini
in the case where the old buffer is remapped.
2007-09-07use new malloc M_ZERO flag to shrink kernel.Damien Bergamini
remove <malloc.h> from files where malloc is not used.
2007-08-28unify firmware load failure messages; ok mglockerTheo de Raadt
2007-07-18replace the ieee80211_wepkey structure with a more generic ieee80211_keyDamien Bergamini
one that can be used with other ciphers than WEP.
2007-07-06typo in an error message.Damien Bergamini
reported a while back by Laurence Tratt, reminded more recently by brad@
2007-07-05fixes my previous commit.Damien Bergamini
the ESS bit must be set in (re)assocation requests.
2007-07-05don't set IEEE80211_CAPINFO_ESS bit since we're not operating as an AP.Damien Bergamini
2007-01-03M_DUP_PKTHDR() cleanup. On static mbufs M_DUP_PKTHDR() will leak mbuf tags.Claudio Jeker
See similar commit to dev/usb/if_rum.c for more info. With this commit all drivers have been switched away from the incorrect M_DUP_PKTHDR() usage. OK mglocker@
2006-11-26do not have each net80211 driver define its own rates structures. if they useTheo de Raadt
the standard rates, use some defined by net80211 itself. kernel shrinks a bit ok jsg mglocker
2006-10-23remove detach() function. this is not hotplug and this is dead code.Damien Bergamini
2006-10-22Check that ni->ni_rates.rs_nrates is not greater than sizeof rs.rates inDamien Bergamini
iwi_auth_and_assoc() before copying the rate set. The firmware command allows a maximum of 12 rates to be defined while the ieee80211_rateset structure can contain up to 15 rates. Notice that this should not happen since the rate set is supposed to be negotiated at that time but Jeremie Le Hen sees some evidence of this happening in FreeBSD. In case it happens, print a diagnostic message and truncate the rate set. Pointed out by Jeremie Le Hen.
2006-09-29add a missing format string to the beacon miss debug message.Brad Smith
2006-09-18don't use IF_PREPEND() on altq's.Damien Bergamini
use IFQ_POLL()/IFQ_DEQUEUE() logic instead as described in altq(4).
2006-08-19tweak dma sync opsDamien Bergamini
2006-08-19get rid of shared auth mode.Damien Bergamini
the ioctl is not supported by ifconfig and it has never worked anyway.
2006-08-19o Improve 802.11 radiotap support (correct Rx antenna and Rx rate,Damien Bergamini
add short preamble flag) o Add short slot time support o Ignore parity errors interrupts (as per Linux driver) o Fix DMA sync ops o Improve async commands processing o Fix hardware WEP encryption (40/104bit keys) o Set Tx power to the maximum value for 802.11a channels too o Disable bluetooth coexistence and hardware antenna diversity as it seems to panic the firmware on some adapters o Handle beacon miss and link degradation notifications (but don't automatically roam yet) o Remove unused prototypes o Cosmetic tweaks as always
2006-08-18set of unrelated cosmetic tweaks.Damien Bergamini
2006-06-14clear the IFF_UP interface flag before shutting down the interface.Brad Smith
ok damien@
2006-05-17sync handling of fatal firmware errors w/ wpi(4)Damien Bergamini
2006-05-01call iwi_stop() at beginning of iwi_init() so that all rings are properlyDamien Bergamini
reset when iwi_init() is called from iwi_ioctl() on ENETRESET. this fixes a firmware panic when setting a WEP key multiple times for instance. fix some printf while i'm here. pointed out by Kurt Miller (kurt@).
2006-04-02Prevent panic when loading pre-3.0 iwi firmware, and give a helpfulDimitry Andric
error message instead. Also return EINVAL for some other error paths. ok damien, deraadt
2006-04-01use proper types and not fetch iobase that is not used later; damien okMichael Shalayeff
2006-04-01Put Damien's latest changes back in, okay deraadt@.Pedro Martelletto
Please note that the driver now requires new firmware (version 3.0).
2006-03-31Backout, causes panicsPedro Martelletto
2006-03-27- complete rework of rings allocation (do things more like ral(4))Damien Bergamini
- upgrade to firmware v3.0 layout - enable s/w antenna diversity - many code cleanup