summaryrefslogtreecommitdiffstats
path: root/sys/dev/ic/athnvar.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Add a DVACT_WAKEUP op to the *_activate() API. This is called after thederaadt2013-12-061-2/+2
| | | | | | | | 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
* Fix values of AR9003 Rx queue software indexes. Both indexes were zero,stsp2013-10-211-2/+2
| | | | | which is obviously not intended given how they are used in the ar9003 code. No currently working athn(4) devices are affected by this change.
* Init values for the AR9485 were for version 1.0 of this chip, which accordingstsp2012-10-201-1/+2
| | | | | | | | | | to Atheros Linux developers was never sold. So update initvals to what Linux is using for the 1.1 generation. Because the serdes values are written to different registers on the AR9485 this involves tweaking the serdes init code for all athn(4) chip families. This commit doesn't make AR9485 devices work yet but is a step in the right direction. Tested by krw, kettenis, and Andrew Ngo. ok kettenis@
* Add support for power saving in Host AP mode.kettenis2012-08-251-1/+2
| | | | ok stsp@, deraadt@
* Allow a variable number of words for the Serializer/Deserializer programming.kettenis2012-06-101-2/+7
| | | | | | | Probably not enought to make the AR9380 chips to work, but at least the kernel shouldn't crash anymore when we see one. ok stsp@
* fix LEDs handling.damien2011-01-081-1/+2
| | | | | | | do not read back the LED GPIO pin since it is configured in output only mode. makes the link LED blink on the WiFiStation EXT when scanning (the LEDs indicating the signal strength are not working yet).
* "athn* at uhub? port ?"damien2011-01-061-1/+2
| | | | | | | | | | | | | | this adds preliminary support for the Atheros AR9271 chipset and probably the AR9280+AR7010 and AR9287+AR7010 too though those were not tested. scanning still takes a very long time (~1 sec per channel) but otherwise, operation in STA mode seems stable. will implement fast channel change soon. committed over the Ubiquiti WifiStation EXT (AR9271) on i386 with WPA. requires firmware (see man page for details) ok deraadt@ (who checked the .h files)
* add code to read OTPROM on the AR9485damien2011-01-011-1/+2
|
* limit the number of Tx chains used on some 3-stream AR9380 chipsdamien2010-12-311-1/+4
| | | | for MCS0~15 to not exceed the PCIe power requirements.
* Make the athn(4) back-end more bus agnostic by moving read and writedamien2010-12-311-16/+22
| | | | | | | | operations to callbacks in the PCI and CardBus front-ends. This will allow support of other buses like USB. Assume the following memory model: - writes are ordered but may be buffered and require explicit flush - a read always flushes all buffered writes
* Several updates for the Osprey (AR9380):damien2010-11-101-1/+4
| | | | | | - Add the different ROM templates for the different chips - Fix AR_PHY_65NM_CH0_TOP_XPABIASLVL definition - Apply attenuation settings from the ROM
* Stop compiling with ATHN_DEBUG defined by default.damien2010-10-181-2/+1
|
* fix initialization value of analog register AR_AN_TOP2 on some highdamien2010-09-031-1/+2
| | | | | | | | power AR9220 adapters. this should fix at least Ubiquiti SR71-12 and Winstron DMNA92 adapters. problem reported by Giuseppe Scalzi and Alex Dervish fix tested by Giuseppe Scalzi with a Winstron DMNA92
* Enable periodic (every 4 minutes) power amplifier calibrationdamien2010-08-121-1/+2
| | | | on AR9285 and AR9287.
* For chips in open-loop power control mode, periodically (every 30 secs)damien2010-08-121-1/+3
| | | | compensate Tx gain for temperature changes.
* Add suspend/unsuspend logic.kettenis2010-07-211-1/+3
| | | | ok damien@, deraadt@
* According to Linux ath9k, the AR9280 1.0 was never sold.damien2010-07-151-4/+2
| | | | | Since this is the only chip revision that requires split TKIP MIC keys, remove code that deal with that.
* cleanup/fix PA predistortion code.damien2010-06-221-2/+4
|
* Implement PA linearization on adapters with digital predistortersdamien2010-06-211-1/+13
| | | | | | | | | | | | | | | | | (AR9003 family only). The power amplifier predistortion state machine works as follows: 1) Disable digital predistorters for all Tx chains 2) Repeat steps 3~7 for all Tx chains 3) Force Tx gain to that of training signal 4) Send training signal (asynchronous) 5) Wait for training signal to complete (asynchronous) 6) Read PA measurements (input power, output power, output phase) 7) Compute the predistortion function that linearizes PA output 8) Write predistortion functions to hardware tables for all Tx chains 9) Enable digital predistorters for all Tx chains from ath9k (though implementation differs a lot)
* allow Tx flags to be passed to the tx() routine.damien2010-06-211-2/+3
|
* - fix athn_set_key() on big-endian machines (function is not used yet)damien2010-06-051-1/+6
| | | | | | - change sign extension such that we do not rely on >> being an arithmetic shift on signed integers - various changes to AR9003 code, fix Tx path, enable Tx IQ calibration
* cleanup hardware key cache management (not used yet)damien2010-05-161-1/+2
|
* cleanup calibration bits (not everything is enabled yet.)damien2010-05-161-2/+3
|
* initial Host AP bits.damien2010-05-161-1/+2
|
* enable fast PLL clock for 5GHz on AR9280 >=2.0 (unless EEPROM says thedamien2010-05-111-1/+7
| | | | | | opposite) and on AR9380 2.0. tested on my AR9280 2.1 with a NETGEAR WNHDE111 AP.
* athn(4) is going to support a new family of Atheros 802.11ndamien2010-05-101-75/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | chips (AR9003), which differs from the currently supported families (AR5008, AR9001 and AR9002). The main differences (from a driver point of view) are: * DMA: Tx and Rx descriptors have changed. A single Tx descriptor can now reference up to 4 scatter/gather DMA segments. There is now a DMA ring for reporting Tx status with separate Tx status descriptors (this ring is used to report Tx status for all the Tx FIFOs). Rx status descriptors are now put at the beginning of Rx buffers and do not need to be allocated separately from buffers. There are two Rx FIFOs (low priority and high priority) instead of one. * ROM: The AR9003 family uses OTP-ROM instead of EEPROM. Reading the ROM is totally insane since vendors can provide only the chunks of ROM that differ from a default image (and thus the default image has to be stored in the driver). This is referenced as "compressed ROM" in the Linux driver, though there is no real compression involved, at least for the moment. * PHY registers: All PHY registers have changed. Some registers offsets do not fit on 16 bits anymore, but since they are 32-bit aligned, we can still make them fit on 16 bits to save .rodata space in initialization tables. * MAC registers: Some MAC registers offsets have changed (GPIO, interrupt masks) which is quite annoying (though ~98% remain the same.) * Initialization values: Initialization values are now split in mac/soc/bb/radio blocks and pre/core/post phases in the Linux driver. I have chosen to not go that road and merge these blocks in modal and non-modal initialization values (similar to the other families). The initialization order remains exactly the same as the Linux driver though. To manage these differences, I have split athn.c in two backends: ar5008.c contains the bits that are specific to the AR5008, AR9001 and AR9002 families (used by ar5416.c, ar9280.c, ar9285.c and ar9287.c) and that were previously in athn.c. ar9003.c contains the bits that are specific to the new AR9003 family (used by ar9380.c only for now.) I have introduced a thin hardware abstraction layer (actually a set of pointers to functions) that is used in athn.c. My intent is to keep this abstraction layer as thin as possible and not to create another ugly pile of abstraction layers a la MadWifi. I think I've managed to keep things sane, probably at the expense of duplicating some code in both ar5008.c and ar9003.c, but at least we do not have to dig through layers and layers of virtual descriptors to figure out what is mapped to the hardware. Tested for non-regression on various AR5416 (sparc64+i386), AR9281 and AR9285 (i386 only) adapters. AR9380 part is not tested (hardware is not available to the general public yet). Committed over my AR9285 2.0.
* disable bluetooth coexistence as I suspect this is what is causingdamien2010-05-051-2/+2
| | | | troubles to some people with AR9285+AR3011 combo adapters.
* Properly detect when the band changes from 2GHz to 5GHz anddamien2010-02-151-1/+4
| | | | | | | | vice-versa, and do a full reset of the chip when it happens. This does not affect the AR9280 since a full reset is always necessary when the channel changes. Should fix dual-band AR5416 devices (problem reported by Rivo Nurges).
* change the MRR pattern from 1/1/1/1 to 2/2/2/4damien2010-01-271-3/+2
|
* fix RTS/CTS and CTS-to-self protection modes.damien2009-11-221-31/+31
| | | | | | | fix 802.11a TXTIME computation (802.11a has a 16us SIFS interval but does not have the 6us signal extension that ERP-OFDM has so we can use the same code for 11a and 11g provided that we add the SIFS nterval in the athn_txtime() function itself.)
* if a radio switch exists, configure the GPIO pin to which it isdamien2009-11-191-3/+3
| | | | | | | | | | connected to raise an interrupt when the pin goes low (or high depending on the polarity of the radio switch.) turn the interface down when the interrupt occurs. this is the same behaviour as in wpi(4) and iwn(4). cleanup interrupts processing while i'm here. remove ATHN_INTR_MITIGATION compile option (it is set by default.)
* update hardware multicast filter.damien2009-11-171-1/+2
|
* add short interframe space to duration since the athn_txtimedamien2009-11-171-1/+2
| | | | function does not take it into account. oops.
* AR9287 uses GPIO pin 8 for LED, not 1.damien2009-11-151-1/+2
| | | | Turn link LED on while associated.
* athn(4), a driver for Atheros 802.11a/g/n devices.damien2009-11-141-0/+513
written from scratch based on the vendor driver for Linux (ath9k). AR9285 and AR9287 parts are 100% untested. only basic functionnalities are enabled for now. committed over an AR9281. "commit" deraadt