summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* iwlegacy: allow to enable PSStanislaw Gruszka2013-01-072-3/+6
| | | | | | | | | | | Power save support was removed from iwlegacy due to possible firmware crashes problems it cause. I use to plan first inspect code to find reason of problems, fix them and then allow to enable PS. But realistically - code inspection will not happen, so let's do it, and wait for eventual bug reports. Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* iwlegacy: add flush callbackStanislaw Gruszka2013-01-074-0/+39
| | | | | | | | Dump implementation of flush, which just wait until all TX queues become empty. Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath9k: fix column header comments for some initval arraysGabor Juhos2013-01-072-6/+6
| | | | | | | | | | | | | | | | | Some 3-column initval arrays have wrong comments. The column of these arrays is indexed by the 'freqIndex' variable in 'ar5008_hw_process_ini' which only depends on the actual band. The 'initvals' tool from 'qca-swiss-army-knife' prints the correct comment lines for these arrays, since commit 'atheros-initvals: fix comments for non-fastclock 3-column tables' however the comments were not refreshed in ath9k. The patch contains no functional changes. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* carl9170: refactor carl9170_update_beaconChristian Lamparter2013-01-071-53/+80
| | | | | | | | | This patch moves parts of carl9170_update_beacon into separate subroutines, so the parts become more manageable. Signed-off-by: Christian Lamparter <chunkeey@googlemail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* carl9170: remove custom NUM_TID and friendsChristian Lamparter2013-01-072-14/+8
| | | | | | | | The commit: "mac80211: introduce IEEE80211_NUM_TIDS and use it" introduced a generic NUM_TID definitions for all everyone. Signed-off-by: Christian Lamparter <chunkeey@googlemail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* carl9170: disable hw crypto for p2p networksChristian Lamparter2013-01-071-0/+8
| | | | | | | | | | While the driver supports HW offload in a single P2P client configuration, it doesn't support HW offload in the concurrent P2P GO+CLIENT configuration. Signed-off-by: Christian Lamparter <chunkeey@googlemail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* carl9170: don't enable hw crypto offload, if the fw doesn't support itChristian Lamparter2013-01-073-12/+24
| | | | | | | | Previously, op_start would set disable_offload always to false, even if it was set to true by the fw parser. Signed-off-by: Christian Lamparter <chunkeey@googlemail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* carl9170: Only specify interface combinations if more than one interface is ↵Christian Lamparter2013-01-071-10/+19
| | | | | | | | | | | | | | | | | | possible Otherwise carl9170 triggers a warning in cfg80211, from net/wireless/core.c /* Combinations with just one interface aren't real */ if (WARN_ON(c->max_interfaces < 2)) Note: The number of supported interfaces is set by the carl9170 firmware. The default number of supported interfaces for all current firmwares is 2. Therefore this warning can only be observed with custom firmwares. Signed-off-by: Christian Lamparter <chunkeey@googlemail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* carl9170: allow P2P_GO interface creation after P2P_CLIENTChristian Lamparter2013-01-071-3/+51
| | | | | | | | | | | | | Janusz Dziedzic reported that after a change in wpa_supplicant ["nl80211: Automatically use concurrent P2P if possible"], carl9170 was no longer able to host a P2P network. This patch tackles the problem by allowing GO interfaces to be registered, long after the P2P_CLIENT interface is brought up. Reported-by: Janusz Dziedzic <janusz.dziedzic@gmail.com> Signed-off-by: Christian Lamparter <chunkeey@googlemail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* carl9170: import 1.9.7 firmware headersChristian Lamparter2013-01-073-4/+12
| | | | | | | | | | | Import new headers from my firmware branch: <https://github.com/chunkeey/carl9170fw> visit our wiki at: <http://wireless.kernel.org/en/users/Drivers/carl9170.fw> Signed-off-by: Christian Lamparter <chunkeey@googlemail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* carl9170: advertise support for TDLSChristian Lamparter2013-01-072-5/+5
| | | | | | | | | | | Based on a quick test [ath9k and carl9170], TDLS seemed to be working fine. And while we are at it, let's move the wiphy feature flag set from carl9170_alloc into a single place in carl9170_fw. Signed-off-by: Christian Lamparter <chunkeey@googlemail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath9k_hw: use the devres API for allocationsFelix Fietkau2013-01-077-80/+37
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> Acked-by: Luis R. Rodriguez <mcgrof@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* ath9k: use the devres API for allocations/mappingsFelix Fietkau2013-01-077-170/+51
| | | | | | Signed-off-by: Felix Fietkau <nbd@openwrt.org> Acked-by: Luis R. Rodriguez <mcgrof@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* rt2800: refactor RFCSR initializationStanislaw Gruszka2013-01-071-372/+423
| | | | | | | | | rt2800_init_rfcsr() is too big, split RF initialization into per chip functions. Code will change, but we should setup the same values onto RF registers and in the same order as before. Signed-off-by: Stanislaw Gruszka <stf_xl@wp.pl> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* Merge branch 'for-john' of ↵John W. Linville2013-01-0717-386/+311
|\ | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next
| * iwlwifi: always check that grab_nic_access succeedsEmmanuel Grumbach2013-01-036-43/+51
| | | | | | | | | | | | | | | | This allows to let sparse check that the NIC access is always released. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
| * iwlwifi: fix spelling and value in LED registers.Eytan Lifshitz2013-01-032-3/+3
| | | | | | | | | | | | | | | | Fix typo in the macro name and the wrong value. Signed-off-by: Eytan Lifshitz <eytan.lifshitz@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
| * iwlwifi: move some PCIe calls to better placesJohannes Berg2013-01-032-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Synchronizing the IRQ is pointless when we will then enable the RF-Kill interrupt again, but is needed before we free it and the data needed to handle IRQs; move it to the free function. Simiarly, cancelling the replenish work struct can move to the function that frees the RX data structures. Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
| * iwlwifi: request IRQ only onceJohannes Berg2013-01-032-41/+25
| | | | | | | | | | | | | | | | There's no need to request the IRQ every time the device is started, we can request it just once. Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
| * iwlwifi: don't treat a bool as an error codeEmmanuel Grumbach2013-01-031-2/+2
| | | | | | | | | | | | | | | | | | iwl_trans_grab_nic_access returns a boolean. So ret should explicitely set to an error code and not rely on the value returned by iwl_trans_grab_nic_access. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
| * iwlwifi: virtualize SRAM accessEmmanuel Grumbach2013-01-039-98/+109
| | | | | | | | | | | | | | | | Different transports implement the access to the SRAM in different ways. Virtualize it. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
| * iwlwifi: virtualize iwl_{grab,release}_nic_accessEmmanuel Grumbach2013-01-038-108/+115
| | | | | | | | | | | | | | | | Since different transports have different ways to wake the up the NIC, we need to virtualize it. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
| * iwlwifi: use __packedJohannes Berg2013-01-031-4/+4
| | | | | | | | | | | | | | Use __packed instead of __attribute__((packed)). Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
| * iwlwifi: let the op_mode run a FW while in RFKILLEmmanuel Grumbach2013-01-033-6/+8
| | | | | | | | | | | | | | | | In some cases, the fw should run even if the NIC is in RFKILL. Make the API more flexible to allow that. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
| * iwlwifi: don't verify fw after downloadEmmanuel Grumbach2013-01-031-94/+0
| | | | | | | | | | | | | | | | No need to verify that the fw has been written correctly. In case it hasn't, we won't get ALIVE notification. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
| * iwlwifi: clean up code in AGGEmmanuel Grumbach2013-01-031-11/+10
| | | | | | | | | | | | | | If we take a pointer to the tid_data, then use it. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
| * iwlwifi: make the BC table layout configurableEmmanuel Grumbach2013-01-034-1/+10
| | | | | | | | | | | | | | This is needed for newer NICs. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
* | cfg80211: disallow more station changesJohannes Berg2013-01-032-18/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | The following changes are invalid and should be disallowed when a station already exists: * supported rates changes, except for TDLS peers * listen interval changes * HT capability changes Disallow them and also update a mac80211 comment explaining how they would be racy. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
* | mac80211: unset peer's HT 40 MHz support if not usableJohannes Berg2013-01-031-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | When an interface is configured to a 20 MHz channel and the device as well as the peer are 40 MHz capable the HT capabilities of the peer are not restricted to 20 MHz, even though they're supposed to be restricted to the currently possible capabilities. Unset the 40 MHz HT capability bits in this case. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
* | wireless: use __alignedJohannes Berg2013-01-033-6/+6
| | | | | | | | | | | | | | Use __aligned(...) instead of __attribute__((aligned(...))) in mac80211 and cfg80211. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
* | mac80211: support HT notify channel width actionJohannes Berg2013-01-032-1/+39
| | | | | | | | | | | | | | | | Support the HT notify channel width action frame to update the rate scaling about the bandwidth the peer can receive in. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
* | wireless: use __packed in ieee80211.hJohannes Berg2013-01-031-42/+42
| | | | | | | | | | | | Use __packed instead of __attribute__((packed)). Signed-off-by: Johannes Berg <johannes.berg@intel.com>
* | mac80211: split TX aggregation stop actionJohannes Berg2013-01-0313-21/+85
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When TX aggregation is stopped, there are a few different cases: - connection with the peer was dropped - session stop was requested locally - session stop was requested by the peer - connection was dropped while a session is stopping The behaviour in these cases should be different, if the connection is dropped then the driver should drop all frames, otherwise the frames may continue to be transmitted, aggregated in the case of a locally requested session stop or unaggregated in the case of the peer requesting session stop. Split these different cases so that the driver can act accordingly; however, treat local and remote stop the same way and ask the driver to not send frames as aggregated packets any more. In the case of connection drop, the stop callback the driver is otherwise supposed to call is no longer required. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
* | mac80211: move ieee80211_remove_tid_tx functionJohannes Berg2013-01-031-103/+103
| | | | | | | | | | | | | | To call it from ___ieee80211_stop_tx_ba_session, move the function and dependencies up. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
* | mac80211: split out aggregation TX removalJohannes Berg2013-01-031-18/+30
| | | | | | | | | | | | | | Create the function ieee80211_remove_tid_tx to call it from ___ieee80211_stop_tx_ba_session later. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
* | mac80211: split aggregation stop by reasonJohannes Berg2013-01-038-25/+33
| | | | | | | | | | | | | | | | | | | | The initiator/tx doesn't really identify why an aggregation session is stopped, give a reason for stopping that more clearly identifies what's going on. This will help tell the driver clearly what is expected of it. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
* | nl80211/mac80211: support full station state in AP modeJohannes Berg2013-01-034-45/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Today, stations are added already associated. That is inefficient if, for example, the driver has no room for stations any more because then the station will go through the entire auth/assoc handshake, only to be kicked out afterwards. To address this a bit better, at least with drivers using the new station state callback, allow hostapd to add stations in unauthenticated mode, just after receiving the AUTH frame, before even replying. Thus if there's no more space at that point, it can send a negative auth frame back. It still needs to handle later state transition errors though, of course. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
* | cfg80211: move some AP code to right fileJohannes Berg2013-01-032-62/+62
| | | | | | | | | | | | | | Some AP code ended up in mlme.c as ap.c didn't exist when it was written, move it now. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
* | mac80211: restrict assoc request VHT capabilitiesJohannes Berg2013-01-032-3/+50
| | | | | | | | | | | | | | | | | | | | | | | | In interoperability testing some APs showed bad behaviour if some of the VHT capabilities of the station are better than their own. Restrict the assoc request parameters - beamformee capabable, - RX STBC and - RX MCS set to the subset that the AP can support. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
* | cfg80211: move world roaming check for beacon hintsLuis R. Rodriguez2013-01-031-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We should not add new beacon hints even if the wiphy is not world roaming. Without this we were always adding a beacon hint if not world roaming for every non world roaming wiphy interface. Tested-by: Ben Greear <greearb@candelatech.com> Reported-by: Ben Greear <greearb@candelatech.com> Reported-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com> [fix locking] Signed-off-by: Johannes Berg <johannes.berg@intel.com>
* | cfg80211: move reg_is_world_roaming()Luis R. Rodriguez2013-01-031-16/+16
| | | | | | | | | | | | | | | | | | | | | | This will be used later by other code. This has no functional change. Tested-by: Ben Greear <greearb@candelatech.com> Reported-by: Ben Greear <greearb@candelatech.com> Reported-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
* | cfg80211: do not process beacon hints if one is already queuedLuis R. Rodriguez2013-01-031-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Regulatory beacon hints are used to help with world roaming and as it is right now we learn from a beacon hint processed on one wiphy to all other wiphys. The processing of beacon hints however is scheduled and if we have a lot of interfaces we may hit the case that we'll queue a the same beacon hint many times until its processed. To avoid this do a lookup on the queued up beacon hints prior to adding a new beacon hint. If the beacon hint is removed from the pending reg beacon hint list then it would be processed and we'd ensure all wiphys would have learned from it, if its on the pending reg beacon list we'd now find it prior to it being processed. Tested-by: Ben Greear <greearb@candelatech.com> Reported-by: Ben Greear <greearb@candelatech.com> Reported-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Luis R. Rodriguez <mcgrof@do-not-panic.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
* | mac80211: assign bss_conf.bssid only onceJohannes Berg2013-01-035-20/+15
| | | | | | | | | | | | | | | | | | | | Instead of checking every time bss_info_changed is called, assign the pointer once depending on the interface type and then leave it untouched until the interface type is changed. This makes the ieee80211_bss_info_change_notify() now a simple wrapper to call the driver only. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
* | mac80211: further simplify ieee80211_bss_info_change_notifyJohannes Berg2013-01-033-19/+16
| | | | | | | | | | | | | | | | | | The special case in the function isn't really needed, instead make the suspend code a bit better and also easier to understand and move the warning into the driver op wrapper inline. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
* | mac80211: reconfig bss_info_changed only if beaconingJohannes Berg2013-01-031-3/+5
| | | | | | | | | | | | | | | | | | For AP/IBSS/mesh interfaces, call the driver to reconfigure bss_info_changed only if the interface was beaconing before suspend, otherwise we call the driver and it might interpret the change as going from enabled to disabled. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
* | mac80211: track enable_beacon explicitlyJohannes Berg2013-01-036-38/+21
| | | | | | | | | | | | | | | | | | | | Instead of calculating in ieee80211_bss_info_change_notify() whether beaconing should be enabled or not, set it in the correct places in the callers. This simplifies the logic in this function at the expense of offchannel, but is also more robust. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
* | mac80211: fix channel context iterationJohannes Berg2013-01-034-4/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | During suspend/resume channel contexts might be iterated even if they haven't been re-added to the driver, keep track of this and skip them in iteration. Also use the new status for sanity checks. Also clarify the fact that during HW restart all contexts are iterated over (thanks Eliad.) Signed-off-by: Johannes Berg <johannes.berg@intel.com>
* | mac80211: clean up association better in suspendJohannes Berg2013-01-033-3/+26
| | | | | | | | | | | | | | | | | | | | | | | | When suspending, bss_info_changed() is called to disable beacons, but managed mode interfaces are simply removed (bss_info_changed() is called with "no change" only). This can lead to problems. To fix this and copy the BSS configuration, clear it during suspend and restore it on resume. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
* | mac80211: clean up ieee80211_quiesceJohannes Berg2013-01-031-17/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's a bit odd that there's a return value that only depends on the iftype, move that logic out of the function into the only caller that needs it. Also, since the quiescing could stop timers that trigger the sdata work, move the sdata work cancel into the function and after the actual quiesce. Finally, there's no need to call it on interfaces that are down, so don't. Change-Id: I1632d46d21ba3558ea713d035184f1939905f2f1 Signed-off-by: Johannes Berg <johannes.berg@intel.com>
* | mac82011: use frame control to differentiate probe resp/beaconEmmanuel Grumbach2013-01-034-48/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | The probe response/beacon management frame RX code passes a bool parameter to differentiate beacons and probe responses. This is useless since we have the frame and can thus use its frame control field. Moreover it is buggy since there is one call to ieee80211_rx_bss_info with a beacon frame that is indicated as a probe response, which is also fixed by using the frame control field, so do that. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
OpenPOWER on IntegriCloud