This series of patches implements AHB bus support for ath5k driver.
General comments for AHB bus support in ath5k:
* original patches came from Felix Fetikau. I have just made them working
on latest wireless testing.
* tried with access point functionality with WPA2 and without encryption
* tested on AR5312 and AR2313 for AHB and AR5414 and AR5212 for PCI
* tested with 2.4GHz and 5GHz band. It seems that some older chipsets
including AR5312 need tx descriptor byteswap on big endian systems in
software. I can observe that beacons all auto generated frames are
sent but software generated frames not. AR2313 doesn't need
it and both 11a and 11g seem functional. In madwifi-project, these
were platfroms which specify AH_NEED_DESC_SWAP. Second radio on
AR5312 seems to work even if byteswapping is set in hardware and not
in software. HW bug? At the moment in ath5k byteswapping for TX desc
is done in hardware only.
* compat wireless 2010-11-20 from openwrt was used for testing
* last two patches have to be applied together because otherwise
hardware will crash on reset if only number 9 is committed.
I have kept them separated for better visibility.
There are three false positive checkpatch warnings from them.
Changes since v5 of the patch:
* patch 8/9: add missing register accessor functions for AHB from original
patches. It was causing a crash on module unload.
* rebased on master-2010-11-23
Changes since v6 of the patch:
* these changes are based on Nick Kossifidis comments
* patch 6/9: renamed ath5k_bus_read_srev to ath5k_hw_read_srev
* patch 8/9: fixed not optimal unlikely statement in ath5k_ahb_reg
* patch 9/9: add separate function for wisoc reset and fixed wrong if
statement at the beginning of ath5k_hw_nic_wakeup
* rebased on master-2010-11-30
Felix Fietkau (9):
ath5k: Use Generic DMA for later support of AHB bus.
ath5k: Introduce ath5k_init_softc function as in ath9k
ath5k: Move PCI bus functions to separate file.
ath5k: Use generic eeprom read from common ath_bus_opts struct.
ath5k: Check if pci pdev struct is initialized in common functions.
ath5k: Add a function to read chipset's MAC revision
ath5k: Add initial registers values for radio RF2317 chip.
ath5k: Add AHB bus support.
ath5k: Fix reset and interrupts for AHB type of devices.
drivers/net/wireless/ath/ath5k/Kconfig | 17 +-
drivers/net/wireless/ath/ath5k/Makefile | 2 +
drivers/net/wireless/ath/ath5k/ahb.c | 219 ++++++++++
drivers/net/wireless/ath/ath5k/ath5k.h | 64 +++-
drivers/net/wireless/ath/ath5k/attach.c | 26 +-
drivers/net/wireless/ath/ath5k/base.c | 626 ++++++++++-------------------
drivers/net/wireless/ath/ath5k/base.h | 5 +-
drivers/net/wireless/ath/ath5k/eeprom.c | 40 +--
drivers/net/wireless/ath/ath5k/eeprom.h | 2 +-
drivers/net/wireless/ath/ath5k/initvals.c | 23 +
drivers/net/wireless/ath/ath5k/led.c | 11 +-
drivers/net/wireless/ath/ath5k/pci.c | 326 +++++++++++++++
drivers/net/wireless/ath/ath5k/reg.h | 25 ++
drivers/net/wireless/ath/ath5k/reset.c | 108 +++++-
drivers/net/wireless/ath/ath5k/sysfs.c | 4 +-
15 files changed, 1020 insertions(+), 478 deletions(-)
create mode 100644 drivers/net/wireless/ath/ath5k/ahb.c
create mode 100644 drivers/net/wireless/ath/ath5k/pci.c
On Thu, Dec 02, 2010 at 10:26:46AM +0100, Wojciech Dubowik wrote:
>
> This series of patches implements AHB bus support for ath5k driver.
For the record, your patches arrived in my inbox out of order and would
not apply in the order in which they arrived. This nearly caused me to
write you a nastygram, but instead I discovered the problem and spent
time manually reordering the files in my mbox for application in git.
This is why anyone who tells you not to chain patches as replies to
their preceding patches are clueless whiners who should be ignored.
John
--
John W. Linville Someday the world will need a hero, and you
[email protected] might be all we have. Be ready.
On Thu, Dec 2, 2010 at 8:55 PM, John W. Linville <[email protected]> wrote:
> On Thu, Dec 02, 2010 at 10:26:46AM +0100, Wojciech Dubowik wrote:
>>
>> This series of patches implements AHB bus support for ath5k driver.
>
> For the record, your patches arrived in my inbox out of order and would
> not apply in the order in which they arrived. This nearly caused me to
> write you a nastygram, but instead I discovered the problem and spent
> time manually reordering the files in my mbox for application in git.
>
> This is why anyone who tells you not to chain patches as replies to
> their preceding patches are clueless whiners who should be ignored.
>
> John
> --
> John W. Linville Someday the world will need a hero, and you
> [email protected] might be all we have. Be ready.
This patchset is causing troubles here on a AR5212.
# lspci -nnvv | grep -i ath
02:02.0 Ethernet controller [0200]: Atheros Communications Inc. AR5212
802.11abg NIC [168c:1014] (rev 01)
Kernel driver in use: ath5k
With linux-next (next 20101203) I have to revert the 9 patches and
apply the 6 patches from Nick to regain a stable system (see P.S.
below).
First I thought this
Mega-Hyper-Super-Duper-Sexy-Hagawanga-We-have-waited-so-long-for patch
is the culprit...
$ grep sched setup_linux-next_next20101203.dileks.4.log
(+) OK linux-2.6-tip-sched-core/0001-sched-Add-autogroup-scheduling-feature-automated-per.patch
But this is not the fact for the audio dropouts I enjoyed again.
Then I had a closer look into linux-next GIT... My ath5k seems not to
be a good choice these days :-(.
- Sedat -
P.S.:
$ cd $HOME/linux-2.6
$ grep ath5 setup_linux-next_next20101203.dileks.4.log
(+) OK revert-ath5k-patches/0001-Revert-ath5k-Fix-reset-and-interrupts-for-AHB-type-o.patch
(+) OK revert-ath5k-patches/0002-Revert-ath5k-Add-AHB-bus-support.patch
(+) OK revert-ath5k-patches/0003-Revert-ath5k-Add-initial-registers-values-for-radio-.patch
(+) OK revert-ath5k-patches/0004-Revert-ath5k-Add-a-function-to-read-chipset-s-MAC-re.patch
(+) OK revert-ath5k-patches/0005-Revert-ath5k-Check-if-pci-pdev-struct-is-initialized.patch
(+) OK revert-ath5k-patches/0006-Revert-ath5k-Use-generic-eeprom-read-from-common-ath.patch
(+) OK revert-ath5k-patches/0007-Revert-ath5k-Move-PCI-bus-functions-to-separate-file.patch
(+) OK revert-ath5k-patches/0008-Revert-ath5k-Introduce-ath5k_init_softc-function-as-.patch
(+) OK revert-ath5k-patches/0009-Revert-ath5k-Use-Generic-DMA-for-later-support-of-AH.patch
$ cd linux-2.6.37-rc4/debian/build/source_i386_none/
$ cat .pc/applied-patches
ath5k-fix/1-6-ath5k-Always-write-tx-powertable-on-hw.patch
ath5k-fix/2-6-ath5k-Always-free-tx-buffers-before-reset.patch
ath5k-fix/3-6-ath5k-Disable-ANI-during-reset.patch
ath5k-fix/4-6-ath5k-Fix-reporting-of-RX-dma-stop-failure.patch
ath5k-fix/5-6-ath5k-Update-version-string.patch
ath5k-fix/6-6-ath5k-Include-tx-ack-reporting-on-hw-flags.patch
On Sat, Dec 4, 2010 at 8:02 AM, Sedat Dilek <[email protected]> wrote:
> On Thu, Dec 2, 2010 at 8:55 PM, John W. Linville <[email protected]> wrote:
>> On Thu, Dec 02, 2010 at 10:26:46AM +0100, Wojciech Dubowik wrote:
>>>
>>> This series of patches implements AHB bus support for ath5k driver.
>>
>> For the record, your patches arrived in my inbox out of order and would
>> not apply in the order in which they arrived. This nearly caused me to
>> write you a nastygram, but instead I discovered the problem and spent
>> time manually reordering the files in my mbox for application in git.
>>
>> This is why anyone who tells you not to chain patches as replies to
>> their preceding patches are clueless whiners who should be ignored.
>>
>> John
>> --
>> John W. Linville Someday the world will need a hero, and you
>> [email protected] might be all we have. Be ready.
>
> This patchset is causing troubles here on a AR5212.
>
> # lspci -nnvv | grep -i ath
> 02:02.0 Ethernet controller [0200]: Atheros Communications Inc. AR5212
> 802.11abg NIC [168c:1014] (rev 01)
> Kernel driver in use: ath5k
>
> With linux-next (next 20101203) I have to revert the 9 patches and
> apply the 6 patches from Nick to regain a stable system (see P.S.
> below).
>
> First I thought this
> Mega-Hyper-Super-Duper-Sexy-Hagawanga-We-have-waited-so-long-for patch
> is the culprit...
>
> $ grep sched setup_linux-next_next20101203.dileks.4.log
> (+) OK linux-2.6-tip-sched-core/0001-sched-Add-autogroup-scheduling-feature-automated-per.patch
>
> But this is not the fact for the audio dropouts I enjoyed again.
> Then I had a closer look into linux-next GIT... My ath5k seems not to
> be a good choice these days :-(.
>
> - Sedat -
>
> P.S.:
>
> $ cd $HOME/linux-2.6
> $ grep ath5 setup_linux-next_next20101203.dileks.4.log
> (+) OK revert-ath5k-patches/0001-Revert-ath5k-Fix-reset-and-interrupts-for-AHB-type-o.patch
> (+) OK revert-ath5k-patches/0002-Revert-ath5k-Add-AHB-bus-support.patch
> (+) OK revert-ath5k-patches/0003-Revert-ath5k-Add-initial-registers-values-for-radio-.patch
> (+) OK revert-ath5k-patches/0004-Revert-ath5k-Add-a-function-to-read-chipset-s-MAC-re.patch
> (+) OK revert-ath5k-patches/0005-Revert-ath5k-Check-if-pci-pdev-struct-is-initialized.patch
> (+) OK revert-ath5k-patches/0006-Revert-ath5k-Use-generic-eeprom-read-from-common-ath.patch
> (+) OK revert-ath5k-patches/0007-Revert-ath5k-Move-PCI-bus-functions-to-separate-file.patch
> (+) OK revert-ath5k-patches/0008-Revert-ath5k-Introduce-ath5k_init_softc-function-as-.patch
> (+) OK revert-ath5k-patches/0009-Revert-ath5k-Use-Generic-DMA-for-later-support-of-AH.patch
>
> $ cd linux-2.6.37-rc4/debian/build/source_i386_none/
> $ cat .pc/applied-patches
> ath5k-fix/1-6-ath5k-Always-write-tx-powertable-on-hw.patch
> ath5k-fix/2-6-ath5k-Always-free-tx-buffers-before-reset.patch
> ath5k-fix/3-6-ath5k-Disable-ANI-during-reset.patch
> ath5k-fix/4-6-ath5k-Fix-reporting-of-RX-dma-stop-failure.patch
> ath5k-fix/5-6-ath5k-Update-version-string.patch
> ath5k-fix/6-6-ath5k-Include-tx-ack-reporting-on-hw-flags.patch
>
Just as additional information: Audio-dropouts is a bit too weak...
the total is system is freaky, means even browsing through Debian
app-menue is a pain!
Modinfo lists now again aliases (with pci-id matching) for ath5k -
with "pure" linux-next (next-20101203) this was not working see my
report in [1].
As workaround I did:
# grep ath5k /etc/modules
ath5k
Also this needs an investigation.
- Sedat -
[1] http://marc.info/?l=linux-wireless&m=129139345715750&w=2
P.S.: Modinfo working again
# modinfo ath5k
filename:
/lib/modules/2.6.37-rc4-686/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko
version: 0.7.0
license: Dual BSD/GPL
description: Support for 5xxx series of Atheros 802.11 wireless LAN cards.
author: Nick Kossifidis
author: Jiri Slaby
srcversion: E31C2814D78420D8DAB468B
alias: pci:v0000168Cd0000001Dsv*sd*bc*sc*i*
alias: pci:v0000168Cd0000001Csv*sd*bc*sc*i*
alias: pci:v0000168Cd0000001Bsv*sd*bc*sc*i*
alias: pci:v0000168Cd0000001Asv*sd*bc*sc*i*
alias: pci:v0000168Cd00000019sv*sd*bc*sc*i*
alias: pci:v0000168Cd00000018sv*sd*bc*sc*i*
alias: pci:v0000168Cd00000017sv*sd*bc*sc*i*
alias: pci:v0000168Cd00000016sv*sd*bc*sc*i*
alias: pci:v0000168Cd00000015sv*sd*bc*sc*i*
alias: pci:v0000168Cd00000014sv*sd*bc*sc*i*
alias: pci:v0000168Cd00001014sv*sd*bc*sc*i*
alias: pci:v000010B7d00000013sv*sd*bc*sc*i*
alias: pci:v0000A727d00000013sv*sd*bc*sc*i*
alias: pci:v0000168Cd00000013sv*sd*bc*sc*i*
alias: pci:v0000168Cd00000012sv*sd*bc*sc*i*
alias: pci:v0000168Cd00000011sv*sd*bc*sc*i*
alias: pci:v0000168Cd00000007sv*sd*bc*sc*i*
alias: pci:v0000168Cd00000207sv*sd*bc*sc*i*
depends: mac80211,cfg80211,ath
vermagic: 2.6.37-rc4-686 SMP mod_unload modversions 686
parm: debug:uint
parm: nohwcrypt:Disable hardware encryption. (bool)
parm: all_channels:Expose all channels the device can use. (bool)