* [linux-next] next-20101207: Better now, but modinfo ath5k
@ 2010-12-07 11:24 ` Sedat Dilek
0 siblings, 0 replies; 10+ messages in thread
From: Sedat Dilek @ 2010-12-07 11:24 UTC (permalink / raw)
To: wireless
Cc: LKML, John Linville, Stephen Rothwell, Nick Kossifidis,
Bruno Randolf, ath5k-devel
Hi,
I just compiled linux-next (next-20101207) which also includes
wireless-next-2.6 (master-2010-12-06) [1].
I have already reported on linux-wireless (short: l-w) ML that after
especially the merge of "AHB Bus support" patchset (see [2]) my ath5k
was not working as expected in daily use (also modinfo).
I am not sure if it is the driver but reverting the 9 commits in my
local linux-next GIT seemed to "stabilize" a bit the Internet
connection.
The patchset from Nick (see below) definitely helped to stabilize ath5k.
What means "daily use"?
Quassel IRC-client (around 20 channels), Iceweasel (Debian's answer to
firefox) with sometimes 20 tabs open and radio live-stream in VLC.
Here and there I have still audio-dropouts or when typing emails in
web-based email-service, it stalls when "stressing" with for example
parallelly creating a tarball (that's normally no huge workload) the
probability for audio-dropouts increases.
As I said I am not sure what is causing these hangs, it's ath5k
driver? Is it sth. else?
How to dig into it?
Unfortunately, modinfo does not list aliases with pci-id matching (I
have already reported to l-w ML, see below).
With reverting "AHB Bus support" patchset modinfo works as expected.
As a workaround I added ath5k to /etc/modules (see below), otherwise I
have to stop networking, unload + reload ath5k and start networking
again.
I also added an iw station dump (see below) and outputs of filtered
lspci and dmesg commands.
Not sure if this is helpful to mention, I use crda and wireless-regdb
(see below).
BTW, I have these two patches in addition to linux-next:
(+) OK mac80211-fix/mac80211-fix-a-compiler-warning.patch
(+) OK ath5k-fix/ath5k-Use-capabilities-information-for-the-number-of-TX-queues.patch
Any ideas/help appreciated, Thanks in advance.
Kind Regards,
- Sedat -
[1] http://git.kernel.org/?p=linux/kernel/git/linville/wireless-next-2.6.git
[2] http://wireless.kernel.org/en/users/Drivers/ath5k
P.S.: Patchset from Nick Kossifidis
$ ls -l ath5k-fix/*-6-*
-rw-r--r-- 1 sd sd 3439 3. Dez 06:52
ath5k-fix/1-6-ath5k-Always-write-tx-powertable-on-hw.patch
-rw-r--r-- 1 sd sd 1725 3. Dez 06:51
ath5k-fix/2-6-ath5k-Always-free-tx-buffers-before-reset.patch
-rw-r--r-- 1 sd sd 2132 3. Dez 06:52
ath5k-fix/3-6-ath5k-Disable-ANI-during-reset.patch
-rw-r--r-- 1 sd sd 1360 3. Dez 06:52
ath5k-fix/4-6-ath5k-Fix-reporting-of-RX-dma-stop-failure.patch
-rw-r--r-- 1 sd sd 1735 3. Dez 06:52
ath5k-fix/5-6-ath5k-Update-version-string.patch
-rw-r--r-- 1 sd sd 1744 3. Dez 06:53
ath5k-fix/6-6-ath5k-Include-tx-ack-reporting-on-hw-flags.patch
# modinfo ath5k
filename:
/lib/modules/2.6.37-rc4-686/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko
version: 0.6.0 (EXPERIMENTAL)
license: Dual BSD/GPL
description: Support for 5xxx series of Atheros 802.11 wireless LAN cards.
author: Nick Kossifidis
author: Jiri Slaby
srcversion: 49DBF0BE975A1F9917151F4
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)
# grep ath5k /etc/modules
ath5k
# iw wlan0 station dump
Station 00:04:0e:e4:00:3d (on wlan0)
inactive time: 48 ms
rx bytes: 60460696
rx packets: 95331
tx bytes: 5034456
tx packets: 50165
signal: -50 dBm
tx bitrate: 36.0 MBit/s
# 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
# dmesg | egrep -i 'ath|80211|wlan'
[ 14.444118] cfg80211: Calling CRDA to update world regulatory domain
[ 14.725757] ath5k 0000:02:02.0: PCI INT A -> Link[LNKC] -> GSI 11
(level, low) -> IRQ 11
[ 14.736940] ath5k 0000:02:02.0: registered as 'phy0'
[ 15.036636] ath: EEPROM regdomain: 0x61
[ 15.036640] ath: EEPROM indicates we should expect a direct regpair map
[ 15.036646] ath: Country alpha2 being used: 00
[ 15.036648] ath: Regpair used: 0x61
[ 15.665415] cfg80211: World regulatory domain updated:
[ 15.676274] cfg80211: (start_freq - end_freq @ bandwidth),
(max_antenna_gain, max_eirp)
[ 15.687303] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz),
(300 mBi, 2000 mBm)
[ 15.698413] cfg80211: (2457000 KHz - 2482000 KHz @ 20000 KHz),
(300 mBi, 2000 mBm)
[ 15.709461] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz),
(300 mBi, 2000 mBm)
[ 15.720489] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz),
(300 mBi, 2000 mBm)
[ 15.731526] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz),
(300 mBi, 2000 mBm)
[ 15.754490] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[ 15.755482] Registered led device: ath5k-phy0::rx
[ 15.755516] Registered led device: ath5k-phy0::tx
[ 15.755529] ath5k phy0: Atheros AR5212 chip found (MAC: 0x56, PHY: 0x41)
[ 15.766686] ath5k phy0: RF5111 5GHz radio found (0x17)
[ 15.777870] ath5k phy0: RF2111 2GHz radio found (0x23)
[ 17.374647] ADDRCONF(NETDEV_UP): wlan0: link is not ready
[ 22.596104] wlan0: authenticate with 00:04:0e:e4:00:3d (try 1)
[ 22.597531] wlan0: authenticated
[ 22.597549] wlan0: associate with 00:04:0e:e4:00:3d (try 1)
[ 22.602095] wlan0: RX AssocResp from 00:04:0e:e4:00:3d (capab=0x411
status=0 aid=1)
[ 22.602100] wlan0: associated
[ 22.602986] ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[ 33.312034] wlan0: no IPv6 routers present
[ 215.317105] cfg80211: Calling CRDA to update world regulatory domain
[ 215.346333] cfg80211: World regulatory domain updated:
[ 215.346341] cfg80211: (start_freq - end_freq @ bandwidth),
(max_antenna_gain, max_eirp)
[ 215.346346] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz),
(300 mBi, 2000 mBm)
[ 215.346350] cfg80211: (2457000 KHz - 2482000 KHz @ 20000 KHz),
(300 mBi, 2000 mBm)
[ 215.346354] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz),
(300 mBi, 2000 mBm)
[ 215.346358] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz),
(300 mBi, 2000 mBm)
[ 215.346362] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz),
(300 mBi, 2000 mBm)
[ 219.627199] wlan0: authenticate with 00:04:0e:e4:00:3d (try 1)
[ 219.629321] wlan0: authenticated
[ 219.629365] wlan0: associate with 00:04:0e:e4:00:3d (try 1)
[ 219.635825] wlan0: RX AssocResp from 00:04:0e:e4:00:3d (capab=0x411
status=0 aid=1)
[ 219.635836] wlan0: associated
# dpkg -l | egrep 'crda|wireless-regdb' | cut -c-80
ii crda 1.1.1-0~svnr1515.3
ii wireless-regdb 2010.11.24-1
^ permalink raw reply [flat|nested] 10+ messages in thread* [linux-next] next-20101207: Better now, but modinfo ath5k @ 2010-12-07 11:24 ` Sedat Dilek 0 siblings, 0 replies; 10+ messages in thread From: Sedat Dilek @ 2010-12-07 11:24 UTC (permalink / raw) To: wireless Cc: LKML, John Linville, Stephen Rothwell, Nick Kossifidis, Bruno Randolf, ath5k-devel Hi, I just compiled linux-next (next-20101207) which also includes wireless-next-2.6 (master-2010-12-06) [1]. I have already reported on linux-wireless (short: l-w) ML that after especially the merge of "AHB Bus support" patchset (see [2]) my ath5k was not working as expected in daily use (also modinfo). I am not sure if it is the driver but reverting the 9 commits in my local linux-next GIT seemed to "stabilize" a bit the Internet connection. The patchset from Nick (see below) definitely helped to stabilize ath5k. What means "daily use"? Quassel IRC-client (around 20 channels), Iceweasel (Debian's answer to firefox) with sometimes 20 tabs open and radio live-stream in VLC. Here and there I have still audio-dropouts or when typing emails in web-based email-service, it stalls when "stressing" with for example parallelly creating a tarball (that's normally no huge workload) the probability for audio-dropouts increases. As I said I am not sure what is causing these hangs, it's ath5k driver? Is it sth. else? How to dig into it? Unfortunately, modinfo does not list aliases with pci-id matching (I have already reported to l-w ML, see below). With reverting "AHB Bus support" patchset modinfo works as expected. As a workaround I added ath5k to /etc/modules (see below), otherwise I have to stop networking, unload + reload ath5k and start networking again. I also added an iw station dump (see below) and outputs of filtered lspci and dmesg commands. Not sure if this is helpful to mention, I use crda and wireless-regdb (see below). BTW, I have these two patches in addition to linux-next: (+) OK mac80211-fix/mac80211-fix-a-compiler-warning.patch (+) OK ath5k-fix/ath5k-Use-capabilities-information-for-the-number-of-TX-queues.patch Any ideas/help appreciated, Thanks in advance. Kind Regards, - Sedat - [1] http://git.kernel.org/?p=linux/kernel/git/linville/wireless-next-2.6.git [2] http://wireless.kernel.org/en/users/Drivers/ath5k P.S.: Patchset from Nick Kossifidis $ ls -l ath5k-fix/*-6-* -rw-r--r-- 1 sd sd 3439 3. Dez 06:52 ath5k-fix/1-6-ath5k-Always-write-tx-powertable-on-hw.patch -rw-r--r-- 1 sd sd 1725 3. Dez 06:51 ath5k-fix/2-6-ath5k-Always-free-tx-buffers-before-reset.patch -rw-r--r-- 1 sd sd 2132 3. Dez 06:52 ath5k-fix/3-6-ath5k-Disable-ANI-during-reset.patch -rw-r--r-- 1 sd sd 1360 3. Dez 06:52 ath5k-fix/4-6-ath5k-Fix-reporting-of-RX-dma-stop-failure.patch -rw-r--r-- 1 sd sd 1735 3. Dez 06:52 ath5k-fix/5-6-ath5k-Update-version-string.patch -rw-r--r-- 1 sd sd 1744 3. Dez 06:53 ath5k-fix/6-6-ath5k-Include-tx-ack-reporting-on-hw-flags.patch # modinfo ath5k filename: /lib/modules/2.6.37-rc4-686/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko version: 0.6.0 (EXPERIMENTAL) license: Dual BSD/GPL description: Support for 5xxx series of Atheros 802.11 wireless LAN cards. author: Nick Kossifidis author: Jiri Slaby srcversion: 49DBF0BE975A1F9917151F4 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) # grep ath5k /etc/modules ath5k # iw wlan0 station dump Station 00:04:0e:e4:00:3d (on wlan0) inactive time: 48 ms rx bytes: 60460696 rx packets: 95331 tx bytes: 5034456 tx packets: 50165 signal: -50 dBm tx bitrate: 36.0 MBit/s # 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 # dmesg | egrep -i 'ath|80211|wlan' [ 14.444118] cfg80211: Calling CRDA to update world regulatory domain [ 14.725757] ath5k 0000:02:02.0: PCI INT A -> Link[LNKC] -> GSI 11 (level, low) -> IRQ 11 [ 14.736940] ath5k 0000:02:02.0: registered as 'phy0' [ 15.036636] ath: EEPROM regdomain: 0x61 [ 15.036640] ath: EEPROM indicates we should expect a direct regpair map [ 15.036646] ath: Country alpha2 being used: 00 [ 15.036648] ath: Regpair used: 0x61 [ 15.665415] cfg80211: World regulatory domain updated: [ 15.676274] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp) [ 15.687303] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) [ 15.698413] cfg80211: (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm) [ 15.709461] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm) [ 15.720489] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) [ 15.731526] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) [ 15.754490] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht' [ 15.755482] Registered led device: ath5k-phy0::rx [ 15.755516] Registered led device: ath5k-phy0::tx [ 15.755529] ath5k phy0: Atheros AR5212 chip found (MAC: 0x56, PHY: 0x41) [ 15.766686] ath5k phy0: RF5111 5GHz radio found (0x17) [ 15.777870] ath5k phy0: RF2111 2GHz radio found (0x23) [ 17.374647] ADDRCONF(NETDEV_UP): wlan0: link is not ready [ 22.596104] wlan0: authenticate with 00:04:0e:e4:00:3d (try 1) [ 22.597531] wlan0: authenticated [ 22.597549] wlan0: associate with 00:04:0e:e4:00:3d (try 1) [ 22.602095] wlan0: RX AssocResp from 00:04:0e:e4:00:3d (capab=0x411 status=0 aid=1) [ 22.602100] wlan0: associated [ 22.602986] ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready [ 33.312034] wlan0: no IPv6 routers present [ 215.317105] cfg80211: Calling CRDA to update world regulatory domain [ 215.346333] cfg80211: World regulatory domain updated: [ 215.346341] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp) [ 215.346346] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) [ 215.346350] cfg80211: (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm) [ 215.346354] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm) [ 215.346358] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) [ 215.346362] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) [ 219.627199] wlan0: authenticate with 00:04:0e:e4:00:3d (try 1) [ 219.629321] wlan0: authenticated [ 219.629365] wlan0: associate with 00:04:0e:e4:00:3d (try 1) [ 219.635825] wlan0: RX AssocResp from 00:04:0e:e4:00:3d (capab=0x411 status=0 aid=1) [ 219.635836] wlan0: associated # dpkg -l | egrep 'crda|wireless-regdb' | cut -c-80 ii crda 1.1.1-0~svnr1515.3 ii wireless-regdb 2010.11.24-1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [linux-next] next-20101207: Better now, but modinfo ath5k 2010-12-07 11:24 ` Sedat Dilek @ 2010-12-07 11:28 ` Sedat Dilek -1 siblings, 0 replies; 10+ messages in thread From: Sedat Dilek @ 2010-12-07 11:28 UTC (permalink / raw) To: wireless Cc: LKML, John Linville, Stephen Rothwell, Nick Kossifidis, Bruno Randolf, ath5k-devel On Tue, Dec 7, 2010 at 12:24 PM, Sedat Dilek <sedat.dilek@googlemail.com> wrote: > Hi, > > I just compiled linux-next (next-20101207) which also includes > wireless-next-2.6 (master-2010-12-06) [1]. > > I have already reported on linux-wireless (short: l-w) ML that after > especially the merge of "AHB Bus support" patchset (see [2]) my ath5k > was not working as expected in daily use (also modinfo). > > I am not sure if it is the driver but reverting the 9 commits in my > local linux-next GIT seemed to "stabilize" a bit the Internet > connection. > The patchset from Nick (see below) definitely helped to stabilize ath5k. > > What means "daily use"? > Quassel IRC-client (around 20 channels), Iceweasel (Debian's answer to > firefox) with sometimes 20 tabs open and radio live-stream in VLC. > > Here and there I have still audio-dropouts or when typing emails in > web-based email-service, it stalls when "stressing" with for example > parallelly creating a tarball (that's normally no huge workload) the > probability for audio-dropouts increases. > > As I said I am not sure what is causing these hangs, it's ath5k > driver? Is it sth. else? > How to dig into it? > > Unfortunately, modinfo does not list aliases with pci-id matching (I > have already reported to l-w ML, see below). > With reverting "AHB Bus support" patchset modinfo works as expected. > > As a workaround I added ath5k to /etc/modules (see below), otherwise I > have to stop networking, unload + reload ath5k and start networking > again. > > I also added an iw station dump (see below) and outputs of filtered > lspci and dmesg commands. > > Not sure if this is helpful to mention, I use crda and wireless-regdb > (see below). > > BTW, I have these two patches in addition to linux-next: > (+) OK mac80211-fix/mac80211-fix-a-compiler-warning.patch > (+) OK ath5k-fix/ath5k-Use-capabilities-information-for-the-number-of-TX-queues.patch > > Any ideas/help appreciated, Thanks in advance. > > Kind Regards, > - Sedat - > > [1] http://git.kernel.org/?p=linux/kernel/git/linville/wireless-next-2.6.git > [2] http://wireless.kernel.org/en/users/Drivers/ath5k > > P.S.: Patchset from Nick Kossifidis > > $ ls -l ath5k-fix/*-6-* > -rw-r--r-- 1 sd sd 3439 3. Dez 06:52 > ath5k-fix/1-6-ath5k-Always-write-tx-powertable-on-hw.patch > -rw-r--r-- 1 sd sd 1725 3. Dez 06:51 > ath5k-fix/2-6-ath5k-Always-free-tx-buffers-before-reset.patch > -rw-r--r-- 1 sd sd 2132 3. Dez 06:52 > ath5k-fix/3-6-ath5k-Disable-ANI-during-reset.patch > -rw-r--r-- 1 sd sd 1360 3. Dez 06:52 > ath5k-fix/4-6-ath5k-Fix-reporting-of-RX-dma-stop-failure.patch > -rw-r--r-- 1 sd sd 1735 3. Dez 06:52 > ath5k-fix/5-6-ath5k-Update-version-string.patch > -rw-r--r-- 1 sd sd 1744 3. Dez 06:53 > ath5k-fix/6-6-ath5k-Include-tx-ack-reporting-on-hw-flags.patch > > # modinfo ath5k > filename: > /lib/modules/2.6.37-rc4-686/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko > version: 0.6.0 (EXPERIMENTAL) > license: Dual BSD/GPL > description: Support for 5xxx series of Atheros 802.11 wireless LAN cards. > author: Nick Kossifidis > author: Jiri Slaby > srcversion: 49DBF0BE975A1F9917151F4 > 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) > > # grep ath5k /etc/modules > ath5k > > # iw wlan0 station dump > Station 00:04:0e:e4:00:3d (on wlan0) > inactive time: 48 ms > rx bytes: 60460696 > rx packets: 95331 > tx bytes: 5034456 > tx packets: 50165 > signal: -50 dBm > tx bitrate: 36.0 MBit/s > > # 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 > > # dmesg | egrep -i 'ath|80211|wlan' > [ 14.444118] cfg80211: Calling CRDA to update world regulatory domain > [ 14.725757] ath5k 0000:02:02.0: PCI INT A -> Link[LNKC] -> GSI 11 > (level, low) -> IRQ 11 > [ 14.736940] ath5k 0000:02:02.0: registered as 'phy0' > [ 15.036636] ath: EEPROM regdomain: 0x61 > [ 15.036640] ath: EEPROM indicates we should expect a direct regpair map > [ 15.036646] ath: Country alpha2 being used: 00 > [ 15.036648] ath: Regpair used: 0x61 > [ 15.665415] cfg80211: World regulatory domain updated: > [ 15.676274] cfg80211: (start_freq - end_freq @ bandwidth), > (max_antenna_gain, max_eirp) > [ 15.687303] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), > (300 mBi, 2000 mBm) > [ 15.698413] cfg80211: (2457000 KHz - 2482000 KHz @ 20000 KHz), > (300 mBi, 2000 mBm) > [ 15.709461] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), > (300 mBi, 2000 mBm) > [ 15.720489] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), > (300 mBi, 2000 mBm) > [ 15.731526] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), > (300 mBi, 2000 mBm) > [ 15.754490] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht' > [ 15.755482] Registered led device: ath5k-phy0::rx > [ 15.755516] Registered led device: ath5k-phy0::tx > [ 15.755529] ath5k phy0: Atheros AR5212 chip found (MAC: 0x56, PHY: 0x41) > [ 15.766686] ath5k phy0: RF5111 5GHz radio found (0x17) > [ 15.777870] ath5k phy0: RF2111 2GHz radio found (0x23) > [ 17.374647] ADDRCONF(NETDEV_UP): wlan0: link is not ready > [ 22.596104] wlan0: authenticate with 00:04:0e:e4:00:3d (try 1) > [ 22.597531] wlan0: authenticated > [ 22.597549] wlan0: associate with 00:04:0e:e4:00:3d (try 1) > [ 22.602095] wlan0: RX AssocResp from 00:04:0e:e4:00:3d (capab=0x411 > status=0 aid=1) > [ 22.602100] wlan0: associated > [ 22.602986] ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready > [ 33.312034] wlan0: no IPv6 routers present > [ 215.317105] cfg80211: Calling CRDA to update world regulatory domain > [ 215.346333] cfg80211: World regulatory domain updated: > [ 215.346341] cfg80211: (start_freq - end_freq @ bandwidth), > (max_antenna_gain, max_eirp) > [ 215.346346] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), > (300 mBi, 2000 mBm) > [ 215.346350] cfg80211: (2457000 KHz - 2482000 KHz @ 20000 KHz), > (300 mBi, 2000 mBm) > [ 215.346354] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), > (300 mBi, 2000 mBm) > [ 215.346358] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), > (300 mBi, 2000 mBm) > [ 215.346362] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), > (300 mBi, 2000 mBm) > [ 219.627199] wlan0: authenticate with 00:04:0e:e4:00:3d (try 1) > [ 219.629321] wlan0: authenticated > [ 219.629365] wlan0: associate with 00:04:0e:e4:00:3d (try 1) > [ 219.635825] wlan0: RX AssocResp from 00:04:0e:e4:00:3d (capab=0x411 > status=0 aid=1) > [ 219.635836] wlan0: associated > > # dpkg -l | egrep 'crda|wireless-regdb' | cut -c-80 > ii crda 1.1.1-0~svnr1515.3 > ii wireless-regdb 2010.11.24-1 > Might also be interesting to know: # wpa_cli -i wlan0 status bssid=00:04:0e:e4:00:3d ssid=myCastle-WLAN WPA (Wireless LAN) id=0 pairwise_cipher=CCMP group_cipher=TKIP key_mgmt=WPA2-PSK wpa_state=COMPLETED ip_address=192.168.178.25 - Sedat - ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [linux-next] next-20101207: Better now, but modinfo ath5k @ 2010-12-07 11:28 ` Sedat Dilek 0 siblings, 0 replies; 10+ messages in thread From: Sedat Dilek @ 2010-12-07 11:28 UTC (permalink / raw) To: wireless Cc: LKML, John Linville, Stephen Rothwell, Nick Kossifidis, Bruno Randolf, ath5k-devel On Tue, Dec 7, 2010 at 12:24 PM, Sedat Dilek <sedat.dilek@googlemail.com> wrote: > Hi, > > I just compiled linux-next (next-20101207) which also includes > wireless-next-2.6 (master-2010-12-06) [1]. > > I have already reported on linux-wireless (short: l-w) ML that after > especially the merge of "AHB Bus support" patchset (see [2]) my ath5k > was not working as expected in daily use (also modinfo). > > I am not sure if it is the driver but reverting the 9 commits in my > local linux-next GIT seemed to "stabilize" a bit the Internet > connection. > The patchset from Nick (see below) definitely helped to stabilize ath5k. > > What means "daily use"? > Quassel IRC-client (around 20 channels), Iceweasel (Debian's answer to > firefox) with sometimes 20 tabs open and radio live-stream in VLC. > > Here and there I have still audio-dropouts or when typing emails in > web-based email-service, it stalls when "stressing" with for example > parallelly creating a tarball (that's normally no huge workload) the > probability for audio-dropouts increases. > > As I said I am not sure what is causing these hangs, it's ath5k > driver? Is it sth. else? > How to dig into it? > > Unfortunately, modinfo does not list aliases with pci-id matching (I > have already reported to l-w ML, see below). > With reverting "AHB Bus support" patchset modinfo works as expected. > > As a workaround I added ath5k to /etc/modules (see below), otherwise I > have to stop networking, unload + reload ath5k and start networking > again. > > I also added an iw station dump (see below) and outputs of filtered > lspci and dmesg commands. > > Not sure if this is helpful to mention, I use crda and wireless-regdb > (see below). > > BTW, I have these two patches in addition to linux-next: > (+) OK mac80211-fix/mac80211-fix-a-compiler-warning.patch > (+) OK ath5k-fix/ath5k-Use-capabilities-information-for-the-number-of-TX-queues.patch > > Any ideas/help appreciated, Thanks in advance. > > Kind Regards, > - Sedat - > > [1] http://git.kernel.org/?p=linux/kernel/git/linville/wireless-next-2.6.git > [2] http://wireless.kernel.org/en/users/Drivers/ath5k > > P.S.: Patchset from Nick Kossifidis > > $ ls -l ath5k-fix/*-6-* > -rw-r--r-- 1 sd sd 3439 3. Dez 06:52 > ath5k-fix/1-6-ath5k-Always-write-tx-powertable-on-hw.patch > -rw-r--r-- 1 sd sd 1725 3. Dez 06:51 > ath5k-fix/2-6-ath5k-Always-free-tx-buffers-before-reset.patch > -rw-r--r-- 1 sd sd 2132 3. Dez 06:52 > ath5k-fix/3-6-ath5k-Disable-ANI-during-reset.patch > -rw-r--r-- 1 sd sd 1360 3. Dez 06:52 > ath5k-fix/4-6-ath5k-Fix-reporting-of-RX-dma-stop-failure.patch > -rw-r--r-- 1 sd sd 1735 3. Dez 06:52 > ath5k-fix/5-6-ath5k-Update-version-string.patch > -rw-r--r-- 1 sd sd 1744 3. Dez 06:53 > ath5k-fix/6-6-ath5k-Include-tx-ack-reporting-on-hw-flags.patch > > # modinfo ath5k > filename: > /lib/modules/2.6.37-rc4-686/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko > version: 0.6.0 (EXPERIMENTAL) > license: Dual BSD/GPL > description: Support for 5xxx series of Atheros 802.11 wireless LAN cards. > author: Nick Kossifidis > author: Jiri Slaby > srcversion: 49DBF0BE975A1F9917151F4 > 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) > > # grep ath5k /etc/modules > ath5k > > # iw wlan0 station dump > Station 00:04:0e:e4:00:3d (on wlan0) > inactive time: 48 ms > rx bytes: 60460696 > rx packets: 95331 > tx bytes: 5034456 > tx packets: 50165 > signal: -50 dBm > tx bitrate: 36.0 MBit/s > > # 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 > > # dmesg | egrep -i 'ath|80211|wlan' > [ 14.444118] cfg80211: Calling CRDA to update world regulatory domain > [ 14.725757] ath5k 0000:02:02.0: PCI INT A -> Link[LNKC] -> GSI 11 > (level, low) -> IRQ 11 > [ 14.736940] ath5k 0000:02:02.0: registered as 'phy0' > [ 15.036636] ath: EEPROM regdomain: 0x61 > [ 15.036640] ath: EEPROM indicates we should expect a direct regpair map > [ 15.036646] ath: Country alpha2 being used: 00 > [ 15.036648] ath: Regpair used: 0x61 > [ 15.665415] cfg80211: World regulatory domain updated: > [ 15.676274] cfg80211: (start_freq - end_freq @ bandwidth), > (max_antenna_gain, max_eirp) > [ 15.687303] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), > (300 mBi, 2000 mBm) > [ 15.698413] cfg80211: (2457000 KHz - 2482000 KHz @ 20000 KHz), > (300 mBi, 2000 mBm) > [ 15.709461] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), > (300 mBi, 2000 mBm) > [ 15.720489] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), > (300 mBi, 2000 mBm) > [ 15.731526] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), > (300 mBi, 2000 mBm) > [ 15.754490] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht' > [ 15.755482] Registered led device: ath5k-phy0::rx > [ 15.755516] Registered led device: ath5k-phy0::tx > [ 15.755529] ath5k phy0: Atheros AR5212 chip found (MAC: 0x56, PHY: 0x41) > [ 15.766686] ath5k phy0: RF5111 5GHz radio found (0x17) > [ 15.777870] ath5k phy0: RF2111 2GHz radio found (0x23) > [ 17.374647] ADDRCONF(NETDEV_UP): wlan0: link is not ready > [ 22.596104] wlan0: authenticate with 00:04:0e:e4:00:3d (try 1) > [ 22.597531] wlan0: authenticated > [ 22.597549] wlan0: associate with 00:04:0e:e4:00:3d (try 1) > [ 22.602095] wlan0: RX AssocResp from 00:04:0e:e4:00:3d (capab=0x411 > status=0 aid=1) > [ 22.602100] wlan0: associated > [ 22.602986] ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready > [ 33.312034] wlan0: no IPv6 routers present > [ 215.317105] cfg80211: Calling CRDA to update world regulatory domain > [ 215.346333] cfg80211: World regulatory domain updated: > [ 215.346341] cfg80211: (start_freq - end_freq @ bandwidth), > (max_antenna_gain, max_eirp) > [ 215.346346] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), > (300 mBi, 2000 mBm) > [ 215.346350] cfg80211: (2457000 KHz - 2482000 KHz @ 20000 KHz), > (300 mBi, 2000 mBm) > [ 215.346354] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), > (300 mBi, 2000 mBm) > [ 215.346358] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), > (300 mBi, 2000 mBm) > [ 215.346362] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), > (300 mBi, 2000 mBm) > [ 219.627199] wlan0: authenticate with 00:04:0e:e4:00:3d (try 1) > [ 219.629321] wlan0: authenticated > [ 219.629365] wlan0: associate with 00:04:0e:e4:00:3d (try 1) > [ 219.635825] wlan0: RX AssocResp from 00:04:0e:e4:00:3d (capab=0x411 > status=0 aid=1) > [ 219.635836] wlan0: associated > > # dpkg -l | egrep 'crda|wireless-regdb' | cut -c-80 > ii crda 1.1.1-0~svnr1515.3 > ii wireless-regdb 2010.11.24-1 > Might also be interesting to know: # wpa_cli -i wlan0 status bssid=00:04:0e:e4:00:3d ssid=myCastle-WLAN WPA (Wireless LAN) id=0 pairwise_cipher=CCMP group_cipher=TKIP key_mgmt=WPA2-PSK wpa_state=COMPLETED ip_address=192.168.178.25 - Sedat - ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [linux-next] next-20101207: Better now, but modinfo ath5k 2010-12-07 11:24 ` Sedat Dilek (?) (?) @ 2010-12-07 14:26 ` John W. Linville 2010-12-07 15:57 ` Sedat Dilek -1 siblings, 1 reply; 10+ messages in thread From: John W. Linville @ 2010-12-07 14:26 UTC (permalink / raw) To: sedat.dilek Cc: wireless, LKML, Stephen Rothwell, Nick Kossifidis, Bruno Randolf, ath5k-devel On Tue, Dec 07, 2010 at 12:24:14PM +0100, Sedat Dilek wrote: > I have already reported on linux-wireless (short: l-w) ML that after > especially the merge of "AHB Bus support" patchset (see [2]) my ath5k > was not working as expected in daily use (also modinfo). > > I am not sure if it is the driver but reverting the 9 commits in my > local linux-next GIT seemed to "stabilize" a bit the Internet > connection. > The patchset from Nick (see below) definitely helped to stabilize ath5k. I imagine that these are the "9 commits" you mean: > git rev-list c30ae13..4cebb34 4cebb34caa5122216a1e2451eae9e0fc47ec2589 a0b907ee2a71052fefdf6151764095f3f97b3275 c31b5c9c806b1fbdc9e98885d897664a0d482989 e7aecd327d80b2f156b54769013aaccb2a20645a 8efa5d7d6ad307ae2d220def37ca89594062c40d 4aa5d783c9e1c72e4950ff34f388077ccecac74a e5b046d86fac609f636d127a38de94a175c7e83b 132b1c3ee38ea6fa0501004fd0f19acb554e5a44 aeae4ac9090462ea38387dcdbac4f01b944af6a4 Most of those look fairly harmless so long as you don't define CONFIG_ATHEROS_AR231X. Just to narrow things down...if you only revert the first 8 (i.e. leave aeae4ac alone), do you still have problems? Or does it still "stabilize"? That patch converts the driver to the generic DMA API. It seems OK at first glance, but I suspect it is the only one likely to be effecting your situation. John -- John W. Linville Someday the world will need a hero, and you linville@tuxdriver.com might be all we have. Be ready. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [linux-next] next-20101207: Better now, but modinfo ath5k 2010-12-07 14:26 ` John W. Linville @ 2010-12-07 15:57 ` Sedat Dilek 2010-12-07 15:59 ` John W. Linville 0 siblings, 1 reply; 10+ messages in thread From: Sedat Dilek @ 2010-12-07 15:57 UTC (permalink / raw) To: John W. Linville Cc: wireless, LKML, Stephen Rothwell, Nick Kossifidis, Bruno Randolf, ath5k-devel On Tue, Dec 7, 2010 at 3:26 PM, John W. Linville <linville@tuxdriver.com> wrote: > On Tue, Dec 07, 2010 at 12:24:14PM +0100, Sedat Dilek wrote: > >> I have already reported on linux-wireless (short: l-w) ML that after >> especially the merge of "AHB Bus support" patchset (see [2]) my ath5k >> was not working as expected in daily use (also modinfo). >> >> I am not sure if it is the driver but reverting the 9 commits in my >> local linux-next GIT seemed to "stabilize" a bit the Internet >> connection. >> The patchset from Nick (see below) definitely helped to stabilize ath5k. > > I imagine that these are the "9 commits" you mean: > >> git rev-list c30ae13..4cebb34 > 4cebb34caa5122216a1e2451eae9e0fc47ec2589 > a0b907ee2a71052fefdf6151764095f3f97b3275 > c31b5c9c806b1fbdc9e98885d897664a0d482989 > e7aecd327d80b2f156b54769013aaccb2a20645a > 8efa5d7d6ad307ae2d220def37ca89594062c40d > 4aa5d783c9e1c72e4950ff34f388077ccecac74a > e5b046d86fac609f636d127a38de94a175c7e83b > 132b1c3ee38ea6fa0501004fd0f19acb554e5a44 > aeae4ac9090462ea38387dcdbac4f01b944af6a4 > > Most of those look fairly harmless so long as you don't define > CONFIG_ATHEROS_AR231X. Just to narrow things down...if you only revert > the first 8 (i.e. leave aeae4ac alone), do you still have problems? > Or does it still "stabilize"? > > That patch converts the driver to the generic DMA API. It seems > OK at first glance, but I suspect it is the only one likely to be > effecting your situation. > > John > -- > John W. Linville Someday the world will need a hero, and you > linville@tuxdriver.com might be all we have. Be ready. > Before jumping to another problem, I had a quick look into the appropriate Kconfig file, as you say I have not CONFIG_ATHEROS_AR231X set and that's why AHB support is not selected/built, instead CC [M] drivers/net/wireless/ath/ath5k/pci.o is built. Unfortunately, I can't cleanly revert. Sorry, I can't help. - Sedat - sd@tbox:~/src/linux-2.6/linux-2.6.37-rc4/debian/build/source_i386_none$ LC_ALL=C quilt -f push Applying patch 0001-Revert-Add-ath5k-Use-capabilities-information-for-th.patch patching file drivers/net/wireless/ath/ath5k/base.c patching file drivers/net/wireless/ath/ath5k/qcu.c Now at patch 0001-Revert-Add-ath5k-Use-capabilities-information-for-th.patch sd@tbox:~/src/linux-2.6/linux-2.6.37-rc4/debian/build/source_i386_none$ LC_ALL=C quilt -f push Applying patch revert-ath5k-patches/0001-Revert-ath5k-Fix-reset-and-interrupts-for-AHB-type-o.patch patching file drivers/net/wireless/ath/ath5k/base.c patching file drivers/net/wireless/ath/ath5k/reset.c Now at patch revert-ath5k-patches/0001-Revert-ath5k-Fix-reset-and-interrupts-for-AHB-type-o.patch sd@tbox:~/src/linux-2.6/linux-2.6.37-rc4/debian/build/source_i386_none$ LC_ALL=C quilt -f push Applying patch revert-ath5k-patches/0002-Revert-ath5k-Add-AHB-bus-support.patch patching file drivers/net/wireless/ath/ath5k/Kconfig patching file drivers/net/wireless/ath/ath5k/Makefile patching file drivers/net/wireless/ath/ath5k/ahb.c patching file drivers/net/wireless/ath/ath5k/ath5k.h patching file drivers/net/wireless/ath/ath5k/base.c patching file drivers/net/wireless/ath/ath5k/led.c patching file drivers/net/wireless/ath/ath5k/reg.h Now at patch revert-ath5k-patches/0002-Revert-ath5k-Add-AHB-bus-support.patch sd@tbox:~/src/linux-2.6/linux-2.6.37-rc4/debian/build/source_i386_none$ LC_ALL=C quilt -f push Applying patch revert-ath5k-patches/0003-Revert-ath5k-Add-initial-registers-values-for-radio-.patch patching file drivers/net/wireless/ath/ath5k/initvals.c Now at patch revert-ath5k-patches/0003-Revert-ath5k-Add-initial-registers-values-for-radio-.patch sd@tbox:~/src/linux-2.6/linux-2.6.37-rc4/debian/build/source_i386_none$ LC_ALL=C quilt -f push Applying patch revert-ath5k-patches/0004-Revert-ath5k-Add-a-function-to-read-chipset-s-MAC-re.patch patching file drivers/net/wireless/ath/ath5k/ath5k.h patching file drivers/net/wireless/ath/ath5k/attach.c patching file drivers/net/wireless/ath/ath5k/pci.c Now at patch revert-ath5k-patches/0004-Revert-ath5k-Add-a-function-to-read-chipset-s-MAC-re.patch sd@tbox:~/src/linux-2.6/linux-2.6.37-rc4/debian/build/source_i386_none$ LC_ALL=C quilt -f push Applying patch revert-ath5k-patches/0005-Revert-ath5k-Check-if-pci-pdev-struct-is-initialized.patch patching file drivers/net/wireless/ath/ath5k/attach.c patching file drivers/net/wireless/ath/ath5k/led.c patching file drivers/net/wireless/ath/ath5k/reset.c patching file drivers/net/wireless/ath/ath5k/sysfs.c Now at patch revert-ath5k-patches/0005-Revert-ath5k-Check-if-pci-pdev-struct-is-initialized.patch sd@tbox:~/src/linux-2.6/linux-2.6.37-rc4/debian/build/source_i386_none$ LC_ALL=C quilt -f push Applying patch revert-ath5k-patches/0006-Revert-ath5k-Use-generic-eeprom-read-from-common-ath.patch patching file drivers/net/wireless/ath/ath5k/ath5k.h patching file drivers/net/wireless/ath/ath5k/eeprom.c patching file drivers/net/wireless/ath/ath5k/eeprom.h patching file drivers/net/wireless/ath/ath5k/pci.c Now at patch revert-ath5k-patches/0006-Revert-ath5k-Use-generic-eeprom-read-from-common-ath.patch sd@tbox:~/src/linux-2.6/linux-2.6.37-rc4/debian/build/source_i386_none$ LC_ALL=C quilt -f push Applying patch revert-ath5k-patches/0007-Revert-ath5k-Move-PCI-bus-functions-to-separate-file.patch patching file drivers/net/wireless/ath/ath5k/Makefile patching file drivers/net/wireless/ath/ath5k/ath5k.h patching file drivers/net/wireless/ath/ath5k/base.c Hunk #5 succeeded at 3636 (offset 9 lines). patching file drivers/net/wireless/ath/ath5k/pci.c Now at patch revert-ath5k-patches/0007-Revert-ath5k-Move-PCI-bus-functions-to-separate-file.patch sd@tbox:~/src/linux-2.6/linux-2.6.37-rc4/debian/build/source_i386_none$ LC_ALL=C quilt -f push Applying patch revert-ath5k-patches/0008-Revert-ath5k-Introduce-ath5k_init_softc-function-as-.patch patching file drivers/net/wireless/ath/ath5k/ath5k.h patching file drivers/net/wireless/ath/ath5k/attach.c patching file drivers/net/wireless/ath/ath5k/base.c Hunk #4 FAILED at 2338. Hunk #5 succeeded at 2530 (offset 1 line). Hunk #6 succeeded at 2736 (offset 9 lines). Hunk #7 succeeded at 2745 (offset 9 lines). Hunk #8 succeeded at 2886 (offset 9 lines). Hunk #9 succeeded at 2904 (offset 9 lines). Hunk #10 succeeded at 2916 (offset 9 lines). Hunk #11 succeeded at 2938 (offset 9 lines). Hunk #12 succeeded at 3583 (offset 9 lines). Hunk #13 succeeded at 3617 (offset 9 lines). Hunk #14 succeeded at 3713 (offset 9 lines). Hunk #15 succeeded at 3868 (offset 9 lines). 1 out of 15 hunks FAILED -- saving rejects to file drivers/net/wireless/ath/ath5k/base.c.rej patching file drivers/net/wireless/ath/ath5k/base.h patching file drivers/net/wireless/ath/ath5k/eeprom.c Applied patch revert-ath5k-patches/0008-Revert-ath5k-Introduce-ath5k_init_softc-function-as-.patch (forced; needs refresh) - EOT - ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [linux-next] next-20101207: Better now, but modinfo ath5k 2010-12-07 15:57 ` Sedat Dilek @ 2010-12-07 15:59 ` John W. Linville 2010-12-07 16:20 ` Sedat Dilek 2010-12-07 18:13 ` Sedat Dilek 0 siblings, 2 replies; 10+ messages in thread From: John W. Linville @ 2010-12-07 15:59 UTC (permalink / raw) To: sedat.dilek Cc: wireless, LKML, Stephen Rothwell, Nick Kossifidis, Bruno Randolf, ath5k-devel On Tue, Dec 07, 2010 at 04:57:08PM +0100, Sedat Dilek wrote: > On Tue, Dec 7, 2010 at 3:26 PM, John W. Linville <linville@tuxdriver.com> wrote: > > On Tue, Dec 07, 2010 at 12:24:14PM +0100, Sedat Dilek wrote: > > > >> I have already reported on linux-wireless (short: l-w) ML that after > >> especially the merge of "AHB Bus support" patchset (see [2]) my ath5k > >> was not working as expected in daily use (also modinfo). > >> > >> I am not sure if it is the driver but reverting the 9 commits in my > >> local linux-next GIT seemed to "stabilize" a bit the Internet > >> connection. > >> The patchset from Nick (see below) definitely helped to stabilize ath5k. > > > > I imagine that these are the "9 commits" you mean: > > > >> git rev-list c30ae13..4cebb34 > > 4cebb34caa5122216a1e2451eae9e0fc47ec2589 > > a0b907ee2a71052fefdf6151764095f3f97b3275 > > c31b5c9c806b1fbdc9e98885d897664a0d482989 > > e7aecd327d80b2f156b54769013aaccb2a20645a > > 8efa5d7d6ad307ae2d220def37ca89594062c40d > > 4aa5d783c9e1c72e4950ff34f388077ccecac74a > > e5b046d86fac609f636d127a38de94a175c7e83b > > 132b1c3ee38ea6fa0501004fd0f19acb554e5a44 > > aeae4ac9090462ea38387dcdbac4f01b944af6a4 > > > > Most of those look fairly harmless so long as you don't define > > CONFIG_ATHEROS_AR231X. Just to narrow things down...if you only revert > > the first 8 (i.e. leave aeae4ac alone), do you still have problems? > > Or does it still "stabilize"? > > > > That patch converts the driver to the generic DMA API. It seems > > OK at first glance, but I suspect it is the only one likely to be > > effecting your situation. > > > > John > > -- > > John W. Linville Someday the world will need a hero, and you > > linville@tuxdriver.com might be all we have. Be ready. > > > > Before jumping to another problem, I had a quick look into the > appropriate Kconfig file, as you say I have not CONFIG_ATHEROS_AR231X > set and that's why AHB support is not selected/built, instead > > CC [M] drivers/net/wireless/ath/ath5k/pci.o > > is built. > > Unfortunately, I can't cleanly revert. Sorry, I can't help. I don't quite understand -- you said you were reverting them before, but now I ask you to revert one _less_ patch (i.e. the last one to be reverted anyway) and you can't do it? John -- John W. Linville Someday the world will need a hero, and you linville@tuxdriver.com might be all we have. Be ready. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [linux-next] next-20101207: Better now, but modinfo ath5k 2010-12-07 15:59 ` John W. Linville @ 2010-12-07 16:20 ` Sedat Dilek 2010-12-07 18:13 ` Sedat Dilek 1 sibling, 0 replies; 10+ messages in thread From: Sedat Dilek @ 2010-12-07 16:20 UTC (permalink / raw) To: John W. Linville Cc: wireless, LKML, Stephen Rothwell, Nick Kossifidis, Bruno Randolf, ath5k-devel On Tue, Dec 7, 2010 at 4:59 PM, John W. Linville <linville@tuxdriver.com> wrote: > On Tue, Dec 07, 2010 at 04:57:08PM +0100, Sedat Dilek wrote: >> On Tue, Dec 7, 2010 at 3:26 PM, John W. Linville <linville@tuxdriver.com> wrote: >> > On Tue, Dec 07, 2010 at 12:24:14PM +0100, Sedat Dilek wrote: >> > >> >> I have already reported on linux-wireless (short: l-w) ML that after >> >> especially the merge of "AHB Bus support" patchset (see [2]) my ath5k >> >> was not working as expected in daily use (also modinfo). >> >> >> >> I am not sure if it is the driver but reverting the 9 commits in my >> >> local linux-next GIT seemed to "stabilize" a bit the Internet >> >> connection. >> >> The patchset from Nick (see below) definitely helped to stabilize ath5k. >> > >> > I imagine that these are the "9 commits" you mean: >> > >> >> git rev-list c30ae13..4cebb34 >> > 4cebb34caa5122216a1e2451eae9e0fc47ec2589 >> > a0b907ee2a71052fefdf6151764095f3f97b3275 >> > c31b5c9c806b1fbdc9e98885d897664a0d482989 >> > e7aecd327d80b2f156b54769013aaccb2a20645a >> > 8efa5d7d6ad307ae2d220def37ca89594062c40d >> > 4aa5d783c9e1c72e4950ff34f388077ccecac74a >> > e5b046d86fac609f636d127a38de94a175c7e83b >> > 132b1c3ee38ea6fa0501004fd0f19acb554e5a44 >> > aeae4ac9090462ea38387dcdbac4f01b944af6a4 >> > >> > Most of those look fairly harmless so long as you don't define >> > CONFIG_ATHEROS_AR231X. Just to narrow things down...if you only revert >> > the first 8 (i.e. leave aeae4ac alone), do you still have problems? >> > Or does it still "stabilize"? >> > >> > That patch converts the driver to the generic DMA API. It seems >> > OK at first glance, but I suspect it is the only one likely to be >> > effecting your situation. >> > >> > John >> > -- >> > John W. Linville Someday the world will need a hero, and you >> > linville@tuxdriver.com might be all we have. Be ready. >> > >> >> Before jumping to another problem, I had a quick look into the >> appropriate Kconfig file, as you say I have not CONFIG_ATHEROS_AR231X >> set and that's why AHB support is not selected/built, instead >> >> CC [M] drivers/net/wireless/ath/ath5k/pci.o >> >> is built. >> >> Unfortunately, I can't cleanly revert. Sorry, I can't help. > > I don't quite understand -- you said you were reverting them before, > but now I ask you to revert one _less_ patch (i.e. the last one to > be reverted anyway) and you can't do it? > > John > -- > John W. Linville Someday the world will need a hero, and you > linville@tuxdriver.com might be all we have. Be ready. > After AHB-support patches went into linux-next (next-20101207), there are now new ath5k patches touching "drivers/net/wireless/ath/ath5k/base.c" on top. For example the patchset from Nick, this would mean revert them, too. Doing so, won't give you a clear answer. BTW, 0008 patch has a big change: drivers/net/wireless/ath/ath5k/base.c | 344 +++++++++++++------------------ Another solution would be to take a previous linux-next where those patches were not in. As you say by yourself 0001..0008 do not hurt, it's 0009 patch (first in patchset) you are speculating on. As I have archived my "compiled" build-trees, I can look at them. AFAICS linux-next (next-20101203) should have wireless-next-2.6 (master-2010-12-02) [1] included. Also, I have to find the fitting linux-image binary and install it, hope I have not purged it from hdd. - Sedat - [1] http://git.kernel.org/?p=linux/kernel/git/linville/wireless-next-2.6.git;a=shortlog;h=refs/tags/master-2010-12-02 $ ls revert-ath5k-patches/000* revert-ath5k-patches/0001-Revert-ath5k-Fix-reset-and-interrupts-for-AHB-type-o.patch revert-ath5k-patches/0002-Revert-ath5k-Add-AHB-bus-support.patch revert-ath5k-patches/0003-Revert-ath5k-Add-initial-registers-values-for-radio-.patch revert-ath5k-patches/0004-Revert-ath5k-Add-a-function-to-read-chipset-s-MAC-re.patch revert-ath5k-patches/0005-Revert-ath5k-Check-if-pci-pdev-struct-is-initialized.patch revert-ath5k-patches/0006-Revert-ath5k-Use-generic-eeprom-read-from-common-ath.patch revert-ath5k-patches/0007-Revert-ath5k-Move-PCI-bus-functions-to-separate-file.patch revert-ath5k-patches/0008-Revert-ath5k-Introduce-ath5k_init_softc-function-as-.patch revert-ath5k-patches/0009-Revert-ath5k-Use-Generic-DMA-for-later-support-of-AH.patch ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [linux-next] next-20101207: Better now, but modinfo ath5k 2010-12-07 15:59 ` John W. Linville 2010-12-07 16:20 ` Sedat Dilek @ 2010-12-07 18:13 ` Sedat Dilek 2010-12-07 21:32 ` Sedat Dilek 1 sibling, 1 reply; 10+ messages in thread From: Sedat Dilek @ 2010-12-07 18:13 UTC (permalink / raw) To: John W. Linville Cc: wireless, LKML, Stephen Rothwell, Nick Kossifidis, Bruno Randolf, ath5k-devel [-- Attachment #1: Type: text/plain, Size: 5567 bytes --] On Tue, Dec 7, 2010 at 4:59 PM, John W. Linville <linville@tuxdriver.com> wrote: > On Tue, Dec 07, 2010 at 04:57:08PM +0100, Sedat Dilek wrote: >> On Tue, Dec 7, 2010 at 3:26 PM, John W. Linville <linville@tuxdriver.com> wrote: >> > On Tue, Dec 07, 2010 at 12:24:14PM +0100, Sedat Dilek wrote: >> > >> >> I have already reported on linux-wireless (short: l-w) ML that after >> >> especially the merge of "AHB Bus support" patchset (see [2]) my ath5k >> >> was not working as expected in daily use (also modinfo). >> >> >> >> I am not sure if it is the driver but reverting the 9 commits in my >> >> local linux-next GIT seemed to "stabilize" a bit the Internet >> >> connection. >> >> The patchset from Nick (see below) definitely helped to stabilize ath5k. >> > >> > I imagine that these are the "9 commits" you mean: >> > >> >> git rev-list c30ae13..4cebb34 >> > 4cebb34caa5122216a1e2451eae9e0fc47ec2589 >> > a0b907ee2a71052fefdf6151764095f3f97b3275 >> > c31b5c9c806b1fbdc9e98885d897664a0d482989 >> > e7aecd327d80b2f156b54769013aaccb2a20645a >> > 8efa5d7d6ad307ae2d220def37ca89594062c40d >> > 4aa5d783c9e1c72e4950ff34f388077ccecac74a >> > e5b046d86fac609f636d127a38de94a175c7e83b >> > 132b1c3ee38ea6fa0501004fd0f19acb554e5a44 >> > aeae4ac9090462ea38387dcdbac4f01b944af6a4 >> > >> > Most of those look fairly harmless so long as you don't define >> > CONFIG_ATHEROS_AR231X. Just to narrow things down...if you only revert >> > the first 8 (i.e. leave aeae4ac alone), do you still have problems? >> > Or does it still "stabilize"? >> > >> > That patch converts the driver to the generic DMA API. It seems >> > OK at first glance, but I suspect it is the only one likely to be >> > effecting your situation. >> > >> > John >> > -- >> > John W. Linville Someday the world will need a hero, and you >> > linville@tuxdriver.com might be all we have. Be ready. >> > >> >> Before jumping to another problem, I had a quick look into the >> appropriate Kconfig file, as you say I have not CONFIG_ATHEROS_AR231X >> set and that's why AHB support is not selected/built, instead >> >> CC [M] drivers/net/wireless/ath/ath5k/pci.o >> >> is built. >> >> Unfortunately, I can't cleanly revert. Sorry, I can't help. > > I don't quite understand -- you said you were reverting them before, > but now I ask you to revert one _less_ patch (i.e. the last one to > be reverted anyway) and you can't do it? > > John > -- > John W. Linville Someday the world will need a hero, and you > linville@tuxdriver.com might be all we have. Be ready. > I tested with a linux-next (next-20101206) with revert-at5k-patches. Unfortunately, Nick's patchset is needed for a stable WLAN connection, several ReAssoc's etc. So, I can't give a comment to the effects of the AHB patchset on my AR5212. But... I have found the culprit patch which makes modinfo no more list the aliases/pci-id (see [1]): commit e5b046d86fac609f636d127a38de94a175c7e83b "ath5k: Move PCI bus functions to separate file." - Sedat - [1] http://git.kernel.org/?p=linux/kernel/git/linville/wireless-next-2.6.git;a=commit;h=e5b046d86fac609f636d127a38de94a175c7e83b $ ~/src/linux-2.6/linux-2.6.37-rc4/debian/build/source_i386_none $ cat .pc/applied-patches revert-ath5k-patches/0001-Revert-ath5k-Fix-reset-and-interrupts-for-AHB-type-o.patch revert-ath5k-patches/0002-Revert-ath5k-Add-AHB-bus-support.patch revert-ath5k-patches/0003-Revert-ath5k-Add-initial-registers-values-for-radio-.patch revert-ath5k-patches/0004-Revert-ath5k-Add-a-function-to-read-chipset-s-MAC-re.patch revert-ath5k-patches/0005-Revert-ath5k-Check-if-pci-pdev-struct-is-initialized.patch revert-ath5k-patches/0006-Revert-ath5k-Use-generic-eeprom-read-from-common-ath.patch revert-ath5k-patches/0007-Revert-ath5k-Move-PCI-bus-functions-to-separate-file.patch # modinfo ath5k filename: /lib/modules/2.6.37-rc4-686/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko version: 0.6.0 (EXPERIMENTAL) license: Dual BSD/GPL description: Support for 5xxx series of Atheros 802.11 wireless LAN cards. author: Nick Kossifidis author: Jiri Slaby srcversion: 666105BAEE881F2C2F10CE6 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) [-- Attachment #2: 0007-Revert-ath5k-Move-PCI-bus-functions-to-separate-file.patch --] [-- Type: text/x-diff, Size: 18973 bytes --] From e2f79441224cf9cd1f9e399ca774040f1ece72fa Mon Sep 17 00:00:00 2001 From: Sedat Dilek <sedat.dilek@gmail.com> Date: Fri, 3 Dec 2010 23:19:54 +0100 Subject: [PATCH 7/9] Revert "ath5k: Move PCI bus functions to separate file." This reverts commit e5b046d86fac609f636d127a38de94a175c7e83b. --- drivers/net/wireless/ath/ath5k/Makefile | 1 - drivers/net/wireless/ath/ath5k/ath5k.h | 3 - drivers/net/wireless/ath/ath5k/base.c | 267 +++++++++++++++++++++++++++++- drivers/net/wireless/ath/ath5k/pci.c | 284 ------------------------------- 4 files changed, 266 insertions(+), 289 deletions(-) delete mode 100644 drivers/net/wireless/ath/ath5k/pci.c diff --git a/drivers/net/wireless/ath/ath5k/Makefile b/drivers/net/wireless/ath/ath5k/Makefile index dae881c..2242a14 100644 --- a/drivers/net/wireless/ath/ath5k/Makefile +++ b/drivers/net/wireless/ath/ath5k/Makefile @@ -15,5 +15,4 @@ ath5k-y += rfkill.o ath5k-y += ani.o ath5k-y += sysfs.o ath5k-$(CONFIG_ATH5K_DEBUG) += debug.o -ath5k-y += pci.o obj-$(CONFIG_ATH5K) += ath5k.o diff --git a/drivers/net/wireless/ath/ath5k/ath5k.h b/drivers/net/wireless/ath/ath5k/ath5k.h index ee3c0af..a74f448 100644 --- a/drivers/net/wireless/ath/ath5k/ath5k.h +++ b/drivers/net/wireless/ath/ath5k/ath5k.h @@ -1145,7 +1145,6 @@ struct ath5k_hw { /* * Prototypes */ -extern const struct ieee80211_ops ath5k_hw_ops; /* Initialization and detach functions */ int ath5k_init_softc(struct ath5k_softc *sc, const struct ath_bus_ops *bus_ops); @@ -1156,8 +1155,6 @@ void ath5k_hw_deinit(struct ath5k_hw *ah); int ath5k_sysfs_register(struct ath5k_softc *sc); void ath5k_sysfs_unregister(struct ath5k_softc *sc); -/*Chip id helper function */ -const char *ath5k_chip_name(enum ath5k_srev_type type, u_int16_t val); /* LED functions */ int ath5k_init_leds(struct ath5k_softc *sc); diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c index 9fcc4e1..b11ea3d 100644 --- a/drivers/net/wireless/ath/ath5k/base.c +++ b/drivers/net/wireless/ath/ath5k/base.c @@ -47,6 +47,8 @@ #include <linux/io.h> #include <linux/netdevice.h> #include <linux/cache.h> +#include <linux/pci.h> +#include <linux/pci-aspm.h> #include <linux/ethtool.h> #include <linux/uaccess.h> #include <linux/slab.h> @@ -85,6 +87,30 @@ static int ath5k_beacon_update(struct ieee80211_hw *hw, struct ieee80211_vif *vif); static void ath5k_beacon_update_timers(struct ath5k_softc *sc, u64 bc_tsf); +/* Known PCI ids */ +static DEFINE_PCI_DEVICE_TABLE(ath5k_pci_id_table) = { + { PCI_VDEVICE(ATHEROS, 0x0207) }, /* 5210 early */ + { PCI_VDEVICE(ATHEROS, 0x0007) }, /* 5210 */ + { PCI_VDEVICE(ATHEROS, 0x0011) }, /* 5311 - this is on AHB bus !*/ + { PCI_VDEVICE(ATHEROS, 0x0012) }, /* 5211 */ + { PCI_VDEVICE(ATHEROS, 0x0013) }, /* 5212 */ + { PCI_VDEVICE(3COM_2, 0x0013) }, /* 3com 5212 */ + { PCI_VDEVICE(3COM, 0x0013) }, /* 3com 3CRDAG675 5212 */ + { PCI_VDEVICE(ATHEROS, 0x1014) }, /* IBM minipci 5212 */ + { PCI_VDEVICE(ATHEROS, 0x0014) }, /* 5212 combatible */ + { PCI_VDEVICE(ATHEROS, 0x0015) }, /* 5212 combatible */ + { PCI_VDEVICE(ATHEROS, 0x0016) }, /* 5212 combatible */ + { PCI_VDEVICE(ATHEROS, 0x0017) }, /* 5212 combatible */ + { PCI_VDEVICE(ATHEROS, 0x0018) }, /* 5212 combatible */ + { PCI_VDEVICE(ATHEROS, 0x0019) }, /* 5212 combatible */ + { PCI_VDEVICE(ATHEROS, 0x001a) }, /* 2413 Griffin-lite */ + { PCI_VDEVICE(ATHEROS, 0x001b) }, /* 5413 Eagle */ + { PCI_VDEVICE(ATHEROS, 0x001c) }, /* PCI-E cards */ + { PCI_VDEVICE(ATHEROS, 0x001d) }, /* 2417 Nala */ + { 0 } +}; +MODULE_DEVICE_TABLE(pci, ath5k_pci_id_table); + /* Known SREVs */ static const struct ath5k_srev_name srev_names[] = { { "5210", AR5K_VERSION_MAC, AR5K_SREV_AR5210 }, @@ -167,6 +193,32 @@ static const struct ieee80211_rate ath5k_rates[] = { /* XR missing */ }; +/* return bus cachesize in 4B word units */ +static void ath5k_pci_read_cachesize(struct ath_common *common, int *csz) +{ + struct ath5k_softc *sc = (struct ath5k_softc *) common->priv; + u8 u8tmp; + + pci_read_config_byte(sc->pdev, PCI_CACHE_LINE_SIZE, &u8tmp); + *csz = (int)u8tmp; + + /* + * This check was put in to avoid "unplesant" consequences if + * the bootrom has not fully initialized all PCI devices. + * Sometimes the cache line size register is not set + */ + + if (*csz == 0) + *csz = L1_CACHE_BYTES >> 2; /* Use the default size */ +} + +/* Common ath_bus_opts structure */ +static const struct ath_bus_ops ath_pci_bus_ops = { + .ath_bus_type = ATH_PCI, + .read_cachesize = ath5k_pci_read_cachesize, +}; + + static inline void ath5k_txbuf_free_skb(struct ath5k_softc *sc, struct ath5k_buf *bf) { @@ -209,7 +261,7 @@ static inline u64 ath5k_extend_tsf(struct ath5k_hw *ah, u32 rstamp) return (tsf & ~0x7fff) | rstamp; } -const char * +static const char * ath5k_chip_name(enum ath5k_srev_type type, u_int16_t val) { const char *name = "xxxxx"; @@ -3575,3 +3627,216 @@ const struct ieee80211_ops ath5k_hw_ops = { .set_antenna = ath5k_set_antenna, .get_antenna = ath5k_get_antenna, }; + +/********************\ +* PCI Initialization * +\********************/ + +static int __devinit +ath5k_pci_probe(struct pci_dev *pdev, + const struct pci_device_id *id) +{ + void __iomem *mem; + struct ath5k_softc *sc; + struct ieee80211_hw *hw; + int ret; + u8 csz; + + /* + * L0s needs to be disabled on all ath5k cards. + * + * For distributions shipping with CONFIG_PCIEASPM (this will be enabled + * by default in the future in 2.6.36) this will also mean both L1 and + * L0s will be disabled when a pre 1.1 PCIe device is detected. We do + * know L1 works correctly even for all ath5k pre 1.1 PCIe devices + * though but cannot currently undue the effect of a blacklist, for + * details you can read pcie_aspm_sanity_check() and see how it adjusts + * the device link capability. + * + * It may be possible in the future to implement some PCI API to allow + * drivers to override blacklists for pre 1.1 PCIe but for now it is + * best to accept that both L0s and L1 will be disabled completely for + * distributions shipping with CONFIG_PCIEASPM rather than having this + * issue present. Motivation for adding this new API will be to help + * with power consumption for some of these devices. + */ + pci_disable_link_state(pdev, PCIE_LINK_STATE_L0S); + + ret = pci_enable_device(pdev); + if (ret) { + dev_err(&pdev->dev, "can't enable device\n"); + goto err; + } + + /* XXX 32-bit addressing only */ + ret = pci_set_dma_mask(pdev, DMA_BIT_MASK(32)); + if (ret) { + dev_err(&pdev->dev, "32-bit DMA not available\n"); + goto err_dis; + } + + /* + * Cache line size is used to size and align various + * structures used to communicate with the hardware. + */ + pci_read_config_byte(pdev, PCI_CACHE_LINE_SIZE, &csz); + if (csz == 0) { + /* + * Linux 2.4.18 (at least) writes the cache line size + * register as a 16-bit wide register which is wrong. + * We must have this setup properly for rx buffer + * DMA to work so force a reasonable value here if it + * comes up zero. + */ + csz = L1_CACHE_BYTES >> 2; + pci_write_config_byte(pdev, PCI_CACHE_LINE_SIZE, csz); + } + /* + * The default setting of latency timer yields poor results, + * set it to the value used by other systems. It may be worth + * tweaking this setting more. + */ + pci_write_config_byte(pdev, PCI_LATENCY_TIMER, 0xa8); + + /* Enable bus mastering */ + pci_set_master(pdev); + + /* + * Disable the RETRY_TIMEOUT register (0x41) to keep + * PCI Tx retries from interfering with C3 CPU state. + */ + pci_write_config_byte(pdev, 0x41, 0); + + ret = pci_request_region(pdev, 0, "ath5k"); + if (ret) { + dev_err(&pdev->dev, "cannot reserve PCI memory region\n"); + goto err_dis; + } + + mem = pci_iomap(pdev, 0, 0); + if (!mem) { + dev_err(&pdev->dev, "cannot remap PCI memory region\n") ; + ret = -EIO; + goto err_reg; + } + + /* + * Allocate hw (mac80211 main struct) + * and hw->priv (driver private data) + */ + hw = ieee80211_alloc_hw(sizeof(*sc), &ath5k_hw_ops); + if (hw == NULL) { + dev_err(&pdev->dev, "cannot allocate ieee80211_hw\n"); + ret = -ENOMEM; + goto err_map; + } + + dev_info(&pdev->dev, "registered as '%s'\n", wiphy_name(hw->wiphy)); + + sc = hw->priv; + sc->hw = hw; + sc->pdev = pdev; + sc->dev = &pdev->dev; + sc->irq = pdev->irq; + sc->devid = id->device; + sc->iobase = mem; /* So we can unmap it on detach */ + + /* Initialize */ + ret = ath5k_init_softc(sc, &ath_pci_bus_ops); + if (ret) { + goto err_free; + } + + /* Set private data */ + pci_set_drvdata(pdev, hw); + + return 0; +err_free: + ieee80211_free_hw(hw); +err_map: + pci_iounmap(pdev, mem); +err_reg: + pci_release_region(pdev, 0); +err_dis: + pci_disable_device(pdev); +err: + return ret; +} + +static void __devexit +ath5k_pci_remove(struct pci_dev *pdev) +{ + struct ieee80211_hw *hw = pci_get_drvdata(pdev); + struct ath5k_softc *sc = hw->priv; + + ath5k_deinit_softc(sc); + pci_iounmap(pdev, sc->iobase); + pci_release_region(pdev, 0); + pci_disable_device(pdev); + ieee80211_free_hw(hw); +} + +#ifdef CONFIG_PM_SLEEP +static int ath5k_pci_suspend(struct device *dev) +{ + struct ath5k_softc *sc = pci_get_drvdata(to_pci_dev(dev)); + + ath5k_led_off(sc); + return 0; +} + +static int ath5k_pci_resume(struct device *dev) +{ + struct pci_dev *pdev = to_pci_dev(dev); + struct ath5k_softc *sc = pci_get_drvdata(pdev); + + /* + * Suspend/Resume resets the PCI configuration space, so we have to + * re-disable the RETRY_TIMEOUT register (0x41) to keep + * PCI Tx retries from interfering with C3 CPU state + */ + pci_write_config_byte(pdev, 0x41, 0); + + ath5k_led_enable(sc); + return 0; +} + +static SIMPLE_DEV_PM_OPS(ath5k_pm_ops, ath5k_pci_suspend, ath5k_pci_resume); +#define ATH5K_PM_OPS (&ath5k_pm_ops) +#else +#define ATH5K_PM_OPS NULL +#endif /* CONFIG_PM_SLEEP */ + +static struct pci_driver ath5k_pci_driver = { + .name = KBUILD_MODNAME, + .id_table = ath5k_pci_id_table, + .probe = ath5k_pci_probe, + .remove = __devexit_p(ath5k_pci_remove), + .driver.pm = ATH5K_PM_OPS, +}; + +/* + * Module init/exit functions + */ +static int __init +init_ath5k_pci(void) +{ + int ret; + + ret = pci_register_driver(&ath5k_pci_driver); + if (ret) { + printk(KERN_ERR "ath5k_pci: can't register pci driver\n"); + return ret; + } + + return 0; +} + +static void __exit +exit_ath5k_pci(void) +{ + pci_unregister_driver(&ath5k_pci_driver); +} + +module_init(init_ath5k_pci); +module_exit(exit_ath5k_pci); diff --git a/drivers/net/wireless/ath/ath5k/pci.c b/drivers/net/wireless/ath/ath5k/pci.c deleted file mode 100644 index 9f7d3ca..0000000 --- a/drivers/net/wireless/ath/ath5k/pci.c +++ /dev/null @@ -1,284 +0,0 @@ -/* - * Copyright (c) 2008-2009 Atheros Communications Inc. - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include <linux/nl80211.h> -#include <linux/pci.h> -#include <linux/pci-aspm.h> -#include "../ath.h" -#include "ath5k.h" -#include "debug.h" -#include "base.h" -#include "reg.h" - -/* Known PCI ids */ -static DEFINE_PCI_DEVICE_TABLE(ath5k_pci_id_table) = { - { PCI_VDEVICE(ATHEROS, 0x0207) }, /* 5210 early */ - { PCI_VDEVICE(ATHEROS, 0x0007) }, /* 5210 */ - { PCI_VDEVICE(ATHEROS, 0x0011) }, /* 5311 - this is on AHB bus !*/ - { PCI_VDEVICE(ATHEROS, 0x0012) }, /* 5211 */ - { PCI_VDEVICE(ATHEROS, 0x0013) }, /* 5212 */ - { PCI_VDEVICE(3COM_2, 0x0013) }, /* 3com 5212 */ - { PCI_VDEVICE(3COM, 0x0013) }, /* 3com 3CRDAG675 5212 */ - { PCI_VDEVICE(ATHEROS, 0x1014) }, /* IBM minipci 5212 */ - { PCI_VDEVICE(ATHEROS, 0x0014) }, /* 5212 combatible */ - { PCI_VDEVICE(ATHEROS, 0x0015) }, /* 5212 combatible */ - { PCI_VDEVICE(ATHEROS, 0x0016) }, /* 5212 combatible */ - { PCI_VDEVICE(ATHEROS, 0x0017) }, /* 5212 combatible */ - { PCI_VDEVICE(ATHEROS, 0x0018) }, /* 5212 combatible */ - { PCI_VDEVICE(ATHEROS, 0x0019) }, /* 5212 combatible */ - { PCI_VDEVICE(ATHEROS, 0x001a) }, /* 2413 Griffin-lite */ - { PCI_VDEVICE(ATHEROS, 0x001b) }, /* 5413 Eagle */ - { PCI_VDEVICE(ATHEROS, 0x001c) }, /* PCI-E cards */ - { PCI_VDEVICE(ATHEROS, 0x001d) }, /* 2417 Nala */ - { 0 } -}; - -/* return bus cachesize in 4B word units */ -static void ath5k_pci_read_cachesize(struct ath_common *common, int *csz) -{ - struct ath5k_softc *sc = (struct ath5k_softc *) common->priv; - u8 u8tmp; - - pci_read_config_byte(sc->pdev, PCI_CACHE_LINE_SIZE, &u8tmp); - *csz = (int)u8tmp; - - /* - * This check was put in to avoid "unplesant" consequences if - * the bootrom has not fully initialized all PCI devices. - * Sometimes the cache line size register is not set - */ - - if (*csz == 0) - *csz = L1_CACHE_BYTES >> 2; /* Use the default size */ -} - -/* Common ath_bus_opts structure */ -static const struct ath_bus_ops ath_pci_bus_ops = { - .ath_bus_type = ATH_PCI, - .read_cachesize = ath5k_pci_read_cachesize, -}; - -/********************\ -* PCI Initialization * -\********************/ - -static int __devinit -ath5k_pci_probe(struct pci_dev *pdev, - const struct pci_device_id *id) -{ - void __iomem *mem; - struct ath5k_softc *sc; - struct ieee80211_hw *hw; - int ret; - u8 csz; - - /* - * L0s needs to be disabled on all ath5k cards. - * - * For distributions shipping with CONFIG_PCIEASPM (this will be enabled - * by default in the future in 2.6.36) this will also mean both L1 and - * L0s will be disabled when a pre 1.1 PCIe device is detected. We do - * know L1 works correctly even for all ath5k pre 1.1 PCIe devices - * though but cannot currently undue the effect of a blacklist, for - * details you can read pcie_aspm_sanity_check() and see how it adjusts - * the device link capability. - * - * It may be possible in the future to implement some PCI API to allow - * drivers to override blacklists for pre 1.1 PCIe but for now it is - * best to accept that both L0s and L1 will be disabled completely for - * distributions shipping with CONFIG_PCIEASPM rather than having this - * issue present. Motivation for adding this new API will be to help - * with power consumption for some of these devices. - */ - pci_disable_link_state(pdev, PCIE_LINK_STATE_L0S); - - ret = pci_enable_device(pdev); - if (ret) { - dev_err(&pdev->dev, "can't enable device\n"); - goto err; - } - - /* XXX 32-bit addressing only */ - ret = pci_set_dma_mask(pdev, DMA_BIT_MASK(32)); - if (ret) { - dev_err(&pdev->dev, "32-bit DMA not available\n"); - goto err_dis; - } - - /* - * Cache line size is used to size and align various - * structures used to communicate with the hardware. - */ - pci_read_config_byte(pdev, PCI_CACHE_LINE_SIZE, &csz); - if (csz == 0) { - /* - * Linux 2.4.18 (at least) writes the cache line size - * register as a 16-bit wide register which is wrong. - * We must have this setup properly for rx buffer - * DMA to work so force a reasonable value here if it - * comes up zero. - */ - csz = L1_CACHE_BYTES >> 2; - pci_write_config_byte(pdev, PCI_CACHE_LINE_SIZE, csz); - } - /* - * The default setting of latency timer yields poor results, - * set it to the value used by other systems. It may be worth - * tweaking this setting more. - */ - pci_write_config_byte(pdev, PCI_LATENCY_TIMER, 0xa8); - - /* Enable bus mastering */ - pci_set_master(pdev); - - /* - * Disable the RETRY_TIMEOUT register (0x41) to keep - * PCI Tx retries from interfering with C3 CPU state. - */ - pci_write_config_byte(pdev, 0x41, 0); - - ret = pci_request_region(pdev, 0, "ath5k"); - if (ret) { - dev_err(&pdev->dev, "cannot reserve PCI memory region\n"); - goto err_dis; - } - - mem = pci_iomap(pdev, 0, 0); - if (!mem) { - dev_err(&pdev->dev, "cannot remap PCI memory region\n") ; - ret = -EIO; - goto err_reg; - } - - /* - * Allocate hw (mac80211 main struct) - * and hw->priv (driver private data) - */ - hw = ieee80211_alloc_hw(sizeof(*sc), &ath5k_hw_ops); - if (hw == NULL) { - dev_err(&pdev->dev, "cannot allocate ieee80211_hw\n"); - ret = -ENOMEM; - goto err_map; - } - - dev_info(&pdev->dev, "registered as '%s'\n", wiphy_name(hw->wiphy)); - - sc = hw->priv; - sc->hw = hw; - sc->pdev = pdev; - sc->dev = &pdev->dev; - sc->irq = pdev->irq; - sc->devid = id->device; - sc->iobase = mem; /* So we can unmap it on detach */ - - /* Initialize */ - ret = ath5k_init_softc(sc, &ath_pci_bus_ops); - if (ret) - goto err_free; - - /* Set private data */ - pci_set_drvdata(pdev, hw); - - return 0; -err_free: - ieee80211_free_hw(hw); -err_map: - pci_iounmap(pdev, mem); -err_reg: - pci_release_region(pdev, 0); -err_dis: - pci_disable_device(pdev); -err: - return ret; -} - -static void __devexit -ath5k_pci_remove(struct pci_dev *pdev) -{ - struct ieee80211_hw *hw = pci_get_drvdata(pdev); - struct ath5k_softc *sc = hw->priv; - - ath5k_deinit_softc(sc); - pci_iounmap(pdev, sc->iobase); - pci_release_region(pdev, 0); - pci_disable_device(pdev); - ieee80211_free_hw(hw); -} - -#ifdef CONFIG_PM_SLEEP -static int ath5k_pci_suspend(struct device *dev) -{ - struct ath5k_softc *sc = pci_get_drvdata(to_pci_dev(dev)); - - ath5k_led_off(sc); - return 0; -} - -static int ath5k_pci_resume(struct device *dev) -{ - struct pci_dev *pdev = to_pci_dev(dev); - struct ath5k_softc *sc = pci_get_drvdata(pdev); - - /* - * Suspend/Resume resets the PCI configuration space, so we have to - * re-disable the RETRY_TIMEOUT register (0x41) to keep - * PCI Tx retries from interfering with C3 CPU state - */ - pci_write_config_byte(pdev, 0x41, 0); - - ath5k_led_enable(sc); - return 0; -} - -static SIMPLE_DEV_PM_OPS(ath5k_pm_ops, ath5k_pci_suspend, ath5k_pci_resume); -#define ATH5K_PM_OPS (&ath5k_pm_ops) -#else -#define ATH5K_PM_OPS NULL -#endif /* CONFIG_PM_SLEEP */ - -static struct pci_driver ath5k_pci_driver = { - .name = KBUILD_MODNAME, - .id_table = ath5k_pci_id_table, - .probe = ath5k_pci_probe, - .remove = __devexit_p(ath5k_pci_remove), - .driver.pm = ATH5K_PM_OPS, -}; - -/* - * Module init/exit functions - */ -static int __init -init_ath5k_pci(void) -{ - int ret; - - ret = pci_register_driver(&ath5k_pci_driver); - if (ret) { - printk(KERN_ERR "ath5k_pci: can't register pci driver\n"); - return ret; - } - - return 0; -} - -static void __exit -exit_ath5k_pci(void) -{ - pci_unregister_driver(&ath5k_pci_driver); -} - -module_init(init_ath5k_pci); -module_exit(exit_ath5k_pci); -- 1.7.2.3 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [linux-next] next-20101207: Better now, but modinfo ath5k 2010-12-07 18:13 ` Sedat Dilek @ 2010-12-07 21:32 ` Sedat Dilek 0 siblings, 0 replies; 10+ messages in thread From: Sedat Dilek @ 2010-12-07 21:32 UTC (permalink / raw) To: John W. Linville Cc: wireless, LKML, Stephen Rothwell, Nick Kossifidis, Bruno Randolf, ath5k-devel On Tue, Dec 7, 2010 at 7:13 PM, Sedat Dilek <sedat.dilek@googlemail.com> wrote: > On Tue, Dec 7, 2010 at 4:59 PM, John W. Linville <linville@tuxdriver.com> wrote: >> On Tue, Dec 07, 2010 at 04:57:08PM +0100, Sedat Dilek wrote: >>> On Tue, Dec 7, 2010 at 3:26 PM, John W. Linville <linville@tuxdriver.com> wrote: >>> > On Tue, Dec 07, 2010 at 12:24:14PM +0100, Sedat Dilek wrote: >>> > >>> >> I have already reported on linux-wireless (short: l-w) ML that after >>> >> especially the merge of "AHB Bus support" patchset (see [2]) my ath5k >>> >> was not working as expected in daily use (also modinfo). >>> >> >>> >> I am not sure if it is the driver but reverting the 9 commits in my >>> >> local linux-next GIT seemed to "stabilize" a bit the Internet >>> >> connection. >>> >> The patchset from Nick (see below) definitely helped to stabilize ath5k. >>> > >>> > I imagine that these are the "9 commits" you mean: >>> > >>> >> git rev-list c30ae13..4cebb34 >>> > 4cebb34caa5122216a1e2451eae9e0fc47ec2589 >>> > a0b907ee2a71052fefdf6151764095f3f97b3275 >>> > c31b5c9c806b1fbdc9e98885d897664a0d482989 >>> > e7aecd327d80b2f156b54769013aaccb2a20645a >>> > 8efa5d7d6ad307ae2d220def37ca89594062c40d >>> > 4aa5d783c9e1c72e4950ff34f388077ccecac74a >>> > e5b046d86fac609f636d127a38de94a175c7e83b >>> > 132b1c3ee38ea6fa0501004fd0f19acb554e5a44 >>> > aeae4ac9090462ea38387dcdbac4f01b944af6a4 >>> > >>> > Most of those look fairly harmless so long as you don't define >>> > CONFIG_ATHEROS_AR231X. Just to narrow things down...if you only revert >>> > the first 8 (i.e. leave aeae4ac alone), do you still have problems? >>> > Or does it still "stabilize"? >>> > >>> > That patch converts the driver to the generic DMA API. It seems >>> > OK at first glance, but I suspect it is the only one likely to be >>> > effecting your situation. >>> > >>> > John >>> > -- >>> > John W. Linville Someday the world will need a hero, and you >>> > linville@tuxdriver.com might be all we have. Be ready. >>> > >>> >>> Before jumping to another problem, I had a quick look into the >>> appropriate Kconfig file, as you say I have not CONFIG_ATHEROS_AR231X >>> set and that's why AHB support is not selected/built, instead >>> >>> CC [M] drivers/net/wireless/ath/ath5k/pci.o >>> >>> is built. >>> >>> Unfortunately, I can't cleanly revert. Sorry, I can't help. >> >> I don't quite understand -- you said you were reverting them before, >> but now I ask you to revert one _less_ patch (i.e. the last one to >> be reverted anyway) and you can't do it? >> >> John >> -- >> John W. Linville Someday the world will need a hero, and you >> linville@tuxdriver.com might be all we have. Be ready. >> > > I tested with a linux-next (next-20101206) with revert-at5k-patches. > Unfortunately, Nick's patchset is needed for a stable WLAN connection, > several ReAssoc's etc. > So, I can't give a comment to the effects of the AHB patchset on my AR5212. > > But... I have found the culprit patch which makes modinfo no more list > the aliases/pci-id (see [1]): > > commit e5b046d86fac609f636d127a38de94a175c7e83b > "ath5k: Move PCI bus functions to separate file." > > - Sedat - > > [1] http://git.kernel.org/?p=linux/kernel/git/linville/wireless-next-2.6.git;a=commit;h=e5b046d86fac609f636d127a38de94a175c7e83b > > $ ~/src/linux-2.6/linux-2.6.37-rc4/debian/build/source_i386_none > > $ cat .pc/applied-patches > revert-ath5k-patches/0001-Revert-ath5k-Fix-reset-and-interrupts-for-AHB-type-o.patch > revert-ath5k-patches/0002-Revert-ath5k-Add-AHB-bus-support.patch > revert-ath5k-patches/0003-Revert-ath5k-Add-initial-registers-values-for-radio-.patch > revert-ath5k-patches/0004-Revert-ath5k-Add-a-function-to-read-chipset-s-MAC-re.patch > revert-ath5k-patches/0005-Revert-ath5k-Check-if-pci-pdev-struct-is-initialized.patch > revert-ath5k-patches/0006-Revert-ath5k-Use-generic-eeprom-read-from-common-ath.patch > revert-ath5k-patches/0007-Revert-ath5k-Move-PCI-bus-functions-to-separate-file.patch > > # modinfo ath5k > filename: > /lib/modules/2.6.37-rc4-686/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko > version: 0.6.0 (EXPERIMENTAL) > license: Dual BSD/GPL > description: Support for 5xxx series of Atheros 802.11 wireless LAN > cards. > author: Nick Kossifidis > author: Jiri Slaby > srcversion: 666105BAEE881F2C2F10CE6 > 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) > I have found the cause for the modinfo problem, here is a fix (I will send later a separate patch): $ diff -Naur drivers/net/wireless/ath/ath5k/pci.c.orig drivers/net/wireless/ath/ath5k/pci.c --- drivers/net/wireless/ath/ath5k/pci.c.orig 2010-12-07 19:34:53.999334165 +0100 +++ drivers/net/wireless/ath/ath5k/pci.c 2010-12-07 22:25:20.387028188 +0100 @@ -45,6 +45,7 @@ { PCI_VDEVICE(ATHEROS, 0x001d) }, /* 2417 Nala */ { 0 } }; +MODULE_DEVICE_TABLE(pci, ath5k_pci_id_table); /* return bus cachesize in 4B word units */ static void ath5k_pci_read_cachesize(struct ath_common *common, int *csz) # modinfo ath5k filename: /lib/modules/2.6.37-rc4-686/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko version: 0.6.0 (EXPERIMENTAL) license: Dual BSD/GPL description: Support for 5xxx series of Atheros 802.11 wireless LAN cards. author: Nick Kossifidis author: Jiri Slaby srcversion: 1B224A604952CD0597CA568 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) ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2010-12-07 21:32 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-12-07 11:24 [linux-next] next-20101207: Better now, but modinfo ath5k Sedat Dilek 2010-12-07 11:24 ` Sedat Dilek 2010-12-07 11:28 ` Sedat Dilek 2010-12-07 11:28 ` Sedat Dilek 2010-12-07 14:26 ` John W. Linville 2010-12-07 15:57 ` Sedat Dilek 2010-12-07 15:59 ` John W. Linville 2010-12-07 16:20 ` Sedat Dilek 2010-12-07 18:13 ` Sedat Dilek 2010-12-07 21:32 ` Sedat Dilek
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.