1. 13 1月, 2010 1 次提交
  2. 19 11月, 2009 1 次提交
  3. 12 11月, 2009 4 次提交
    • L
      ath9k: handle low buffer space for virtual wiphys · f52de03b
      Luis R. Rodriguez 提交于
      ath9k virtual wiphys all share the same internal buffer space
      for TX but they do not share the mac80211 skb queues. When
      ath9k detects it is running low on buffer space to TX it tells
      mac80211 to stop sending it skbs its way but it always does
      this only for the primary wiphy. This means mac80211 won't know
      its best to avoid sending ath9k more skbs on a separate virtual
      wiphy. The same issue is present for reliving the skb queue.
      
      Since ath9k does not keep track of which virtual wiphy is hammering
      on TX silence all wiphy's TX when we're low on buffer space. When
      we're free on buffer space only bother informing the virtual wiphy
      which is active that we have free buffers.
      
      Cc: Jouni.Malinen <Jouni.Malinen@atheros.com>
      Signed-off-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      f52de03b
    • L
      ath9k: pass the ieee80211_hw on radio enable/disable · 68a89116
      Luis R. Rodriguez 提交于
      We use the ieee80211_hw for radio enable/disable but the wrong
      structure hw was being used in consideration for virtual wiphys
      as each virtual wiphy has its own ieee80211_hw struct.
      
      Just pass the hw struct to ensure we use the right one. This should
      fix the hw used and passed for radio enable/disable. This includes
      the stoping / starting of the software TX queues so mac80211 doesn't
      send us data for a specific virtual wiphy. ath9k already takes care
      of pausing virtual wiphys and stopping the respective queues on its
      own, but this should handle the idle mac80211 conf calls as well.
      
      Cc: Jouni.Malinen <Jouni.Malinen@atheros.com>
      Signed-off-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      68a89116
    • L
      ath9k: update hw configuration for virtual wiphys · 1bdf6c3b
      Luis R. Rodriguez 提交于
      ath9k supports its own virtual wiphys. The hardware code
      relies on the ieee80211_hw for the present interface but
      with recent changes introduced the common->hw was never
      updated and is required for virtual wiphys.
      
      Cc: Jouni.Malinen <Jouni.Malinen@atheros.com>
      Signed-off-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      1bdf6c3b
    • L
      ath9k: fix listening to idle requests · 194b7c13
      Luis R. Rodriguez 提交于
      The way idle configuration detection was implemented as
      busted due to the fact that it assumed the ath9k virtual wiphy,
      the aphy, would be marked as inactive if it was not used but
      it turns out an aphy is always active if its the only wiphy
      present. We need to distinguish between aphy activity and
      idleness so we now add an idle bool for the aphy and mark
      it as such based on the passed IEEE80211_CONF_CHANGE_IDLE
      from mac80211.
      
      Previous to all_wiphys_idle would never be true when using
      only one device so we never really were using
      IEEE80211_CONF_CHANGE_IDLE -- we never turned the radio
      off or on upon IEEE80211_CONF_CHANGE_IDLE changes as radio
      changes depended on all_wiphys_idle being true either to
      turn the radio on or off. Since it was always false for
      one device this code was doing nothing.
      
      Cc: Jouni.Malinen <Jouni.Malinen@atheros.com>
      Reported-by: NVasanthakumar Thiagarajan <vasanth@atheros.com>
      Signed-off-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      194b7c13
  4. 08 10月, 2009 3 次提交
  5. 05 8月, 2009 1 次提交
    • L
      mac80211: redefine usage of the mac80211 workqueue · 42935eca
      Luis R. Rodriguez 提交于
      The mac80211 workqueue exists to enable mac80211 and drivers
      to queue their own work on a single threaded workqueue. mac80211
      takes care to flush the workqueue during suspend but we never
      really had requirements on drivers for how they should use
      the workqueue in consideration for suspend.
      
      We extend mac80211 to document how the mac80211 workqueue should
      be used, how it should not be used and finally move raw access to
      the workqueue to mac80211 only. Drivers and mac80211 use helpers
      to queue work onto the mac80211 workqueue:
      
        * ieee80211_queue_work()
        * ieee80211_queue_delayed_work()
      
      These helpers will now warn if mac80211 already completed its
      suspend cycle and someone is trying to queue work. mac80211
      flushes the mac80211 workqueue prior to suspend a few times,
      but we haven't taken the care to ensure drivers won't add more
      work after suspend. To help with this we add a warning when
      someone tries to add work and mac80211 already completed the
      suspend cycle.
      
      Drivers should ensure they cancel any work or delayed work
      in the mac80211 stop() callback.
      Signed-off-by: NLuis R. Rodriguez <lrodriguez@atheros.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      42935eca
  6. 25 7月, 2009 1 次提交
  7. 23 4月, 2009 1 次提交
  8. 06 3月, 2009 10 次提交