1. 11 5月, 2010 6 次提交
  2. 17 4月, 2010 2 次提交
  3. 10 4月, 2010 5 次提交
  4. 03 4月, 2010 1 次提交
  5. 26 3月, 2010 1 次提交
  6. 20 3月, 2010 2 次提交
    • R
      iwlwifi: implement new mac80211 station add/remove calls · fe6b23dd
      Reinette Chatre 提交于
      mac80211 recently implemented two new callbacks that are used to request
      station add/remove from the driver. The benefot from these new callbacks
      are that they enable the driver to sleep while performing this work.
      
      This is a big patch since a few things need to be coordinated in this move.
      First we need to decouple station management from rate scaling, which
      caused a lot of code to be moved and/or deleted. Next we needed to tie in
      with mac80211's station management callback and let it direct our station
      management as well as trigger the rate scaling initialization.
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      fe6b23dd
    • R
      iwlwifi: only add broadcast station once · 7e246191
      Reinette Chatre 提交于
      Currently the broadcast station is added after every RXON command. Change
      this to only add the broadcast station when interface is added by mac80211.
      With this we need some extra work to ensure broadcast station is always
      present since station table is cleared when RXON without ASSOC bit set is
      sent. To deal with this we re-add all driver known stations to uCode after
      such an RXON command is sent.
      
      We also do some cleanup and remove the various calls to clear the station
      table. We now only clear the station table in two scenarios:
      - only clear uCode portion of station table when RXON command without ASSOC
      bit is sent
      - clear uCode and driver portion when interface goes down or is removed.
      
      We need to do this clearing when interface goes down to deal with the
      device restart/reconfigure routines which do not remove the interface, but
      do add the interface during reconfiguration.
      
      Previously the keys were also cleared when station table in driver is
      cleared, this is not done anymore since mac80211 will take care that keys
      are set and cleared correctly.
      
      There is a known issue with this change. Associating with different AP
      without bringing interface down fails with a firmware error. This is
      because of the lack of full station notification support and the later
      patches in this series that complete the station notification support will
      fix this.
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      7e246191
  7. 10 3月, 2010 1 次提交
  8. 26 1月, 2010 4 次提交
    • D
      iwlwifi: fix throughput degradation in aggregation mode · ff27fabe
      Daniel Halperin 提交于
      The following commit
      
      	commit e4da8c37
      	Author: Johannes Berg <johannes@sipsolutions.net>
      	Date:   Wed Dec 23 13:15:43 2009 +0100
      
      	   mac80211: make off-channel work generic
      
      triggered a bug in iwlwifi where HT parameters would not be correctly set in
      some mac80211 pathways. The aggregation (and possibly other) station flags were
      not being set, which limited the size of aggregation blocks and reduced
      throughput at high rates.
      
      >From Johannes:
      """
      Due to Wey-Yi's patch to use the set-channel command when the channel changes
      while associated, we don't get a full new RXON. Therefore, we don't re-set the
      rxon-station either. However, under some circumstances that apparently have
      gotten more likely mac80211 will first set up the BSS info, then add the
      station and then switch to an HT channel type.
      
      Therefore, the check for "priv->current_ht_config.is_ht" in
      iwl_rxon_add_station() will hit false and not fill in the HT information.
      
      However, that check can just be removed, which is the easiest fix for all this,
      because the HT capa struct is always there, just could possibly have the
      ht_supported member set to false.
      """
      
      A sample good link in my 3x3 network improves by approximately 25% TCP
      throughput. This fixes Bug 2144
      (http://bugzilla.intellinuxwireless.org/show_bug.cgi?id=2144).
      Signed-off-by: NDaniel Halperin <dhalperi@cs.washington.edu>
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      ff27fabe
    • R
      iwlwifi: make broadcast station addition generic · 3459ab5a
      Reinette Chatre 提交于
      Add function pointer for broadcast station addition so that we can call it
      in from iwlcore at a later time. We only distinguish between iwlagn and
      iwl3945 broadcast station addition. For the iwl3945 station addition we add
      that function to iwlcore since that is where most station functionality
      resides, making it part of iwl3945 will require significant code
      reorganization that will dilute station management functionality. This
      seems to be an efficient solution.
      
      It may seem as though we are removing error checking when adding the 3945
      broadcast station but this error checking was never really necessary since
      the function returns the station id and the broadcast station id is always
      set.
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      3459ab5a
    • R
      iwlwifi: cleanup station adding code · 1fa97aae
      Reinette Chatre 提交于
      The work done when a station is added is very similar whether the station
      is added synchronously or asynchronously. Centralize this work. At the same
      time increase the status flags being checked for when the command returns
      with accompanying debug messages. Also increase checking when setting the
      "ucode active" state with accompanying debugging.
      
      This work is done in preparation for station notification support.
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      1fa97aae
    • J
      iwlwifi: fix pointer signedness warning · 0b5d9b26
      Johannes Berg 提交于
      There are a few station addresses that are
      char *, instead of the normal u8 *; gcc
      gives pointer signedness warnings for some
      of those, so use u8 * consistently.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      0b5d9b26
  9. 20 1月, 2010 1 次提交
  10. 22 12月, 2009 1 次提交
  11. 19 11月, 2009 1 次提交
    • J
      iwlwifi: handle unicast PS buffering · 6ab10ff8
      Johannes Berg 提交于
      Using the new mac80211 functionality, this makes
      iwlwifi handle unicast PS buffering correctly.
      The device works like this:
      
       * when a station goes to sleep, the microcode notices
         this and marks the station as asleep
       * when the station is marked asleep, the microcode
         refuses to transmit to the station and rejects all
         frames queued to it with the failure status code
         TX_STATUS_FAIL_DEST_PS (a previous patch handled
         this correctly)
       * when we need to send frames to the station _although_
         it is asleep, we need to tell the ucode how many,
         and this is asynchronous with sending so we cannot
         just send the frames, we need to wait for all other
         frames to be flushed, and then update the counter
         before sending out the poll response frames. This
         is handled partially in the driver and partially in
         mac80211.
      
      In order to do all this correctly, we need to
       * keep track of how many frames are pending for each
         associated client station (avoid doing it for other
         stations to avoid the atomic ops)
       * tell mac80211 that we driver-block the PS status
         while there are still frames pending on the queues,
         and once they are all rejected (due to the dest sta
         being in PS) unblock mac80211
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      6ab10ff8
  12. 05 11月, 2009 1 次提交
  13. 03 11月, 2009 2 次提交
  14. 28 10月, 2009 1 次提交
    • Z
      iwlwifi: use paged Rx · 2f301227
      Zhu Yi 提交于
      This switches the iwlwifi driver to use paged skb from linear skb for Rx
      buffer. So that it relieves some Rx buffer allocation pressure for the
      memory subsystem. Currently iwlwifi (4K for 3945) requests 8K bytes for
      Rx buffer. Due to the trailing skb_shared_info in the skb->data,
      alloc_skb() will do the next order allocation, which is 16K bytes. This
      is suboptimal and more likely to fail when the system is under memory
      usage pressure. Switching to paged Rx skb lets us allocate the RXB
      directly by alloc_pages(), so that only order 1 allocation is required.
      
      It also adjusts the area spin_lock (with IRQ disabled) protected in the
      tasklet because tasklet guarentees to run only on one CPU and the new
      unprotected code can be preempted by the IRQ handler. This saves us from
      spawning another workqueue to make skb_linearize/__pskb_pull_tail happy
      (which cannot be called in hard irq context).
      
      Finally, mac80211 doesn't support paged Rx yet. So we linearize the skb
      for all the management frames and software decryption or defragmentation
      required data frames before handed to mac80211. For all the other frames,
      we __pskb_pull_tail 64 bytes in the linear area of the skb for mac80211
      to handle them properly.
      Signed-off-by: NZhu Yi <yi.zhu@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      2f301227
  15. 23 9月, 2009 1 次提交
    • R
      iwlwifi: do not send sync command while holding spinlock · bba98871
      Reinette Chatre 提交于
      commit 10c994ca70e8e94bbc85a5bf13de5911ee8de4d2 "iwlwifi: fix remove key
      error" fixed an error reported by mac80211 during interface down. The fix
      involved changing an async command to synchronous. Unfortunately this was
      inside a spinlock section in which we cannot sleep.
      
      Modify the sending of the command back to async. This causes the mac80211
      error "mac80211-phy0: failed to remove key (0, ff:ff:ff:ff:ff:ff) from
      hardware (-16)." to return. This error is not serious since this occurs
      during interface down and the keys will be cleared anyway when ucode is
      unloaded. Having this error message is thus less serious than a potential
      deadlock introduced when sleeping while holding a spinlock. We will have to
      find another fix for that error.
      
      This is a revert of the abovementioned commit.
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      bba98871
  16. 29 8月, 2009 1 次提交
  17. 14 8月, 2009 2 次提交
  18. 05 8月, 2009 1 次提交
  19. 04 8月, 2009 1 次提交
  20. 28 7月, 2009 2 次提交
  21. 25 7月, 2009 3 次提交
    • R
      iwlwifi: make debug level more user friendly · a562a9dd
      Reinette Chatre 提交于
      * Deprecate the "debug50" module parameter used to obtain
        5000 series and up debugging. Replace it with "debug" module
        parameter to match with original driver and be consistent
        between them. The "debug50" module parameter can still be used,
        except that the module parameter is not writable in keeping
        with its previous state. We currently just mark it as "deprecated"
        and do not have it in the feature-removal-schedule. Some more
        cleanup of module parameters needs to be done and can then be
        entered together.
      
      * Only make "debug" module parameters visible if the driver
        is compiled with CONFIG_IWLWIFI_DEBUG. This will eliminate
        a lot of confusion where users think they have set debug flags
        but yet cannot see any debug output.
      
      * Make module parameters writable. This eliminates the need for the
        "debug_level" sysfs file, which can now also be deprecated and
        added to feature-removal-schedule. This file is in significant
        use though with many iwlwifi documents and text referring users
        to it. We can thus not take its removal lightly and keep it around.
      
      With iwlcore shared between iwlagn and iwl3945 we really do not need
      debug module parameters for each but can instead have one debug
      module parameter for the iwlcore module. The same issue is here as
      with the sysfs file - a lot of iwlwifi documentation and text (like
      bug reports) rely on iwlagn and iwl3945 having this module parameter,
      so changing this to a module parameter of iwlcore will have significant
      impact and we do not do this for that reason.
      
      One consequence of this patch is that if a user is running a system
      with both 3945 and later hardware then the setting of the one module
      parameter will affect the value of the other. The likelihood of this
      seems low - and even if this setup is present it does not seem like an
      issue for both modules to run with the same debug level.
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      a562a9dd
    • R
      iwlagn: do not send key clear commands when rfkill enabled · 2d1bb9e5
      Reinette Chatre 提交于
      Do all key clearing except sending sommands to device when rfkill
      enabled. When rfkill enabled the interface is brought down and will
      be brought back up correctly after rfkill is enabled again.
      
      Same change is not needed for iwl3945 as it ignores return code when
      sending key clearing command to device.
      
      This fixes http://bugzilla.kernel.org/show_bug.cgi?id=13742Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      Tested-by: NFrans Pop <elendil@planet.nl>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      2d1bb9e5
    • L
      iwlwifi: use ieee80211_is_data(fc) · 943ab70f
      Luis R. Rodriguez 提交于
      iwl-agn-rs.c already uses this.
      
      Cc: Zhu Yi <yi.zhu@intel.com>
      Cc: Reinette Chatre <reinette.chatre@intel.com>
      Cc: ipw3945-devel@lists.sourceforge.net
      Signed-off-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      943ab70f