History log of /freebsd-11-stable/sys/contrib/dev/ath/ath_hal/ar9300/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
302408 08-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


/freebsd-11-stable/MAINTAINERS
/freebsd-11-stable/cddl
/freebsd-11-stable/cddl/contrib/opensolaris
/freebsd-11-stable/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print
/freebsd-11-stable/cddl/contrib/opensolaris/cmd/zfs
/freebsd-11-stable/cddl/contrib/opensolaris/lib/libzfs
/freebsd-11-stable/contrib/amd
/freebsd-11-stable/contrib/apr
/freebsd-11-stable/contrib/apr-util
/freebsd-11-stable/contrib/atf
/freebsd-11-stable/contrib/binutils
/freebsd-11-stable/contrib/bmake
/freebsd-11-stable/contrib/byacc
/freebsd-11-stable/contrib/bzip2
/freebsd-11-stable/contrib/com_err
/freebsd-11-stable/contrib/compiler-rt
/freebsd-11-stable/contrib/dialog
/freebsd-11-stable/contrib/dma
/freebsd-11-stable/contrib/dtc
/freebsd-11-stable/contrib/ee
/freebsd-11-stable/contrib/elftoolchain
/freebsd-11-stable/contrib/elftoolchain/ar
/freebsd-11-stable/contrib/elftoolchain/brandelf
/freebsd-11-stable/contrib/elftoolchain/elfdump
/freebsd-11-stable/contrib/expat
/freebsd-11-stable/contrib/file
/freebsd-11-stable/contrib/gcc
/freebsd-11-stable/contrib/gcclibs/libgomp
/freebsd-11-stable/contrib/gdb
/freebsd-11-stable/contrib/gdtoa
/freebsd-11-stable/contrib/groff
/freebsd-11-stable/contrib/ipfilter
/freebsd-11-stable/contrib/ldns
/freebsd-11-stable/contrib/ldns-host
/freebsd-11-stable/contrib/less
/freebsd-11-stable/contrib/libarchive
/freebsd-11-stable/contrib/libarchive/cpio
/freebsd-11-stable/contrib/libarchive/libarchive
/freebsd-11-stable/contrib/libarchive/libarchive_fe
/freebsd-11-stable/contrib/libarchive/tar
/freebsd-11-stable/contrib/libc++
/freebsd-11-stable/contrib/libc-vis
/freebsd-11-stable/contrib/libcxxrt
/freebsd-11-stable/contrib/libexecinfo
/freebsd-11-stable/contrib/libpcap
/freebsd-11-stable/contrib/libstdc++
/freebsd-11-stable/contrib/libucl
/freebsd-11-stable/contrib/libxo
/freebsd-11-stable/contrib/llvm
/freebsd-11-stable/contrib/llvm/projects/libunwind
/freebsd-11-stable/contrib/llvm/tools/clang
/freebsd-11-stable/contrib/llvm/tools/lldb
/freebsd-11-stable/contrib/llvm/tools/llvm-dwarfdump
/freebsd-11-stable/contrib/llvm/tools/llvm-lto
/freebsd-11-stable/contrib/mdocml
/freebsd-11-stable/contrib/mtree
/freebsd-11-stable/contrib/ncurses
/freebsd-11-stable/contrib/netcat
/freebsd-11-stable/contrib/ntp
/freebsd-11-stable/contrib/nvi
/freebsd-11-stable/contrib/one-true-awk
/freebsd-11-stable/contrib/openbsm
/freebsd-11-stable/contrib/openpam
/freebsd-11-stable/contrib/openresolv
/freebsd-11-stable/contrib/pf
/freebsd-11-stable/contrib/sendmail
/freebsd-11-stable/contrib/serf
/freebsd-11-stable/contrib/sqlite3
/freebsd-11-stable/contrib/subversion
/freebsd-11-stable/contrib/tcpdump
/freebsd-11-stable/contrib/tcsh
/freebsd-11-stable/contrib/tnftp
/freebsd-11-stable/contrib/top
/freebsd-11-stable/contrib/top/install-sh
/freebsd-11-stable/contrib/tzcode/stdtime
/freebsd-11-stable/contrib/tzcode/zic
/freebsd-11-stable/contrib/tzdata
/freebsd-11-stable/contrib/unbound
/freebsd-11-stable/contrib/vis
/freebsd-11-stable/contrib/wpa
/freebsd-11-stable/contrib/xz
/freebsd-11-stable/crypto/heimdal
/freebsd-11-stable/crypto/openssh
/freebsd-11-stable/crypto/openssl
/freebsd-11-stable/gnu/lib
/freebsd-11-stable/gnu/usr.bin/binutils
/freebsd-11-stable/gnu/usr.bin/cc/cc_tools
/freebsd-11-stable/gnu/usr.bin/gdb
/freebsd-11-stable/lib/libc/locale/ascii.c
/freebsd-11-stable/sys/cddl/contrib/opensolaris
/freebsd-11-stable/sys/contrib/dev/acpica
/freebsd-11-stable/sys/contrib/ipfilter
/freebsd-11-stable/sys/contrib/libfdt
/freebsd-11-stable/sys/contrib/octeon-sdk
/freebsd-11-stable/sys/contrib/x86emu
/freebsd-11-stable/sys/contrib/xz-embedded
/freebsd-11-stable/usr.sbin/bhyve/atkbdc.h
/freebsd-11-stable/usr.sbin/bhyve/bhyvegc.c
/freebsd-11-stable/usr.sbin/bhyve/bhyvegc.h
/freebsd-11-stable/usr.sbin/bhyve/console.c
/freebsd-11-stable/usr.sbin/bhyve/console.h
/freebsd-11-stable/usr.sbin/bhyve/pci_fbuf.c
/freebsd-11-stable/usr.sbin/bhyve/pci_xhci.c
/freebsd-11-stable/usr.sbin/bhyve/pci_xhci.h
/freebsd-11-stable/usr.sbin/bhyve/ps2kbd.c
/freebsd-11-stable/usr.sbin/bhyve/ps2kbd.h
/freebsd-11-stable/usr.sbin/bhyve/ps2mouse.c
/freebsd-11-stable/usr.sbin/bhyve/ps2mouse.h
/freebsd-11-stable/usr.sbin/bhyve/rfb.c
/freebsd-11-stable/usr.sbin/bhyve/rfb.h
/freebsd-11-stable/usr.sbin/bhyve/sockstream.c
/freebsd-11-stable/usr.sbin/bhyve/sockstream.h
/freebsd-11-stable/usr.sbin/bhyve/usb_emul.c
/freebsd-11-stable/usr.sbin/bhyve/usb_emul.h
/freebsd-11-stable/usr.sbin/bhyve/usb_mouse.c
/freebsd-11-stable/usr.sbin/bhyve/vga.c
/freebsd-11-stable/usr.sbin/bhyve/vga.h
302030 20-Jun-2016 adrian

[ath] implement TX queue configuration extensions for the AR9380 HAL.

Among other things, this introduces the idea of DBA-gated queues that
aren't the CABQ. The TDMA support requires this.

Tested:

* AR9580 (hostap mode)
* AR9380 (sta mode)

Approved by: re (gjb)


301641 08-Jun-2016 adrian

[ath_hal] modify the xmit code to use temporary variables for setting qmisc/dmisc.

This is in preparation for some other TDMA fixes which will hopefully
end with having working TDMA.

But, it does avoid lots of read/modify/writes in the txq setup path.


301640 08-Jun-2016 adrian

[ath_hal] add a _S so FSP (frame scheduling policy) can be set/read via SM/MS macros.


301639 08-Jun-2016 adrian

[ath_hal] correctly initialise the CAB queue default value

* Allow readyTime to just be programmed in directly
* The beacon interval and all of the beacon timing sysctl's are in TU,
not TSF. So, we were doing the wrong math on the CAB programming
in the first place.


301638 08-Jun-2016 adrian

[ath_hal] initialise ah_beaconInterval when the AP/IBSS/TDMA beacon is setup.


301423 05-Jun-2016 adrian

[ath_hal] add AR9462 (jupiter) RX gain / XLNA programming.

This seems to make 5G work better.

It doesn't fix powersave handling though, that still sees the PHY get
stuck during initial calibration and everything goes pear shaped.
I'll look into that later.

Tested:

* QCAFN222 NIC, STA mode, 5GHz

Obtained from: Linux ath9k


301421 05-Jun-2016 adrian

[ath_hal] Add Jupiter 2.1 (AR9462 mac 640.3) support.

Turns out I wasn't even initialising or programming a lot of stuff
for the AR9462 2.1 chip. Oops.

This mostly gets it working. powersave scan results in some pretty
hilarious NFcal hangs and I don't see beacons reliably.
There are still some xlna gain tables missing that ath9k has; I'll
follow up with some fixes and then see if the QCAFN222 NIC I have
tests this path.

Tested:

* QCAFN222 NIC, STA mode, 2GHz and 5GHz


301420 05-Jun-2016 adrian

[ath_hal] teach the reset path(s) about Jupiter 2.1.

This was just .. not programming in things, and thus large chunks
of the radio wouldn't work. Notably, 5GHz didn't work.


301419 05-Jun-2016 adrian

[ath_hal] convert the MCI code over to work on Jupiter 2.1.

(Note: jupiter 1.0 was emulation / test silicon, and was never released
in production. So, yes, AR_SREV_JUPITER() would really be fine.)


301416 05-Jun-2016 adrian

[ath_hal] Make the AR9462 2.0 initvals from ath9k compile.

The (upcoming) semi-working AR9462 2.1 support uses the 2.0 initvals
where appropriate, and those need to at least compile under freebsd.


301305 04-Jun-2016 adrian

[ath_hal] add STOMP_AUDIO for AR9462/QCA9565.

Obtained from: Linux ath9k


301133 01-Jun-2016 adrian

[ath_hal] add azimuth timestamp payload marking for AR9380 and later chips.


301097 01-Jun-2016 adrian

[ath_hal] implement shared PA handling checks, based on ath9k.

These are apparently conditional on there being a shared PA/LNA, which
at least on AR9462/QCA9535 devices I have isn't a thing.

I'm .. not yet sure which devices it /is/ a thing, so I'll come back
to that.

Tested:

* QCA9565 STA + bluetooth

Obtained from: Linux ath9k


301095 01-Jun-2016 adrian

[ath_hal] add MCI bits from ath9k for QCA9565

* Add extra debugging - the weights debugging is really useful to ensure
things are programmed into the wlan coexistence table. The weights are
what traffic priority each of the various modes get (tx, tx-high-priority,
rx-beacon, etc) if they're all zero, things work very poorly.

* Add in coex init routines from ath9k for AR9462 and QCA9565 1ANT and 2ANT.
This control things like beacon stomping, ACK handling, antennas, PA/LNA
shared, etc.

* Some ancillary bits.

TODO:

* There's some conditional stuff around MCI_ANT_ARCH_PA_LNA_SHARED() in ath9k
which doesn't always enable force-on LNA. That'll have to be examined
and merged in as appropriate.

Obtained from: linux ath9k


301094 01-Jun-2016 adrian

[ath_hal] add support for QCA9565 for configuring the bluetooth antenna LNA diversity.

Notably, this also sets AR_BTCOEX_WL_LNADIV to FORCE_ON, so LNA diversity
is always enabled and under control of the wifi chip.

Tested:

* QCA9565, STA + bluetooth mode

Obtained from: Linux ath9k


301093 01-Jun-2016 adrian

[ath_hal] Allow the BT antenna diversity option to be enabled for QCA9565.

Obtained from: Linux ath9k


301092 01-Jun-2016 adrian

[ath_hal] add QCA9565 bluteooth antenna control.

This configures the LNA antenna diversity control, which should be on
if wlan owns the LNA for bluetooth coexistence. Otherwise, make sure
it's off.

I think this is eventually intended to allow 1-antenna bluetooth +
wifi setups for QCA9565, but I'm not sure where that's actually configured
in ath9k.

Obtained from: Linux ath9k


301091 01-Jun-2016 adrian

[ath_hal] add extra debugging for MCI interrupts.


301043 31-May-2016 adrian

[ath_hal] rename the MCI state info routine.

It's not /really/ "get state".


301016 31-May-2016 adrian

[ath_hal] add QCA9565 and MCI related registers.

This is required for upcoming MCI fixes.

Obtained from: Linux ath9k


301014 31-May-2016 adrian

[ath_hal] migrate the bluetooth definitions out from ah.h / ar9300_freebsd_inc.h.

The eventual MCI driver side of things needs the MCI bits to live
in the HAL API so we can get to them.

Tested:

* QCA9565, STA mode + bluetooth


301012 31-May-2016 adrian

[ath] ensure the right methods / options get overridden for MCI bluetooth coex

It turns out that the srev checks can't be done in the early attach
in ar9300_freebsd.c, because the poweron and srev check hasn't yet
happened.

So:

* Re-add the MCI overrides in attach
* Add QCA9565 (Aphrodite) check for the LNA diversity stuff.

Tested:

* QCA9565, STA mode + bluetooth


291642 02-Dec-2015 adrian

Add initial ar9300 HAL support for the spectral scan mode.


291567 01-Dec-2015 adrian

Adjust a comment; we now support these embedded boards!


291472 30-Nov-2015 ngie

Fix the build

ichan is only used if AH_DEBUG_ALQ if defined

Pointyhat to: adrian


291469 30-Nov-2015 adrian

fix ht/40 configuration for ar9331 (hornet).

The synth programming here requires the real centre frequency,
which for HT20 channels is the normal channel, but HT40 is
/not/ the primary channel. Everything else was using 'freq',
which is the correct centre frequency, but the hornet config
was using 'ichan' to do the lookup which was also the primary
channel.

So, modify the HAL call that does the mapping to take a frequency
in MHz and return the channel number.

Tested:

* Carambola 2, AR9331, tested both HT/20 and HT/40 operation.


291458 29-Nov-2015 adrian

add missing initvals.

Sorry y'all.


291437 29-Nov-2015 adrian

Add initial support for the QCA953x SoC (honeybee) wifi.

This is a 2x2 2GHz 802.11n part. It works enough at the moment to
bring up, scan and associate. I haven't started using this as
a day to day AP.

The specifics:

* add honeybee initvals
* add in changes; a mix from the QCA HAL and ath9k;
* fix a bug in AR_SREV_AR9580_10_OR_LATER(), which is only used
for one capability check and we don't even implement it - so it's
a big no-op.

Shady things:

* ath9k has the "platform data" define the 25/40MHz clock.
This HAL .. doesn't. Honeybee gets hard-coded to 25MHz which
it likely shouldn't be. I'll have to go and identify/fix those.

Tested:

* Qualcomm Atheros AP143 reference design board.

Obtained from: Qualcomm Atheros; Linux ath9k


291435 29-Nov-2015 adrian

u32 -> uint32_t.


291433 29-Nov-2015 adrian

[ath_hal] add AR9461 (jupiter) 2.1 support.

Obtained from: Linux ath9k


290612 09-Nov-2015 adrian

ath(4): begin fleshing out a "reset type" extension to force cold/warn resets.

Right now the only way to force a cold reset is:

* The HAL itself detects it's needed, or
* The sysctl, setting all resets to be cold.

Trouble is, cold resets take quite a bit longer than warm resets.

However, there are situations where a cold reset would be nice.
Specifically, after a stuck beacon, BB/MAC hang, stuck calibration results,
etc.

The vendor HAL has a separate method to set the reset reason (which is
how HAL_RESET_BBPANIC gets set) which informs the HAL during the reset path
why it occured. This is almost but not quite the same; I may eventually
unify both approaches in the future.

This commit just extends HAL_RESET_TYPE to include both status (eg BBPANIC)
and type (eg do COLD.) None of the HAL code uses it yet though; that'll
come later.

It also is a big no-op in each HAL - I need to go teach each of the HALs
about cold/warm reset through this path.


289099 10-Oct-2015 adrian

Flip on fast frames support for AR5416 and AR9300 series NICs.

This was off because the net80211 aggregation code was using the same
state pointers for both fast frames and ampdu tx support which led to some
pretty unfortunate panic-y behaviour.

Now that net80211 doesn't panic, let's flip this back on.

It doesn't (yet) do the horrific sounding thing of A-MPDU aggregates
of fast frames; that'll come next. It's a pre-requisite to supporting
AMSDU + AMPDU anyway, which actually speeds things up quite considerably
(think packing lots of little ACK frames into a single AMSDU.)

Tested:

* QCA955x SoC, AP mode
* AR5416, STA mode
* AR9170, STA mode (with local fast frame patches)


287302 30-Aug-2015 adrian

Fix compilation error on gcc-5.2.0 - it now warns on non-paranthen'ed
logical negation when used in this fashion.

Tested:

* compile only


286342 05-Aug-2015 adrian

Add a missing method - ath_hal_settsf64().

This is required for TDMA slave mode.


286337 05-Aug-2015 adrian

Add TXOP enforce support to the AR9300 HAL.

This is required for (more) correct TDMA support. Without it, the
code tries to calculate the required guard interval based on the
current rate, and since this is an 11n NIC and people try using
11n, it calls ath_hal_computetxtime() on an 11n rate which then
panics.

This doesn't fix TDMA slave mode on AR9300 - it just makes it
have one less bug.

Reported by: Berislav Purgar <bpurgar@gmail.com>


285123 04-Jul-2015 adrian

Quieten the scorpion SoC/WMAC reset path. Stuff the non-error stuff
under HALDEBUG().


283309 23-May-2015 adrian

Add support for the tuning cap for Hornet/AR9331 boards.

This dramatically improves RX sensitivity and behaviour on the
AR9331 hardware I have, including the Carambola 2.

Tested:

* AR9331, Carambola 2 board

Submitted by: Zilvinas Valinskas <zilvinas.valinskas@gmail.com>


280941 01-Apr-2015 adrian

Expose the ANI state / statistics using the public ANI function, rather than
the ar9300_* definitions.

.. which of course don't match, and athstats was reading garbage ANI
data.


280829 29-Mar-2015 adrian

Add initial support for the HAL channel survey support to the AR9300 HAL.

This is used by the 'athsurvey' command to print out channel survey
statistics - % busy times transmit, receive and airtime.

It's as buggy and incomplete as the rest of the HAL survey support -
notably, tying into the ANI code to read channel stats and occasionally
getting garbage counters isn't very nice. It also doesn't (yet!) get
channel survey information during a scan. But it's good enough for
basic air-time debugging, which is why I'm committing it in this state.

Tested:

* AR9380, STA mode


280334 21-Mar-2015 adrian

Quieten some of the log spam from AR9300 sysctl tree walk and chip setup/reset
path.

* For now there's no exposed control over classic / LNA antenna diversity,
so just stub them out. Adding this will take quite a bit of time.

* Add a function to fetch the CTS timeout.

PR: kern/198558


278816 15-Feb-2015 adrian

Add initial support to the AR9300 HAL to support FreeBSD's intmit API.

I don't like having it in this function; I may migrate it to ar9300_freebsd.c
at some point to keep the HAL code pollution down.

This allows ANI to be disabled via a sysctl.

Tested:

* AR9331, STA/TDMA modes


278807 15-Feb-2015 adrian

Add ath_hal_setbeacontimers() to the AR9300 HAL.

This is a custom FreeBSD HAL method that is used by the TDMA code
to program the beacon timers directly without any guesswork/assumptions
by the HAL.

This brings up basic TDMA master/slave support on the AR9380 HAL,
however there are other issues preventing it from being stable.
(I'm seeing beacon interval instability, which may be due to
busy 2GHz air, but also may be due to some HAL configuration
issues with regards to ANI, or hardware timer programming, etc.)

Tested:

* AR9331 (Carambola2), STA, AP, adhoc and TDMA master mode.


278763 14-Feb-2015 adrian

Comment out a double declaration of this particular function name.
It trips up gcc builds.

Pointy-hat-from: jenkins, kib


278762 14-Feb-2015 adrian

Quieten a clang warning.


278759 14-Feb-2015 adrian

Remove the reserved pin 11 from the HAL check.

The QCA9565 can have RFKILL on GPIO Pin 11, and thus we need to configure
it up correctly or the NIC may not function.

I'm not sure why the AR9382 can't use GPIO 8 / GPIO 11 ; it's likely
hooked up to some external LNA or filter. The real solution is to
make it only block pin 8 / pin 11 for AR9382, but the AR9382 probes
like an AR9380. Sigh.

Submitted by: Anthony Jenkins <scoobi_doo@yahoo.com>


278741 14-Feb-2015 adrian

Update the AR9300 HAL to the latest public available HAL from QCA.

I've been sitting on this for a year or so now; I've finally
tested it on enough devices to be reasonably sure it won't
cause too much drama. But, if you see issues, please email me.

Tested (all STA mode):

PCIe:

* AR9380
* AR9390
* AR9580
* AR9462
* AR9485

SoC:

* QCA9550
* AR9331
* AR9342


278348 07-Feb-2015 dim

Fix a number of -Wcast-qual warnings in ath's ar9300_attach.c, by making
the ia_array field of struct ar9300_ini_array const, and removing the
const-dropping casts. No functional change.

Reviewed by: adrian
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D1725


277329 18-Jan-2015 adrian

Oops - use the correct argument order for ar9300_set_beacon().

(It's only an issue in AP/adhoc modes. But, still. Grr.)


277304 17-Jan-2015 adrian

Correct the descriptor length for AR9462/AR9565 and set the final field
to zero - TX drops are otherwise reported.

Tested:

* AR9462 (WB222), STA mode

Obtained from: Linux ath9k


277303 17-Jan-2015 adrian

Skip the OFDM weak signal threshold detection programming for
AR9462/AR9565.

This and some upcoming changes to the HAL for these chips should
address some of the signal sensitivity reported by users.

Tested:

* AR9462 (WB222), STA mode

Obtained from: Linux ath9k


277288 17-Jan-2015 adrian

Override the bt enable/disable methods for AR9462 (jupiter) and
AR9565 (Aphrodite.) These need to use the MCI routines, not
the legacy 2-wire / 3-wire bluetooth coexistence methods.

Tested:

* AR9462 (WB222); STA mode


277276 16-Jan-2015 adrian

Tie in the MCI bluetooth coexistence functions into the HAL.

Tested:

* AR9462 (WB222)


276743 06-Jan-2015 adrian

Glue to suck in the QCA9550 HAL support if AH_SUPPORT_QCA9550 is defined.


273056 13-Oct-2014 sbruno

Repair build of tools/ath/athalq and define missing value len.

Reviewed by: adrian


272293 30-Sep-2014 adrian

Remove this stuff - it's no longer needed here.


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


271886 20-Sep-2014 adrian

Quieten the AR9300 HAL attach a little - the setupXTxDesc method
is only called during attach now.

The EDMA TX path never calls this - only the legacy TX path does.


271885 20-Sep-2014 adrian

Quieten the AR9300 HAL probe a bit.


271884 20-Sep-2014 adrian

Don't double-call the ar9300 stub function method.


269793 11-Aug-2014 adrian

Add some more OS_MARK() probes to the AR9300 HAL.


269748 09-Aug-2014 adrian

Work around some rather annoying chip hangs in the AR9331 chip.

If powersave is enabled and there are any transitions to network
or full sleep - even if they're pretty damned brief - eventually
something messes up somewhere and the bus glue between the AR9331
SoC and the AR9331 wifi stops working. It shows up as stuck DMA
and LOCAL_TIMEOUT interrupts.

Both ath9k and the reference driver does a full chip reset if things
get stuck.

So:

* teach the AR9330 HAL about the force_full_reset option I added a
couple of years ago;
* if the chip is currently in full-sleep, do a full-reset;
* if TX DMA and/or RX DMA are still enabled (eg, they did get
stuck during reset) then do a full-reset.

Tested:

* AR9331 SoC, STA mode


269146 26-Jul-2014 adrian

store the AR9300 interrupts away when doing interrupt debugging.


265348 05-May-2014 adrian

Add Atheros AR1111 support to the HAL.

This seems to probe/attach as an AR9485 and thus nothing else besides
adding the device id seems to be required.

ath0: <Atheros AR1111> mem 0xf4800000-0xf487ffff irq 19 at device 0.0 on pci5
ath0: [HT] enabling HT modes
ath0: [HT] enabling short-GI in 20MHz mode
ath0: [HT] 1 stream STBC receive enabled
ath0: [HT] 1 RX streams; 1 TX streams
ath0: AR9485 mac 576.1 RF5110 phy 1926.8
ath0: 2GHz radio: 0x0000; 5GHz radio: 0x0000

The NIC I have here is a 1 antenna, 2GHz only device.

Thankyou to Jim Thompson <jim@netgate.com> for the AR1111 NIC.

Tested:

* AR1111 (pretending not to be an AR9485, but failing miserably);
STA mode with powersave.

Relnotes: yes
Sponsored by: Netgate


265116 30-Apr-2014 adrian

Add ar9300_get_next_tbtt().

Tested:

* AR9380, STA mode


265113 30-Apr-2014 adrian

Only track the power state variable if the power state is changed,
not if the self-generated frame state is changed.


265034 27-Apr-2014 adrian

Note that the AR9380 and later hardware supports MYBEACON.

(Yes, I said AR5416 in the committed code. It's still strictly true.)


263917 29-Mar-2014 adrian

Fix ah_powerMode setting.

Reported by: sbruno


262970 10-Mar-2014 adrian

Also tag the current HAL power mode in ar9300_set_power_mode().


257855 08-Nov-2013 ian

Remove 'inline' from ar9300_init_pll(), it's too big to inline.

Submitted by: adrian@


252381 29-Jun-2013 adrian

Check the return value from ath_hal_malloc()

Reported by: uqs


252238 26-Jun-2013 adrian

If EEPROM data is provided by the AHB layer, copy it in.

This is required for the flash layer code to correctly work.

Tested:

* AR9330 SoC (carambola 2)


252237 26-Jun-2013 adrian

Re-enable the channel set code for the AR933x.

This required a HAL change to map the 2GHz frequency back to an IEEE
channel number in order to fetch some value(s) to program in.


252235 26-Jun-2013 adrian

In preparation to support AR933x SoC builds, allow the AH_SUPPORT_AR93(xx)
options to set the AR9300 HAL defines.

This enables the Wasp, Hornet (and later Scorpion) SoC code.


252233 26-Jun-2013 adrian

Add a stub AR93xx RF module just to keep the linker happy.

When building AR933x test images, I'd like to only build only the ar9300
HAL. To do this, it needs to supply an RF linker entry or it won't compile.

Tested:

* AR933x test builds


251741 14-Jun-2013 adrian

The AR9300 HAL uses this config to program AR_PHY_SWITCH_COM_2 on AR9485
NICs which have bluetooth coexistence enabled.

The WB225 NIC has the common antenna switch configuration set to 0x0 which
disables all external switch bit setting. This obviously won't work when
doing coexistence.

This value is a magic value from the windows .inf files. It _looks_ right
but I haven't yet verified it - unfortunately my AR9285+AR3012 BT combo
has an earlier BT device which doesn't actually _have_ firmware on it.
So I have to fix ath3kfw to handle loading in firmware into the newer
NICs before I can finish testing this.

This may not hold true for CUS198, which is another custom AR9485 board.


251740 14-Jun-2013 adrian

Flip on AH_PRIVATE_DIAG by default; this will include the AR9300 EEPROM
dump code that is worth having around.


251736 14-Jun-2013 adrian

Add bluetooth setup method functions to the HAL.


251735 14-Jun-2013 adrian

If chan is NULL, don't derefrence it.

The bluetooth setup code actually does a channel lookup during setup,
even though we haven't yet programmed in a channel. Sigh.

Tested:

* WB225 (AR9485) + bluetooth


251676 13-Jun-2013 adrian

Set the FreeBSD capability bit to indicate that LNA diversity is enabled.

This is true for the AR9485 and AR933x SoC.


251675 13-Jun-2013 adrian

Return HAL_ANT_VARIABLE for now, until it's unstubbed.

This is needed by the slow antenna diversity logic for the AR9485/AR9462
as it's only engaged if the TX diveristy is set to VARIABLE.


251657 12-Jun-2013 adrian

Tie in the LNA diversity configuration functions into the HAL.


251098 29-May-2013 adrian

Fix a false -> AH_FALSE.

Now, why this hasn't tripped _any_ tinderbox builds yet, I dunno.
It's been like this for a while.


250172 02-May-2013 adrian

Fix this code to compile without warnings - AH_DEBUG was pulling in
ichan, but OS_MARK was not using it. It only uses it when
AH_DEBUG_ALQ is also defined.


250166 02-May-2013 adrian

Add device identification and probe/attach support for the QCA9565.

The QCA9565 is a 1x1 2.4GHz 11n chip with integrated on-chip bluetooth.
The AR9300 HAL already has support for this chip; it just wasn't
included in the probe/attach path.

Tested:

* This commit brought to you over a QCA9565 wifi connection from
FreeBSD.
* .. ie, basic STA, pings, no iperf or antenna diversity checking just yet.


250130 01-May-2013 adrian

Disable TXCONT, it's not here in FreeBSD.


250129 01-May-2013 adrian

There's no HAL_EEPROM in FreeBSD - use ar9300_eeprom_t instead.


250082 30-Apr-2013 adrian

Sync from git - ah_config is in 'ath_hal', not 'ath_hal_private' on
FreeBSD.


250008 28-Apr-2013 adrian

Bring over my FreeBSD modifications for the AR9300 HAL to make it
work in FreeBSD.

This is still heavily a work in progress but I'd rather it start
shipping in -HEAD sooner rather than later.

This doesn't (yet) link it into the build system either for a static
kernel or as a module; that will come later (after many, many make universe
tests.)


250007 28-Apr-2013 adrian

Copy the vendor branch ar9300 code from qcamain_open_hal into this
directory.

Only copy the ar9300 HAL, we don't want to grab everything.


250003 28-Apr-2013 adrian

Initial import of the QCA qcamain_open_hal repository.

Source: https://github.com/qca/qcamain_open_hal_public
Revision: 60390a9f9ac6a20db168fbbc01a4ad4e01c395ce

Thankyou to QCA for this release.