#
de138ec7 |
| 24-Jun-2011 |
Attilio Rao <attilio@FreeBSD.org> |
MFC
|
#
37931a35 |
| 23-Jun-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Break out most of the HAL related tweaks into a per-HAL instance, rather than global variables.
This specifically allows for debugging to be enabled per-NIC, rather than globally.
Since the ath dri
Break out most of the HAL related tweaks into a per-HAL instance, rather than global variables.
This specifically allows for debugging to be enabled per-NIC, rather than globally.
Since the ath driver doesn't know about AH_DEBUG, and to keep the ABI consistent regardless of whether AH_DEBUG is enabled or not, enable the debug parameter always but only conditionally compile in the debug methods if needed.
The ALQ support is currently still global pending some brainstorming.
Submitted by: ssgriffonuser@gmail.com Reviewed by: adrian, bschmidt
show more ...
|
#
81c02539 |
| 06-Jun-2011 |
Attilio Rao <attilio@FreeBSD.org> |
MFC
|
#
373815ef |
| 05-Jun-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Add a missing call to sync the DMAed buffer before the radar event data is extracted.
|
#
3bce356e |
| 05-Jun-2011 |
Attilio Rao <attilio@FreeBSD.org> |
MFC
|
#
7e5eb44d |
| 04-Jun-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
A few changes to make radar detection implementable in a hal_dfs/ module.
* If sc->sc_dodfs is set to 1 by the ath_dfs_radar_enable(), set the relevant rx filter bit to begin receiving radar PHY
A few changes to make radar detection implementable in a hal_dfs/ module.
* If sc->sc_dodfs is set to 1 by the ath_dfs_radar_enable(), set the relevant rx filter bit to begin receiving radar PHY errors. The HAL code already knows how to set the relevant error mask register to enable radar events.
* Add a missing call to ath_dfs_radar_enable() after ath_hal_reset()
* change ath_dfs_process_phyerr() to take a const char *buf for now, rather than a descriptor. This way it can get access to the packet buffer contents.
show more ...
|
#
3bf1ec3a |
| 02-Jun-2011 |
Attilio Rao <attilio@FreeBSD.org> |
MFC
|
#
48237774 |
| 01-Jun-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Flesh out the radar detection related operations for the ath driver.
This is in no way a complete DFS/radar detection implementation! It merely creates an abstracted interface which allows for futur
Flesh out the radar detection related operations for the ath driver.
This is in no way a complete DFS/radar detection implementation! It merely creates an abstracted interface which allows for future development of the DFS radar detection code.
Note: Net80211 already handles the bulk of the DFS machinery, all we need to do here is figure out that a radar event has occured and inform it as such. It then drives the DFS state engine for us.
The "null" DFS radar detection module is included by default; it doesn't require a device line.
This commit:
* Adds a simple abstracted layer for radar detection state - sys/dev/ath/ath_dfs/; * Implements a null DFS module which doesn't do anything; (ie, implements the exact behaviour at the moment); * Adds hooks to the ath driver to process received radar events and gives the DFS module a chance to determine whether a radar has been detected.
Obtained from: Atheros
show more ...
|
#
5b6ea0b5 |
| 31-May-2011 |
Attilio Rao <attilio@FreeBSD.org> |
MFC
|
#
9be25f4a |
| 30-May-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Set default A-MPDU density/size.
|
#
c7df91af |
| 29-May-2011 |
Attilio Rao <attilio@FreeBSD.org> |
MFC
|
#
76355edb |
| 29-May-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Teach if_ath about devices which have short-GI in 20MHz channel modes.
This has been disabled until now because there hasn't been any supported device which has this feature. Since the AR9287 is the
Teach if_ath about devices which have short-GI in 20MHz channel modes.
This has been disabled until now because there hasn't been any supported device which has this feature. Since the AR9287 is the first device to support it, and since now the HAL has functional AR9287+11n support, flip this on.
show more ...
|
#
87c3644c |
| 24-May-2011 |
Peter Grehan <grehan@FreeBSD.org> |
IFC @ r222256
|
#
7e7a34e5 |
| 16-May-2011 |
Attilio Rao <attilio@FreeBSD.org> |
MFC
|
#
e9d1191f |
| 15-May-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
* Add some more TX descriptor error counters; this'll be helpful when implementing TX aggregation * Whilst I'm there, comment some RX error counters
|
#
739e31f6 |
| 13-May-2011 |
Attilio Rao <attilio@FreeBSD.org> |
MFC
|
#
dce0bcca |
| 12-May-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Now that the devices with functioning ps-poll hardware support have been enumerated (merlin and later), flick this on.
|
#
e57539af |
| 29-Apr-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Cosmetic changes to fit 80 character screen width.
|
#
6f5fe81e |
| 23-Apr-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Fix a corner-case of interrupt handling which resulted in potentially spurious (and fatal) interrupt errors.
One user reported seeing this:
Apr 22 18:04:24 ceres kernel: ar5416GetPendingInterrupts:
Fix a corner-case of interrupt handling which resulted in potentially spurious (and fatal) interrupt errors.
One user reported seeing this:
Apr 22 18:04:24 ceres kernel: ar5416GetPendingInterrupts: fatal error, ISR_RAC 0x0 SYNC_CAUSE 0x2000
SYNC_CAUSE of 0x2000 is AR_INTR_SYNC_LOCAL_TIMEOUT which is a bus timeout; this shouldn't cause HAL_INT_FATAL to be set.
After checking out ath9k, ath9k_ar9002_hw_get_isr() clears (*masked) before continuing, regardless of whether any bits in the ISR registers are set. So if AR_INTR_SYNC_CAUSE is set to something that isn't treated as fatal, and AR_ISR isn't read or is read and is 0, then (*masked) wouldn't be cleared. Thus any of the existing bits set that were passed in would be preserved in the output.
The caller in if_ath - ath_intr() - wasn't setting the masked value to 0 before calling ath_hal_getisr(), so anything that was present in that uninitialised variable would be preserved in the case above of AR_ISR=0, AR_INTR_SYNC_CAUSE != 0; and if the HAL_INT_FATAL bit was set, a fatal condition would be interpreted and the chip was reset.
This patch does the following:
* ath_intr() - set masked to 0 before calling ath_hal_getisr(); * ar5416GetPendingInterrupts() - clear (*masked) before processing continues; so if the interrupt source is AR_INTR_SYNC_CAUSE and it isn't fatal, the hardware isn't reset via returning HAL_INT_FATAL.
This doesn't fix any underlying errors which trigger AR_INTR_SYNC_LOCAL_TIMEOUT - which is a bus timeout of some sort - so that likely should be further investigated.
show more ...
|
#
3788ebed |
| 18-Apr-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
For now, only enable GTT. CST is firing very frequently during local tests; I'll figure out what's going on before re-enabling this as it does add to the interrupt load.
|
#
5594f5c0 |
| 18-Apr-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Add TX carrier sense timeout statistics.
|
#
d0a0ebc6 |
| 18-Apr-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Rework the Global TX timeout handling to look more like ath9k.
It correctly now sets the AR_IMR BCNMISC register, along with the GTT register in AR_IMR_S2.
|
#
6ad02dba |
| 18-Apr-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Add global TX timeout handling.
The global TX timeout counter increments whenever a frame is ready to be transmitted and the medium is busy.
|
#
235ab70e |
| 13-Apr-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Add in the AR9285 (Kite) diversity to if_ath, enabling TX/RX antenna diversity.
This is bit dirty and likely should be revised at a later date, with an eye to unifying/tidying up the whole diversity
Add in the AR9285 (Kite) diversity to if_ath, enabling TX/RX antenna diversity.
This is bit dirty and likely should be revised at a later date, with an eye to unifying/tidying up the whole diversity setup and allowing developers to do "tricky stuff" as they desire. For now, this works.
show more ...
|
#
8a2a6bee |
| 04-Apr-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Add a HAL capability bit for supporting self-linked RX descriptors and disable it for the 11n chipsets.
From the ath9k source:
==
11N: we can no longer afford to self link the last descriptor. MAC
Add a HAL capability bit for supporting self-linked RX descriptors and disable it for the 11n chipsets.
From the ath9k source:
==
11N: we can no longer afford to self link the last descriptor. MAC acknowledges BA status as long as it copies frames to host buffer (or rx fifo). This can incorrectly acknowledge packets to a sender if last desc is self-linked.
==
Since this is useful for pre-AR5416 chips that communicate PHY errors via error frames rather than by on-chip counters, leave the support in there, but disable it for AR5416 and later.
show more ...
|