* Re: [PATCH] mac80211: fix SME warning by removing stale BSS upon assoc failure
From: John W. Linville @ 2009-10-16 18:20 UTC (permalink / raw)
To: Johannes Berg
Cc: Luis R. Rodriguez, Luis Rodriguez, linux-wireless@vger.kernel.org,
ic.felix@gmail.com
In-Reply-To: <1255685492.4095.309.camel@johannes.local>
On Fri, Oct 16, 2009 at 06:31:32PM +0900, Johannes Berg wrote:
> On Wed, 2009-10-14 at 16:35 -0700, Luis R. Rodriguez wrote:
>
> > Well sure, but why do we want to keep the authentication present if
> > association failed? And as a matter of fact it lingers there forever.
> > Is that desired behaviour?
>
> Yes, well, the SME is supposed to clean it up or try the association
> again (possibly with different parameters in the IEs, e.g. different WPA
> settings). The cfg80211 SME certainly does so (it deauthenticates).
>
> > > > +++ b/net/mac80211/mlme.c
> > > > @@ -1463,11 +1463,11 @@ ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata,
> > > > if (status_code != WLAN_STATUS_SUCCESS) {
> > > > printk(KERN_DEBUG "%s: AP denied association (code=%d)\n",
> > > > sdata->dev->name, status_code);
> > > > list_del(&wk->list);
> > > > kfree(wk);
> > > > - return RX_MGMT_CFG80211_ASSOC;
> > > > + return RX_MGMT_CFG80211_DEAUTH;
> > >
> > > I'm sure this is correct. Maybe cfg80211 doesn't react properly to
> > > getting an assoc frame with non-zero status?
> >
> > I see, will have to take a look when I get a chance then, not now though.
>
> > Actually can you elaborate a little on the logic here as to why
> > we want to issue an association command with non-zero status to
> > cfg80211 instead of just knocking off the current authentication
> > and killing the BSS?
>
> Is the above sufficient? Btw, please don't talk about "killing the BSS",
> you're not talking about a BSS struct but rather one of the mlme work
> structs.
So, should this patch be dropped? It is currently in w-t...
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
* Re: [PATCH 03/16] iwmc3200wifi: WPS support
From: John W. Linville @ 2009-10-16 18:19 UTC (permalink / raw)
To: Marcel Holtmann; +Cc: Zhu Yi, linux-wireless, Samuel Ortiz
In-Reply-To: <1255709887.31260.4.camel@localhost.localdomain>
On Fri, Oct 16, 2009 at 06:18:07PM +0200, Marcel Holtmann wrote:
> Hi Yi,
>
> > From: Samuel Ortiz <sameo@linux.intel.com>
> >
> > By setting the WSC profile flag, we now support WPS as an enrollee.
> >
> > Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
> > Signed-off-by: Zhu Yi <yi.zhu@intel.com>
> > ---
> > drivers/net/wireless/iwmc3200wifi/cfg80211.c | 7 +++++++
> > drivers/net/wireless/iwmc3200wifi/commands.h | 3 +++
> > 2 files changed, 10 insertions(+), 0 deletions(-)
> >
> > diff --git a/drivers/net/wireless/iwmc3200wifi/cfg80211.c b/drivers/net/wireless/iwmc3200wifi/cfg80211.c
> > index 0d2e719..a6d2f20 100644
> > --- a/drivers/net/wireless/iwmc3200wifi/cfg80211.c
> > +++ b/drivers/net/wireless/iwmc3200wifi/cfg80211.c
> > @@ -628,6 +628,13 @@ static int iwm_cfg80211_connect(struct wiphy *wiphy, struct net_device *dev,
> > iwm->default_key = sme->key_idx;
> > }
> >
> > + /* WPA and open AUTH type from wpa_s means WPS (a.k.a. WSC) */
> > + if ((iwm->umac_profile->sec.flags &
> > + (UMAC_SEC_FLG_WPA_ON_MSK | UMAC_SEC_FLG_RSNA_ON_MSK)) &&
> > + iwm->umac_profile->sec.auth_type == UMAC_AUTH_TYPE_OPEN) {
> > + iwm->umac_profile->sec.flags = UMAC_SEC_FLG_WSC_ON_MSK;
> > + }
> > +
>
> I don't wanna be picky, but what coding style are you following here?
> The indentation makes no sense and doesn't improve readability.
Given the length and complication of the conditions, the indentation
seems fine to me. How would you 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
* possible ath9k or wpa_supplicant bug
From: Jan Christoph Uhde @ 2009-10-16 19:01 UTC (permalink / raw)
To: linux-wireless
[-- Attachment #1: Type: text/plain, Size: 537 bytes --]
Hi,
i bought a Samsung N140 with an AR9285 Wireless Network Adapter.
I am able to connect to my AP for a short time and then the connection is
terminated. The Card works fine at other places. But everybody else seems to
be able to connect to my AP without problems.
Attached is:
- the setup of my netbook
- the log of iw
- the log of the wpa_supplicant since
- the hostap config of the AP
- the log of hostap
the logs are created at different times.
the iw event and hostapd log should be recorded simultaneously.
best regards,
jan
[-- Attachment #2: report --]
[-- Type: text/plain, Size: 42819 bytes --]
UNAME:#############################################
Linux spike 2.6.31-14-generic #47-Ubuntu SMP Thu Oct 15 02:08:08 UTC 2009 i686 GNU/Linux
LSPCI:#############################################
02:00.0 Network controller: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (rev 01)
Kernel driver in use: ath9k
Kernel modules: ath9k
LSMOD:#############################################
Module Size Used by
binfmt_misc 8356 1
ppdev 6688 0
snd_hda_codec_realtek 203328 1
lp 8964 0
parport 35340 2 ppdev,lp
snd_hda_intel 26920 0
snd_hda_codec 75708 2 snd_hda_codec_realtek,snd_hda_intel
snd_hwdep 7200 1 snd_hda_codec
arc4 1660 2
snd_pcm_oss 37920 0
bridge 47952 0
joydev 10272 0
snd_mixer_oss 16028 1 snd_pcm_oss
ecb 2524 2
snd_pcm 75296 3 snd_hda_intel,snd_hda_codec,snd_pcm_oss
stp 2272 1 bridge
ath9k 86308 0
bnep 12060 2
snd_seq_dummy 2656 0
ath9k_hw 224720 1 ath9k
mac80211 210152 1 ath9k
ath 8828 2 ath9k,ath9k_hw
psmouse 56180 0
uvcvideo 59080 0
videodev 36736 1 uvcvideo
v4l1_compat 14496 2 uvcvideo,videodev
snd_seq_oss 28576 0
serio_raw 5280 0
snd_seq_midi 6432 0
cfg80211 130248 3 ath9k,mac80211,ath
led_class 4096 1 ath9k
btusb 11856 2
snd_rawmidi 22208 1 snd_seq_midi
snd_seq_midi_event 6940 2 snd_seq_oss,snd_seq_midi
snd_seq 50224 6 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_seq_midi_event
snd_timer 22276 2 snd_pcm,snd_seq
snd_seq_device 6920 5 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_rawmidi,snd_seq
iptable_filter 3100 0
snd 59204 12 snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_seq_oss,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
soundcore 7264 1 snd
snd_page_alloc 9156 2 snd_hda_intel,snd_pcm
ip_tables 11692 1 iptable_filter
x_tables 16544 1 ip_tables
fbcon 36640 71
tileblit 2460 1 fbcon
font 8124 1 fbcon
bitblit 5372 1 fbcon
softcursor 1756 1 bitblit
r8169 32064 0
mii 5212 1 r8169
i915 221064 2
drm 159584 2 i915
i2c_algo_bit 5760 1 i915
intel_agp 27484 2 i915
agpgart 34988 2 drm,intel_agp
video 19380 1 i915
output 2780 1 video
MODINFO:###########################################
filename: /lib/modules/2.6.31-14-generic/updates/drivers/net/wireless/ath/ath9k/ath9k.ko
license: Dual BSD/GPL
description: Support for Atheros 802.11n wireless LAN cards.
author: Atheros Communications
srcversion: BE80DF2DE1248B206C66D1C
alias: pci:v0000168Cd0000002Esv*sd*bc*sc*i*
alias: pci:v0000168Cd0000002Dsv*sd*bc*sc*i*
alias: pci:v0000168Cd0000002Bsv*sd*bc*sc*i*
alias: pci:v0000168Cd0000002Asv*sd*bc*sc*i*
alias: pci:v0000168Cd00000029sv*sd*bc*sc*i*
alias: pci:v0000168Cd00000027sv*sd*bc*sc*i*
alias: pci:v0000168Cd00000024sv*sd*bc*sc*i*
alias: pci:v0000168Cd00000023sv*sd*bc*sc*i*
depends: ath9k_hw,mac80211,led-class,ath,cfg80211
vermagic: 2.6.31-14-generic SMP mod_unload modversions 586
parm: nohwcrypt:Disable hardware encryption (int)
parm: debug:uint
parm: ath9k_debug:Debugging mask
wpa_supplicant:####################################
version:
ii wpasupplicant 0.6.9-3ubuntu1 client support for WPA and WPA2 (IEEE 802.11
config:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
network={
key_mgmt=WPA-PSK
#bssid=00:1f:1f:52::d6:b4
group=TKIP
pairwise=TKIP
proto=WPA
ssid="Halterlose Lederhosen"
psk="fooo"
id_str="home"
}
network={
ssid="halterlose Netzstruempfe"
psk="baaar"
id_str="home"
}
/etc/network/interfaces:###########################
auto lo
iface lo inet loopback
auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf
provider dsl-provider
auto eth0
iface eth0 inet manual
iface wlan2 inet manual
#wpa-driver wext
wpa-driver nl80211
wpa-roam /etc/wpa_supplicant/wpa-roam.conf
iface home inet dhcp
mtu 1412
wpa_supplicant log:################################
Fri Oct 16 12:20:44 CEST 2009
Initializing interface 'wlan2' conf '/etc/wpa_supplicant/wpa-roam.conf' driver 'nl80211' ctrl_interface 'N/A' bridge 'N/A'
Configuration file '/etc/wpa_supplicant/wpa-roam.conf' -> '/etc/wpa_supplicant/wpa-roam.conf'
Reading configuration file '/etc/wpa_supplicant/wpa-roam.conf'
ctrl_interface='DIR=/var/run/wpa_supplicant GROUP=netdev'
Line: 75 - start of a new network block
key_mgmt: 0x2
group: 0x8
pairwise: 0x8
proto: 0x1
ssid - hexdump_ascii(len=21):
48 61 6c 74 65 72 6c 6f 73 65 20 4c 65 64 65 72 Halterlose Leder
68 6f 73 65 6e hosen
PSK (ASCII passphrase) - hexdump_ascii(len=23): [REMOVED]
id_str - hexdump_ascii(len=4):
68 6f 6d 65 home
PSK (from passphrase) - hexdump(len=32): [REMOVED]
Line: 86 - start of a new network block
ssid - hexdump_ascii(len=24):
68 61 6c 74 65 72 6c 6f 73 65 20 4e 65 74 7a 73 halterlose Netzs
74 72 75 65 6d 70 66 65 truempfe
PSK (ASCII passphrase) - hexdump_ascii(len=20): [REMOVED]
id_str - hexdump_ascii(len=4):
68 6f 6d 65 home
PSK (from passphrase) - hexdump(len=32): [REMOVED]
Priority group 0
id=0 ssid='Halterlose Lederhosen'
id=1 ssid='halterlose Netzstruempfe'
Failed to set interface wlan2 mode
Could not configure driver to use managed mode
SIOCGIWRANGE: WE(compiled)=22 WE(source)=21 enc_capa=0xf
capabilities: key_mgmt 0xf enc 0xf
WEXT: Operstate: linkmode=1, operstate=5
Own MAC address: 00:26:b6:11:62:20
wpa_driver_nl80211_set_wpa
wpa_driver_nl80211_set_key: alg=0 addr=0x80ba878 key_idx=0 set_tx=0 seq_len=0 key_len=0
nl80211: set_key failed; err=-67
wpa_driver_nl80211_set_key: alg=0 addr=0x80ba878 key_idx=1 set_tx=0 seq_len=0 key_len=0
nl80211: set_key failed; err=-67
wpa_driver_nl80211_set_key: alg=0 addr=0x80ba878 key_idx=2 set_tx=0 seq_len=0 key_len=0
nl80211: set_key failed; err=-67
wpa_driver_nl80211_set_key: alg=0 addr=0x80ba878 key_idx=3 set_tx=0 seq_len=0 key_len=0
nl80211: set_key failed; err=-67
wpa_driver_nl80211_set_countermeasures
wpa_driver_nl80211_set_drop_unencrypted
RSN: flushing PMKID list in the driver
Setting scan request: 0 sec 100000 usec
WPS: UUID based on MAC address - hexdump(len=16): e2 62 f4 1c e0 42 5f c8 ab fb 5a 26 e2 ac 9c 65
WPS: Build Beacon and Probe Response IEs
WPS: * Version
WPS: * Wi-Fi Protected Setup State (0)
WPS: * Version
WPS: * Wi-Fi Protected Setup State (0)
WPS: * Response Type (2)
WPS: * UUID-E
WPS: * Manufacturer
WPS: * Model Name
WPS: * Model Number
WPS: * Serial Number
WPS: * Primary Device Type
WPS: * Device Name
WPS: * Config Methods (0)
WPS: * RF Bands (3)
EAPOL: SUPP_PAE entering state DISCONNECTED
EAPOL: KEY_RX entering state NO_KEY_RECEIVE
EAPOL: SUPP_BE entering state INITIALIZE
EAP: EAP entering state DISABLED
ctrl_interface_group=112 (from group name 'netdev')
Added interface wlan2
CTRL_IFACE - wlan2 - wait for monitor to attach
CTRL_IFACE monitor attached - hexdump(len=21): 2f 74 6d 70 2f 77 70 61 5f 63 74 72 6c 5f 31 39 37 31 2d 31 00
RTM_NEWLINK: operstate=0 ifi_flags=0x1002 ()
RTM_NEWLINK, IFLA_IFNAME: Interface 'wlan2' added
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
RTM_NEWLINK, IFLA_IFNAME: Interface 'wlan2' added
RTM_NEWLINK: operstate=0 ifi_flags=0x1002 ()
RTM_NEWLINK, IFLA_IFNAME: Interface 'wlan2' added
RTM_NEWLINK: operstate=0 ifi_flags=0x1002 ()
RTM_NEWLINK, IFLA_IFNAME: Interface 'wlan2' added
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
RTM_NEWLINK, IFLA_IFNAME: Interface 'wlan2' added
State: DISCONNECTED -> SCANNING
Starting AP scan (broadcast SSID)
Trying to get current scan results first without requesting a new scan to speed up initial association
Received scan results (0 BSSes)
Cached scan results are empty - not posting
Selecting BSS from priority group 0
Try to find WPA-enabled AP
Try to find non-WPA AP
No suitable AP found.
Setting scan request: 0 sec 0 usec
Starting AP scan (broadcast SSID)
Scan requested (ret=0) - scan timeout 10 seconds
nl80211: Event message available
nl80211: New scan results available
Received scan results (12 BSSes)
CTRL-EVENT-SCAN-RESULTS
CTRL_IFACE monitor send - hexdump(len=21): 2f 74 6d 70 2f 77 70 61 5f 63 74 72 6c 5f 31 39 37 31 2d 31 00
WPS: attr type=0x104a len=1
WPS: attr type=0x1044 len=1
WPS: attr type=0x103b len=1
WPS: attr type=0x1047 len=16
WPS: attr type=0x1021 len=7
WPS: attr type=0x1023 len=15
WPS: attr type=0x1024 len=4
WPS: attr type=0x1042 len=4
WPS: attr type=0x1054 len=8
WPS: attr type=0x1011 len=5
WPS: attr type=0x1008 len=2
WPS: attr type=0x1041 len=1
WPS: attr type=0x104a len=1
WPS: attr type=0x1044 len=1
WPS: attr type=0x103b len=1
WPS: attr type=0x1047 len=16
WPS: attr type=0x1021 len=7
WPS: attr type=0x1023 len=15
WPS: attr type=0x1024 len=4
WPS: attr type=0x1042 len=4
WPS: attr type=0x1054 len=8
WPS: attr type=0x1011 len=5
WPS: attr type=0x1008 len=2
WPS: attr type=0x1041 len=1
WPS-AP-AVAILABLE
CTRL_IFACE monitor send - hexdump(len=21): 2f 74 6d 70 2f 77 70 61 5f 63 74 72 6c 5f 31 39 37 31 2d 31 00
Selecting BSS from priority group 0
Try to find WPA-enabled AP
0: 00:1f:1f:52:d6:b4 ssid='Halterlose Lederhosen' wpa_ie_len=22 rsn_ie_len=0 caps=0x411
selected based on WPA IE
selected WPA AP 00:1f:1f:52:d6:b4 ssid='Halterlose Lederhosen'
Trying to associate with 00:1f:1f:52:d6:b4 (SSID='Halterlose Lederhosen' freq=2442 MHz)
CTRL_IFACE monitor send - hexdump(len=21): 2f 74 6d 70 2f 77 70 61 5f 63 74 72 6c 5f 31 39 37 31 2d 31 00
Cancelling scan request
WPA: clearing own WPA/RSN IE
Automatic auth_alg selection: 0x1
WPA: using IEEE 802.11i/D3.0
WPA: Selected cipher suites: group 8 pairwise 8 key_mgmt 2 proto 1
WPA: set AP WPA IE - hexdump(len=24): dd 16 00 50 f2 01 01 00 00 50 f2 02 01 00 00 50 f2 02 01 00 00 50 f2 02
WPA: clearing AP RSN IE
WPA: using GTK TKIP
WPA: using PTK TKIP
WPA: using KEY_MGMT WPA-PSK
WPA: not using MGMT group cipher
WPA: Set own WPA IE default - hexdump(len=24): dd 16 00 50 f2 01 01 00 00 50 f2 02 01 00 00 50 f2 02 01 00 00 50 f2 02
No keys have been configured - skip key clearing
wpa_driver_nl80211_set_drop_unencrypted
State: SCANNING -> ASSOCIATING
wpa_driver_nl80211_set_operstate: operstate 0->0 (DORMANT)
WEXT: Operstate: linkmode=-1, operstate=5
wpa_driver_nl80211_associate
Setting authentication timeout: 10 sec 0 usec
EAPOL: External notification - EAP success=0
EAPOL: External notification - EAP fail=0
EAPOL: External notification - portControl=Auto
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
RTM_NEWLINK, IFLA_IFNAME: Interface 'wlan2' added
Wireless event: cmd=0x8b19 len=8
RTM_NEWLINK: operstate=0 ifi_flags=0x1003 ([UP])
RTM_NEWLINK, IFLA_IFNAME: Interface 'wlan2' added
Wireless event: cmd=0x8b04 len=12
RTM_NEWLINK: operstate=0 ifi_flags=0x11003 ([UP][LOWER_UP])
RTM_NEWLINK, IFLA_IFNAME: Interface 'wlan2' added
Wireless event: cmd=0x8c08 len=24
AssocResp IE wireless event - hexdump(len=16): 01 08 82 84 8b 96 0c 12 18 24 32 04 30 48 60 6c
RTM_NEWLINK: operstate=0 ifi_flags=0x11003 ([UP][LOWER_UP])
RTM_NEWLINK, IFLA_IFNAME: Interface 'wlan2' added
Wireless event: cmd=0x8b15 len=20
Wireless event: new AP: 00:1f:1f:52:d6:b4
Association info event
resp_ies - hexdump(len=16): 01 08 82 84 8b 96 0c 12 18 24 32 04 30 48 60 6c
State: ASSOCIATING -> ASSOCIATED
wpa_driver_nl80211_set_operstate: operstate 0->0 (DORMANT)
WEXT: Operstate: linkmode=-1, operstate=5
Associated to a new BSS: BSSID=00:1f:1f:52:d6:b4
No keys have been configured - skip key clearing
Associated with 00:1f:1f:52:d6:b4
CTRL_IFACE monitor send - hexdump(len=21): 2f 74 6d 70 2f 77 70 61 5f 63 74 72 6c 5f 31 39 37 31 2d 31 00
WPA: Association event - clear replay counter
WPA: Clear old PTK
EAPOL: External notification - portEnabled=0
EAPOL: External notification - portValid=0
EAPOL: External notification - EAP success=0
EAPOL: External notification - portEnabled=1
EAPOL: SUPP_PAE entering state CONNECTING
EAPOL: SUPP_BE entering state IDLE
Setting authentication timeout: 10 sec 0 usec
Cancelling scan request
RTM_NEWLINK: operstate=0 ifi_flags=0x11003 ([UP][LOWER_UP])
RTM_NEWLINK, IFLA_IFNAME: Interface 'wlan2' added
RX EAPOL from 00:1f:1f:52:d6:b4
RX EAPOL - hexdump(len=99): 01 03 00 5f fe 00 89 00 20 00 00 00 00 00 00 00 01 e8 9f ba 86 27 1a a0 fa e7 fc 35 de 61 ae f0 59 84 df 01 b3 23 a2 58 ab 88 6a a2 c8 a1 51 4b 5a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Setting authentication timeout: 10 sec 0 usec
IEEE 802.1X RX: version=1 type=3 length=95
EAPOL-Key type=254
key_info 0x89 (ver=1 keyidx=0 rsvd=0 Pairwise Ack)
key_length=32 key_data_length=0
replay_counter - hexdump(len=8): 00 00 00 00 00 00 00 01
key_nonce - hexdump(len=32): e8 9f ba 86 27 1a a0 fa e7 fc 35 de 61 ae f0 59 84 df 01 b3 23 a2 58 ab 88 6a a2 c8 a1 51 4b 5a
key_iv - hexdump(len=16): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
key_rsc - hexdump(len=8): 00 00 00 00 00 00 00 00
key_id (reserved) - hexdump(len=8): 00 00 00 00 00 00 00 00
key_mic - hexdump(len=16): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
WPA: RX EAPOL-Key - hexdump(len=99): 01 03 00 5f fe 00 89 00 20 00 00 00 00 00 00 00 01 e8 9f ba 86 27 1a a0 fa e7 fc 35 de 61 ae f0 59 84 df 01 b3 23 a2 58 ab 88 6a a2 c8 a1 51 4b 5a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
State: ASSOCIATED -> 4WAY_HANDSHAKE
WPA: RX message 1 of 4-Way Handshake from 00:1f:1f:52:d6:b4 (ver=1)
WPA: Renewed SNonce - hexdump(len=32): c5 3a e3 cd e3 fb 04 c1 c9 c5 c7 6c f9 83 fb 93 71 3f 51 4a 75 59 07 68 dd 60 51 3a 81 02 68 56
WPA: PTK derivation - A1=00:26:b6:11:62:20 A2=00:1f:1f:52:d6:b4
WPA: PMK - hexdump(len=32): [REMOVED]
WPA: PTK - hexdump(len=64): [REMOVED]
WPA: WPA IE for msg 2/4 - hexdump(len=24): dd 16 00 50 f2 01 01 00 00 50 f2 02 01 00 00 50 f2 02 01 00 00 50 f2 02
WPA: Sending EAPOL-Key 2/4
WPA: TX EAPOL-Key - hexdump(len=123): 01 03 00 77 fe 01 09 00 20 00 00 00 00 00 00 00 01 c5 3a e3 cd e3 fb 04 c1 c9 c5 c7 6c f9 83 fb 93 71 3f 51 4a 75 59 07 68 dd 60 51 3a 81 02 68 56 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 34 9c 97 3f 94 61 f7 11 6b 0c d9 4f 72 2b 14 f9 00 18 dd 16 00 50 f2 01 01 00 00 50 f2 02 01 00 00 50 f2 02 01 00 00 50 f2 02
RX EAPOL from 00:1f:1f:52:d6:b4
RX EAPOL - hexdump(len=123): 01 03 00 77 fe 01 c9 00 20 00 00 00 00 00 00 00 02 e8 9f ba 86 27 1a a0 fa e7 fc 35 de 61 ae f0 59 84 df 01 b3 23 a2 58 ab 88 6a a2 c8 a1 51 4b 5a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d2 79 e0 2e 27 cf 35 6c fd f2 76 7b 28 13 c7 e7 00 18 dd 16 00 50 f2 01 01 00 00 50 f2 02 01 00 00 50 f2 02 01 00 00 50 f2 02
IEEE 802.1X RX: version=1 type=3 length=119
EAPOL-Key type=254
key_info 0x1c9 (ver=1 keyidx=0 rsvd=0 Pairwise Install Ack MIC)
key_length=32 key_data_length=24
replay_counter - hexdump(len=8): 00 00 00 00 00 00 00 02
key_nonce - hexdump(len=32): e8 9f ba 86 27 1a a0 fa e7 fc 35 de 61 ae f0 59 84 df 01 b3 23 a2 58 ab 88 6a a2 c8 a1 51 4b 5a
key_iv - hexdump(len=16): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
key_rsc - hexdump(len=8): 00 00 00 00 00 00 00 00
key_id (reserved) - hexdump(len=8): 00 00 00 00 00 00 00 00
key_mic - hexdump(len=16): d2 79 e0 2e 27 cf 35 6c fd f2 76 7b 28 13 c7 e7
WPA: RX EAPOL-Key - hexdump(len=123): 01 03 00 77 fe 01 c9 00 20 00 00 00 00 00 00 00 02 e8 9f ba 86 27 1a a0 fa e7 fc 35 de 61 ae f0 59 84 df 01 b3 23 a2 58 ab 88 6a a2 c8 a1 51 4b 5a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d2 79 e0 2e 27 cf 35 6c fd f2 76 7b 28 13 c7 e7 00 18 dd 16 00 50 f2 01 01 00 00 50 f2 02 01 00 00 50 f2 02 01 00 00 50 f2 02
State: 4WAY_HANDSHAKE -> 4WAY_HANDSHAKE
WPA: RX message 3 of 4-Way Handshake from 00:1f:1f:52:d6:b4 (ver=1)
WPA: IE KeyData - hexdump(len=24): dd 16 00 50 f2 01 01 00 00 50 f2 02 01 00 00 50 f2 02 01 00 00 50 f2 02
WPA: Sending EAPOL-Key 4/4
WPA: TX EAPOL-Key - hexdump(len=99): 01 03 00 5f fe 01 09 00 20 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9f 9a cc db a6 e7 6c 67 e6 73 99 69 0b a4 e4 54 00 00
WPA: Installing PTK to the driver.
WPA: RSC - hexdump(len=6): 00 00 00 00 00 00
wpa_driver_nl80211_set_key: alg=2 addr=0x9279554 key_idx=0 set_tx=1 seq_len=6 key_len=32
addr=00:1f:1f:52:d6:b4
State: 4WAY_HANDSHAKE -> GROUP_HANDSHAKE
RX EAPOL from 00:1f:1f:52:d6:b4
RX EAPOL - hexdump(len=131): 01 03 00 7f fe 03 91 00 20 00 00 00 00 00 00 00 03 e8 9f ba 86 27 1a a0 fa e7 fc 35 de 61 ae f0 59 84 df 01 b3 23 a2 58 ab 88 6a a2 c8 a1 51 4b 55 84 df 01 b3 23 a2 58 ab 88 6a a2 c8 a1 51 4b 5b 2d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1f 7a f7 83 c5 37 c2 8c 65 9e 7b b3 be d9 c8 3d 00 20 73 13 32 e5 60 df fb ea 62 77 6f b2 43 8b 1d b5 a2 b4 4e fe 67 32 50 63 fe 8e 47 1b ba be ad 1d
IEEE 802.1X RX: version=1 type=3 length=127
EAPOL-Key type=254
key_info 0x391 (ver=1 keyidx=1 rsvd=0 Group Ack MIC Secure)
key_length=32 key_data_length=32
replay_counter - hexdump(len=8): 00 00 00 00 00 00 00 03
key_nonce - hexdump(len=32): e8 9f ba 86 27 1a a0 fa e7 fc 35 de 61 ae f0 59 84 df 01 b3 23 a2 58 ab 88 6a a2 c8 a1 51 4b 55
key_iv - hexdump(len=16): 84 df 01 b3 23 a2 58 ab 88 6a a2 c8 a1 51 4b 5b
key_rsc - hexdump(len=8): 2d 00 00 00 00 00 00 00
key_id (reserved) - hexdump(len=8): 00 00 00 00 00 00 00 00
key_mic - hexdump(len=16): 1f 7a f7 83 c5 37 c2 8c 65 9e 7b b3 be d9 c8 3d
WPA: RX EAPOL-Key - hexdump(len=131): 01 03 00 7f fe 03 91 00 20 00 00 00 00 00 00 00 03 e8 9f ba 86 27 1a a0 fa e7 fc 35 de 61 ae f0 59 84 df 01 b3 23 a2 58 ab 88 6a a2 c8 a1 51 4b 55 84 df 01 b3 23 a2 58 ab 88 6a a2 c8 a1 51 4b 5b 2d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1f 7a f7 83 c5 37 c2 8c 65 9e 7b b3 be d9 c8 3d 00 20 73 13 32 e5 60 df fb ea 62 77 6f b2 43 8b 1d b5 a2 b4 4e fe 67 32 50 63 fe 8e 47 1b ba be ad 1d
WPA: RX message 1 of Group Key Handshake from 00:1f:1f:52:d6:b4 (ver=1)
State: GROUP_HANDSHAKE -> GROUP_HANDSHAKE
WPA: Group Key - hexdump(len=32): [REMOVED]
WPA: Installing GTK to the driver (keyidx=1 tx=0 len=32).
WPA: RSC - hexdump(len=6): 2d 00 00 00 00 00
wpa_driver_nl80211_set_key: alg=2 addr=0x80ba878 key_idx=1 set_tx=0 seq_len=6 key_len=32
WPA: Sending EAPOL-Key 2/2
WPA: TX EAPOL-Key - hexdump(len=99): 01 03 00 5f fe 03 11 00 20 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ef d5 65 ad 8d 38 a0 8a 43 29 2f d7 1a 28 48 ff 00 00
WPA: Key negotiation completed with 00:1f:1f:52:d6:b4 [PTK=TKIP GTK=TKIP]
CTRL_IFACE monitor send - hexdump(len=21): 2f 74 6d 70 2f 77 70 61 5f 63 74 72 6c 5f 31 39 37 31 2d 31 00
Cancelling authentication timeout
State: GROUP_HANDSHAKE -> COMPLETED
CTRL-EVENT-CONNECTED - Connection to 00:1f:1f:52:d6:b4 completed (auth) [id=0 id_str=home]
CTRL_IFACE monitor send - hexdump(len=21): 2f 74 6d 70 2f 77 70 61 5f 63 74 72 6c 5f 31 39 37 31 2d 31 00
wpa_driver_nl80211_set_operstate: operstate 0->1 (UP)
WEXT: Operstate: linkmode=-1, operstate=6
EAPOL: External notification - portValid=1
EAPOL: External notification - EAP success=1
EAPOL: SUPP_PAE entering state AUTHENTICATING
EAPOL: SUPP_BE entering state SUCCESS
EAP: EAP entering state DISABLED
EAPOL: SUPP_PAE entering state AUTHENTICATED
EAPOL: SUPP_BE entering state IDLE
EAPOL authentication completed successfully
RTM_NEWLINK: operstate=1 ifi_flags=0x11043 ([UP][RUNNING][LOWER_UP])
RTM_NEWLINK, IFLA_IFNAME: Interface 'wlan2' added
EAPOL: startWhen --> 0
EAPOL: disable timer tick
RX ctrl_iface - hexdump_ascii(len=4):
50 49 4e 47 PING
RX ctrl_iface - hexdump_ascii(len=4):
50 49 4e 47 PING
RX ctrl_iface - hexdump_ascii(len=4):
50 49 4e 47 PING
RX EAPOL from 00:1f:1f:52:d6:b4
RX EAPOL - hexdump(len=131): 01 03 00 7f fe 03 a1 00 20 00 00 00 00 00 00 00 04 e8 9f ba 86 27 1a a0 fa e7 fc 35 de 61 ae f0 59 84 df 01 b3 23 a2 58 ab 88 6a a2 c8 a1 51 4b 5c 84 df 01 b3 23 a2 58 ab 88 6a a2 c8 a1 51 4b 5d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 61 69 af 21 c7 0a fc ac 34 af 33 62 42 7c 41 b0 00 20 fa 0c 86 18 cd 56 6e ef 2b 64 23 a8 96 2c b2 08 eb 61 c8 87 58 0e 89 4d 84 f6 fc dd 9f ba 07 6c
IEEE 802.1X RX: version=1 type=3 length=127
EAPOL-Key type=254
key_info 0x3a1 (ver=1 keyidx=2 rsvd=0 Group Ack MIC Secure)
key_length=32 key_data_length=32
replay_counter - hexdump(len=8): 00 00 00 00 00 00 00 04
key_nonce - hexdump(len=32): e8 9f ba 86 27 1a a0 fa e7 fc 35 de 61 ae f0 59 84 df 01 b3 23 a2 58 ab 88 6a a2 c8 a1 51 4b 5c
key_iv - hexdump(len=16): 84 df 01 b3 23 a2 58 ab 88 6a a2 c8 a1 51 4b 5d
key_rsc - hexdump(len=8): 00 00 00 00 00 00 00 00
key_id (reserved) - hexdump(len=8): 00 00 00 00 00 00 00 00
key_mic - hexdump(len=16): 61 69 af 21 c7 0a fc ac 34 af 33 62 42 7c 41 b0
WPA: RX EAPOL-Key - hexdump(len=131): 01 03 00 7f fe 03 a1 00 20 00 00 00 00 00 00 00 04 e8 9f ba 86 27 1a a0 fa e7 fc 35 de 61 ae f0 59 84 df 01 b3 23 a2 58 ab 88 6a a2 c8 a1 51 4b 5c 84 df 01 b3 23 a2 58 ab 88 6a a2 c8 a1 51 4b 5d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 61 69 af 21 c7 0a fc ac 34 af 33 62 42 7c 41 b0 00 20 fa 0c 86 18 cd 56 6e ef 2b 64 23 a8 96 2c b2 08 eb 61 c8 87 58 0e 89 4d 84 f6 fc dd 9f ba 07 6c
WPA: RX message 1 of Group Key Handshake from 00:1f:1f:52:d6:b4 (ver=1)
State: COMPLETED -> GROUP_HANDSHAKE
WPA: Group Key - hexdump(len=32): [REMOVED]
WPA: Installing GTK to the driver (keyidx=2 tx=0 len=32).
WPA: RSC - hexdump(len=6): 00 00 00 00 00 00
wpa_driver_nl80211_set_key: alg=2 addr=0x80ba878 key_idx=2 set_tx=0 seq_len=6 key_len=32
WPA: Sending EAPOL-Key 2/2
WPA: TX EAPOL-Key - hexdump(len=99): 01 03 00 5f fe 03 21 00 20 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b1 eb 43 9e 07 92 08 e0 f4 d8 82 85 72 02 b7 89 00 00
WPA: Group rekeying completed with 00:1f:1f:52:d6:b4 [GTK=TKIP]
CTRL_IFACE monitor send - hexdump(len=21): 2f 74 6d 70 2f 77 70 61 5f 63 74 72 6c 5f 31 39 37 31 2d 31 00
Cancelling authentication timeout
State: GROUP_HANDSHAKE -> COMPLETED
RX ctrl_iface - hexdump_ascii(len=4):
50 49 4e 47 PING
RX ctrl_iface - hexdump_ascii(len=4):
50 49 4e 47 PING
RX ctrl_iface - hexdump_ascii(len=4):
50 49 4e 47 PING
RX ctrl_iface - hexdump_ascii(len=4):
50 49 4e 47 PING
RX ctrl_iface - hexdump_ascii(len=4):
50 49 4e 47 PING
RX ctrl_iface - hexdump_ascii(len=4):
50 49 4e 47 PING
RX ctrl_iface - hexdump_ascii(len=4):
50 49 4e 47 PING
RX ctrl_iface - hexdump_ascii(len=4):
50 49 4e 47 PING
RX ctrl_iface - hexdump_ascii(len=4):
50 49 4e 47 PING
RX ctrl_iface - hexdump_ascii(len=4):
50 49 4e 47 PING
RX ctrl_iface - hexdump_ascii(len=4):
50 49 4e 47 PING
RX ctrl_iface - hexdump_ascii(len=6):
53 54 41 54 55 53 STATUS
RX ctrl_iface - hexdump_ascii(len=4):
50 49 4e 47 PING
RX ctrl_iface - hexdump_ascii(len=4):
50 49 4e 47 PING
RX ctrl_iface - hexdump_ascii(len=6):
53 54 41 54 55 53 STATUS
RX ctrl_iface - hexdump_ascii(len=6):
53 54 41 54 55 53 STATUS
RX ctrl_iface - hexdump_ascii(len=6):
53 54 41 54 55 53 STATUS
RX ctrl_iface - hexdump_ascii(len=6):
53 54 41 54 55 53 STATUS
RX ctrl_iface - hexdump_ascii(len=6):
53 54 41 54 55 53 STATUS
RX ctrl_iface - hexdump_ascii(len=6):
53 54 41 54 55 53 STATUS
RX ctrl_iface - hexdump_ascii(len=6):
53 54 41 54 55 53 STATUS
RX ctrl_iface - hexdump_ascii(len=6):
53 54 41 54 55 53 STATUS
RX ctrl_iface - hexdump_ascii(len=6):
53 54 41 54 55 53 STATUS
RX ctrl_iface - hexdump_ascii(len=6):
53 54 41 54 55 53 STATUS
RX ctrl_iface - hexdump_ascii(len=4):
50 49 4e 47 PING
RX ctrl_iface - hexdump_ascii(len=4):
50 49 4e 47 PING
RX ctrl_iface - hexdump_ascii(len=4):
50 49 4e 47 PING
CTRL-EVENT-TERMINATING - signal 2 received
CTRL_IFACE monitor send - hexdump(len=21): 2f 74 6d 70 2f 77 70 61 5f 63 74 72 6c 5f 31 39 37 31 2d 31 00
Removing interface wlan2
State: COMPLETED -> DISCONNECTED
wpa_driver_nl80211_set_operstate: operstate 1->0 (DORMANT)
WEXT: Operstate: linkmode=-1, operstate=5
wpa_driver_nl80211_deauthenticate
wpa_driver_nl80211_set_key: alg=0 addr=0x80ba878 key_idx=0 set_tx=0 seq_len=0 key_len=0
nl80211: set_key failed; err=-67
wpa_driver_nl80211_set_key: alg=0 addr=0x80ba878 key_idx=1 set_tx=0 seq_len=0 key_len=0
nl80211: set_key failed; err=-67
wpa_driver_nl80211_set_key: alg=0 addr=0x80ba878 key_idx=2 set_tx=0 seq_len=0 key_len=0
nl80211: set_key failed; err=-67
wpa_driver_nl80211_set_key: alg=0 addr=0x80ba878 key_idx=3 set_tx=0 seq_len=0 key_len=0
nl80211: set_key failed; err=-67
wpa_driver_nl80211_set_key: alg=0 addr=0x9277640 key_idx=0 set_tx=0 seq_len=0 key_len=0
addr=00:1f:1f:52:d6:b4
nl80211: set_key failed; err=-67
EAPOL: External notification - portEnabled=0
EAPOL: SUPP_PAE entering state DISCONNECTED
EAPOL: SUPP_BE entering state INITIALIZE
EAPOL: External notification - portValid=0
wpa_driver_nl80211_set_wpa
wpa_driver_nl80211_set_drop_unencrypted
wpa_driver_nl80211_set_countermeasures
No keys have been configured - skip key clearing
CTRL_IFACE wait for attached monitors to receive messages
Cancelling scan request
Cancelling authentication timeout
WEXT: Operstate: linkmode=0, operstate=6
########iw event -t############################
1255718273.323149: wlan2 (phy #0): unknown event 33
1255718274.251310: wlan2 (phy #0): scan finished
1255718274.260481: wlan2 (phy #0): deauth 00:26:b6:11:62:20 -> 00:1f:1f:52:d6:b4 reason 3: Deauthenticated because sending station is leaving (or has left) the IBSS or ESS
1255718274.260690: wlan2 (phy #0): unknown event 46
1255718274.266322: wlan2 (phy #0): auth 00:1f:1f:52:d6:b4 -> 00:26:b6:11:62:20 status: 0: Successful
1255718274.269848: wlan2 (phy #0): assoc 00:1f:1f:52:d6:b4 -> 00:26:b6:11:62:20 status: 0: Successful
1255718274.269978: wlan2 (phy #0): unknown event 46
###############################################
#####################HOST######################
###############################################
interface=wlan0
driver=nl80211
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
ssid=Halterlose Lederhosen
country_code=DE
ieee80211d=1
hw_mode=g
channel=7
beacon_int=100
dtim_period=2
max_num_sta=255
rts_threshold=2347
fragm_threshold=2346
macaddr_acl=0
auth_algs=3
ignore_broadcast_ssid=0
wme_ac_bk_cwmin=4
wme_ac_bk_cwmax=10
wme_ac_bk_aifs=7
wme_ac_bk_txop_limit=0
wme_ac_bk_acm=0
wme_ac_be_aifs=3
wme_ac_be_cwmin=4
wme_ac_be_cwmax=10
wme_ac_be_txop_limit=0
wme_ac_be_acm=0
wme_ac_vi_aifs=2
wme_ac_vi_cwmin=3
wme_ac_vi_cwmax=4
wme_ac_vi_txop_limit=94
wme_ac_vi_acm=0
wme_ac_vo_aifs=2
wme_ac_vo_cwmin=2
wme_ac_vo_cwmax=3
wme_ac_vo_txop_limit=47
wme_ac_vo_acm=0
ieee8021x=0
eapol_version=1
own_ip_addr=127.0.0.1
wpa=2
wpa_psk=0fd9a61d096e97f59bda536d0d2f4bbe5fd186694b33060f113be9f4ebda146a
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
###################hostapd.log#######################3
1255718250.071919: Configuration file: /etc/hostapd/hostapd.conf
1255718250.072410: ctrl_interface_group=0
1255718250.072519: eapol_version=1
1255718250.107587: Opening raw packet socket for ifindex 212
1255718250.107608: BSS count 1, BSSID mask ff:ff:ff:ff:ff:ff (0 bits)
1255718250.107635: SIOCGIWRANGE: WE(compiled)=22 WE(source)=21 enc_capa=0xf
1255718250.107699: nl80211: Added 802.11b mode based on 802.11g information
1255718250.107704: Allowed channel: mode=1 chan=1 freq=2412 MHz max_tx_power=16 dBm
1255718250.107707: Allowed channel: mode=1 chan=2 freq=2417 MHz max_tx_power=16 dBm
1255718250.107711: Allowed channel: mode=1 chan=3 freq=2422 MHz max_tx_power=15 dBm
1255718250.107713: Allowed channel: mode=1 chan=4 freq=2427 MHz max_tx_power=15 dBm
1255718250.107716: Allowed channel: mode=1 chan=5 freq=2432 MHz max_tx_power=15 dBm
1255718250.107719: Allowed channel: mode=1 chan=6 freq=2437 MHz max_tx_power=14 dBm
1255718250.107722: Allowed channel: mode=1 chan=7 freq=2442 MHz max_tx_power=14 dBm
1255718250.107725: Allowed channel: mode=1 chan=8 freq=2447 MHz max_tx_power=14 dBm
1255718250.107728: Allowed channel: mode=1 chan=9 freq=2452 MHz max_tx_power=13 dBm
1255718250.107731: Allowed channel: mode=1 chan=10 freq=2457 MHz max_tx_power=13 dBm
1255718250.107733: Allowed channel: mode=1 chan=11 freq=2462 MHz max_tx_power=13 dBm
1255718250.107736: Allowed channel: mode=0 chan=1 freq=2412 MHz max_tx_power=16 dBm
1255718250.107739: Allowed channel: mode=0 chan=2 freq=2417 MHz max_tx_power=16 dBm
1255718250.107742: Allowed channel: mode=0 chan=3 freq=2422 MHz max_tx_power=15 dBm
1255718250.107745: Allowed channel: mode=0 chan=4 freq=2427 MHz max_tx_power=15 dBm
1255718250.107748: Allowed channel: mode=0 chan=5 freq=2432 MHz max_tx_power=15 dBm
1255718250.107751: Allowed channel: mode=0 chan=6 freq=2437 MHz max_tx_power=14 dBm
1255718250.107754: Allowed channel: mode=0 chan=7 freq=2442 MHz max_tx_power=14 dBm
1255718250.107757: Allowed channel: mode=0 chan=8 freq=2447 MHz max_tx_power=14 dBm
1255718250.107760: Allowed channel: mode=0 chan=9 freq=2452 MHz max_tx_power=13 dBm
1255718250.107762: Allowed channel: mode=0 chan=10 freq=2457 MHz max_tx_power=13 dBm
1255718250.107765: Allowed channel: mode=0 chan=11 freq=2462 MHz max_tx_power=13 dBm
1255718250.107790: RATE[0] rate=10 flags=0x2
1255718250.107795: RATE[1] rate=20 flags=0x6
1255718250.107798: RATE[2] rate=55 flags=0x6
1255718250.107800: RATE[3] rate=110 flags=0x6
1255718250.107803: RATE[4] rate=60 flags=0x0
1255718250.107806: RATE[5] rate=90 flags=0x0
1255718250.107809: RATE[6] rate=120 flags=0x0
1255718250.107812: RATE[7] rate=180 flags=0x0
1255718250.107814: RATE[8] rate=240 flags=0x0
1255718250.107817: RATE[9] rate=360 flags=0x0
1255718250.107820: RATE[10] rate=480 flags=0x0
1255718250.107822: RATE[11] rate=540 flags=0x0
1255718250.107825: Passive scanning not supported
1255718250.107829: Flushing old station entries
1255718250.107845: Deauthenticate all stations
1255718250.107871: Mode: IEEE 802.11g Channel: 7 Frequency: 2442 MHz
1255718250.115235: Using interface wlan0 with hwaddr 00:1f:1f:52:d6:b4 and ssid 'Halterlose Lederhosen'
1255718250.117332: WPA: group state machine entering state GTK_INIT (VLAN-ID 0)
1255718250.117347: GMK - hexdump(len=32): a7 08 73 55 06 6e dc cd 82 c8 d3 2c 15 a2 19 97 b0 44 f5 fc e9 de b1 ae ad d4 64 74 99 93 b3 aa
1255718250.117359: GTK - hexdump(len=32): c8 b4 96 8d c0 f1 0f 3b e1 48 3f 9d 40 28 72 9f 16 ef 4f 1c 31 c5 18 78 8c ec e6 3a c3 5e 6f ff
1255718250.117370: WPA: group state machine entering state SETKEYSDONE (VLAN-ID 0)
1255718250.117586: wlan0: Setup of interface done.
1255718250.117614: MGMT (TX callback) ACK
1255718259.405747: unknown vendor specific information element ignored (vendor OUI 00:10:18 len=9)
1255718259.405790: STA 00:21:00:0b:de:7d sent probe request for broadcast SSID
1255718259.407360: MGMT (TX callback) ACK
1255718259.407364: mgmt::proberesp cb
1255718259.425763: unknown vendor specific information element ignored (vendor OUI 00:10:18 len=9)
1255718259.425801: STA 00:21:00:0b:de:7d sent probe request for broadcast SSID
1255718259.427373: MGMT (TX callback) ACK
1255718259.427378: mgmt::proberesp cb
1255718262.601297: unknown vendor specific information element ignored (vendor OUI 00:03:47 len=7)
1255718262.601990: unknown vendor specific information element ignored (vendor OUI 00:03:47 len=7)
1255718262.602022: STA 00:1f:3c:c3:c4:22 sent probe request for broadcast SSID
1255718262.615549: MGMT (TX callback) ACK
1255718262.615560: mgmt::proberesp cb
1255718274.172523: STA 00:26:b6:11:62:20 sent probe request for broadcast SSID
1255718274.174090: MGMT (TX callback) ACK
1255718274.174094: mgmt::proberesp cb
1255718274.614193: MGMT
1255718274.614204: mgmt::deauth
1255718274.614207: deauthentication: STA=00:26:b6:11:62:20 reason_code=3
Station 00:26:b6:11:62:20 trying to deauthenticate, but it is not authenticated.
1255718274.615521: STA 00:26:b6:11:62:20 sent probe request for our SSID
1255718274.617089: MGMT (TX callback) ACK
1255718274.617093: mgmt::proberesp cb
1255718274.617870: MGMT
1255718274.617873: mgmt::auth
1255718274.617875: authentication: STA=00:26:b6:11:62:20 auth_alg=0 auth_transaction=1 status_code=0 wep=0
1255718274.617887: New STA
1255718274.617906: wlan0: STA 00:26:b6:11:62:20 IEEE 802.11: authentication OK (open system)
1255718274.617917: wlan0: STA 00:26:b6:11:62:20 MLME: MLME-AUTHENTICATE.indication(00:26:b6:11:62:20, OPEN_SYSTEM)
1255718274.617924: wlan0: STA 00:26:b6:11:62:20 MLME: MLME-DELETEKEYS.request(00:26:b6:11:62:20)
1255718274.617927: authentication reply: STA=00:26:b6:11:62:20 auth_alg=0 auth_transaction=2 resp=0 (IE len=0)
1255718274.619203: MGMT (TX callback) ACK
1255718274.619207: mgmt::auth cb
1255718274.619214: wlan0: STA 00:26:b6:11:62:20 IEEE 802.11: authenticated
1255718274.620545: MGMT
1255718274.620550: mgmt::assoc_req
1255718274.620553: association request: STA=00:26:b6:11:62:20 capab_info=0x431 listen_interval=10
1255718274.620566: new AID 1
1255718274.620573: wlan0: STA 00:26:b6:11:62:20 IEEE 802.11: association OK (aid 1)
1255718274.621913: MGMT (TX callback) ACK
1255718274.621916: mgmt::assoc_resp cb
1255718274.621922: wlan0: STA 00:26:b6:11:62:20 IEEE 802.11: associated (aid 1)
1255718274.622008: wlan0: STA 00:26:b6:11:62:20 MLME: MLME-ASSOCIATE.indication(00:26:b6:11:62:20)
1255718274.622015: wlan0: STA 00:26:b6:11:62:20 MLME: MLME-DELETEKEYS.request(00:26:b6:11:62:20)
1255718274.622405: wlan0: STA 00:26:b6:11:62:20 WPA: event 1 notification
1255718274.622441: wlan0: STA 00:26:b6:11:62:20 WPA: start authentication
1255718274.622444: WPA: 00:26:b6:11:62:20 WPA_PTK entering state INITIALIZE
1255718274.622479: wlan0: STA 00:26:b6:11:62:20 IEEE 802.1X: unauthorizing port
1255718274.622482: WPA: 00:26:b6:11:62:20 WPA_PTK_GROUP entering state IDLE
1255718274.622486: WPA: 00:26:b6:11:62:20 WPA_PTK entering state AUTHENTICATION
1255718274.622490: WPA: 00:26:b6:11:62:20 WPA_PTK entering state AUTHENTICATION2
1255718274.622494: WPA: 00:26:b6:11:62:20 WPA_PTK entering state INITPSK
1255718274.622498: WPA: 00:26:b6:11:62:20 WPA_PTK entering state PTKSTART
1255718274.622504: wlan0: STA 00:26:b6:11:62:20 WPA: sending 1/4 msg of 4-Way Handshake
1255718274.622507: WPA: Send EAPOL(version=1 secure=0 mic=0 ack=1 install=0 pairwise=8 kde_len=0 keyidx=0 encr=0)
1255718274.624154: IEEE 802.1X: 00:26:b6:11:62:20 TX status - version=1 type=3 length=95 - ack=1
1255718274.659106: IEEE 802.1X: 123 bytes from 00:26:b6:11:62:20
1255718274.659118: IEEE 802.1X: version=1 type=3 length=119
1255718274.659132: wlan0: STA 00:26:b6:11:62:20 WPA: received EAPOL-Key frame (2/4 Pairwise)
1255718274.659138: WPA: 00:26:b6:11:62:20 WPA_PTK entering state PTKCALCNEGOTIATING
1255718274.659163: WPA: PTK derivation - A1=00:1f:1f:52:d6:b4 A2=00:26:b6:11:62:20
1255718274.659168: WPA: PMK - hexdump(len=32): 0f d9 a6 1d 09 6e 97 f5 9b da 53 6d 0d 2f 4b be 5f d1 86 69 4b 33 06 0f 11 3b e9 f4 eb da 14 6a
1255718274.659178: WPA: PTK - hexdump(len=64): 92 d6 dc 74 95 94 d2 aa f8 f6 8e b2 93 1d 11 fb 5b 60 ed 91 1f c7 cf 9d 22 88 4a bc b0 23 07 59 c8 66 e4 19 44 40 d1 30 e8 49 59 08 0c 55 4b 18 53 72 1b 1d e2 ac 4c 0c 54 05 b5 d0 61 56 73 b8
1255718274.659279: WPA: 00:26:b6:11:62:20 WPA_PTK entering state PTKCALCNEGOTIATING2
1255718274.659283: WPA: 00:26:b6:11:62:20 WPA_PTK entering state PTKINITNEGOTIATING
1255718274.659356: wlan0: STA 00:26:b6:11:62:20 WPA: sending 3/4 msg of 4-Way Handshake
1255718274.659359: WPA: Send EAPOL(version=1 secure=0 mic=1 ack=1 install=1 pairwise=8 kde_len=24 keyidx=0 encr=0)
1255718274.661229: IEEE 802.1X: 00:26:b6:11:62:20 TX status - version=1 type=3 length=119 - ack=1
1255718274.661712: IEEE 802.1X: 99 bytes from 00:26:b6:11:62:20
1255718274.661716: IEEE 802.1X: version=1 type=3 length=95
1255718274.661727: wlan0: STA 00:26:b6:11:62:20 WPA: received EAPOL-Key frame (4/4 Pairwise)
1255718274.661736: WPA: 00:26:b6:11:62:20 WPA_PTK entering state PTKINITDONE
1255718274.661799: wlan0: STA 00:26:b6:11:62:20 IEEE 802.1X: authorizing port
1255718274.661805: wlan0: STA 00:26:b6:11:62:20 RADIUS: starting accounting session 4AD8BD6A-00000000
1255718274.661960: wlan0: STA 00:26:b6:11:62:20 WPA: pairwise key handshake completed (WPA)
1255718274.662036: WPA: 00:26:b6:11:62:20 WPA_PTK_GROUP entering state REKEYNEGOTIATING
1255718274.662076: wlan0: STA 00:26:b6:11:62:20 WPA: sending 1/2 msg of Group Key Handshake
1255718274.662079: WPA: Send EAPOL(version=1 secure=1 mic=1 ack=1 install=0 pairwise=0 kde_len=32 keyidx=1 encr=1)
1255718274.662085: Plaintext EAPOL-Key Key Data - hexdump(len=32): c8 b4 96 8d c0 f1 0f 3b e1 48 3f 9d 40 28 72 9f 16 ef 4f 1c 31 c5 18 78 8c ec e6 3a c3 5e 6f ff
1255718274.664818: IEEE 802.1X: 99 bytes from 00:26:b6:11:62:20
1255718274.664823: IEEE 802.1X: version=1 type=3 length=95
1255718274.664830: wlan0: STA 00:26:b6:11:62:20 WPA: received EAPOL-Key frame (2/2 Group)
1255718274.664836: WPA: 00:26:b6:11:62:20 WPA_PTK_GROUP entering state REKEYESTABLISHED
1255718274.664843: wlan0: STA 00:26:b6:11:62:20 WPA: group key handshake completed (WPA)
1255718274.664919: WPA: 00:26:b6:11:62:20 WPA_PTK_GROUP entering state IDLE
1255718282.647676: unknown vendor specific information element ignored (vendor OUI 00:10:18 len=9)
1255718282.647718: STA 04:1e:64:28:6e:e8 sent probe request for broadcast SSID
1255718282.656881: MGMT (TX callback) fail
1255718282.656886: mgmt::proberesp cb
1255718282.689270: unknown vendor specific information element ignored (vendor OUI 00:10:18 len=9)
1255718282.689290: STA 04:1e:64:28:6e:e8 sent probe request for broadcast SSID
1255718282.699478: MGMT (TX callback) ACK
1255718282.699483: mgmt::proberesp cb
1255718282.707754: unknown vendor specific information element ignored (vendor OUI 00:10:18 len=9)
1255718282.707782: STA 04:1e:64:28:6e:e8 sent probe request for broadcast SSID
1255718282.721864: MGMT (TX callback) fail
1255718282.721868: mgmt::proberesp cb
1255718290.622949: STA 00:18:de:38:a2:48 sent probe request for broadcast SSID
1255718290.632630: MGMT (TX callback) fail
1255718290.632635: mgmt::proberesp cb
1255718295.230991: unknown vendor specific information element ignored (vendor OUI 00:10:18 len=9)
1255718295.231038: STA 04:1e:64:28:6e:e8 sent probe request for broadcast SSID
1255718295.232715: MGMT (TX callback) ACK
1255718295.232721: mgmt::proberesp cb
1255718319.406397: unknown vendor specific information element ignored (vendor OUI 00:10:18 len=9)
1255718319.406441: STA 00:21:00:0b:de:7d sent probe request for broadcast SSID
1255718319.421003: MGMT (TX callback) fail
1255718319.421008: mgmt::proberesp cb
1255718329.898488: unknown vendor specific information element ignored (vendor OUI 00:03:47 len=7)
1255718329.898529: STA 00:1f:3c:c3:c4:22 sent probe request for broadcast SSID
1255718329.912168: MGMT (TX callback) fail
1255718329.912172: mgmt::proberesp cb
1255718356.190102: STA 00:18:de:38:a2:48 sent probe request for broadcast SSID
1255718356.193219: MGMT (TX callback) ACK
1255718356.193225: mgmt::proberesp cb
1255718363.068709: unknown vendor specific information element ignored (vendor OUI 00:10:18 len=9)
1255718363.068751: STA 00:16:ce:29:88:30 sent probe request for broadcast SSID
1255718363.073412: MGMT (TX callback) ACK
1255718363.073417: mgmt::proberesp cb
1255718363.079184: unknown vendor specific information element ignored (vendor OUI 00:10:18 len=9)
1255718363.079203: STA 00:16:ce:29:88:30 sent probe request for broadcast SSID
1255718363.080769: MGMT (TX callback) ACK
1255718363.080773: mgmt::proberesp cb
1255718378.686695: Signal 2 received - terminating
1255718378.686719: wlan0: STA 00:26:b6:11:62:20 MLME: MLME-DEAUTHENTICATE.indication(00:26:b6:11:62:20, 1)
1255718378.686726: wlan0: STA 00:26:b6:11:62:20 MLME: MLME-DELETEKEYS.request(00:26:b6:11:62:20)
1255718378.686793: Removing station 00:26:b6:11:62:20
1255718378.686825: Flushing old station entries
1255718378.686841: Deauthenticate all stations
^ permalink raw reply
* Re: BUG: endianness issues with libertas if_spi.c
From: Andrey Yurovsky @ 2009-10-16 19:08 UTC (permalink / raw)
To: Holger Schurig; +Cc: linux-wireless
In-Reply-To: <200910161741.19731.hs4233@mail.mn-solutions.de>
Hi Holger. Thanks for checking these and for all your recent work
with Libertas!
On Fri, Oct 16, 2009 at 8:41 AM, Holger Schurig
<hs4233@mail.mn-solutions.de> wrote:
> Andrey, can you fix this? I don't have SPI hardware and wouldn't
> be able to check the functionality after the fixes. However, some
> things are obvious, e.g.
>
>
> u16 reg_out = cpu_to_le16(reg | IF_SPI_WRITE_OPERATION_MASK);
>
> should either be
>
> reg_out = reg | IF_SPI_WRITE_OPERATION_MASK;
>
> or
>
> __le16 reg_out = cpu_to_le16(reg | IF_SPI_WRITE_OPERATION_MASK);
It used to be as per your first suggestion but Sebastian changed it to
the current version in commit f488b72d (he was using a PowerPC-based
SoC and was thus on a BE architecture vs. our LE systems, so it was a
good catch). Changing it to be a __le16 sounds reasonable. Are you
in a position to go ahead and make these changes and have me quickly
test your patch (on LE hardware though, unless Sebastian can chime in
and help us)? I have time to apply and test a patch but unfortunately
I don't have time to nail down all of the sparse warnings you posted
this week.
> Here's a run with sparse:
>
> $ make -C /usr/src/linux-wl/ modules SUBDIRS=drivers/net/wireless/libertas C=2 CF=-D__CHECK_ENDIAN__
> drivers/net/wireless/libertas/if_spi.c:137:16: warning: incorrect type in initializer (different base types)
> drivers/net/wireless/libertas/if_spi.c:137:16: expected unsigned short [unsigned] [usertype] reg_out
> drivers/net/wireless/libertas/if_spi.c:137:16: got restricted __le16 [usertype] <noident>
> drivers/net/wireless/libertas/if_spi.c:191:16: warning: incorrect type in initializer (different base types)
> drivers/net/wireless/libertas/if_spi.c:191:16: expected unsigned short [unsigned] [usertype] reg_out
> drivers/net/wireless/libertas/if_spi.c:191:16: got restricted __le16 [usertype] <noident>
> drivers/net/wireless/libertas/if_spi.c:256:24: warning: incorrect type in argument 1 (different base types)
> drivers/net/wireless/libertas/if_spi.c:256:24: expected restricted __le32 const [usertype] *p
> drivers/net/wireless/libertas/if_spi.c:256:24: got unsigned int *<noident>
> drivers/net/wireless/libertas/if_spi.c:243:24: warning: incorrect type in argument 1 (different base types)
> drivers/net/wireless/libertas/if_spi.c:243:24: expected restricted __le16 const [usertype] *p
> drivers/net/wireless/libertas/if_spi.c:243:24: got unsigned short *<noident>
> drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
> drivers/net/wireless/libertas/if_spi.c:171:7: expected unsigned short [unsigned] [usertype] buff
> drivers/net/wireless/libertas/if_spi.c:171:7: got restricted __le16 [usertype] <noident>
> drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
> drivers/net/wireless/libertas/if_spi.c:171:7: expected unsigned short [unsigned] [usertype] buff
> drivers/net/wireless/libertas/if_spi.c:171:7: got restricted __le16 [usertype] <noident>
> drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
> drivers/net/wireless/libertas/if_spi.c:171:7: expected unsigned short [unsigned] [usertype] buff
> drivers/net/wireless/libertas/if_spi.c:171:7: got restricted __le16 [usertype] <noident>
> drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
> drivers/net/wireless/libertas/if_spi.c:171:7: expected unsigned short [unsigned] [usertype] buff
> drivers/net/wireless/libertas/if_spi.c:171:7: got restricted __le16 [usertype] <noident>
> drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
> drivers/net/wireless/libertas/if_spi.c:171:7: expected unsigned short [unsigned] [usertype] buff
> drivers/net/wireless/libertas/if_spi.c:171:7: got restricted __le16 [usertype] <noident>
> drivers/net/wireless/libertas/if_spi.c:243:24: warning: incorrect type in argument 1 (different base types)
> drivers/net/wireless/libertas/if_spi.c:243:24: expected restricted __le16 const [usertype] *p
> drivers/net/wireless/libertas/if_spi.c:243:24: got unsigned short *<noident>
> drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
> drivers/net/wireless/libertas/if_spi.c:171:7: expected unsigned short [unsigned] [usertype] buff
> drivers/net/wireless/libertas/if_spi.c:171:7: got restricted __le16 [usertype] <noident>
> drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
> drivers/net/wireless/libertas/if_spi.c:171:7: expected unsigned short [unsigned] [usertype] buff
> drivers/net/wireless/libertas/if_spi.c:171:7: got restricted __le16 [usertype] <noident>
> drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
> drivers/net/wireless/libertas/if_spi.c:171:7: expected unsigned short [unsigned] [usertype] buff
> drivers/net/wireless/libertas/if_spi.c:171:7: got restricted __le16 [usertype] <noident>
> drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
> drivers/net/wireless/libertas/if_spi.c:171:7: expected unsigned short [unsigned] [usertype] buff
> drivers/net/wireless/libertas/if_spi.c:171:7: got restricted __le16 [usertype] <noident>
> drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
> drivers/net/wireless/libertas/if_spi.c:171:7: expected unsigned short [unsigned] [usertype] buff
> drivers/net/wireless/libertas/if_spi.c:171:7: got restricted __le16 [usertype] <noident>
> drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
> drivers/net/wireless/libertas/if_spi.c:171:7: expected unsigned short [unsigned] [usertype] buff
> drivers/net/wireless/libertas/if_spi.c:171:7: got restricted __le16 [usertype] <noident>
> drivers/net/wireless/libertas/if_spi.c:243:24: warning: incorrect type in argument 1 (different base types)
> drivers/net/wireless/libertas/if_spi.c:243:24: expected restricted __le16 const [usertype] *p
> drivers/net/wireless/libertas/if_spi.c:243:24: got unsigned short *<noident>
> drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
> drivers/net/wireless/libertas/if_spi.c:171:7: expected unsigned short [unsigned] [usertype] buff
> drivers/net/wireless/libertas/if_spi.c:171:7: got restricted __le16 [usertype] <noident>
> drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
> drivers/net/wireless/libertas/if_spi.c:171:7: expected unsigned short [unsigned] [usertype] buff
> drivers/net/wireless/libertas/if_spi.c:171:7: got restricted __le16 [usertype] <noident>
> drivers/net/wireless/libertas/if_spi.c:243:24: warning: incorrect type in argument 1 (different base types)
> drivers/net/wireless/libertas/if_spi.c:243:24: expected restricted __le16 const [usertype] *p
> drivers/net/wireless/libertas/if_spi.c:243:24: got unsigned short *<noident>
> drivers/net/wireless/libertas/if_spi.c:243:24: warning: incorrect type in argument 1 (different base types)
> drivers/net/wireless/libertas/if_spi.c:243:24: expected restricted __le16 const [usertype] *p
> drivers/net/wireless/libertas/if_spi.c:243:24: got unsigned short *<noident>
> drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
> drivers/net/wireless/libertas/if_spi.c:171:7: expected unsigned short [unsigned] [usertype] buff
> drivers/net/wireless/libertas/if_spi.c:171:7: got restricted __le16 [usertype] <noident>
> drivers/net/wireless/libertas/if_spi.c:171:7: warning: incorrect type in assignment (different base types)
> drivers/net/wireless/libertas/if_spi.c:171:7: expected unsigned short [unsigned] [usertype] buff
> drivers/net/wireless/libertas/if_spi.c:171:7: got restricted __le16 [usertype] <noident>
> drivers/net/wireless/libertas/if_spi.c:243:24: warning: incorrect type in argument 1 (different base types)
> drivers/net/wireless/libertas/if_spi.c:243:24: expected restricted __le16 const [usertype] *p
> drivers/net/wireless/libertas/if_spi.c:243:24: got unsigned short *<noident>
> --
> http://www.holgerschurig.de
>
^ permalink raw reply
* Re: [PATCH 03/16] iwmc3200wifi: WPS support
From: Marcel Holtmann @ 2009-10-16 20:25 UTC (permalink / raw)
To: John W. Linville; +Cc: Zhu Yi, linux-wireless, Samuel Ortiz
In-Reply-To: <20091016181930.GB6438@tuxdriver.com>
Hi John,
> > > From: Samuel Ortiz <sameo@linux.intel.com>
> > >
> > > By setting the WSC profile flag, we now support WPS as an enrollee.
> > >
> > > Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
> > > Signed-off-by: Zhu Yi <yi.zhu@intel.com>
> > > ---
> > > drivers/net/wireless/iwmc3200wifi/cfg80211.c | 7 +++++++
> > > drivers/net/wireless/iwmc3200wifi/commands.h | 3 +++
> > > 2 files changed, 10 insertions(+), 0 deletions(-)
> > >
> > > diff --git a/drivers/net/wireless/iwmc3200wifi/cfg80211.c b/drivers/net/wireless/iwmc3200wifi/cfg80211.c
> > > index 0d2e719..a6d2f20 100644
> > > --- a/drivers/net/wireless/iwmc3200wifi/cfg80211.c
> > > +++ b/drivers/net/wireless/iwmc3200wifi/cfg80211.c
> > > @@ -628,6 +628,13 @@ static int iwm_cfg80211_connect(struct wiphy *wiphy, struct net_device *dev,
> > > iwm->default_key = sme->key_idx;
> > > }
> > >
> > > + /* WPA and open AUTH type from wpa_s means WPS (a.k.a. WSC) */
> > > + if ((iwm->umac_profile->sec.flags &
> > > + (UMAC_SEC_FLG_WPA_ON_MSK | UMAC_SEC_FLG_RSNA_ON_MSK)) &&
> > > + iwm->umac_profile->sec.auth_type == UMAC_AUTH_TYPE_OPEN) {
> > > + iwm->umac_profile->sec.flags = UMAC_SEC_FLG_WSC_ON_MSK;
> > > + }
> > > +
> >
> > I don't wanna be picky, but what coding style are you following here?
> > The indentation makes no sense and doesn't improve readability.
>
> Given the length and complication of the conditions, the indentation
> seems fine to me. How would you do it?
it is double indentation of iwm->umac_profile... and (UMAC... and
iwm->uwm_profile are not even on the same vertical. If I stare long
enough at it, I can see a certain reasoning for it, but it is an ugly
block. Some extra macros might make this more readable. However if you
are fine with it, then that is good enough. I just mentioned it, because
I read the if clause wrongly when reviewing the patches.
Regards
Marcel
^ permalink raw reply
* Re: [Regression] - 2.6.32-rc5 hangs using rfkill on an eeePC
From: Frans Pop @ 2009-10-16 20:46 UTC (permalink / raw)
To: Fabio Comolli; +Cc: linux-kernel, rjw, Darren Salt, linux-wireless
In-Reply-To: <b637ec0b0910161253y60eb6b4fl3e49e5b9129d81ac@mail.gmail.com>
Fabio Comolli wrote:
> Pressing rfkill button on my eeePC 900 to disable wireless hangs the
> system.
>
> In console I can see (warning: what follows is copied by hand):
>
> acpid: client 148[6:100] has disconnected
> ACPI group/action not found: hotkey / ATKD
> unregister netdevice: waiting for wlan0 to become free; usage count=1
> (last line repeats forever). Hard reset is needed.
>
> With any previous kernel version (I'm running -rc4 right now) everything
> works:
>
> ACPI group/action undefined: hotkey / ATKD
> ath5k 0000:01:00.0: PCI INT A disabled
AFAICT there are only two commits since -rc4 that are likely candidates:
commit b56ab33d68638e6aafdbfc694025e8354a628f49
Author: Darren Salt <linux@youmustbejoking.demon.co.uk>
Date: Tue Oct 13 00:13:33 2009 +0200
eeepc-laptop: Prevent a panic when disabling RT2860 wireless when
associated
commit 0af49167b1e5ba154e90d2c454bf4624ee47df80
Author: Darren Salt <linux@youmustbejoking.demon.co.uk>
Date: Wed Oct 14 02:19:22 2009 +0100
Staging: rt2860sta: prevent a panic when disabling when associated
They look related and which one is relevant for you probably depends on
which driver you're using.
Could you try reverting them both to see if that solves the problem?
Cheers,
FJP
^ permalink raw reply
* [PATCH 08/10] iwlwifi: set auto clock gate disable bit for 6x00/6x50 series
From: Reinette Chatre @ 2009-10-16 21:25 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, ipw3945-devel, Wey-Yi Guy, Reinette Chatre
In-Reply-To: <1255728358-29976-1-git-send-email-reinette.chatre@intel.com>
From: Wey-Yi Guy <wey-yi.w.guy@intel.com>
For 6x00 and 6x50 series NIC with OTP shadow RAM, set auto clock gate
disable bit when initializing OTP access.
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
---
drivers/net/wireless/iwlwifi/iwl-csr.h | 6 ++++--
drivers/net/wireless/iwlwifi/iwl-eeprom.c | 8 ++++++++
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/drivers/net/wireless/iwlwifi/iwl-csr.h b/drivers/net/wireless/iwlwifi/iwl-csr.h
index 401e1e0..b6ed5a3 100644
--- a/drivers/net/wireless/iwlwifi/iwl-csr.h
+++ b/drivers/net/wireless/iwlwifi/iwl-csr.h
@@ -109,8 +109,9 @@
* Bit fields:
* 3-2: 0 = A, 1 = B, 2 = C, 3 = D step
*/
-#define CSR_HW_REV_WA_REG (CSR_BASE+0x22C)
-#define CSR_DBG_HPET_MEM_REG (CSR_BASE+0x240)
+#define CSR_HW_REV_WA_REG (CSR_BASE+0x22C)
+#define CSR_DBG_HPET_MEM_REG (CSR_BASE+0x240)
+#define CSR_DBG_LINK_PWR_MGMT_REG (CSR_BASE+0x250)
/* Bits for CSR_HW_IF_CONFIG_REG */
#define CSR49_HW_IF_CONFIG_REG_BIT_4965_R (0x00000010)
@@ -195,6 +196,7 @@
#define CSR_RESET_REG_FLAG_SW_RESET (0x00000080)
#define CSR_RESET_REG_FLAG_MASTER_DISABLED (0x00000100)
#define CSR_RESET_REG_FLAG_STOP_MASTER (0x00000200)
+#define CSR_RESET_LINK_PWR_MGMT_DISABLED (0x80000000)
/* GP (general purpose) CONTROL */
#define CSR_GP_CNTRL_REG_FLAG_MAC_CLOCK_READY (0x00000001)
diff --git a/drivers/net/wireless/iwlwifi/iwl-eeprom.c b/drivers/net/wireless/iwlwifi/iwl-eeprom.c
index 2e8c405..9429cb1 100644
--- a/drivers/net/wireless/iwlwifi/iwl-eeprom.c
+++ b/drivers/net/wireless/iwlwifi/iwl-eeprom.c
@@ -358,6 +358,14 @@ static int iwl_init_otp_access(struct iwl_priv *priv)
udelay(5);
iwl_clear_bits_prph(priv, APMG_PS_CTRL_REG,
APMG_PS_CTRL_VAL_RESET_REQ);
+
+ /*
+ * CSR auto clock gate disable bit -
+ * this is only applicable for HW with OTP shadow RAM
+ */
+ if (priv->cfg->shadow_ram_support)
+ iwl_set_bit(priv, CSR_DBG_LINK_PWR_MGMT_REG,
+ CSR_RESET_LINK_PWR_MGMT_DISABLED);
}
return ret;
}
--
1.5.6.3
^ permalink raw reply related
* [PATCH 02/10] iwlwifi: show current power save status reported by uCode
From: Reinette Chatre @ 2009-10-16 21:25 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, ipw3945-devel, Wey-Yi Guy, Reinette Chatre
In-Reply-To: <1255728358-29976-1-git-send-email-reinette.chatre@intel.com>
From: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Power save request is sent from driver to uCode, but there is no
indication from uCode about the current device power save state.
Reading GP_CNTRL register bit 25:24 to show the current power save
status
00: no power save
01: MAC power down
10: PHY power down
11: Error
The uCode could switch in and out of power save mode in the order of
once per 100-300 ms in many cases. The reading here should just be used for
reference on the current uCode power save status. Do not confuse this
reading with the PowerSave set by driver and mac80211.
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
---
drivers/net/wireless/iwlwifi/iwl-csr.h | 5 +++++
drivers/net/wireless/iwlwifi/iwl-debug.h | 1 +
drivers/net/wireless/iwlwifi/iwl-debugfs.c | 26 ++++++++++++++++++++++++++
3 files changed, 32 insertions(+), 0 deletions(-)
diff --git a/drivers/net/wireless/iwlwifi/iwl-csr.h b/drivers/net/wireless/iwlwifi/iwl-csr.h
index 8f183e0..401e1e0 100644
--- a/drivers/net/wireless/iwlwifi/iwl-csr.h
+++ b/drivers/net/wireless/iwlwifi/iwl-csr.h
@@ -235,6 +235,11 @@
#define CSR_OTP_GP_REG_OTP_ACCESS_MODE (0x00020000) /* 0 - absolute, 1 - relative */
#define CSR_OTP_GP_REG_ECC_CORR_STATUS_MSK (0x00100000) /* bit 20 */
#define CSR_OTP_GP_REG_ECC_UNCORR_STATUS_MSK (0x00200000) /* bit 21 */
+#define CSR_GP_REG_POWER_SAVE_STATUS_MSK (0x03000000) /* bit 24/25 */
+#define CSR_GP_REG_NO_POWER_SAVE (0x00000000)
+#define CSR_GP_REG_MAC_POWER_SAVE (0x01000000)
+#define CSR_GP_REG_PHY_POWER_SAVE (0x02000000)
+#define CSR_GP_REG_POWER_SAVE_ERROR (0x03000000)
/* EEPROM signature */
#define CSR_EEPROM_GP_BAD_SIGNATURE_BOTH_EEP_AND_OTP (0x00000000)
diff --git a/drivers/net/wireless/iwlwifi/iwl-debug.h b/drivers/net/wireless/iwlwifi/iwl-debug.h
index b9ca475..96c92ea 100644
--- a/drivers/net/wireless/iwlwifi/iwl-debug.h
+++ b/drivers/net/wireless/iwlwifi/iwl-debug.h
@@ -106,6 +106,7 @@ struct iwl_debugfs {
struct dentry *file_sensitivity;
struct dentry *file_chain_noise;
struct dentry *file_tx_power;
+ struct dentry *file_power_save_status;
} dbgfs_debug_files;
u32 sram_offset;
u32 sram_len;
diff --git a/drivers/net/wireless/iwlwifi/iwl-debugfs.c b/drivers/net/wireless/iwlwifi/iwl-debugfs.c
index 2cd11ba..e78cd26 100644
--- a/drivers/net/wireless/iwlwifi/iwl-debugfs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-debugfs.c
@@ -1802,6 +1802,29 @@ static ssize_t iwl_dbgfs_tx_power_read(struct file *file,
return simple_read_from_buffer(user_buf, count, ppos, buf, pos);
}
+static ssize_t iwl_dbgfs_power_save_status_read(struct file *file,
+ char __user *user_buf,
+ size_t count, loff_t *ppos)
+{
+ struct iwl_priv *priv = (struct iwl_priv *)file->private_data;
+ char buf[60];
+ int pos = 0;
+ const size_t bufsz = sizeof(buf);
+ u32 pwrsave_status;
+
+ pwrsave_status = iwl_read32(priv, CSR_GP_CNTRL) &
+ CSR_GP_REG_POWER_SAVE_STATUS_MSK;
+
+ pos += scnprintf(buf + pos, bufsz - pos, "Power Save Status: ");
+ pos += scnprintf(buf + pos, bufsz - pos, "%s\n",
+ (pwrsave_status == CSR_GP_REG_NO_POWER_SAVE) ? "none" :
+ (pwrsave_status == CSR_GP_REG_MAC_POWER_SAVE) ? "MAC" :
+ (pwrsave_status == CSR_GP_REG_PHY_POWER_SAVE) ? "PHY" :
+ "error");
+
+ return simple_read_from_buffer(user_buf, count, ppos, buf, pos);
+}
+
DEBUGFS_READ_WRITE_FILE_OPS(rx_statistics);
DEBUGFS_READ_WRITE_FILE_OPS(tx_statistics);
DEBUGFS_READ_WRITE_FILE_OPS(traffic_log);
@@ -1813,6 +1836,7 @@ DEBUGFS_READ_FILE_OPS(ucode_general_stats);
DEBUGFS_READ_FILE_OPS(sensitivity);
DEBUGFS_READ_FILE_OPS(chain_noise);
DEBUGFS_READ_FILE_OPS(tx_power);
+DEBUGFS_READ_FILE_OPS(power_save_status);
/*
* Create the debugfs files and directories
@@ -1860,6 +1884,7 @@ int iwl_dbgfs_register(struct iwl_priv *priv, const char *name)
DEBUGFS_ADD_FILE(rx_queue, debug);
DEBUGFS_ADD_FILE(tx_queue, debug);
DEBUGFS_ADD_FILE(tx_power, debug);
+ DEBUGFS_ADD_FILE(power_save_status, debug);
if ((priv->hw_rev & CSR_HW_REV_TYPE_MSK) != CSR_HW_REV_TYPE_3945) {
DEBUGFS_ADD_FILE(ucode_rx_stats, debug);
DEBUGFS_ADD_FILE(ucode_tx_stats, debug);
@@ -1912,6 +1937,7 @@ void iwl_dbgfs_unregister(struct iwl_priv *priv)
DEBUGFS_REMOVE(priv->dbgfs->dbgfs_debug_files.file_rx_queue);
DEBUGFS_REMOVE(priv->dbgfs->dbgfs_debug_files.file_tx_queue);
DEBUGFS_REMOVE(priv->dbgfs->dbgfs_debug_files.file_tx_power);
+ DEBUGFS_REMOVE(priv->dbgfs->dbgfs_debug_files.file_power_save_status);
if ((priv->hw_rev & CSR_HW_REV_TYPE_MSK) != CSR_HW_REV_TYPE_3945) {
DEBUGFS_REMOVE(priv->dbgfs->dbgfs_debug_files.
file_ucode_rx_stats);
--
1.5.6.3
^ permalink raw reply related
* [PATCH 07/10] iwlagn: store station rate scale information in mac80211 station structure
From: Reinette Chatre @ 2009-10-16 21:25 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, ipw3945-devel, Reinette Chatre
In-Reply-To: <1255728358-29976-1-git-send-email-reinette.chatre@intel.com>
From: Reinette Chatre <reinette.chatre@intel.com>
Currently mac80211 initializes the rate scaling before notifying the driver
of the station's existence. The driver dealt with this by not relying on
mac80211's station notifications and instead mixing this functionality with
the rate scaling code and other places. To clean this up the driver needs
to do rate scaling initialization after being notified of the station, this
can be done if the rate scaling information forms part of the station
information passed from mac80211 to driver.
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
---
drivers/net/wireless/iwlwifi/iwl-agn-rs.c | 8 ++------
drivers/net/wireless/iwlwifi/iwl-agn.c | 1 +
drivers/net/wireless/iwlwifi/iwl-dev.h | 13 +++++++++++++
3 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
index 2d4ec1a..27d4ece 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
@@ -2475,19 +2475,17 @@ static void *rs_alloc_sta(void *priv_rate, struct ieee80211_sta *sta,
gfp_t gfp)
{
struct iwl_lq_sta *lq_sta;
+ struct iwl_station_priv *sta_priv = (struct iwl_station_priv *) sta->drv_priv;
struct iwl_priv *priv;
int i, j;
priv = (struct iwl_priv *)priv_rate;
IWL_DEBUG_RATE(priv, "create station rate scale window\n");
- lq_sta = kzalloc(sizeof(struct iwl_lq_sta), gfp);
+ lq_sta = &sta_priv->lq_sta;
- if (lq_sta == NULL)
- return NULL;
lq_sta->lq.sta_id = 0xff;
-
for (j = 0; j < LQ_SIZE; j++)
for (i = 0; i < IWL_RATE_COUNT; i++)
rs_rate_scale_clear_window(&lq_sta->lq_info[j].win[i]);
@@ -2719,11 +2717,9 @@ static void rs_free(void *priv_rate)
static void rs_free_sta(void *priv_r, struct ieee80211_sta *sta,
void *priv_sta)
{
- struct iwl_lq_sta *lq_sta = priv_sta;
struct iwl_priv *priv __maybe_unused = priv_r;
IWL_DEBUG_RATE(priv, "enter\n");
- kfree(lq_sta);
IWL_DEBUG_RATE(priv, "leave\n");
}
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index c3e7101..3664d01 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -2305,6 +2305,7 @@ static int iwl_setup_mac(struct iwl_priv *priv)
hw->flags |= IEEE80211_HW_SUPPORTS_PS |
IEEE80211_HW_SUPPORTS_DYNAMIC_PS;
+ hw->sta_data_size = sizeof(struct iwl_station_priv);
hw->wiphy->interface_modes =
BIT(NL80211_IFTYPE_STATION) |
BIT(NL80211_IFTYPE_ADHOC);
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
index 35d5794..6ba082d 100644
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
@@ -576,6 +576,19 @@ struct iwl_station_entry {
struct iwl_hw_key keyinfo;
};
+/*
+ * iwl_station_priv: Driver's private station information
+ *
+ * When mac80211 creates a station it reserves some space (hw->sta_data_size)
+ * in the structure for use by driver. This structure is places in that
+ * space.
+ *
+ * At the moment use it for the station's rate scaling information.
+ */
+struct iwl_station_priv {
+ struct iwl_lq_sta lq_sta;
+};
+
/* one for each uCode image (inst/data, boot/init/runtime) */
struct fw_desc {
void *v_addr; /* access by driver */
--
1.5.6.3
^ permalink raw reply related
* [PATCH 0/10] iwlwifi driver updates 10/16/2009
From: Reinette Chatre @ 2009-10-16 21:25 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, ipw3945-devel, Reinette Chatre
Changes include making the current power saving state available via
debugfs and reworking static power save. This series also commence the work to
support 6x50 devices. The rest is code cleanup and preparation for future
changes.
Abhijeet Kolekar (1):
iwl3945: disable all tx fifos
Reinette Chatre (3):
iwlwifi: move iwl_setup_mac to iwlagn
iwlwifi: move rate scaling structures to header file
iwlagn: store station rate scale information in mac80211 station structure
Wey-Yi Guy (6):
iwlwifi: show current power save status reported by uCode
iwlwifi: identify eeprom version for 6x50 series NIC
iwlwifi: fix incorrect otp blocks number for 6x50 series
iwlwifi: set auto clock gate disable bit for 6x00/6x50 series
iwlwifi: no chain noise support for 6x50 series
iwlwifi: rework for static power save
Reinette
^ permalink raw reply
* [PATCH 01/10] iwl3945: disable all tx fifos
From: Reinette Chatre @ 2009-10-16 21:25 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, ipw3945-devel, Abhijeet Kolekar, Reinette Chatre
In-Reply-To: <1255728358-29976-1-git-send-email-reinette.chatre@intel.com>
From: Abhijeet Kolekar <abhijeet.kolekar@intel.com>
Disable the all the tx fifos while stopping the tx queues.
Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
---
drivers/net/wireless/iwlwifi/iwl-3945.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.c b/drivers/net/wireless/iwlwifi/iwl-3945.c
index afe19f2..9fb964b 100644
--- a/drivers/net/wireless/iwlwifi/iwl-3945.c
+++ b/drivers/net/wireless/iwlwifi/iwl-3945.c
@@ -1220,6 +1220,7 @@ void iwl3945_hw_txq_ctx_stop(struct iwl_priv *priv)
/* stop SCD */
iwl_write_prph(priv, ALM_SCD_MODE_REG, 0);
+ iwl_write_prph(priv, ALM_SCD_TXFACT_REG, 0);
/* reset TFD queues */
for (txq_id = 0; txq_id < priv->hw_params.max_txq_num; txq_id++) {
--
1.5.6.3
^ permalink raw reply related
* [PATCH 04/10] iwlwifi: fix incorrect otp blocks number for 6x50 series
From: Reinette Chatre @ 2009-10-16 21:25 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, ipw3945-devel, Wey-Yi Guy, Reinette Chatre
In-Reply-To: <1255728358-29976-1-git-send-email-reinette.chatre@intel.com>
From: Wey-Yi Guy <wey-yi.w.guy@intel.com>
For 6x50 series, number of OTP blocks is different from 6x00 series
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
---
drivers/net/wireless/iwlwifi/iwl-6000.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
index e74dad3..887e4e3 100644
--- a/drivers/net/wireless/iwlwifi/iwl-6000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
@@ -408,7 +408,7 @@ struct iwl_cfg iwl6050_2agn_cfg = {
.valid_rx_ant = ANT_AB,
.need_pll_cfg = false,
.pa_type = IWL_PA_SYSTEM,
- .max_ll_items = OTP_MAX_LL_ITEMS_6x00,
+ .max_ll_items = OTP_MAX_LL_ITEMS_6x50,
.shadow_ram_support = true,
.ht_greenfield_support = true,
.led_compensation = 51,
@@ -434,7 +434,7 @@ struct iwl_cfg iwl6050_2abg_cfg = {
.valid_rx_ant = ANT_AB,
.need_pll_cfg = false,
.pa_type = IWL_PA_SYSTEM,
- .max_ll_items = OTP_MAX_LL_ITEMS_6x00,
+ .max_ll_items = OTP_MAX_LL_ITEMS_6x50,
.shadow_ram_support = true,
.ht_greenfield_support = true,
.led_compensation = 51,
@@ -485,7 +485,7 @@ struct iwl_cfg iwl6050_3agn_cfg = {
.valid_rx_ant = ANT_ABC,
.need_pll_cfg = false,
.pa_type = IWL_PA_SYSTEM,
- .max_ll_items = OTP_MAX_LL_ITEMS_6x00,
+ .max_ll_items = OTP_MAX_LL_ITEMS_6x50,
.shadow_ram_support = true,
.ht_greenfield_support = true,
.led_compensation = 51,
--
1.5.6.3
^ permalink raw reply related
* [PATCH 10/10] iwlwifi: rework for static power save
From: Reinette Chatre @ 2009-10-16 21:25 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, ipw3945-devel, Wey-Yi Guy, Reinette Chatre
In-Reply-To: <1255728358-29976-1-git-send-email-reinette.chatre@intel.com>
From: Wey-Yi Guy <wey-yi.w.guy@intel.com>
For static power save, the actual intervals are calculated by driver based on
the default table and DTIM flag, then sent to uCode when the scheme
is changed.
Three tables are defined based on DTIM period.
1. DTIM 0 - 2
2. DTIM 3 - 10
3. DTIM > 11
The actual number of DTIM a station may miss may not exceed the
following:
. Only 1 DTIM may be skipped at PI=4 when allowed
. Only 2 DTIMs may be skipped at PI=5 when allowed
. DTIM may be skipped only 5 sec after last activity
. DTIM may be skipped only 30 sec after connection establishment
Only allow user to override the power_level when rf is ready to make sure
power level gets changed upon request.
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
---
drivers/net/wireless/iwlwifi/iwl-debugfs.c | 5 ++-
drivers/net/wireless/iwlwifi/iwl-power.c | 75 +++++++++++++++++++--------
drivers/net/wireless/iwlwifi/iwl-power.h | 2 +
3 files changed, 59 insertions(+), 23 deletions(-)
diff --git a/drivers/net/wireless/iwlwifi/iwl-debugfs.c b/drivers/net/wireless/iwlwifi/iwl-debugfs.c
index e78cd26..8784911 100644
--- a/drivers/net/wireless/iwlwifi/iwl-debugfs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-debugfs.c
@@ -809,9 +809,12 @@ static ssize_t iwl_dbgfs_sleep_level_override_write(struct file *file,
if (value != -1 && (value < 0 || value >= IWL_POWER_NUM))
return -EINVAL;
+ if (!iwl_is_ready_rf(priv))
+ return -EAGAIN;
+
priv->power_data.debug_sleep_level_override = value;
- iwl_power_update_mode(priv, false);
+ iwl_power_update_mode(priv, true);
return count;
}
diff --git a/drivers/net/wireless/iwlwifi/iwl-power.c b/drivers/net/wireless/iwlwifi/iwl-power.c
index 9c6b149..150ff87 100644
--- a/drivers/net/wireless/iwlwifi/iwl-power.c
+++ b/drivers/net/wireless/iwlwifi/iwl-power.c
@@ -66,7 +66,7 @@ MODULE_PARM_DESC(no_sleep_autoadjust,
struct iwl_power_vec_entry {
struct iwl_powertable_cmd cmd;
- u8 no_dtim;
+ u8 no_dtim; /* number of skip dtim */
};
#define IWL_DTIM_RANGE_0_MAX 2
@@ -83,8 +83,9 @@ struct iwl_power_vec_entry {
cpu_to_le32(X4)}
/* default power management (not Tx power) table values */
/* for DTIM period 0 through IWL_DTIM_RANGE_0_MAX */
+/* DTIM 0 - 2 */
static const struct iwl_power_vec_entry range_0[IWL_POWER_NUM] = {
- {{SLP, SLP_TOUT(200), SLP_TOUT(500), SLP_VEC(1, 2, 2, 2, 0xFF)}, 0},
+ {{SLP, SLP_TOUT(200), SLP_TOUT(500), SLP_VEC(1, 1, 2, 2, 0xFF)}, 0},
{{SLP, SLP_TOUT(200), SLP_TOUT(300), SLP_VEC(1, 2, 2, 2, 0xFF)}, 0},
{{SLP, SLP_TOUT(50), SLP_TOUT(100), SLP_VEC(2, 2, 2, 2, 0xFF)}, 0},
{{SLP, SLP_TOUT(50), SLP_TOUT(25), SLP_VEC(2, 2, 4, 4, 0xFF)}, 1},
@@ -93,15 +94,17 @@ static const struct iwl_power_vec_entry range_0[IWL_POWER_NUM] = {
/* for DTIM period IWL_DTIM_RANGE_0_MAX + 1 through IWL_DTIM_RANGE_1_MAX */
+/* DTIM 3 - 10 */
static const struct iwl_power_vec_entry range_1[IWL_POWER_NUM] = {
{{SLP, SLP_TOUT(200), SLP_TOUT(500), SLP_VEC(1, 2, 3, 4, 4)}, 0},
{{SLP, SLP_TOUT(200), SLP_TOUT(300), SLP_VEC(1, 2, 3, 4, 7)}, 0},
{{SLP, SLP_TOUT(50), SLP_TOUT(100), SLP_VEC(2, 4, 6, 7, 9)}, 0},
{{SLP, SLP_TOUT(50), SLP_TOUT(25), SLP_VEC(2, 4, 6, 9, 10)}, 1},
- {{SLP, SLP_TOUT(25), SLP_TOUT(25), SLP_VEC(2, 4, 7, 10, 10)}, 2}
+ {{SLP, SLP_TOUT(25), SLP_TOUT(25), SLP_VEC(2, 4, 6, 10, 10)}, 2}
};
/* for DTIM period > IWL_DTIM_RANGE_1_MAX */
+/* DTIM 11 - */
static const struct iwl_power_vec_entry range_2[IWL_POWER_NUM] = {
{{SLP, SLP_TOUT(200), SLP_TOUT(500), SLP_VEC(1, 2, 3, 4, 0xFF)}, 0},
{{SLP, SLP_TOUT(200), SLP_TOUT(300), SLP_VEC(2, 4, 6, 7, 0xFF)}, 0},
@@ -115,13 +118,15 @@ static void iwl_static_sleep_cmd(struct iwl_priv *priv,
enum iwl_power_level lvl, int period)
{
const struct iwl_power_vec_entry *table;
- int max_sleep, i;
- bool skip;
+ int max_sleep[IWL_POWER_VEC_SIZE] = { 0 };
+ int i;
+ u8 skip;
+ u32 slp_itrvl;
table = range_2;
- if (period < IWL_DTIM_RANGE_1_MAX)
+ if (period <= IWL_DTIM_RANGE_1_MAX)
table = range_1;
- if (period < IWL_DTIM_RANGE_0_MAX)
+ if (period <= IWL_DTIM_RANGE_0_MAX)
table = range_0;
BUG_ON(lvl < 0 || lvl >= IWL_POWER_NUM);
@@ -129,34 +134,60 @@ static void iwl_static_sleep_cmd(struct iwl_priv *priv,
*cmd = table[lvl].cmd;
if (period == 0) {
- skip = false;
+ skip = 0;
period = 1;
+ for (i = 0; i < IWL_POWER_VEC_SIZE; i++)
+ max_sleep[i] = 1;
+
} else {
- skip = !!table[lvl].no_dtim;
+ skip = table[lvl].no_dtim;
+ for (i = 0; i < IWL_POWER_VEC_SIZE; i++)
+ max_sleep[i] = le32_to_cpu(cmd->sleep_interval[i]);
+ max_sleep[IWL_POWER_VEC_SIZE - 1] = skip + 1;
}
- if (skip) {
- __le32 slp_itrvl = cmd->sleep_interval[IWL_POWER_VEC_SIZE - 1];
- max_sleep = le32_to_cpu(slp_itrvl);
- if (max_sleep == 0xFF)
- max_sleep = period * (skip + 1);
- else if (max_sleep > period)
- max_sleep = (le32_to_cpu(slp_itrvl) / period) * period;
+ slp_itrvl = le32_to_cpu(cmd->sleep_interval[IWL_POWER_VEC_SIZE - 1]);
+ /* figure out the listen interval based on dtim period and skip */
+ if (slp_itrvl == 0xFF)
+ cmd->sleep_interval[IWL_POWER_VEC_SIZE - 1] =
+ cpu_to_le32(period * (skip + 1));
+
+ slp_itrvl = le32_to_cpu(cmd->sleep_interval[IWL_POWER_VEC_SIZE - 1]);
+ if (slp_itrvl > period)
+ cmd->sleep_interval[IWL_POWER_VEC_SIZE - 1] =
+ cpu_to_le32((slp_itrvl / period) * period);
+
+ if (skip)
cmd->flags |= IWL_POWER_SLEEP_OVER_DTIM_MSK;
- } else {
- max_sleep = period;
+ else
cmd->flags &= ~IWL_POWER_SLEEP_OVER_DTIM_MSK;
- }
- for (i = 0; i < IWL_POWER_VEC_SIZE; i++)
- if (le32_to_cpu(cmd->sleep_interval[i]) > max_sleep)
- cmd->sleep_interval[i] = cpu_to_le32(max_sleep);
+ slp_itrvl = le32_to_cpu(cmd->sleep_interval[IWL_POWER_VEC_SIZE - 1]);
+ if (slp_itrvl > IWL_CONN_LISTEN_INTERVAL)
+ cmd->sleep_interval[IWL_POWER_VEC_SIZE - 1] =
+ cpu_to_le32(IWL_CONN_LISTEN_INTERVAL);
+
+ /* enforce max sleep interval */
+ for (i = IWL_POWER_VEC_SIZE - 1; i >= 0 ; i--) {
+ if (le32_to_cpu(cmd->sleep_interval[i]) >
+ (max_sleep[i] * period))
+ cmd->sleep_interval[i] =
+ cpu_to_le32(max_sleep[i] * period);
+ if (i != (IWL_POWER_VEC_SIZE - 1)) {
+ if (le32_to_cpu(cmd->sleep_interval[i]) >
+ le32_to_cpu(cmd->sleep_interval[i+1]))
+ cmd->sleep_interval[i] =
+ cmd->sleep_interval[i+1];
+ }
+ }
if (priv->power_data.pci_pm)
cmd->flags |= IWL_POWER_PCI_PM_MSK;
else
cmd->flags &= ~IWL_POWER_PCI_PM_MSK;
+ IWL_DEBUG_POWER(priv, "numSkipDtim = %u, dtimPeriod = %d\n",
+ skip, period);
IWL_DEBUG_POWER(priv, "Sleep command for index %d\n", lvl + 1);
}
diff --git a/drivers/net/wireless/iwlwifi/iwl-power.h b/drivers/net/wireless/iwlwifi/iwl-power.h
index 310c32e..0755518 100644
--- a/drivers/net/wireless/iwlwifi/iwl-power.h
+++ b/drivers/net/wireless/iwlwifi/iwl-power.h
@@ -30,6 +30,8 @@
#include "iwl-commands.h"
+#define IWL_CONN_LISTEN_INTERVAL 10
+
#define IWL_ABSOLUTE_ZERO 0
#define IWL_ABSOLUTE_MAX 0xFFFFFFFF
#define IWL_TT_INCREASE_MARGIN 5
--
1.5.6.3
^ permalink raw reply related
* [PATCH 05/10] iwlwifi: move iwl_setup_mac to iwlagn
From: Reinette Chatre @ 2009-10-16 21:25 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, ipw3945-devel, Reinette Chatre
In-Reply-To: <1255728358-29976-1-git-send-email-reinette.chatre@intel.com>
From: Reinette Chatre <reinette.chatre@intel.com>
This function is only used in iwlagn so there is no need to have it in
iwlcore.
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
---
drivers/net/wireless/iwlwifi/iwl-agn.c | 62 +++++++++++++++++++++++++++++++
drivers/net/wireless/iwlwifi/iwl-core.c | 58 -----------------------------
drivers/net/wireless/iwlwifi/iwl-core.h | 1 -
3 files changed, 62 insertions(+), 59 deletions(-)
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 401295c..c3e7101 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -2285,6 +2285,68 @@ void iwl_post_associate(struct iwl_priv *priv)
#define UCODE_READY_TIMEOUT (4 * HZ)
+/*
+ * Not a mac80211 entry point function, but it fits in with all the
+ * other mac80211 functions grouped here.
+ */
+static int iwl_setup_mac(struct iwl_priv *priv)
+{
+ int ret;
+ struct ieee80211_hw *hw = priv->hw;
+ hw->rate_control_algorithm = "iwl-agn-rs";
+
+ /* Tell mac80211 our characteristics */
+ hw->flags = IEEE80211_HW_SIGNAL_DBM |
+ IEEE80211_HW_NOISE_DBM |
+ IEEE80211_HW_AMPDU_AGGREGATION |
+ IEEE80211_HW_SPECTRUM_MGMT;
+
+ if (!priv->cfg->broken_powersave)
+ hw->flags |= IEEE80211_HW_SUPPORTS_PS |
+ IEEE80211_HW_SUPPORTS_DYNAMIC_PS;
+
+ hw->wiphy->interface_modes =
+ BIT(NL80211_IFTYPE_STATION) |
+ BIT(NL80211_IFTYPE_ADHOC);
+
+ hw->wiphy->custom_regulatory = true;
+
+ /* Firmware does not support this */
+ hw->wiphy->disable_beacon_hints = true;
+
+ /*
+ * For now, disable PS by default because it affects
+ * RX performance significantly.
+ */
+ hw->wiphy->ps_default = false;
+
+ hw->wiphy->max_scan_ssids = PROBE_OPTION_MAX;
+ /* we create the 802.11 header and a zero-length SSID element */
+ hw->wiphy->max_scan_ie_len = IWL_MAX_PROBE_REQUEST - 24 - 2;
+
+ /* Default value; 4 EDCA QOS priorities */
+ hw->queues = 4;
+
+ hw->max_listen_interval = IWL_CONN_MAX_LISTEN_INTERVAL;
+
+ if (priv->bands[IEEE80211_BAND_2GHZ].n_channels)
+ priv->hw->wiphy->bands[IEEE80211_BAND_2GHZ] =
+ &priv->bands[IEEE80211_BAND_2GHZ];
+ if (priv->bands[IEEE80211_BAND_5GHZ].n_channels)
+ priv->hw->wiphy->bands[IEEE80211_BAND_5GHZ] =
+ &priv->bands[IEEE80211_BAND_5GHZ];
+
+ ret = ieee80211_register_hw(priv->hw);
+ if (ret) {
+ IWL_ERR(priv, "Failed to register hw (error %d)\n", ret);
+ return ret;
+ }
+ priv->mac80211_registered = 1;
+
+ return 0;
+}
+
+
static int iwl_mac_start(struct ieee80211_hw *hw)
{
struct iwl_priv *priv = hw->priv;
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
index ad62673..42c0496 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
@@ -1430,64 +1430,6 @@ void iwl_configure_filter(struct ieee80211_hw *hw,
}
EXPORT_SYMBOL(iwl_configure_filter);
-int iwl_setup_mac(struct iwl_priv *priv)
-{
- int ret;
- struct ieee80211_hw *hw = priv->hw;
- hw->rate_control_algorithm = "iwl-agn-rs";
-
- /* Tell mac80211 our characteristics */
- hw->flags = IEEE80211_HW_SIGNAL_DBM |
- IEEE80211_HW_NOISE_DBM |
- IEEE80211_HW_AMPDU_AGGREGATION |
- IEEE80211_HW_SPECTRUM_MGMT;
-
- if (!priv->cfg->broken_powersave)
- hw->flags |= IEEE80211_HW_SUPPORTS_PS |
- IEEE80211_HW_SUPPORTS_DYNAMIC_PS;
-
- hw->wiphy->interface_modes =
- BIT(NL80211_IFTYPE_STATION) |
- BIT(NL80211_IFTYPE_ADHOC);
-
- hw->wiphy->custom_regulatory = true;
-
- /* Firmware does not support this */
- hw->wiphy->disable_beacon_hints = true;
-
- /*
- * For now, disable PS by default because it affects
- * RX performance significantly.
- */
- hw->wiphy->ps_default = false;
-
- hw->wiphy->max_scan_ssids = PROBE_OPTION_MAX;
- /* we create the 802.11 header and a zero-length SSID element */
- hw->wiphy->max_scan_ie_len = IWL_MAX_PROBE_REQUEST - 24 - 2;
-
- /* Default value; 4 EDCA QOS priorities */
- hw->queues = 4;
-
- hw->max_listen_interval = IWL_CONN_MAX_LISTEN_INTERVAL;
-
- if (priv->bands[IEEE80211_BAND_2GHZ].n_channels)
- priv->hw->wiphy->bands[IEEE80211_BAND_2GHZ] =
- &priv->bands[IEEE80211_BAND_2GHZ];
- if (priv->bands[IEEE80211_BAND_5GHZ].n_channels)
- priv->hw->wiphy->bands[IEEE80211_BAND_5GHZ] =
- &priv->bands[IEEE80211_BAND_5GHZ];
-
- ret = ieee80211_register_hw(priv->hw);
- if (ret) {
- IWL_ERR(priv, "Failed to register hw (error %d)\n", ret);
- return ret;
- }
- priv->mac80211_registered = 1;
-
- return 0;
-}
-EXPORT_SYMBOL(iwl_setup_mac);
-
int iwl_set_hw_params(struct iwl_priv *priv)
{
priv->hw_params.max_rxq_size = RX_QUEUE_SIZE;
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h
index b877f88..a2a580d 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.h
+++ b/drivers/net/wireless/iwlwifi/iwl-core.h
@@ -305,7 +305,6 @@ void iwl_configure_filter(struct ieee80211_hw *hw,
unsigned int changed_flags,
unsigned int *total_flags, u64 multicast);
int iwl_hw_nic_init(struct iwl_priv *priv);
-int iwl_setup_mac(struct iwl_priv *priv);
int iwl_set_hw_params(struct iwl_priv *priv);
int iwl_init_drv(struct iwl_priv *priv);
void iwl_uninit_drv(struct iwl_priv *priv);
--
1.5.6.3
^ permalink raw reply related
* [PATCH 06/10] iwlwifi: move rate scaling structures to header file
From: Reinette Chatre @ 2009-10-16 21:25 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, ipw3945-devel, Reinette Chatre
In-Reply-To: <1255728358-29976-1-git-send-email-reinette.chatre@intel.com>
From: Reinette Chatre <reinette.chatre@intel.com>
Move to header file so they can be included and used in other parts of the
driver.
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
---
drivers/net/wireless/iwlwifi/iwl-agn-rs.c | 100 ----------------------------
drivers/net/wireless/iwlwifi/iwl-agn-rs.h | 101 +++++++++++++++++++++++++++++
2 files changed, 101 insertions(+), 100 deletions(-)
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
index a07be29..2d4ec1a 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
@@ -75,106 +75,6 @@ static const u8 ant_toggle_lookup[] = {
/*ANT_ABC -> */ ANT_ABC,
};
-/**
- * struct iwl_rate_scale_data -- tx success history for one rate
- */
-struct iwl_rate_scale_data {
- u64 data; /* bitmap of successful frames */
- s32 success_counter; /* number of frames successful */
- s32 success_ratio; /* per-cent * 128 */
- s32 counter; /* number of frames attempted */
- s32 average_tpt; /* success ratio * expected throughput */
- unsigned long stamp;
-};
-
-/**
- * struct iwl_scale_tbl_info -- tx params and success history for all rates
- *
- * There are two of these in struct iwl_lq_sta,
- * one for "active", and one for "search".
- */
-struct iwl_scale_tbl_info {
- enum iwl_table_type lq_type;
- u8 ant_type;
- u8 is_SGI; /* 1 = short guard interval */
- u8 is_ht40; /* 1 = 40 MHz channel width */
- u8 is_dup; /* 1 = duplicated data streams */
- u8 action; /* change modulation; IWL_[LEGACY/SISO/MIMO]_SWITCH_* */
- u8 max_search; /* maximun number of tables we can search */
- s32 *expected_tpt; /* throughput metrics; expected_tpt_G, etc. */
- u32 current_rate; /* rate_n_flags, uCode API format */
- struct iwl_rate_scale_data win[IWL_RATE_COUNT]; /* rate histories */
-};
-
-struct iwl_traffic_load {
- unsigned long time_stamp; /* age of the oldest statistics */
- u32 packet_count[TID_QUEUE_MAX_SIZE]; /* packet count in this time
- * slice */
- u32 total; /* total num of packets during the
- * last TID_MAX_TIME_DIFF */
- u8 queue_count; /* number of queues that has
- * been used since the last cleanup */
- u8 head; /* start of the circular buffer */
-};
-
-/**
- * struct iwl_lq_sta -- driver's rate scaling private structure
- *
- * Pointer to this gets passed back and forth between driver and mac80211.
- */
-struct iwl_lq_sta {
- u8 active_tbl; /* index of active table, range 0-1 */
- u8 enable_counter; /* indicates HT mode */
- u8 stay_in_tbl; /* 1: disallow, 0: allow search for new mode */
- u8 search_better_tbl; /* 1: currently trying alternate mode */
- s32 last_tpt;
-
- /* The following determine when to search for a new mode */
- u32 table_count_limit;
- u32 max_failure_limit; /* # failed frames before new search */
- u32 max_success_limit; /* # successful frames before new search */
- u32 table_count;
- u32 total_failed; /* total failed frames, any/all rates */
- u32 total_success; /* total successful frames, any/all rates */
- u64 flush_timer; /* time staying in mode before new search */
-
- u8 action_counter; /* # mode-switch actions tried */
- u8 is_green;
- u8 is_dup;
- enum ieee80211_band band;
- u8 ibss_sta_added;
-
- /* The following are bitmaps of rates; IWL_RATE_6M_MASK, etc. */
- u32 supp_rates;
- u16 active_legacy_rate;
- u16 active_siso_rate;
- u16 active_mimo2_rate;
- u16 active_mimo3_rate;
- u16 active_rate_basic;
- s8 max_rate_idx; /* Max rate set by user */
- u8 missed_rate_counter;
-
- struct iwl_link_quality_cmd lq;
- struct iwl_scale_tbl_info lq_info[LQ_SIZE]; /* "active", "search" */
- struct iwl_traffic_load load[TID_MAX_LOAD_COUNT];
- u8 tx_agg_tid_en;
-#ifdef CONFIG_MAC80211_DEBUGFS
- struct dentry *rs_sta_dbgfs_scale_table_file;
- struct dentry *rs_sta_dbgfs_stats_table_file;
- struct dentry *rs_sta_dbgfs_rate_scale_data_file;
- struct dentry *rs_sta_dbgfs_tx_agg_tid_en_file;
- u32 dbg_fixed_rate;
-#endif
- struct iwl_priv *drv;
-
- /* used to be in sta_info */
- int last_txrate_idx;
- /* last tx rate_n_flags */
- u32 last_rate_n_flags;
- /* packets destined for this STA are aggregated */
- u8 is_agg;
-};
-
static void rs_rate_scale_perform(struct iwl_priv *priv,
struct sk_buff *skb,
struct ieee80211_sta *sta,
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rs.h b/drivers/net/wireless/iwlwifi/iwl-agn-rs.h
index 9fac530..affc0c5 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-rs.h
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.h
@@ -54,6 +54,7 @@ struct iwl3945_rate_info {
u8 prev_table_rs; /* prev in rate table cmd */
};
+
/*
* These serve as indexes into
* struct iwl_rate_info iwl_rates[IWL_RATE_COUNT];
@@ -335,6 +336,106 @@ struct iwl_rate_mcs_info {
char mcs[IWL_MAX_MCS_DISPLAY_SIZE];
};
+/**
+ * struct iwl_rate_scale_data -- tx success history for one rate
+ */
+struct iwl_rate_scale_data {
+ u64 data; /* bitmap of successful frames */
+ s32 success_counter; /* number of frames successful */
+ s32 success_ratio; /* per-cent * 128 */
+ s32 counter; /* number of frames attempted */
+ s32 average_tpt; /* success ratio * expected throughput */
+ unsigned long stamp;
+};
+
+/**
+ * struct iwl_scale_tbl_info -- tx params and success history for all rates
+ *
+ * There are two of these in struct iwl_lq_sta,
+ * one for "active", and one for "search".
+ */
+struct iwl_scale_tbl_info {
+ enum iwl_table_type lq_type;
+ u8 ant_type;
+ u8 is_SGI; /* 1 = short guard interval */
+ u8 is_ht40; /* 1 = 40 MHz channel width */
+ u8 is_dup; /* 1 = duplicated data streams */
+ u8 action; /* change modulation; IWL_[LEGACY/SISO/MIMO]_SWITCH_* */
+ u8 max_search; /* maximun number of tables we can search */
+ s32 *expected_tpt; /* throughput metrics; expected_tpt_G, etc. */
+ u32 current_rate; /* rate_n_flags, uCode API format */
+ struct iwl_rate_scale_data win[IWL_RATE_COUNT]; /* rate histories */
+};
+
+struct iwl_traffic_load {
+ unsigned long time_stamp; /* age of the oldest statistics */
+ u32 packet_count[TID_QUEUE_MAX_SIZE]; /* packet count in this time
+ * slice */
+ u32 total; /* total num of packets during the
+ * last TID_MAX_TIME_DIFF */
+ u8 queue_count; /* number of queues that has
+ * been used since the last cleanup */
+ u8 head; /* start of the circular buffer */
+};
+
+/**
+ * struct iwl_lq_sta -- driver's rate scaling private structure
+ *
+ * Pointer to this gets passed back and forth between driver and mac80211.
+ */
+struct iwl_lq_sta {
+ u8 active_tbl; /* index of active table, range 0-1 */
+ u8 enable_counter; /* indicates HT mode */
+ u8 stay_in_tbl; /* 1: disallow, 0: allow search for new mode */
+ u8 search_better_tbl; /* 1: currently trying alternate mode */
+ s32 last_tpt;
+
+ /* The following determine when to search for a new mode */
+ u32 table_count_limit;
+ u32 max_failure_limit; /* # failed frames before new search */
+ u32 max_success_limit; /* # successful frames before new search */
+ u32 table_count;
+ u32 total_failed; /* total failed frames, any/all rates */
+ u32 total_success; /* total successful frames, any/all rates */
+ u64 flush_timer; /* time staying in mode before new search */
+
+ u8 action_counter; /* # mode-switch actions tried */
+ u8 is_green;
+ u8 is_dup;
+ enum ieee80211_band band;
+ u8 ibss_sta_added;
+
+ /* The following are bitmaps of rates; IWL_RATE_6M_MASK, etc. */
+ u32 supp_rates;
+ u16 active_legacy_rate;
+ u16 active_siso_rate;
+ u16 active_mimo2_rate;
+ u16 active_mimo3_rate;
+ u16 active_rate_basic;
+ s8 max_rate_idx; /* Max rate set by user */
+ u8 missed_rate_counter;
+
+ struct iwl_link_quality_cmd lq;
+ struct iwl_scale_tbl_info lq_info[LQ_SIZE]; /* "active", "search" */
+ struct iwl_traffic_load load[TID_MAX_LOAD_COUNT];
+ u8 tx_agg_tid_en;
+#ifdef CONFIG_MAC80211_DEBUGFS
+ struct dentry *rs_sta_dbgfs_scale_table_file;
+ struct dentry *rs_sta_dbgfs_stats_table_file;
+ struct dentry *rs_sta_dbgfs_rate_scale_data_file;
+ struct dentry *rs_sta_dbgfs_tx_agg_tid_en_file;
+ u32 dbg_fixed_rate;
+#endif
+ struct iwl_priv *drv;
+
+ /* used to be in sta_info */
+ int last_txrate_idx;
+ /* last tx rate_n_flags */
+ u32 last_rate_n_flags;
+ /* packets destined for this STA are aggregated */
+ u8 is_agg;
+};
+
static inline u8 num_of_ant(u8 mask)
{
return !!((mask) & ANT_A) +
--
1.5.6.3
^ permalink raw reply related
* [PATCH 09/10] iwlwifi: no chain noise support for 6x50 series
From: Reinette Chatre @ 2009-10-16 21:25 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, ipw3945-devel, Wey-Yi Guy, Reinette Chatre
In-Reply-To: <1255728358-29976-1-git-send-email-reinette.chatre@intel.com>
From: Wey-Yi Guy <wey-yi.w.guy@intel.com>
For initial bring up of 6x50 series NICs, no chain noise support in
uCode, this feature will be added in the later stage of development.
Two chain noise related functions are removed from 6x50 series:
1. gain computation
2. chain noise reset
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
---
drivers/net/wireless/iwlwifi/iwl-6000.c | 21 ++++++++++++++++++---
1 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
index 887e4e3..b531813 100644
--- a/drivers/net/wireless/iwlwifi/iwl-6000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
@@ -232,6 +232,21 @@ static struct iwl_ops iwl6000_ops = {
.led = &iwlagn_led_ops,
};
+static struct iwl_hcmd_utils_ops iwl6050_hcmd_utils = {
+ .get_hcmd_size = iwl5000_get_hcmd_size,
+ .build_addsta_hcmd = iwl5000_build_addsta_hcmd,
+ .rts_tx_cmd_flag = iwl5000_rts_tx_cmd_flag,
+ .calc_rssi = iwl5000_calc_rssi,
+};
+
+static struct iwl_ops iwl6050_ops = {
+ .ucode = &iwl5000_ucode,
+ .lib = &iwl6000_lib,
+ .hcmd = &iwl5000_hcmd,
+ .utils = &iwl6050_hcmd_utils,
+ .led = &iwlagn_led_ops,
+};
+
/*
* "h": Hybrid configuration, use both internal and external Power Amplifier
@@ -397,7 +412,7 @@ struct iwl_cfg iwl6050_2agn_cfg = {
.ucode_api_max = IWL6050_UCODE_API_MAX,
.ucode_api_min = IWL6050_UCODE_API_MIN,
.sku = IWL_SKU_A|IWL_SKU_G|IWL_SKU_N,
- .ops = &iwl6000_ops,
+ .ops = &iwl6050_ops,
.eeprom_size = OTP_LOW_IMAGE_SIZE,
.eeprom_ver = EEPROM_6050_EEPROM_VERSION,
.eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,
@@ -423,7 +438,7 @@ struct iwl_cfg iwl6050_2abg_cfg = {
.ucode_api_max = IWL6050_UCODE_API_MAX,
.ucode_api_min = IWL6050_UCODE_API_MIN,
.sku = IWL_SKU_A|IWL_SKU_G,
- .ops = &iwl6000_ops,
+ .ops = &iwl6050_ops,
.eeprom_size = OTP_LOW_IMAGE_SIZE,
.eeprom_ver = EEPROM_6050_EEPROM_VERSION,
.eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,
@@ -474,7 +489,7 @@ struct iwl_cfg iwl6050_3agn_cfg = {
.ucode_api_max = IWL6050_UCODE_API_MAX,
.ucode_api_min = IWL6050_UCODE_API_MIN,
.sku = IWL_SKU_A|IWL_SKU_G|IWL_SKU_N,
- .ops = &iwl6000_ops,
+ .ops = &iwl6050_ops,
.eeprom_size = OTP_LOW_IMAGE_SIZE,
.eeprom_ver = EEPROM_6050_EEPROM_VERSION,
.eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,
--
1.5.6.3
^ permalink raw reply related
* [PATCH 03/10] iwlwifi: identify eeprom version for 6x50 series NIC
From: Reinette Chatre @ 2009-10-16 21:25 UTC (permalink / raw)
To: linville; +Cc: linux-wireless, ipw3945-devel, Wey-Yi Guy, Reinette Chatre
In-Reply-To: <1255728358-29976-1-git-send-email-reinette.chatre@intel.com>
From: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Adding support for 6x50 series EEPROM version check, 6x50 is wifi/wimax
combo device which has different EEPROM map
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
---
drivers/net/wireless/iwlwifi/iwl-6000.c | 6 +++---
drivers/net/wireless/iwlwifi/iwl-eeprom.h | 5 ++++-
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
index bdc1c74..e74dad3 100644
--- a/drivers/net/wireless/iwlwifi/iwl-6000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
@@ -399,7 +399,7 @@ struct iwl_cfg iwl6050_2agn_cfg = {
.sku = IWL_SKU_A|IWL_SKU_G|IWL_SKU_N,
.ops = &iwl6000_ops,
.eeprom_size = OTP_LOW_IMAGE_SIZE,
- .eeprom_ver = EEPROM_6000_EEPROM_VERSION,
+ .eeprom_ver = EEPROM_6050_EEPROM_VERSION,
.eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,
.num_of_queues = IWL50_NUM_QUEUES,
.num_of_ampdu_queues = IWL50_NUM_AMPDU_QUEUES,
@@ -425,7 +425,7 @@ struct iwl_cfg iwl6050_2abg_cfg = {
.sku = IWL_SKU_A|IWL_SKU_G,
.ops = &iwl6000_ops,
.eeprom_size = OTP_LOW_IMAGE_SIZE,
- .eeprom_ver = EEPROM_6000_EEPROM_VERSION,
+ .eeprom_ver = EEPROM_6050_EEPROM_VERSION,
.eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,
.num_of_queues = IWL50_NUM_QUEUES,
.num_of_ampdu_queues = IWL50_NUM_AMPDU_QUEUES,
@@ -476,7 +476,7 @@ struct iwl_cfg iwl6050_3agn_cfg = {
.sku = IWL_SKU_A|IWL_SKU_G|IWL_SKU_N,
.ops = &iwl6000_ops,
.eeprom_size = OTP_LOW_IMAGE_SIZE,
- .eeprom_ver = EEPROM_6000_EEPROM_VERSION,
+ .eeprom_ver = EEPROM_6050_EEPROM_VERSION,
.eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,
.num_of_queues = IWL50_NUM_QUEUES,
.num_of_ampdu_queues = IWL50_NUM_AMPDU_QUEUES,
diff --git a/drivers/net/wireless/iwlwifi/iwl-eeprom.h b/drivers/net/wireless/iwlwifi/iwl-eeprom.h
index b363c96..5ba5a4e 100644
--- a/drivers/net/wireless/iwlwifi/iwl-eeprom.h
+++ b/drivers/net/wireless/iwlwifi/iwl-eeprom.h
@@ -261,9 +261,12 @@ struct iwl_eeprom_enhanced_txpwr {
/* 1000 Specific */
#define EEPROM_1000_EEPROM_VERSION (0x15C)
-/* 60x0 Specific */
+/* 6x00 Specific */
#define EEPROM_6000_EEPROM_VERSION (0x434)
+/* 6x50 Specific */
+#define EEPROM_6050_EEPROM_VERSION (0x532)
+
/* OTP */
/* lower blocks contain EEPROM image and calibration data */
#define OTP_LOW_IMAGE_SIZE (2 * 512 * sizeof(u16)) /* 2 KB */
--
1.5.6.3
^ permalink raw reply related
* Re: [Regression] - 2.6.32-rc5 hangs using rfkill on an eeePC
From: Fabio Comolli @ 2009-10-16 21:23 UTC (permalink / raw)
To: Frans Pop; +Cc: linux-kernel, rjw, Darren Salt, linux-wireless
In-Reply-To: <200910162246.45678.elendil@planet.nl>
Hi.
On Fri, Oct 16, 2009 at 10:46 PM, Frans Pop <elendil@planet.nl> wrote:
> Fabio Comolli wrote:
>> Pressing rfkill button on my eeePC 900 to disable wireless hangs the
>> system.
>>
>> In console I can see (warning: what follows is copied by hand):
>>
>> acpid: client 148[6:100] has disconnected
>> ACPI group/action not found: hotkey / ATKD
>> unregister netdevice: waiting for wlan0 to become free; usage count=1
>> (last line repeats forever). Hard reset is needed.
>>
>> With any previous kernel version (I'm running -rc4 right now) everything
>> works:
>>
>> ACPI group/action undefined: hotkey / ATKD
>> ath5k 0000:01:00.0: PCI INT A disabled
>
> AFAICT there are only two commits since -rc4 that are likely candidates:
>
> commit b56ab33d68638e6aafdbfc694025e8354a628f49
> Author: Darren Salt <linux@youmustbejoking.demon.co.uk>
> Date: Tue Oct 13 00:13:33 2009 +0200
> eeepc-laptop: Prevent a panic when disabling RT2860 wireless when
> associated
>
> commit 0af49167b1e5ba154e90d2c454bf4624ee47df80
> Author: Darren Salt <linux@youmustbejoking.demon.co.uk>
> Date: Wed Oct 14 02:19:22 2009 +0100
> Staging: rt2860sta: prevent a panic when disabling when associated
>
> They look related and which one is relevant for you probably depends on
> which driver you're using.
>
> Could you try reverting them both to see if that solves the problem?
I already answered my own post in the thread: the culprit is:
eeepc-laptop: Prevent a panic when disabling RT2860 wireless when associated
Funnily enough, my eeePC has an Atheros card.
>
> Cheers,
> FJP
>
Regards,
Fabio
^ permalink raw reply
* Re: [rt2x00-users] [PATCH] rt73usb.c : more ids
From: Xose Vazquez Perez @ 2009-10-16 21:50 UTC (permalink / raw)
To: Simon Raffeiner; +Cc: linux-wireless, users, IvDoorn
In-Reply-To: <200910161517.36838.sturmflut@lieberbiber.de>
[-- Attachment #1: Type: text/plain, Size: 891 bytes --]
On 10/16/2009 03:17 PM, Simon Raffeiner wrote:
> I may be wrong but at least for me this concept worked - I bought an
> RT2070L based device which is currently not supported by rt2800usb, the
> fact that the driver got loaded pointed me into the right direction
> (http://rt2x00.serialmonkey.com/phpBB/viewtopic.php?f=5&t=5245&hilit=rt2070).
>
> I'll post the patch (new ids and some cleanups) if everybody's okay with it.
I did it three days ago, but I did not get free time to post it, sorry!
from 09/15/2009, 1.04.07.0000 windows inf file.
Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
-thanks-
regards,
--
«Allá muevan feroz guerra, ciegos reyes por un palmo más de tierra;
que yo aquí tengo por mío cuanto abarca el mar bravío, a quien nadie
impuso leyes. Y no hay playa, sea cualquiera, ni bandera de esplendor,
que no sienta mi derecho y dé pecho a mi valor.»
[-- Attachment #2: new_id-2800usb.diff --]
[-- Type: text/plain, Size: 7528 bytes --]
--- o/drivers/net/wireless/rt2800usb.c 2009-10-13 13:55:35.194380796 +0200
+++ n/drivers/net/wireless/rt2800usb.c 2009-10-13 15:06:42.771378537 +0200
@@ -2886,17 +2886,23 @@
{ USB_DEVICE(0x0e0b, 0x9041), USB_DEVICE_DATA(&rt2800usb_ops) },
/* Amit */
{ USB_DEVICE(0x15c5, 0x0008), USB_DEVICE_DATA(&rt2800usb_ops) },
+ /* Askey */
+ { USB_DEVICE(0x1690, 0x0740), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x1690, 0x0744), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x0930, 0x0a07), USB_DEVICE_DATA(&rt2800usb_ops) },
/* ASUS */
{ USB_DEVICE(0x0b05, 0x1731), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x0b05, 0x1732), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x0b05, 0x1742), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x0b05, 0x1760), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x0b05, 0x1761), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x0b05, 0x1784), USB_DEVICE_DATA(&rt2800usb_ops) },
/* AzureWave */
{ USB_DEVICE(0x13d3, 0x3247), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x13d3, 0x3262), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x13d3, 0x3273), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x13d3, 0x3284), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x13d3, 0x3305), USB_DEVICE_DATA(&rt2800usb_ops) },
/* Belkin */
{ USB_DEVICE(0x050d, 0x8053), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x050d, 0x805c), USB_DEVICE_DATA(&rt2800usb_ops) },
@@ -2905,6 +2911,8 @@
/* Buffalo */
{ USB_DEVICE(0x0411, 0x00e8), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x0411, 0x012e), USB_DEVICE_DATA(&rt2800usb_ops) },
+ /* Cisco */
+ { USB_DEVICE(0x167b, 0x4001), USB_DEVICE_DATA(&rt2800usb_ops) },
/* Conceptronic */
{ USB_DEVICE(0x14b2, 0x3c06), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x14b2, 0x3c07), USB_DEVICE_DATA(&rt2800usb_ops) },
@@ -2920,6 +2928,8 @@
{ USB_DEVICE(0x07aa, 0x002f), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x07aa, 0x003c), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x07aa, 0x003f), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x07aa, 0x0041), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x07aa, 0x0042), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x18c5, 0x0008), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x18c5, 0x0012), USB_DEVICE_DATA(&rt2800usb_ops) },
/* D-Link */
@@ -2931,18 +2941,24 @@
{ USB_DEVICE(0x07d1, 0x3c0f), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x07d1, 0x3c11), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x07d1, 0x3c13), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x07d1, 0x3c15), USB_DEVICE_DATA(&rt2800usb_ops) },
/* Edimax */
{ USB_DEVICE(0x7392, 0x7711), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x7392, 0x7717), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x7392, 0x7718), USB_DEVICE_DATA(&rt2800usb_ops) },
/* Encore */
{ USB_DEVICE(0x203d, 0x1480), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x203d, 0x14a1), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x203d, 0x14a9), USB_DEVICE_DATA(&rt2800usb_ops) },
/* EnGenius */
{ USB_DEVICE(0X1740, 0x9701), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x1740, 0x9702), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x1740, 0x9703), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x1740, 0x9705), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x1740, 0x9706), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x1740, 0x9707), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x1740, 0x9708), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x1740, 0x9709), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x1740, 0x9801), USB_DEVICE_DATA(&rt2800usb_ops) },
/* Gemtek */
{ USB_DEVICE(0x15a9, 0x0010), USB_DEVICE_DATA(&rt2800usb_ops) },
@@ -2956,7 +2972,10 @@
{ USB_DEVICE(0x0e66, 0x0009), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x0e66, 0x000b), USB_DEVICE_DATA(&rt2800usb_ops) },
/* I-O DATA */
+ { USB_DEVICE(0x04bb, 0x0944), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x04bb, 0x0945), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x04bb, 0x0947), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x04bb, 0x0948), USB_DEVICE_DATA(&rt2800usb_ops) },
/* LevelOne */
{ USB_DEVICE(0x1740, 0x0605), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x1740, 0x0615), USB_DEVICE_DATA(&rt2800usb_ops) },
@@ -2971,8 +2990,18 @@
/* Motorola */
{ USB_DEVICE(0x100d, 0x9031), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x100d, 0x9032), USB_DEVICE_DATA(&rt2800usb_ops) },
+ /* MSI */
+ { USB_DEVICE(0x0db0, 0x3820), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x0db0, 0x3821), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x0db0, 0x3870), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x0db0, 0x6899), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x0db0, 0x821a), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x0db0, 0x870a), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x0db0, 0x899a), USB_DEVICE_DATA(&rt2800usb_ops) },
/* Ovislink */
{ USB_DEVICE(0x1b75, 0x3072), USB_DEVICE_DATA(&rt2800usb_ops) },
+ /* Para */
+ { USB_DEVICE(0x20b8, 0x8888), USB_DEVICE_DATA(&rt2800usb_ops) },
/* Pegatron */
{ USB_DEVICE(0x1d4d, 0x0002), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x1d4d, 0x000c), USB_DEVICE_DATA(&rt2800usb_ops) },
@@ -2988,8 +3017,6 @@
/* Quanta */
{ USB_DEVICE(0x1a32, 0x0304), USB_DEVICE_DATA(&rt2800usb_ops) },
/* Ralink */
- { USB_DEVICE(0x0db0, 0x3820), USB_DEVICE_DATA(&rt2800usb_ops) },
- { USB_DEVICE(0x0db0, 0x6899), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x148f, 0x2070), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x148f, 0x2770), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x148f, 0x2870), USB_DEVICE_DATA(&rt2800usb_ops) },
@@ -3013,7 +3040,12 @@
{ USB_DEVICE(0x0df6, 0x003e), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x0df6, 0x003f), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x0df6, 0x0040), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x0df6, 0x0041), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x0df6, 0x0042), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x0df6, 0x0047), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x0df6, 0x0048), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x0df6, 0x004a), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x0df6, 0x004d), USB_DEVICE_DATA(&rt2800usb_ops) },
/* SMC */
{ USB_DEVICE(0x083a, 0x6618), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x083a, 0x7511), USB_DEVICE_DATA(&rt2800usb_ops) },
@@ -3022,6 +3054,8 @@
{ USB_DEVICE(0x083a, 0x8522), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x083a, 0xa512), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x083a, 0xa618), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x083a, 0xa701), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x083a, 0xa702), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x083a, 0xb522), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x083a, 0xc522), USB_DEVICE_DATA(&rt2800usb_ops) },
/* Sparklan */
@@ -3039,6 +3073,7 @@
{ USB_DEVICE(0x5a57, 0x0280), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x5a57, 0x0282), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x5a57, 0x0283), USB_DEVICE_DATA(&rt2800usb_ops) },
+ { USB_DEVICE(0x5a57, 0x0284), USB_DEVICE_DATA(&rt2800usb_ops) },
{ USB_DEVICE(0x5a57, 0x5257), USB_DEVICE_DATA(&rt2800usb_ops) },
/* Zyxel */
{ USB_DEVICE(0x0586, 0x3416), USB_DEVICE_DATA(&rt2800usb_ops) },
^ permalink raw reply
* Re: [Regression] - 2.6.32-rc5 hangs using rfkill on an eeePC
From: Darren Salt @ 2009-10-16 21:28 UTC (permalink / raw)
To: Fabio Comolli; +Cc: Frans Pop, linux-kernel, rjw, linux-wireless
In-Reply-To: <b637ec0b0910161423o2a5fdd12u926f50c2e4139bf3@mail.gmail.com>
I demand that Fabio Comolli may or may not have written...
[snip]
> I already answered my own post in the thread: the culprit is:
> eeepc-laptop: Prevent a panic when disabling RT2860 wireless when
> associated
> Funnily enough, my eeePC has an Atheros card.
We (myself and Corentin Chary) tried to stop that patch once I'd noticed the
problem – I updated the patch, tested (all was fine with the rt2860 card),
upgraded from -rc3 to -rc4, installed an Intel 3945 card, tested, sent the
patch, restored the rt2860 card to its proper place, happened to toggle
wireless, got a panic due to having failed to remember to actually apply the
patch to -rc4... at this point, I rechecked with the Intel card (this time
with a patched kernel), saw a failure (stuck process – hmm, should rfkill be
re-entrant?), reported it, went digging into rt2860sta and produced, tested
and sent the replacement patch, then tried to stop the broken patch from
going upstream.
A reversion patch has been sent by Corentin (shortly after you reported this,
though the commit message says that he's reacted to its being in rc5) and,
earlier today, I directly requested that it be reverted; so hopefully, one
way or another, -rc6 will be fine for Atheros users and anybody else affected
by this, much as -rc5 is for rt2860 users.
Oh well. So much for Linus's "no new regressions". ;-}
--
| Darren Salt | linux at youmustbejoking | nr. Ashington, | Doon
| using Debian GNU/Linux | or ds ,demon,co,uk | Northumberland | Army
| + Travel less. Share transport more. PRODUCE LESS CARBON DIOXIDE.
Look! Over there!... Ha. Made you look.
^ permalink raw reply
* Re: [PATCH 14/16] iwmc3200wifi: Support unexpected reboot barker
From: Tomas Winkler @ 2009-10-16 22:06 UTC (permalink / raw)
To: Zhu Yi; +Cc: linville, linux-wireless, Samuel Ortiz
In-Reply-To: <1255670340-22565-15-git-send-email-yi.zhu@intel.com>
On Fri, Oct 16, 2009 at 7:18 AM, Zhu Yi <yi.zhu@intel.com> wrote:
> From: Samuel Ortiz <sameo@linux.intel.com>
>
> We can receive unexpected reboot barker at any time, and we're supposed to
> reset the whole device then.
What do yo mean, by whole device ? And who is we in this context?
Thanks
Tomas
>
> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
> Signed-off-by: Zhu Yi <yi.zhu@intel.com>
> ---
> drivers/net/wireless/iwmc3200wifi/rx.c | 8 ++++++++
> 1 files changed, 8 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/net/wireless/iwmc3200wifi/rx.c b/drivers/net/wireless/iwmc3200wifi/rx.c
> index c0fa853..95deb0a 100644
> --- a/drivers/net/wireless/iwmc3200wifi/rx.c
> +++ b/drivers/net/wireless/iwmc3200wifi/rx.c
> @@ -1322,6 +1322,14 @@ int iwm_rx_handle(struct iwm_priv *iwm, u8 *buf, unsigned long buf_size)
>
> switch (le32_to_cpu(hdr->cmd)) {
> case UMAC_REBOOT_BARKER:
> + if (test_bit(IWM_STATUS_READY, &iwm->status)) {
> + IWM_ERR(iwm, "Unexpected BARKER\n");
> +
> + schedule_work(&iwm->reset_worker);
> +
> + return 0;
> + }
> +
> return iwm_notif_send(iwm, NULL, IWM_BARKER_REBOOT_NOTIFICATION,
> IWM_SRC_UDMA, buf, buf_size);
> case UMAC_ACK_BARKER:
> --
> 1.6.0.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply
* Re: [PATCH 01/16] iwmc3200wifi: add BGN sdio device id
From: Tomas Winkler @ 2009-10-16 22:11 UTC (permalink / raw)
To: Zhu Yi; +Cc: linville, linux-wireless
In-Reply-To: <1255670340-22565-2-git-send-email-yi.zhu@intel.com>
On Fri, Oct 16, 2009 at 7:18 AM, Zhu Yi <yi.zhu@intel.com> wrote:
> Add BGN SKU sdio device id.
>
> Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Acked-by: Tomas Winkler <tomas.winkler@intel.com>
I will remove SDIO_DEVICE_ID_INTEL_IWMC3200WIF from sdio_ids.h
> ---
> drivers/net/wireless/iwmc3200wifi/sdio.c | 6 ++++--
> 1 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/wireless/iwmc3200wifi/sdio.c b/drivers/net/wireless/iwmc3200wifi/sdio.c
> index 8b1de84..38026b7 100644
> --- a/drivers/net/wireless/iwmc3200wifi/sdio.c
> +++ b/drivers/net/wireless/iwmc3200wifi/sdio.c
> @@ -493,8 +493,10 @@ static void iwm_sdio_remove(struct sdio_func *func)
> }
>
> static const struct sdio_device_id iwm_sdio_ids[] = {
> - { SDIO_DEVICE(SDIO_VENDOR_ID_INTEL,
> - SDIO_DEVICE_ID_INTEL_IWMC3200WIFI) },
> + /* Global/AGN SKU */
> + { SDIO_DEVICE(SDIO_VENDOR_ID_INTEL, 0x1403) },
> + /* BGN SKU */
> + { SDIO_DEVICE(SDIO_VENDOR_ID_INTEL, 0x1408) },
> { /* end: all zeroes */ },
> };
> MODULE_DEVICE_TABLE(sdio, iwm_sdio_ids);
> --
> 1.6.0.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply
* iwlwifi 6000 uCode available
From: reinette chatre @ 2009-10-16 23:05 UTC (permalink / raw)
To: linux-wireless@vger.kernel.org,
ipw3945-devel@lists.sourceforge.net
Hi,
uCode for Intel® 6000 Series Wi-Fi Adapters is now available for
download from http://intellinuxwireless.org/?n=Downloads
Reinette
^ permalink raw reply
* Re: [rt2x00-users] [PATCH] rt73usb.c : more ids
From: Xose Vazquez Perez @ 2009-10-16 23:14 UTC (permalink / raw)
To: linux-wireless, users, eddy_tsai
On Tue, Oct 13, 2009 at 01:20:17PM +0100, Luis Correia wrote:
> 2009/10/13 Xose Vazquez Perez <xose.vazquez@gmail.com>
> > stolen from windows inf file(07/17/2009, 1.03.05.0000)
> > Ovislink 0x1b75, 0x7318
> > MSI 0x0db0, 0x4600
> > WideTell 0x7167, 0x3840
>>
> Are you absolutely sure that these devices are really rt73usb?
No.
I have copied them from windows driver file. No HW here.
> By being in the windows inf file doesn't mean they would work in Linux.
I don't understand why they were added by ralink to the rt73.inf file
*recently* .
Maybe Microsoft's ninjas are trying to commit sabotage against the
linux kernel ;-)
some information that I have found.
WideTell:
http://www.widetell.com/Product_body.asp?id=212
http://www.widetell.com/Product_body.asp?id=224
http://www.google.es/search?hl=en&q=ralink++site%3Awidetell.com
msi:
http://eu.msi.com/index.php?func=downloaddetail&type=driver&maincat_no=131&prod_no=1308
sorry, nothing about Ovislink. Maybe http://www.airlive.com/product/product_3.jsp?pdid=PD1217466858603
the only people who can know it for sure is the new rt2x00 team member:
Eddy Tsai <eddy_tsai@ralinktech.com.tw> from Ralink Technology
-thanks-
--
«Allá muevan feroz guerra, ciegos reyes por un palmo más de tierra;
que yo aquí tengo por mío cuanto abarca el mar bravío, a quien nadie
impuso leyes. Y no hay playa, sea cualquiera, ni bandera de esplendor,
que no sienta mi derecho y dé pecho a mi valor.»
^ permalink raw reply
* Re: [PATCH 10/10] iwlwifi: rework for static power save
From: Tomas Winkler @ 2009-10-16 23:15 UTC (permalink / raw)
To: Reinette Chatre; +Cc: linville, linux-wireless, ipw3945-devel, Wey-Yi Guy
In-Reply-To: <1255728358-29976-11-git-send-email-reinette.chatre@intel.com>
> #include "iwl-commands.h"
>
> +#define IWL_CONN_LISTEN_INTERVAL 10
There is already IWL_CONN_MAX_LISTEN_INTERVAL; defined
Thanks
Tomas
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox