aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-03-05wl12xx: print the tx packet lenEliad Peller1-1/+2
Add the packet length to the tx debug print. Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2012-03-05wl12xx: avoid bug_on_recovery during fw switchEliad Peller2-1/+5
Add a flag to indicate we initiated a recovery work on purpose, in order to avoid triggering BUG() (when the bug_on_recovery module param was set). Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2012-03-05wl12xx: configure the correct beacon_intervalEliad Peller1-0/+1
We didn't update the beacon interval on association (or on a change notification when working as sta), so the default interval (100ms) was always used. Update the beacon interval according to the bss_conf before starting the sta role (on association). Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2012-03-05wl12xx: don't allow scanning while device is in ROCEliad Peller1-4/+2
return EBUSY on scan when there is any role in ROC (not necessarily the one we are going to use) Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2012-03-05wl12xx: don't handle change_channel while associatedEliad Peller1-27/+14
Currently, CHANGE_CHANNEL indication while associated is considered as roaming attempt. However, with the new auth/assoc redesign, we no longer have to handle this case, so remove it. Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2012-03-05wl12xx: set correct vif type in change_interface callbackEliad Peller1-1/+1
In some cases, the wrong vif type was set in the change_interface callback (P2P_CLIENT/P2P_GO instead of STA/AP) Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2012-03-05wl12xx: increment session_counter for device role as wellEliad Peller1-1/+1
The sesssion_counter has to be incremented each time the dev is started (similar to sta role). Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2012-03-05wl12xx: set authorized AP on sta_state notificationEliad Peller2-97/+23
wl12xx currently looks for AP authorization by registering a netdev notifier and waiting for the IF_OPER_UP notification, which is quite cumbersome. Use the newly introduced sta_state callback (waiting for assoc -> auth notification) instead, in order to simplify it. Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2012-03-05wl12xx: implement sta_state callbackEliad Peller1-55/+82
Implement sta_state callback instead of the sta_add/remove callbacks. Update the fw regarding peer state and ht caps only after the station was authorized. Otherwise, the fw might try establishing BA session before the sta is authorized. Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2012-03-05wl12xx: consider bss_conf->idle instead of hw->conf.flagsEliad Peller1-2/+1
On disassociation, check only whether the current vif is idle, instead of checking whether the device is idle. Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2012-03-05wl12xx: don't start dev role on ibss vifsEliad Peller1-4/+2
device role is used for scanning and sending packets before connection. however, since we don't need to send packets before ibss creation, there is no need to start the device on idle-off. Signed-off-by: Eliad Peller <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2012-03-01ath6kl: Fix random system lockupRaja Mani1-8/+26
The commit "ath6kl: Use a mutex_lock to avoid race in diabling and handling irq" introduces a state where ath6kl_sdio_irq_handler() would be waiting to claim the sdio function for receive indefinitely when things happen in the following order. ath6kl_sdio_irq_handler() - aquires mtx_irq - sdio_release_host() ath6kl_sdio_irq_disable() - sdio_claim_host() - sleep on mtx_irq ath6kl_hif_intr_bh_handler() - (indefinitely) wait for the sdio function to be released to exclusively claim it again for receive operation. Fix this by replacing the mtx_irq with an atomic variable and a wait_queue. kvalo: add ath6kl_sdio_is_on_irq() due to open parenthesis alignment Signed-off-by: Raja Mani <[email protected]> Signed-off-by: Vasanthakumar Thiagarajan <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-03-01ath6kl: Collect residue firmware logsEtay Luz1-0/+1
Collect residue firmware logs following firmware assert. Firmware sends logs to host once the 1500 byte log buffer has been filled. At time of assert, there could be residue logs lying in the firmware. This patch pulls those residue logs. This would give the full picture of the firmware. Signed-off-by: Etay Luz <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-03-01ath6kl: add padding to firmware log recordsEtay Luz1-1/+4
firmware debug utility expects firmware log record size to be 1500 bytes. This patch ensures that the firmware record will be exactly 1500 bytes. kvalo: remove trailing space Signed-off-by: Etay Luz <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-03-01ath6kl: implement hidden ssidThomas Pedersen3-1/+27
The ath6kl FW does not distinguish between different types of hidden SSIDs (empty or null), so treat all cfg80211 requests for hidden ssid the same. Signed-off-by: Thomas Pedersen <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-03-01ath6kl: Clear the IE in firmware if not setAarthi Thiruvengadam1-35/+29
Remove check so that IE in firmware is cleared if not set. Without this fix, any previously set IE will be used incorrectly in the next frame. For example, consider the scenario where a P2P device scan is followed by a regular station scan. The P2P IE set by the P2P scan needs to be cleared, otherwise the station scan will contain the P2P IE. kvalo: indentation fixes Signed-off-by: Aarthi Thiruvengadam <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-03-01ath6kl: Make sure wiphy is registered before calling regulatory_hint()Vasanthakumar Thiagarajan3-1/+7
As regulatory events are processed even before the wiphy is registered, calling regulatory_hint() at early stage should be fixed. Signed-off-by: Vasanthakumar Thiagarajan <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-03-01ath6kl: Defer wiphy and netdev registration till the end of ath6kl_core_init()Vasanthakumar Thiagarajan1-44/+32
This makes the wiphy and initial netdev registration the last step in dev initialization. Apart from the fact that this looks right, it can also be used to setup wiphy with the regulatory information received from firmware after uploading the firmware. Also it fixes a FIXME in ath6kl_core_init() where mac address is copied into netdev->dev_addr, ath6kl_interface_add() takes care of this as well. Signed-off-by: Vasanthakumar Thiagarajan <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-03-01ath6kl: Skip vif index validation in ath6kl_rx() for wmi eventsVasanthakumar Thiagarajan1-9/+8
When the wmi event is vif specific, the validation of vif index is taken care in ath6kl_wmi_proc_events_iface(). This also avoids the need for a netdev to be registered while receiving initial events like "target_ready" and "regulatory domain". Signed-off-by: Vasanthakumar Thiagarajan <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-03-01ath6kl: Refactor ath6kl_wmi_control_rx()Vasanthakumar Thiagarajan1-101/+99
Split the wmi event processing into the one which needs to be vif specific and the reset. This is a step towards avoiding the need for wiphy and a netdev registration before getting any message from firmware. Signed-off-by: Vasanthakumar Thiagarajan <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-03-01ath6kl: Initialize netdev hw_features for every interfaceVasanthakumar Thiagarajan2-2/+2
Move netdev->hw_features setting from ath6kl_core_init() to init_netdev() so that it is done for every interface. Signed-off-by: Vasanthakumar Thiagarajan <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-03-01ath6kl: Group wiphy initialization into ath6kl_cfg80211_init()Vasanthakumar Thiagarajan2-14/+14
There are some code which initializes various wiphy members left outside ath6kl_cfg80211_init(), in ath6kl_core_init(). Move them into a single palce. Signed-off-by: Vasanthakumar Thiagarajan <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-02-29carl9170: fix breakage from "mac80211: handle non-bufferable MMPDUs correctly"John W. Linville1-1/+1
That commit intended for 3.4 renamed IEEE80211_TX_CTL_POLL_RESPONSE as IEEE80211_TX_CTL_NO_PS_BUFFER. Meanwhile, "carl9170: fix frame delivery if sta is in powersave mode" added a reference to IEEE80211_TX_CTL_POLL_RESPONSE in the fixes stream for 3.3. This simple patch fixes that merge boo-boo. Signed-off-by: John W. Linville <[email protected]>
2012-02-29Merge branch 'master' of ↵John W. Linville10-34/+45
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless
2012-02-29ath9k: decouple RX error checking for DFSZefir Kurtisi1-6/+6
Previous RX error checking was done exclusive-or for different error types and caused DFS pulse events to be dropped when other error flags (e.g. CRC) were set simultaneously. This patch decouples PHY error processing from other types and ensures that all pulses detected by HW are accounted by the pattern detector. Signed-off-by: Zefir Kurtisi <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-29iwlegacy: remove unused enum il4965_calib_enabled_stateGreg Dietsche1-5/+0
Remove the enum il4965_calib_enabled_state because it is not used. Signed-off-by: Greg Dietsche <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-29iwlegacy: remove enum iw_calib and related codeGreg Dietsche4-32/+0
Remove the enum il_calib. It defined one identifier: IL_CALIB_MAX. Remove the function il4965_calib_free_results. It was doing nothing because IL_CALIB_MAX is zero. Next, remove calib_results from the il_priv structure and also remove the associated return type/struct il_calib_result. Signed-off-by: Greg Dietsche <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-29iwlegacy: Kconfig: Change Debug Option to be more clearGreg Dietsche1-1/+1
Since the menuconfig system doesn't indent the debug options for the 3945 /4965, add some text to make it clear which debug options are being configured. Signed-off-by: Greg Dietsche <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-29iwlegacy: Kconfig: Move Debugging OptionsGreg Dietsche1-39/+39
Move the debug options so they appear below the 3945 / 4965 options. Signed-off-by: Greg Dietsche <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-29mac80211: handle non-bufferable MMPDUs correctlyJohannes Berg6-18/+30
This renames the IEEE80211_TX_CTL_POLL_RESPONSE TX flag to IEEE80211_TX_CTL_NO_PS_BUFFER and also uses it for non-bufferable MMPDUs (all MMPDUs but deauth, disassoc and action frames.) Previously, mac80211 would let the MMPDU through but not set the flag so drivers supporting some hardware aids for avoiding the PS races would then reject the frame. Signed-off-by: Johannes Berg <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-29mwifiex: remove unnecessary enum MWIFIEX_802_11_WEP_STATUSAmitkumar Karwar7-44/+29
Instead of defining an 'enum', we can simply use 'u8' flag for WEP status. Rename 'wep_status' to 'wep_enabled' to match with 'wpa_enabled' and 'wpa2_enabled'. Signed-off-by: Amitkumar Karwar <[email protected]> Signed-off-by: Bing Zhao <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-29mwifiex: remove redundant scan operationAmitkumar Karwar1-6/+0
It should have been removed by commit "mwifiex: use cfg80211 dynamic scan..." (7c6fa2a843..) after adding code to avoid an extra scan during association because scan entries are valid for 15 seconds in cfg80211 stack. Signed-off-by: Amitkumar Karwar <[email protected]> Signed-off-by: Bing Zhao <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-29mac80211: make deauth/disassoc sequence more naturalJohannes Berg1-37/+47
The association sequence looks (roughly) like this now: * set BSSID * set station to EXIST state * send auth * set station to AUTH state * send assoc * set station to ASSOC state * set BSS info to associated In contrast, the deauth/disassoc sequence is the other way around: * clear BSSID/BSS info state * remove station * send deauth/disassoc (in some cases the last two steps are reversed.) This patch encodes the entire sequence in the ieee80211_set_disassoc() function and changes it to be like this, for good measure with an explicit flush: * send deauth/disassoc * flush * remove station * clear BSSID/BSS info state At least iwlwifi gets confused with the other sequence in P2P mode and complains that it wasn't able to flush the queues. Signed-off-by: Johannes Berg <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-29mac80211: fix ieee80211_set_disassoc() sending DelBAJohannes Berg1-3/+3
When ieee80211_set_disassoc() is called with the tx argument set to true, it will send DelBA out to the peer. This isn't useful or necessary in a few cases where we do it today, those being when we lost the connection or when the supplicant explicitly asked us to not tell the AP. Signed-off-by: Johannes Berg <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-29mac80211: dont call cfg80211 from ieee80211_send_deauth_disassocJohannes Berg1-33/+38
Instead of calling cfg80211 in ieee80211_send_deauth_disassoc() pass out the frame and call it from the caller. That saves the SKB allocation if we don't actually want to send the frame and enables us to make the ordering smarter in the future. Signed-off-by: Johannes Berg <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-29cfg80211: remove cookies from callbacksJohannes Berg5-33/+25
In "cfg80211: no cookies in cfg80211_send_XXX()" Holger Schurig removed the cookies in the calls from mac80211 to cfg80211, but the ones in the other direction were left in. Remove them now. Signed-off-by: Johannes Berg <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-29ipw2x00: remove ipw2100_rates_11b[]Stanislav Yakovlev1-9/+2
It's just a duplicate of ipw2100_bg_rates[]. Signed-off-by: Stanislav Yakovlev <[email protected]> Reviewed-by: Julian Calaby <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-29zd1211rw: wait between setting hash table and powering radio onFlorian Fainelli1-1/+11
I am running Debian testing kernel 3.1.0-1-amd64, using a 079b:0062 Sagem XG-76NA 802.11bg stick. Upon zd1211rw interface bringup (ifconfig wlan0 up) I get the following timeout: [ 950.330573] zd1211rw 1-3:1.0: phy2 [ 955.108510] zd1211rw 1-3:1.0: firmware version 4725 [ 955.148532] zd1211rw 1-3:1.0: zd1211b chip 079b:0062 v4810 high 00-19-70 AL2230_RF pa0 g--NS [snip] [ 955.204072] zd1211rw 1-3:1.0: error ioread32(CR_REG1): -110 A second ifconfig wlan0 up brings the interface up without problems. After a bit more debugging, the call trace is the following: [10241.028130] zd1211rw 1-3:1.0: zd_chip_lock_phy_regs: error ioread32(CR_REG1): -110 [10241.028140] zd1211rw 1-3:1.0: zd_switch_radio_on: failed to lock PHY regs [10241.028148] zd1211rw 1-3:1.0: zd_op_start: failed to set radio on Adding a 10 milliseconds delay between the call to set_mc_hash() and zd_chip_switch_radio_on() allows successful interface bringups in all cases and matches what the vendor driver did. Acked-by: Jussi Kivilinna <[email protected]> Signed-off-by: Florian Fainelli <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-29mwifiex: reset encryption mode flag before associationAmitkumar Karwar1-0/+1
Recent commit "mwifiex: clear previous security setting during association" fixes association failure problems observed in some corner cases by clearing previous security setting before each association. We should reset encryption mode flag as well. This patch takes care of it. Signed-off-by: Amitkumar Karwar <[email protected]> Signed-off-by: Bing Zhao <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-29carl9170: fix frame delivery if sta is in powersave modeChristian Lamparter1-3/+5
Nicolas Cavallari discovered that carl9170 has some serious problems delivering data to sleeping stations. It turns out that the driver was not honoring two important flags (IEEE80211_TX_CTL_POLL_RESPONSE and IEEE80211_TX_CTL_CLEAR_PS_FILT) which are set on frames that should be sent although the receiving station is still in powersave mode. Cc: stable <[email protected]> Reported-by: Nicolas Cavallari <[email protected]> Signed-off-by: Christian Lamparter <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-29carl9170: Fix memory accounting when sta is in power-save mode.Nicolas Cavallari1-0/+1
On Access Point mode, when transmitting a packet, if the destination station is in powersave mode, we abort transmitting the packet to the device queue, but we do not reclaim the allocated memory. Given enough packets, we can go in a state where there is no packet on the device queue, but we think the device has no memory left, so no packet gets transmitted, connections breaks and the AP stops working. This undo the allocation done in the TX path when the station is in power-save mode. Signed-off-by: Nicolas Cavallari <[email protected]> Acked-by: Christian Lamparter <[email protected]> Cc: stable <[email protected]> Signed-off-by: John W. Linville <[email protected]>
2012-02-28wl12xx: increase dynamic PS timeout to 200msArik Nemtsov1-1/+1
This ensures the user won't encounter lag associated with getting in and out of PSM when the card is in use. Signed-off-by: Arik Nemtsov <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2012-02-28wl12xx: flush Tx during suspend and 802.11h chan switchArik Nemtsov1-0/+4
Flush our Tx queues before suspending or changing the channel due to a channel_switch element in the AP beacon. Signed-off-by: Arik Nemtsov <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2012-02-28wl12xx: flush all Tx queues on tx_flush timeoutArik Nemtsov1-0/+7
Ensure our queues are empty at the end of a tx_flush(), in case we timeout on passively waiting for them. This makes sure no left-overs are transmitted when we are on the wrong channel. Signed-off-by: Arik Nemtsov <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2012-02-28wl12xx: avoid starving the system hlidArik Nemtsov1-4/+13
Re-factor the Tx scheduler so that the system_hlid is taken into account before restarting an iteration over the wlvifs. Previously this hlid had a lower priority and would starve if some wlvif had many packets. In addition avoid iterating over wlvifs past last_wlvif when performing the a second pass. If we had packets in those wlvifs they would have been found earlier. Signed-off-by: Arik Nemtsov <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2012-02-28wl12xx: reset link Tx queues when freeing itArik Nemtsov3-4/+17
Before, the link was first freed (invalidating it in the map), and later on vif removal, all valid wlvif-related links were reset. Since these links were already invalid, we failed to reset them. The bug was made worse by op_stop, which set the tx_queue_count to 0 arbitrarily. This resulted in a negative tx_queue_count in some scenarios. Fix this by resetting the Tx-queues of a link when freeing it. Add a WARN_ON and reset all link Tx-queues in op_stop, to avoid a negative tx_queue_count. [changed WARN_ON to WARN_ON_ONCE -- Luca] Signed-off-by: Arik Nemtsov <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2012-02-28wl12xx: change bits in the link_map under spin lockArik Nemtsov1-0/+9
These bits are used in op_tx to determine if a packet should be dropped. As such we should use the spin lock to sync the state. Signed-off-by: Arik Nemtsov <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2012-02-28wl12xx: set the ELP entry delay to the FW dyn-ps timeoutArik Nemtsov1-3/+1
With PSM handled in FW, the checks in wl1271_elp_work() are always true. Thus during active traffic we constantly enter and exit ELP (many times per second). As each ELP exit takes ~10ms, this can have an adverse effect on throughput and interactivity. Set the ELP timeout to the dyn-ps timeout. This period is longer and avoids the above problem. It also makes sense to stay out of ELP while we are awake on the network, to minimize delays in Tx/Rx. The same thing was done by the mac80211 dynamic-ps mechanism before the FW DPS changes. Signed-off-by: Arik Nemtsov <[email protected]> Signed-off-by: Luciano Coelho <[email protected]>
2012-02-28ath6kl: Register driver ht capabilities in wiphyVasanthakumar Thiagarajan1-0/+8
Register driver's ht capabilities in wiphy to avoid failures in setting ht channels from hostapd. Signed-off-by: Vasanthakumar Thiagarajan <[email protected]> Signed-off-by: Kalle Valo <[email protected]>
2012-02-28ath6kl: Lower SDIO pad drive strength for hw2.1.1 boardRaja Mani1-1/+2
Without this change, SDIO shuts down due to CRC error during data communication to the firmware in some of the platform. for example, scan request issued to the firmware doesn't return scan completed events and cause the socket interface to always return -16 (device busy). SDIO pad drive strength should be reduced for hw2.1.1 board to avoid such errors. Signed-off-by: Raja Mani <[email protected]> Signed-off-by: Kalle Valo <[email protected]>