#
331722 |
|
29-Mar-2018 |
eadler |
Revert r330897:
This was intended to be a non-functional change. It wasn't. The commit message was thus wrong. In addition it broke arm, and merged crypto related code.
Revert with prejudice.
This revert skips files touched in r316370 since that commit was since MFCed. This revert also skips files that require $FreeBSD$ property changes.
Thank you to those who helped me get out of this mess including but not limited to gonzo, kevans, rgrimes.
Requested by: gjb (re)
|
#
330897 |
|
14-Mar-2018 |
eadler |
Partial merge of the SPDX changes
These changes are incomplete but are making it difficult to determine what other changes can/should be merged.
No objections from: pfg
|
#
302408 |
|
07-Jul-2016 |
gjb |
Copy head@r302406 to stable/11 as part of the 11.0-RELEASE cycle. Prune svn:mergeinfo from the new branch, as nothing has been merged here.
Additional commits post-branch will follow.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
298939 |
|
02-May-2016 |
pfg |
dev/ath: minor spelling fixes in comments.
No functional change.
Reviewed by: adrian
|
#
288349 |
|
29-Sep-2015 |
adrian |
Remove the references to the TX IC lock - i ended up solving this using net80211 to seralise encap+xmit, so now it's a non-issue.
|
#
278765 |
|
14-Feb-2015 |
adrian |
Move the lock destruction/creation to earlier in the process - if interrupts are enabled and the NIC is awake (think: loading a module) then there's a not-quite-zero window where we'll get an interrupt for the device before the attach method is called to finish setting up the hardware.
Since I grab locks in ath_intr() to check various things, the locks need to be ready much earlier.
|
#
272292 |
|
30-Sep-2014 |
adrian |
Add initial support for the AR9485 CUS198 / CUS230 variants.
These variants have a few differences from the default AR9485 NIC, namely:
* a non-default antenna switch config; * slightly different RX gain table setup; * an external XLNA hooked up to a GPIO pin; * (and not yet done) RSSI threshold differences when doing slow diversity.
To make this possible:
* Add the PCI device list from Linux ath9k, complete with vendor and sub-vendor IDs for various things to be enabled; * .. and until FreeBSD learns about a PCI device list like this, write a search function inspired by the USB device enumeration code; * add HAL_OPS_CONFIG to the HAL attach methods; the HAL can use this to initialise its local driver parameters upon attach; * copy these parameters over in the AR9300 HAL; * don't default to override the antenna switch - only do it for the chips that require it; * I brought over ar9300_attenuation_apply() from ath9k which is cleaner and easier to read for this particular NIC.
This is a work in progress. I'm worried that there's some post-AR9380 NIC out there which doesn't work without the antenna override set as I currently haven't implemented bluetooth coexistence for the AR9380 and later HAL. But I'd rather have this code in the tree and fix it up before 11.0-RELEASE happens versus having a set of newer NICs in laptops be effectively RX deaf.
Tested:
* AR9380 (STA) * AR9485 CUS198 (STA)
Obtained from: Qualcomm Atheros, Linux ath9k
|
#
268351 |
|
06-Jul-2014 |
marcel |
Remove ia64.
This includes: o All directories named *ia64* o All files named *ia64* o All ia64-specific code guarded by __ia64__ o All ia64-specific makefile logic o Mention of ia64 in comments and documentation
This excludes: o Everything under contrib/ o Everything under crypto/ o sys/xen/interface o sys/sys/elf_common.h
Discussed at: BSDcan
|
#
257241 |
|
28-Oct-2013 |
glebius |
Include necessary headers that now are available due to pollution via if_var.h.
Sponsored by: Netflix Sponsored by: Nginx, Inc.
|
#
246453 |
|
07-Feb-2013 |
adrian |
Create a new TX lock specifically for queuing frames.
This now separates out the act of queuing frames from the act of running TX and TX completion.
|
#
242391 |
|
31-Oct-2012 |
adrian |
I give up - introduce a TX lock to serialise TX operations.
I've tried serialising TX using queues and such but unfortunately due to how this interacts with the locking going on elsewhere in the networking stack, the TX task gets delayed, resulting in quite a noticable throughput loss:
* baseline TCP for 2x2 11n HT40 is ~ 170mbit/sec; * TCP for TX task in the ath taskq, with the RX also going on - 80mbit/sec; * TCP for TX task in a separate, second taskq - 100mbit/sec.
So for now I'm going with the Linux wireless stack approach - lock tx early. The linux code does in the wireless stack, before the 802.11 state stuff happens and before it's punted to the driver. But TX locking needs to also occur at the driver layer as the TX completion code _also_ begins to drain the ifnet TX queue.
Whilst I'm here, add some KTR traces for the TX path.
Note:
* This really should be done at the net80211 layer (as well, at least.) But that'll have to wait for a little more thought to happen.
|
#
238709 |
|
23-Jul-2012 |
adrian |
Flesh out a new DMA map for the EDMA TX completion status, as well as a lock to go with that whole code path.
|
#
238433 |
|
14-Jul-2012 |
adrian |
Create an RX queue lock.
Ideally these locks would go away and there'd be a single driver lock, like what iwn(4) does. I'll worry about that later.
|
#
234304 |
|
14-Apr-2012 |
adrian |
Override some default values to work around various issues in the deep, dirty and murky past.
* Override the default cache line size to be something reasonable if it's set to 0. Some NICs initialise with '0' (eg embedded ones) and there are comments in the driver stating that various OSes (eg older Linux ones) would incorrectly program things and 0 out this register.
* Just default to overriding the latency timer. Every other driver does this.
* Use a default cache line size of 32 bytes. It should be "reasonable enough".
Obtained from: Linux ath9k, Atheros
|
#
234231 |
|
13-Apr-2012 |
adrian |
Upgrade ATH_EEPROM_FIRMWARE to a configuration option.
|
#
234218 |
|
13-Apr-2012 |
adrian |
Introduce the ability to grab local EEPROM data from the firmware(9) interface.
* Introduce a device hint, 'eeprom_firmware', which is the name of firmware to lookup. * If the lookup succeeds, take a copy of it and use it as the eeprom data.
This isn't enabled by default - you have to define ATH_EEPROM_FIRMWARE. I'll add it to the configuration variables in a later commit.
TODO:
* just keep a firmware reference in ath_softc, and remove the need to waste the extra memory in having sc_eepromdata be a malloc()ed block.
|
#
227350 |
|
08-Nov-2011 |
adrian |
Conditionally compile the PCI latency workaround; I think it's only required for some earlier NICs.
|
#
227328 |
|
08-Nov-2011 |
adrian |
Begin merging in some of my 802.11n TX aggregation driver changes.
* Add a PCU lock, which isn't currently used but will eventually be used to serialise some of the driver access.
* Add in all the software TX aggregation state, that's kept per-node and per-TID.
* Add in the software and aggregation state to ath_buf.
* Add in hooks to ath_softc for aggregation state and the (upcoming) aggregation TX state calls.
* Add / fix the HAL access macros.
Obtained from: Linux, ath9k Sponsored by: Hobnob, Inc.
|
#
226491 |
|
18-Oct-2011 |
adrian |
Add in a currently-disabled WAR for PCI NICs.
Some earlier series (~AR5212?) play badly with BIOSes.
In these instances, they may require a forced reset (by transitioning the NIC through D0 -> D3 -> D0) before they probe/attach correctly.
This is currently disabled because:
* I haven't figured out the "right" code to ensure this only happens for PCI NICs (not PCIe or Cardbus); * I haven't at all done wide scale testing for this, and I'm not yet ready for said wide-scale testing.
I'm documenting this primarily so users with misbehaving NICs have something to tinker with.
Obtained from: Atheros
|
#
226490 |
|
18-Oct-2011 |
adrian |
Add a WAR from the reference code - clear the PCI error status upon detach.
Obtained from: Atheros
|
#
226355 |
|
14-Oct-2011 |
adrian |
ath_pci PCI setup fixes.
* Break out the PCI setup override code into a new function. * Re-apply the PCI overrides on powersave resume. The retry timeout register isn't currently being saved/resumed by the PCI driver/bus code.
|
#
220185 |
|
31-Mar-2011 |
adrian |
Break out the ath PCI logic into a separate device/module.
Introduce the AHB glue for Atheros embedded systems. Right now it's hard-coded for the AR9130 chip whose support isn't yet in this HAL; it'll be added in a subsequent commit.
Kernel configuration files now need both 'ath' and 'ath_pci' devices; both modules need to be loaded for the ath device to work.
|
#
192147 |
|
15-May-2009 |
imp |
The module name convention is foo, not if_foo.
|
#
189575 |
|
09-Mar-2009 |
imp |
remove now-redunant cardbus attachment.
|
#
186806 |
|
06-Jan-2009 |
sam |
remove the ath_rate module dependency; it's all bundled
|
#
185522 |
|
01-Dec-2008 |
sam |
Switch to ath hal source code. Note this removes the ath_hal module; the ath module now brings in the hal support. Kernel config files are almost backwards compatible; supplying
device ath_hal
gives you the same chip support that the binary hal did but you must also include
options AH_SUPPORT_AR5416
to enable the extended format descriptors used by 11n parts. It is now possible to control the chip support included in a build by specifying exactly which chips are to be supported in the config file; consult ath_hal(4) for information.
|
#
178354 |
|
20-Apr-2008 |
sam |
Multi-bss (aka vap) support for 802.11 devices.
Note this includes changes to all drivers and moves some device firmware loading to use firmware(9) and a separate module (e.g. ral). Also there no longer are separate wlan_scan* modules; this functionality is now bundled into the wlan module.
Supported by: Hobnob and Marvell Reviewed by: many Obtained from: Atheros (some bits)
|
#
172900 |
|
23-Oct-2007 |
kevlo |
- Use pci_enable_busmaster() to turn on busmaster. - Don't test memory/port status and emit an error message; the PCI bus will do this.
Reviewed by: sam
|
#
170375 |
|
06-Jun-2007 |
sam |
update copyrights to 2007 and convert to be 2-clause bsd-only
|
#
166901 |
|
23-Feb-2007 |
piso |
o break newbus api: add a new argument of type driver_filter_t to bus_setup_intr()
o add an int return code to all fast handlers
o retire INTR_FAST/IH_FAST
For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current
Reviewed by: many Approved by: re@
|
#
166165 |
|
21-Jan-2007 |
marius |
Change the remainder of the drivers for DMA'ing devices enabled in the sparc64 GENERIC and the sound device drivers known working on sparc64 to use bus_get_dma_tag() to obtain the parent DMA tag so we can get rid of the sparc64_root_dma_tag kludge eventually. Except for ath(4), sk(4), stge(4) and ti(4) these changes are runtime tested (unless I booted up the wrong kernels again...).
|
#
164794 |
|
01-Dec-2006 |
sam |
clarify shortcut return
Submitted by: cognet, kevlo MFC after: 1 week
|
#
159383 |
|
07-Jun-2006 |
sam |
bandaid type coercion for ia64
Submitted by: marcel
|
#
159290 |
|
05-Jun-2006 |
sam |
move hal bus+tag externalization to the bus glue code where it belongs; this is a noop on all current freebsd architectures
MFC after: 1 month
|
#
158366 |
|
08-May-2006 |
sam |
quiet tindexbox complaints about passing BUS_SPACE_MAXADDR as a bus_size_t to bus_dma_tag_create; when PAE is enabled this does not work
Cluebat by: scottl MFC after: 2 weeks
|
#
143163 |
|
05-Mar-2005 |
imp |
Use BUS_PROBE_DEFAULT for pci probe return value
|
#
140427 |
|
18-Jan-2005 |
sam |
o disable pci retry timeout to avoid problems when operating in C3 state (fix imported from madwifi by Takanori Watanabe) o eliminate save/restore of pci registers handled by the system o eliminate duplicate zero of the softc (noted by njl) o consolidate common code
MFC after: 1 week
|
#
139530 |
|
31-Dec-2004 |
sam |
bump copyright for 2005
|
#
138570 |
|
08-Dec-2004 |
sam |
Update with last year of work.
|
#
127780 |
|
02-Apr-2004 |
sam |
update copyright notice for 2004
|
#
127135 |
|
17-Mar-2004 |
njl |
Convert callers to the new bus_alloc_resource_any(9) API.
Submitted by: Mark Santcroos <marks@ripe.net> Reviewed by: imp, dfr, bde
|
#
123019 |
|
28-Nov-2003 |
imp |
Sometimes cardbus attachments don't attach, so while we track down this problem put these lines back in. While they should be unnecessary, they appear to be sometimes necessary.
Reviewed in concept: dfr Approved by: re (scottl@)
|
#
121939 |
|
03-Nov-2003 |
dfr |
Remove explicit cardbus attachments from drivers where this is identical to the pci attachment. Cardbus is a derived class of pci so all pci drivers are automatically available for matching against cardbus devices.
Reviewed by: imp
|
#
121100 |
|
14-Oct-2003 |
sam |
o convert mutex calls to #defines for portability, etc. o destroy mutex's on detach (was missing)
|
#
118884 |
|
13-Aug-2003 |
sam |
Close a race where ath_intr is installed and may be called before the HAL is setup: use sc_invalid to discard such entries into ath_intr. This can easily happen if the device is assigned a shared IRQ.
|
#
117126 |
|
01-Jul-2003 |
scottl |
Mega busdma API commit.
Add two new arguments to bus_dma_tag_create(): lockfunc and lockfuncarg. Lockfunc allows a driver to provide a function for managing its locking semantics while using busdma. At the moment, this is used for the asynchronous busdma_swi and callback mechanism. Two lockfunc implementations are provided: busdma_lock_mutex() performs standard mutex operations on the mutex that is specified from lockfuncarg. dftl_lock() is a panic implementation and is defaulted to when NULL, NULL are passed to bus_dma_tag_create(). The only time that NULL, NULL should ever be used is when the driver ensures that bus_dmamap_load() will not be deferred. Drivers that do not provide their own locking can pass busdma_lock_mutex,&Giant args in order to preserve the former behaviour.
sparc64 and powerpc do not provide real busdma_swi functions, so this is largely a noop on those platforms. The busdma_swi on is64 is not properly locked yet, so warnings will be emitted on this platform when busdma callback deferrals happen.
If anyone gets panics or warnings from dflt_lock() being called, please let me know right away.
Reviewed by: tmm, gibbs
|
#
116743 |
|
23-Jun-2003 |
sam |
Atheros 802.11 driver. Requires Atheros Hardware Access Lay (HAL).
Supported by: Atheros Comunications
|