1. 14 1月, 2014 1 次提交
  2. 01 1月, 2014 1 次提交
  3. 18 12月, 2013 1 次提交
    • A
      iwlwifi: trans: divide stop_hw into stop_device/op_mode_leave · a4082843
      Arik Nemtsov 提交于
      The stop_hw trans callback is not well defined. It is missing in many
      cleanup flows and the division of labor between stop_device/stop_hw
      is cumbersome. Remove stop_hw and use stop_device to perform both.
      Implement this for all current transports.
      
      PCIE needs some extra configuration the op-mode is leaving to configure
      RF kill. Expose this explicitly as a new op_mode_leave trans callback.
      Take the call to stop_device outside iwl_run_mvm_init_ucode, this
      makes more sense and WARN when we want to run the INIT firmware while
      it has run already.
      Signed-off-by: NArik Nemtsov <arik@wizery.com>
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      a4082843
  4. 10 12月, 2013 2 次提交
  5. 26 11月, 2013 2 次提交
    • L
      cfg80211: move regulatory flags to their own variable · a2f73b6c
      Luis R. Rodriguez 提交于
      We'll expand this later, this will make it easier to
      classify and review what things are related to regulatory
      or not.
      
      Coccinelle only missed 4 hits, which I had to do manually,
      supplying the SmPL in case of merge conflicts.
      
      @@
      struct wiphy *wiphy;
      @@
      -wiphy->flags |= WIPHY_FLAG_CUSTOM_REGULATORY
      +wiphy->regulatory_flags |= REGULATORY_CUSTOM_REG
      @@
      expression e;
      @@
      -e->flags |= WIPHY_FLAG_CUSTOM_REGULATORY
      +e->regulatory_flags |= REGULATORY_CUSTOM_REG
      @@
      struct wiphy *wiphy;
      @@
      -wiphy->flags &= ~WIPHY_FLAG_CUSTOM_REGULATORY
      +wiphy->regulatory_flags &= ~REGULATORY_CUSTOM_REG
      @@
      struct wiphy *wiphy;
      @@
      -wiphy->flags & WIPHY_FLAG_CUSTOM_REGULATORY
      +wiphy->regulatory_flags & REGULATORY_CUSTOM_REG
      
      @@
      struct wiphy *wiphy;
      @@
      -wiphy->flags |= WIPHY_FLAG_STRICT_REGULATORY
      +wiphy->regulatory_flags |= REGULATORY_STRICT_REG
      @@
      expression e;
      @@
      -e->flags |= WIPHY_FLAG_STRICT_REGULATORY
      +e->regulatory_flags |= REGULATORY_STRICT_REG
      @@
      struct wiphy *wiphy;
      @@
      -wiphy->flags &= ~WIPHY_FLAG_STRICT_REGULATORY
      +wiphy->regulatory_flags &= ~REGULATORY_STRICT_REG
      @@
      struct wiphy *wiphy;
      @@
      -wiphy->flags & WIPHY_FLAG_STRICT_REGULATORY
      +wiphy->regulatory_flags & REGULATORY_STRICT_REG
      
      @@
      struct wiphy *wiphy;
      @@
      -wiphy->flags |= WIPHY_FLAG_DISABLE_BEACON_HINTS
      +wiphy->regulatory_flags |= REGULATORY_DISABLE_BEACON_HINTS
      @@
      expression e;
      @@
      -e->flags |= WIPHY_FLAG_DISABLE_BEACON_HINTS
      +e->regulatory_flags |= REGULATORY_DISABLE_BEACON_HINTS
      @@
      struct wiphy *wiphy;
      @@
      -wiphy->flags &= ~WIPHY_FLAG_DISABLE_BEACON_HINTS
      +wiphy->regulatory_flags &= ~REGULATORY_DISABLE_BEACON_HINTS
      @@
      struct wiphy *wiphy;
      @@
      -wiphy->flags & WIPHY_FLAG_DISABLE_BEACON_HINTS
      +wiphy->regulatory_flags & REGULATORY_DISABLE_BEACON_HINTS
      
      Generated-by: Coccinelle SmPL
      Cc: Julia Lawall <julia.lawall@lip6.fr>
      Cc: Peter Senna Tschudin <peter.senna@gmail.com>
      Cc: Mihir Shete <smihir@qti.qualcomm.com>
      Cc: Henri Bahini <hbahini@qca.qualcomm.com>
      Cc: Tushnim Bhattacharyya <tushnimb@qca.qualcomm.com>
      Signed-off-by: NLuis R. Rodriguez <mcgrof@do-not-panic.com>
      [fix up whitespace damage, overly long lines]
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      a2f73b6c
    • L
      cfg80211: consolidate passive-scan and no-ibss flags · 8fe02e16
      Luis R. Rodriguez 提交于
      These two flags are used for the same purpose, just
      combine them into a no-ir flag to annotate no initiating
      radiation is allowed.
      
      Old userspace sending either flag will have it treated as
      the no-ir flag. To be considerate to older userspace we
      also send both the no-ir flag and the old no-ibss flags.
      Newer userspace will have to be aware of older kernels.
      
      Update all places in the tree using these flags with the
      following semantic patch:
      
      @@
      @@
      -NL80211_RRF_PASSIVE_SCAN
      +NL80211_RRF_NO_IR
      @@
      @@
      -NL80211_RRF_NO_IBSS
      +NL80211_RRF_NO_IR
      @@
      @@
      -IEEE80211_CHAN_PASSIVE_SCAN
      +IEEE80211_CHAN_NO_IR
      @@
      @@
      -IEEE80211_CHAN_NO_IBSS
      +IEEE80211_CHAN_NO_IR
      @@
      @@
      -NL80211_RRF_NO_IR | NL80211_RRF_NO_IR
      +NL80211_RRF_NO_IR
      @@
      @@
      -IEEE80211_CHAN_NO_IR | IEEE80211_CHAN_NO_IR
      +IEEE80211_CHAN_NO_IR
      @@
      @@
      -(NL80211_RRF_NO_IR)
      +NL80211_RRF_NO_IR
      @@
      @@
      -(IEEE80211_CHAN_NO_IR)
      +IEEE80211_CHAN_NO_IR
      
      Along with some hand-optimisations in documentation, to
      remove duplicates and to fix some indentation.
      Signed-off-by: NLuis R. Rodriguez <mcgrof@do-not-panic.com>
      [do all the driver updates in one go]
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      8fe02e16
  6. 29 10月, 2013 1 次提交
  7. 18 10月, 2013 1 次提交
    • E
      iwlwifi: dvm: don't override mac80211's queue setting · f6b12952
      Emmanuel Grumbach 提交于
      Since we set IEEE80211_HW_QUEUE_CONTROL, we can let
      mac80211 do the queue assignement and don't need to
      override its decisions.
      While reassiging the same values is harmless of course,
      it triggered  a WARNING when iwlwifi and mac80211 came
      to different conclusions. This happened when mac80211 set
      IEEE80211_TX_CTL_SEND_AFTER_DTIM, but didn't route the
      packet to the cab_queue because no stations were asleep.
      
      iwlwifi should not override mac80211's decicions for
      offchannel packets and packets to  be sent after DTIM,
      but it should override mac80211's decision for AMPDUs
      since we have a special queue for them. So for AMPDU,
      we still override info->hw_queue by the AMPDU queue.
      
      This avoids:
      ------------[ cut here ]------------
      WARNING: CPU: 0 PID: 2531 at drivers/net/wireless/iwlwifi/dvm/tx.c:456 iwlagn_tx_skb+0x6c5/0x883()
      Modules linked in:
      CPU: 0 PID: 2531 Comm: hostapd Not tainted 3.12.0-rc5+ #1
      Hardware name:                  /D53427RKE, BIOS RKPPT10H.86A.0017.2013.0425.1251 04/25/2013
       0000000000000000 0000000000000009 ffffffff8189aa62 0000000000000000
       ffffffff8105a4f2 ffff880058339a48 ffffffff815f8a04 0000000000000000
       ffff8800560097b0 0000000000000208 0000000000000000 ffff8800561a9e5e
      Call Trace:
       [<ffffffff8189aa62>] ? dump_stack+0x41/0x51
       [<ffffffff8105a4f2>] ? warn_slowpath_common+0x78/0x90
       [<ffffffff815f8a04>] ? iwlagn_tx_skb+0x6c5/0x883
       [<ffffffff815f8a04>] ? iwlagn_tx_skb+0x6c5/0x883
       [<ffffffff818a0040>] ? put_cred+0x15/0x15
       [<ffffffff815f6db4>] ? iwlagn_mac_tx+0x19/0x2f
       [<ffffffff8186cc45>] ? __ieee80211_tx+0x226/0x29b
       [<ffffffff8186e6bd>] ? ieee80211_tx+0xa6/0xb5
       [<ffffffff8186e98b>] ? ieee80211_monitor_start_xmit+0x1e9/0x204
       [<ffffffff8171ce5f>] ? dev_hard_start_xmit+0x271/0x3ec
       [<ffffffff817351ac>] ? sch_direct_xmit+0x66/0x164
       [<ffffffff8171d1bf>] ? dev_queue_xmit+0x1e5/0x3c8
       [<ffffffff817fac5a>] ? packet_sendmsg+0xac5/0xb3d
       [<ffffffff81709a09>] ? sock_sendmsg+0x37/0x52
       [<ffffffff810f9e0c>] ? __do_fault+0x338/0x36b
       [<ffffffff81713820>] ? verify_iovec+0x44/0x94
       [<ffffffff81709e63>] ? ___sys_sendmsg+0x1f1/0x283
       [<ffffffff81140a73>] ? __inode_wait_for_writeback+0x67/0xae
       [<ffffffff8111735e>] ? __cache_free.isra.46+0x178/0x187
       [<ffffffff811173b1>] ? kmem_cache_free+0x44/0x84
       [<ffffffff81132c22>] ? dentry_kill+0x13d/0x149
       [<ffffffff81132f6f>] ? dput+0xe5/0xef
       [<ffffffff81136e04>] ? fget_light+0x2e/0x7c
       [<ffffffff8170ae62>] ? __sys_sendmsg+0x39/0x57
       [<ffffffff818a7e39>] ? system_call_fastpath+0x16/0x1b
      ---[ end trace 1b3eb79359c1d1e6 ]---
      Reported-by: NSander Eikelenboom <linux@eikelenboom.it>
      Reviewed-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      f6b12952
  8. 25 9月, 2013 1 次提交
    • J
      iwlwifi: Remove extern from function prototypes · b3818394
      Joe Perches 提交于
      There are a mix of function prototypes with and without extern
      in the kernel sources.  Standardize on not using extern for
      function prototypes.
      
      Function prototypes don't need to be written with extern.
      extern is assumed by the compiler.  Its use is as unnecessary as
      using auto to declare automatic/local variables in a block.
      Signed-off-by: NJoe Perches <joe@perches.com>
      b3818394
  9. 12 8月, 2013 1 次提交
    • J
      mac80211: add control port protocol TX control flag · af61a165
      Johannes Berg 提交于
      A lot of drivers check the frame protocol for ETH_P_PAE,
      for various reasons (like making those more reliable).
      Add a new flags bitmap to the TX control info and a new
      flag indicating the control port protocol is in use to
      let all drivers also apply such logic to other control
      port protocols, should they be configured.
      
      Also use the new flag in the iwlwifi drivers.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      af61a165
  10. 31 7月, 2013 2 次提交
  11. 25 7月, 2013 1 次提交
  12. 16 7月, 2013 3 次提交
  13. 18 6月, 2013 4 次提交
  14. 13 6月, 2013 1 次提交
  15. 12 6月, 2013 1 次提交
  16. 04 6月, 2013 2 次提交
  17. 30 5月, 2013 1 次提交
    • J
      iwlwifi: mvm: implement D3 testing · debff618
      Johannes Berg 提交于
      For testing the D3 (WoWLAN) firmware, it is useful to be able
      to run the firmware with instrumentation while the host isn't
      sleeping and can poke at the firmware debug logging etc.
      
      Implement this by a debugfs file. When the file is opened the
      D3 firmware is loaded and all regular commands are blocked.
      While the file is being read, poll the firmware's PME status
      flag and report EOF once it changes to non-zero. When it is
      closed, do (most of) the resume processing. This lets a user
      just "cat" the file. Pressing Ctrl-C to kill the cat process
      will resume the firwmare as though the platform resumed for
      non-wireless reason and when the firmware wants to wake up
      reading from the file automatically completes.
      
      Unlike in real suspend, only disable interrupts and don't
      reset the TX/RX hardware while in the test mode. This is a
      workaround for some interrupt problems that happen only when
      the PCIe link isn't fully reset (presumably by changing the
      PCI config space registers which the core PCI code does.)
      
      Note that while regular operations are blocked from sending
      commands to the firmware, they could still be made and cause
      strange mac80211 issues. Therefore, while using this testing
      feature you need to be careful to not try to disconnect, roam
      or similar, and will see warnings for such attempts.
      
      Als note that this requires an upcoming firmware change to
      tell the driver the location of the PME status flag in SRAM.
      D3 test will fail if the firmware doesn't report the pointer.
      Reviewed-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      debff618
  18. 27 5月, 2013 5 次提交
  19. 17 5月, 2013 1 次提交
  20. 14 5月, 2013 1 次提交
  21. 18 4月, 2013 4 次提交
  22. 16 4月, 2013 1 次提交
    • J
      mac80211: support secondary channel offset in CSA · 85220d71
      Johannes Berg 提交于
      Add support for the secondary channel offset IE in channel
      switch announcements. This is necessary for proper handling
      of CSA on HT access points.
      
      For this to work it is also necessary to convert everything
      here to use chandef structs instead of just channels. The
      driver updates aren't really correct though. In particular,
      the TI wl18xx driver update can't possibly be right since
      it just ignores the new channel width for lack of firmware
      API.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      85220d71
  23. 08 4月, 2013 1 次提交
    • E
      iwlwifi: dvm: handle FLUSH ampdu actions from mac80211 · 2d055afd
      Emmanuel Grumbach 提交于
      Until now we didn't handle properly the FLUSH ampdu action
      coming from mac80211. This could result in SCD queue leak:
      mac80211 would STOP_FLUSH an AMPDU Tx session and remove
      the station. If we had still packets on the ring, we
      wouldn't deallocate the SCD queue and wait for it to be
      empty.
      The indication of the queue being empty comes from the Tx
      response flow which relies on the tid_data structure. The
      problem is that this structure has been cleared when the
      station has been removed.
      In order to solve this issue, block in the STOP_FLUSH
      ampdu_action until the SCD queue is flushed, and only then,
      let mac80211 move forward to remove the station.
      iwlagn_txfifo_flush had to be enhanced to allow this.
      
      The bug fixed here caused the "txq_id mismatch: 12 0" print.
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      2d055afd
  24. 04 4月, 2013 1 次提交