summaryrefslogtreecommitdiff
path: root/sys/dev/pci/if_wpi.c
AgeCommit message (Collapse)Author
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-12-03allow users to select a fixed rate.Damien Bergamini
2008-12-03don't overwrite an error code from wpi_init() in wpi_ioctl(), logic isConstantine A. Murenin
now in line with iwn_ioctl(); 'dead assignment' llvm/clang; ok damien
2008-11-25more sizeof->nitemsDamien Bergamini
2008-11-25use shiny new m_defrag() and nitems() instead of rolling our own.Damien Bergamini
2008-11-25add a shitload of bus_dmamap_sync() calls, even though they are no-opsDamien Bergamini
on i386 and amd64 (we do not implement bounce buffers) where this hardware is likely to be found. this is good programming practice.
2008-11-22- Slight wording tweak.. leave -> let.Brad Smith
- Sync wpi(4)'s set_key comment with the comment from iwn(4). ok damien@
2008-11-16clear pending interrupts in the driver attach routine.Damien Bergamini
otherwise the chip comes up with the RF_TOGGLED bit set which triggers an if_stop() call if a shared interrupt occurs.
2008-11-09rework the rate coding code to get rid of the ugly {wpi,iwn}_plcp_signal()Damien Bergamini
function. will be required for future MCS support in iwn.
2008-11-09uninitialized value, caused by a typo.Charles Longeau
Found by LLVM/Clang Static Analyzer. ok damien@
2008-11-08when defragmenting an mbuf chain, do not call M_DUP_PKTHDR.Damien Bergamini
this is an overkill in this case as it duplicates mbuf tags etc... following a discussion with kettenis@ a few months ago about gem(4) did some cleanup while i was there.
2008-11-08initialize k to NULL in wpi_tx_data()Damien Bergamini
2008-11-08do not allocate cmd memory for rings 5 and 6 (HCCA) which are unused.Damien Bergamini
2008-11-08major wpi(4) overhaul.Damien Bergamini
wpi(4) and iwn(4) used to be in sync but with the latest iwn(4) changes, this was no longer the case. that commit repair this. it brings HW CCMP encryption/decryption among other things. requires an update of the wpi-firmware package. please report any regression you might see.
2008-11-08major wpi(4) overhaul.Damien Bergamini
wpi(4) and iwn(4) used to be in sync but with the latest iwn(4) changes, this was no longer the case. that commit repair this. it brings HW CCMP encryption/decryption among other things. requires an update of the wpi-firmware package. please report any regression you might see.
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-31Wait much longer for clock stabilization.Damien Bergamini
From jcs@ and in accordance with what the Intel Linux driver does.
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.
2008-06-16replace min() and max() function calls by MIN() and MAX().Damien Bergamini
MIN() and MAX() are macros that can evaluate their arguments twice but it is safe in this context. following a post from miod@ about the harmfulness of min() and max() in the kernel.
2008-04-16Kernel implementation of the 4-way handshake and group-keyDamien Bergamini
handshake protocols (both supplicant and authenticator state machines) as defined in the IEEE 802.11i standard. Software implementation of the TKIP (Temporal Key Integrity Protocol) and CCMP (CTR with CBC-MAC Protocol) protocols. This diff doesn't implement any of the 802.1X authentication protocols and thus only PSK authentication (using pre-shared keys) is currently supported. In concrete terms, this adds support for WPA-PSK and WPA2-PSK protocols, both in station and hostap modes. The following drivers are marked as WPA-capable and should work: bwi(4), malo(4), ral(4), iwn(4), wpi(4), ural(4), rum(4), upgt(4), and zyd(4) The following options have been added to ifconfig(8): wpa, wpapsk, wpaprotos, wpaakms, wpaciphers, wpagroupcipher wpa-psk(8) can be used to generate keys from passphrases. tested by many@ ok deraadt@
2008-03-08allows SMALL_KERNEL compilesMarc Espie
okay damien@
2007-11-19all TX rings have the same fixed size (256 entries) and this is notDamien Bergamini
configurable so simplify rings allocation a bit.
2007-11-03fix ENETRESET handling in {wpi,iwn}_ioctl() so that the firmware won'tDamien Bergamini
panic when resetting the device - requested by many fix ifconfig -M (the interface still has to be down though ie it won't work while the interface is up). fix AMPDU window for 4965AGN (has no effect since 802.11n is not supported yet).
2007-09-11- add callbacks for setting EDCA parameters and pairwise crypto keys.Damien Bergamini
- tweaks to make it look more like iwn(4).
2007-09-11fix a bug in the scan command I introduced with my previous commit.Damien Bergamini
2007-09-10- add support for 802.11 headers with various sizes (will be requiredDamien Bergamini
for EDCA support). - remove an unused function. - fix scan command. - detect if the hardware radio switch is on instead of failing in the calibration of the thermal sensor with an obscure message.
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-08-22when running out of rx buffers, allocate a new mbuf and copy the rxDamien Bergamini
buffer into it using m_copym2() instead of just dropping the received frame. otherwise, it may happen that all rx buffers are queued by tcp_input() waiting for a frame that will never arrive because we are dropping it. when it happens, rx stop working and it is hard to recover from this. the problem is not visible when using WEP because WEP decryption is currently done by software and that rx buffers are copied into mbufs by the software decryption code. while i'm here, increase the number of rx buffers allocated by wpi(4) from 80 to 96 to limit the number of copies. problem and solution found by bluhm@ - thanks.
2007-08-10make it more clear that the temperature can range between 0 and 285,Jasper Lievisse Adriaanse
by using "0 - 285" instead of "0..285" ok damien@
2007-07-24hardware WEP in the TX path.Damien Bergamini
make sure to clear the SCAN lock in case the scan is interrupted.
2007-07-11endiannessDamien Bergamini
2007-07-10change firmware loading code to adopt the new 2.14.4 firmware layout.Damien Bergamini
while i'm here, fix allocation of the Rx ring descriptors so we don't waste memory. IMPORTANT: you must upgrade your wpi-firmware package to rev. 2.14.4 or the driver will stop working.
2007-07-05move the logic of determining whether an extended supported rates IE isDamien Bergamini
needed or not to the callers (instead of doing nothing in add_xrates).
2007-06-16do not allocate ring descriptors for the service queue.Damien Bergamini
this queue is used to load the firmware and the descriptors are written differently (in wpi_load_segment()). so the DMA descriptors were actually unused. saves 16KB of memory.
2007-06-11Wait for firmware command WPI_CMD_TXPOWER to complete before sendingDamien Bergamini
the WPI_CMD_ADD_NODE command in wpi_config(). Fixes mp kernels. Tested by jasper@, deanna@, fkr@
2007-06-09print regulatory domain in dmesg output.Damien Bergamini
fix typo in a comment.
2007-06-06comment an unused function (wpi_setup_beacon).Damien Bergamini
i do not plan to add support for independant bss or hostap modes.
2007-06-06- #undef the correct macroDamien Bergamini
- improve a comment
2007-06-06make sensors framework usage consistent with other drivers; ok damien@Constantine A. Murenin
2007-06-05Major wpi(4) update:Damien Bergamini
1/ Update the driver to use the new firmware images from Intel (2.14.3.) 2/ Read the list of supported channels from the EEPROM instead of having it hard-coded in the driver. 3/ Limit output power to what is specified in EEPROM. 4/ Decrease output power for highest OFDM rates to reduce distortion. 5/ Automatically adjust output power to temperature changes for increased throughput and range. 6/ Attach the adapter's onboard thermal sensor to the sensor framework. 7/ Replace 'magic' fields in structures with their correct definitions. NOTE1: you must upgrade your wpi-firmware package to rev 2.14.3 or the driver will stop working. NOTE2: if you are using a channel not allowed by the regulatory domain of your adapter, you will no longer be able to associate.
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-11-13first round of commits for proper 11b/g protection support:Damien Bergamini
- use the newly introduced ieee80211_get_rts() and ieee80211_get_cts_to_self() functions. - use CTS-to-self instead of RTS/CTS to protect OFDM frames in a mixed 11b/g BSS. - make sure multicast frames are sent using CCK modulation. remove support for 5GHz radios in ral(4) RT2560 and ural(4). i'm not aware of any such adapters on the market and 11a code is known to be broken. some cleanup while i'm here.
2006-11-01fix firmware fatal errors on re-associations.Damien Bergamini
reported and tested by Marc Winiger and dhartmei@
2006-10-23remove detach() function. this is not hotplug and this is dead code.Damien Bergamini
2006-10-23make sure wpi_iter_func() is called at splnet.Damien Bergamini
simplify wpi_dma_contig_alloc(). various cosmetic tweaks while i'm here.
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-28Completely rework the allocation/management of Rx buffers.Damien Bergamini
The firmware expects 3KB Rx buffers so we can't just map mbuf clusters which are only 2KB. Also it seems that Rx buffers must be aligned on a 1KB boundary which is not necessary the case with mbuf clusters. We want to make damn sure the firmware will not DMA anything outside the mapped Rx buffers. The size of the Rx buffers is probably configurable but Intel will refuse to answer to any question regarding the programmation of the chipset, and a dump of the device registers led to nowhere.