1. 11 5月, 2010 4 次提交
    • J
      iwlwifi: rework broadcast station management · 2c810ccd
      Johannes Berg 提交于
      Currently, the broadcast station is managed along
      with the interface type, rather than always being
      present. That leads to a bug with injection -- it
      is currently not possible to inject frames when
      the only virtual interface is a monitor, because
      in that the required broadcast station is missing.
      
      Additionally, allocating and deallocating the
      broadcast station's LQ all the time is wasteful,
      and the code to support this is fairly complex.
      
      So this changes completely the way we manage the
      broadcast station. Rather than manage it along
      with any interface, we now allocate it when we
      bring the device up, and remove it again when we
      bring the device down. When we bring the device
      up, we don't immediately program the broadcast
      station into it, instead we just mark it active
      and rely on the next restore cycle to upload it
      to the device. This works because an unassociated
      RXON is always required at least once to set up
      device parameters, which implies a reprogramming
      of stations into the device.
      
      As we now manage all stations properly, there no
      longer is a need for forcing a clearing of them
      via iwl_clear_ucode_stations(), which can become
      a lot simpler.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      2c810ccd
    • J
      iwlagn: move iwl_get_ra_sta_id to 4965 · 93286db5
      Johannes Berg 提交于
      This function is only needed by 4965, so
      it need not be in core code and can be
      made static.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      93286db5
    • J
      iwlwifi: manage IBSS station properly · 1fa61b2e
      Johannes Berg 提交于
      Currently iwlwifi will eventually exhaust the station
      table when adding the BSSID station for IBSS mode,
      unless the interface is set down.
      
      The new mac80211 ibss joined/left notification allows
      us to fix that easily by moving the code to add the
      IBSS station to the notification, and also adding
      code to remove it again when we leave the IBSS.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      1fa61b2e
    • R
      iwlwifi: make bcast LQ command available for later restore actions · d2e210ae
      Reinette Chatre 提交于
      When adding the broadcast station the link quality command is
      generated on demand, sent to device, and disappears. It is thus not
      available for later cases when we need to restore stations and need
      to send the link quality command afterwards. Now, when first adding the
      broadcast station, also generate its link quality command to always be
      available for later restoring.
      
      Also fix an issue when adding local stations where the "in progress" state
      is never cleared.
      Reported-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
      d2e210ae
  2. 10 4月, 2010 1 次提交
  3. 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
  4. 26 1月, 2010 1 次提交
    • 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
  5. 20 1月, 2010 1 次提交
  6. 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
  7. 03 11月, 2009 1 次提交
  8. 04 6月, 2009 1 次提交
  9. 06 3月, 2009 1 次提交
  10. 30 1月, 2009 2 次提交
  11. 13 12月, 2008 1 次提交
  12. 26 11月, 2008 2 次提交
  13. 01 7月, 2008 1 次提交
  14. 15 6月, 2008 1 次提交
  15. 04 6月, 2008 2 次提交
  16. 22 5月, 2008 2 次提交
  17. 08 5月, 2008 2 次提交
  18. 17 4月, 2008 4 次提交
  19. 09 4月, 2008 1 次提交
  20. 02 4月, 2008 1 次提交