1. 10 4月, 2012 2 次提交
    • J
      iwlwifi: simplify calibration collection · e1f0c501
      Johannes Berg 提交于
      The calibration results all come in while we're
      waiting for the calibration complete notification.
      As a consequence, there's no need to install a
      global RX handler for them, we can use the newly
      extended notification wait framework for this and
      make the code easier to follow.
      
      It is now quite explicit that we are processing
      the calibration results while waiting for the
      complete notification, before this was implicit
      and developers had to know this to understand why
      we wait for the calibration complete notification
      and what happens while we wait.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      e1f0c501
    • J
      iwlwifi: extend notification wait · db662d47
      Johannes Berg 提交于
      Sometimes, for example when we ask the uCode
      for calibration, we wait for the "complete"
      response while we also need the results that
      are sent in other, interim, notifications.
      
      Currently we handle this by installing an RX
      handler globally, but that isn't needed as
      this is the only time we want to use these
      notifications.
      
      So in order to be able to simplify at least
      future code that does the same, extend the
      notification wait framework to allow you to
      wait for multiple commands and decide based
      on the command whether the wait finished.
      
      While at it, also fix a race that can then
      become relevant -- if the wait function has
      returned true once it shouldn't be called
      again, today this can happen due to races
      between the triggering and the wakeup.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      db662d47
  2. 13 3月, 2012 3 次提交
  3. 09 3月, 2012 2 次提交
    • S
      iwlwifi: make tx_cmd_pool kmem cache global · 354928dd
      Stanislaw Gruszka 提交于
      Otherwise we are not able to run more than one device per driver:
      
      [   24.743045] kmem_cache_create: duplicate cache iwl_dev_cmd
      [   24.743051] Pid: 3165, comm: NetworkManager Not tainted 3.3.0-rc2-wl+ #5
      [   24.743054] Call Trace:
      [   24.743066]  [<ffffffff811717d5>] kmem_cache_create+0x655/0x700
      [   24.743101]  [<ffffffffa03b9f8b>] iwl_alive_notify+0x1cb/0x1f0 [iwlwifi]
      [   24.743111]  [<ffffffffa03ba442>] iwl_load_ucode_wait_alive+0x1b2/0x220 [iwlwifi]
      [   24.743142]  [<ffffffffa03ba893>] iwl_run_init_ucode+0x73/0x100 [iwlwifi]
      [   24.743152]  [<ffffffffa03b8fa1>] __iwl_up+0x81/0x220 [iwlwifi]
      [   24.743161]  [<ffffffffa03b91c0>] iwlagn_mac_start+0x80/0x190 [iwlwifi]
      [   24.743188]  [<ffffffffa03307b3>] ieee80211_do_open+0x293/0x770 [mac80211]
      Signed-off-by: NStanislaw Gruszka <sgruszka@redhat.com>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      354928dd
    • J
      iwlwifi: redesign PASSIVE_NO_RX workaround · e755f882
      Johannes Berg 提交于
      The PASSIVE_NO_RX workaround currently crosses
      through the op_mode and transport layers, which
      is a bit odd. This also isn't necessary, if the
      transport simply reports when queues are full
      (or no longer full) the op_mode can keep track
      of this state, and report to mac80211 only what
      *it* thinks is appropriate. What is appropriate
      can then be based on whether queues should be
      stopped to wait for RX or not.
      
      This significantly simplifies the transport API,
      it no longer needs to expose anything to stop a
      queue, nor to wake "any" queue, this can all be
      handled in the upper layer completely.
      
      Also simplify the handling to not be dependent
      on the context, that makes little sense as the
      queues are shared and both contexts have to be
      on the same channel anyway.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      e755f882
  4. 08 3月, 2012 8 次提交
  5. 07 3月, 2012 3 次提交
  6. 28 2月, 2012 4 次提交
  7. 18 2月, 2012 11 次提交
  8. 03 2月, 2012 6 次提交
  9. 25 1月, 2012 1 次提交