1. 20 4月, 2011 4 次提交
    • I
      rt2x00: Decrease association time for USB devices · 152a5992
      Ivo van Doorn 提交于
      When powersaving is enabled, assocaition times are very high
      (for WPA2 networks, the time can easily be around the 3 seconds).
      
      This is caused, because the flushing of the queues takes
      too much time. Without the flushing callback mac80211 assumes
      a timeout of 100ms while scanning. Limit all flush waiting
      loops to the same maximum.
      
      We can apply this maximum by passing the drop status to the
      driver, which makes sure the driver performs extra actions
      during the waiting for the queue to become empty.
      
      After these changes, association times fall within the
      healthy range of ~0.6 seconds with powersaving enabled.
      The difference between association time between powersaving
      enabled and disabled is now only ~0.1 second (which can also
      be due to the measuring method).
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Acked-by: NGertjan van Wingerde <gwingerde@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      152a5992
    • 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
    • H
      rt2x00: Make rt2x00_queue_entry_for_each more flexible · 10e11568
      Helmut Schaa 提交于
      Allow passing a void pointer to rt2x00_queue_entry_for_each which in
      turn in provided to the callback function.
      
      Furthermore, allow the callback function to stop processing by returning
      true. And also notify the caller of rt2x00_queue_entry_for_each if the
      loop was canceled by the callback.
      
      No functional changes, just preparation for an upcoming patch.
      Signed-off-by: NHelmut Schaa <helmut.schaa@googlemail.com>
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Acked-by: NGertjan van Wingerde <gwingerde@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      10e11568
    • 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
  2. 05 4月, 2011 2 次提交
  3. 05 3月, 2011 7 次提交
  4. 22 2月, 2011 1 次提交
  5. 01 2月, 2011 3 次提交
  6. 14 12月, 2010 6 次提交
  7. 18 11月, 2010 1 次提交
  8. 16 11月, 2010 4 次提交
  9. 12 10月, 2010 3 次提交
  10. 01 9月, 2010 2 次提交
  11. 26 8月, 2010 2 次提交
  12. 18 8月, 2010 1 次提交
  13. 17 8月, 2010 1 次提交
    • I
      rt2x00: Move USB tx/rx done handling to workqueue · 7e613e16
      Ivo van Doorn 提交于
      Move all TX and RX completion handling into a work structure,
      which is handeled on the mac80211 workqueue. This simplifies
      the code in rt2x00lib since it no longer needs to check if the
      device is USB or PCI to decide which mac80211 function should be used.
      
      In the watchdog some changes are needed since it can no longer rely
      on the TX completion function to be run while looping through the
      entries. (Both functions now work on the same workqueue, so this
      would deadlock). So the watchdog now waits for the URB to return,
      and handle the TX status report directly.
      
      As a side-effect, the debugfs entry for the RX queue now correctly
      displays the positions of the INDEX and INDEX_DONE counters. This
      also implies that it is not possible to perform checks like queue_empty()
      and queue_full() on the RX queue.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      7e613e16
  14. 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
  15. 01 7月, 2010 2 次提交