1. 24 4月, 2012 1 次提交
  2. 28 2月, 2012 1 次提交
  3. 03 8月, 2011 1 次提交
  4. 08 7月, 2011 1 次提交
  5. 20 4月, 2011 3 次提交
    • G
      rt2x00: Merge rt2x00ht.c contents in other files. · 46a01ec0
      Gertjan van Wingerde 提交于
      The two functions that are in rt2x00ht.c can be much better placed
      closer to the places where the call-sites of these functions are (one
      in rt2x00config.c and one in rt2x00queue.c) allowing us to make these
      functions static.
      Also, conditional compilations doesn't seem to be necessary anymore as
      802.11n support is quite common nowadays.
      
      This makes the code a bit easier readable and searchable.
      Signed-off-by: NGertjan van Wingerde <gwingerde@gmail.com>
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      46a01ec0
    • J
      rt2x00: fix queue timeout checks · 75256f03
      Johannes Stezenbach 提交于
      Add a timestamp to each queue entry which is updated whenever
      the status of the entry changes, and remove the per-queue
      timestamps.  The previous check was incorrect and caused both
      false positives and false negatives.
      
      With the corrected check it comes apparent that the TX status
      usually times out on rt2800usb unless there is sufficient traffic
      (i.e. the next TX will complete the previous TX status).
      Signed-off-by: NJohannes Stezenbach <js@sig21.net>
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      75256f03
    • I
      rt2x00: Split rt2x00dev->flags · 7dab73b3
      Ivo van Doorn 提交于
      The number of flags defined for the rt2x00dev->flags field,
      has been growing over the years. Currently we are approaching
      the maximum number of bits which are available in the field.
      
      A secondary problem, is that one part of the field are initialized only
      during boot, because the driver requirements are initialized or device
      requirements are loaded from the EEPROM. In both cases, the flags are
      fixed and will not change during device operation. The other flags are
      the device state, and will change frequently. So far this resulted in the fact
      that for some flags, the atomic bit accessors are used, while for the others
      the non-atomic variants are used.
      
      By splitting the flags up into a "flags" and "cap_flags" we can put all flags
      which are fixed inside "cap_flags". This field can then be read non-atomically.
      In the "flags" field we keep the device state, which is going to be read atomically.
      
      This adds more room for more flags in the future, and sanitizes the field access methods.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Acked-by: NHelmut Schaa <helmut.schaa@googlemail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      7dab73b3
  6. 05 4月, 2011 2 次提交
  7. 01 2月, 2011 2 次提交
    • H
      rt2x00: Introduce beacon_update_locked that requires caller locking · 8414ff07
      Helmut Schaa 提交于
      Introduce a beacon_update_locked function that does not acquire the
      according beacon mutex to allow beacon updates from atomic context. The
      caller has to take care of synchronization.
      
      No functional changes. Just preparation for beacon updates from tasklet
      context.
      Signed-off-by: NHelmut Schaa <helmut.schaa@googlemail.com>
      Acked-by: NGertjan van Wingerde <gwingerde@gmail.com>
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      8414ff07
    • H
      rt2x00: Refactor beacon code to make use of start- and stop_queue · 69cf36a4
      Helmut Schaa 提交于
      This patch allows to dynamically remove beaconing interfaces without
      shutting beaconing down on all interfaces.
      
      The only place to start and stop beaconing are now the start- and
      stop_queue callbacks. Hence, we can remove some register writes during
      interface bring up (config_intf) and only write the correct sync mode
      to the register there.
      
      When multiple beaconing interfaces are present we should enable
      beaconing as soon as mac80211 enables beaconing on at least one of
      them. The beacon queue gets stopped when the last beaconing
      interface was stopped by mac80211. Therefore, introduce another
      interface counter to keep track ot the number of enabled beaconing
      interfaces and start or stop the beacon queue accordingly.
      
      To allow single interfaces to stop beaconing, add a new driver
      callback clear_beacon to clear a single interface's beacon without
      affecting the other interfaces. Don't overload the clear_entry callback
      for clearing beacons as that would introduce additional overhead
      (check for each TX queue) into the clear_entry callback which is used
      on the drivers TX/RX hotpaths.
      
      Furthermore, the write beacon callback doesn't need to enable beaconing
      anymore but since beaconing should be disabled while a new beacon is
      written or cleared we still disable beacon generation and enable it
      afterwards again in the driver specific callbacks. However, beacon
      related interrupts should not be disabled/enabled here, that's solely
      done from the start- and stop queue callbacks. It would be nice to stop
      the beacon queue just before the beacon update and enable it afterwards
      in rt2x00queue itself instead of the current implementation that relies
      on the driver doing the right thing. However, since start- and
      stop_queue are mutex protected we cannot use them for atomic beacon
      updates.
      Signed-off-by: NHelmut Schaa <helmut.schaa@googlemail.com>
      Acked-by: NGertjan van Wingerde <gwingerde@gmail.com>
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      69cf36a4
  8. 14 12月, 2010 1 次提交
  9. 16 11月, 2010 2 次提交
  10. 12 10月, 2010 1 次提交
  11. 15 9月, 2010 1 次提交
  12. 13 7月, 2010 1 次提交
    • I
      rt2x00: Implement watchdog monitoring · c965c74b
      Ivo van Doorn 提交于
      Implement watchdog monitoring for USB devices (PCI support can
      be added later). This will determine if URBs being uploaded to
      the hardware are actually returning. Both rt2500usb and rt2800usb
      have shown that URBs being uploaded can remain hanging without
      being released by the hardware.
      By using this watchdog, a queue can be reset when this occurs.
      For rt2800usb it has been tested that the connection is preserved
      even though this interruption.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      c965c74b
  13. 03 6月, 2010 3 次提交
  14. 20 11月, 2009 1 次提交
    • J
      mac80211: request TX status where needed · 7351c6bd
      Johannes Berg 提交于
      Right now all frames mac80211 hands to the driver
      have the IEEE80211_TX_CTL_REQ_TX_STATUS flag set to
      request TX status. This isn't really necessary, only
      the injected frames need TX status (the latter for
      hostapd) so move setting this flag.
      
      The rate control algorithms also need TX status, but
      they don't require it.
      
      Also, rt2x00 uses that bit for its own purposes and
      seems to require it being set for all frames, but
      that can be fixed in rt2x00.
      
      This doesn't really change anything for any drivers
      but in the future drivers using hw-rate control may
      opt to not report TX status for frames that don't
      have the IEEE80211_TX_CTL_REQ_TX_STATUS flag set.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Acked-by: Ivo van Doorn <IvDoorn@gmail.com> [rt2x00 bits]
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      7351c6bd
  15. 12 11月, 2009 2 次提交
  16. 23 9月, 2009 1 次提交
  17. 01 9月, 2009 1 次提交
    • I
      rt2x00: Reorganize padding & L2 padding · daee6c09
      Ivo van Doorn 提交于
      The old function rt2x00queue_payload_align() handled
      both adding and removing L2 padding and some basic
      frame alignment. The entire function was being abused
      because it had multiple functions and the header length
      argument was somtimes used to align the header instead
      of the payload.
      
      Additionally there was a bug when inserting L2 padding
      that only the payload was aligned but not the header. This
      happens when the header wasn't aligned properly by mac80211,
      but rt2x00lib only moves the payload.
      
      A secondary problem was that when removing L2 padding during
      TXdone or RX the skb wasn't resized to the proper size.
      
      Split the function into seperate functions each handling
      its task as it should.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      daee6c09
  18. 28 7月, 2009 1 次提交
  19. 11 7月, 2009 1 次提交
  20. 13 6月, 2009 1 次提交
  21. 07 5月, 2009 4 次提交
  22. 10 2月, 2009 1 次提交
  23. 30 1月, 2009 5 次提交
  24. 13 1月, 2009 1 次提交
  25. 05 12月, 2008 1 次提交