1. 30 1月, 2009 2 次提交
  2. 13 1月, 2009 2 次提交
    • I
      rt2x00: Fix rt2500usb HW crypto: WEP 128 & AES · f1dd2b23
      Ivo van Doorn 提交于
      The TXD_W0_CIPHER field is a 1-bit field. It only acts as boolean value
      to indicate if the frame must be encrypted or not.
      
      The way rt2x00_set_field32() worked it would grab the least signifcant bit
      from txdesc->cipher and use that as value. Because of that WEP 64 and TKIP
      worked since they had odd-numbered values, while WEP 128 and AES were
      even numbers and didn't work.
      
      Correctly booleanize the txdecs->cipher value to allow the hardware to
      encrypt the outgoing data. After this we can enable HW crypto by default again.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      f1dd2b23
    • I
      Fix rt2500usb HW crypto: TKIP · f3d340c1
      Ivo van Doorn 提交于
      rt2500usb doesn't strip the IV/ICV data from received frames,
      so we don't need to set the RX_FLAG_IV_STRIPPED flag.
      We do need to set the RX_FLAG_MMIC_STRIPPED flag for all
      encryption types since the MMIC has been removed from the frame.
      
      After this patch TKIP Hardware crypto works for rt2500usb.
      WEP and AES are still failing.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      f3d340c1
  3. 05 12月, 2008 2 次提交
  4. 26 11月, 2008 2 次提交
    • I
      rt2x00: Detect USB BULK in/out endpoints · f1ca2167
      Ivo van Doorn 提交于
      Instead of hardcoding the used in/out endpoints
      we should detect them by walking through all
      available endpoints.
      
      rt2800usb will gain the most out of this, because
      the legacy drivers indicate that there are multiple
      endpoints available.
      However this code might benefit at least rt73usb as
      well for the MIMO queues, and if we are really lucky
      rt2500usb will benefit because for the TX and PRIO
      queues.
      
      Even if rt2500usb and rt73usb do not get better performance
      after this patch, the endpoint detection still belongs to
      rt2x00usb, and it shouldn't hurt to always try to detect
      the available endpoints.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      f1ca2167
    • I
      rt2x00: Cleanup indirect register access · c9c3b1a5
      Ivo van Doorn 提交于
      All code which accessed indirect registers was similar
      in respect to the for-loop, the given timeout, etc.
      Move it into a seperate function, which for PCI drivers
      can be moved into rt2x00pci.
      
      This allows us to cleanup the cleanup the code further
      by removing the goto statementsand making the codepath
      look a bit nicer.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      c9c3b1a5
  5. 22 11月, 2008 3 次提交
    • I
      rt2x00: Fix race condition when using inderect registers · 8ff48a8b
      Ivo van Doorn 提交于
      Indirect registers require multiple calls to the CSR
      register in order to access the indirect registers.
      This must be protected under a lock to prevent race
      conditions which could cause invalid data to
      be returned when reading from the indirect register or silent
      failures when writing data to the indirect register.
      
      USB drivers where already protected under a mutex,
      so rename the mutex and make PCI drivers use the mutex
      as well.
      This now means that BBP and RF registers are no longer
      accessible in interrupt context. That is not a bad
      situation since the slow behavior of accessing
      those registers means we don't _want_ to access them
      in interrupt context either.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      8ff48a8b
    • I
      rt2x00: Optimize get_duration / get_duration_res · bad13639
      Ivo van Doorn 提交于
      We can optimize get_duration and get_duration_res
      by making them a macro. They are really simple
      calculation handlers so this doesn't matter much.
      
      Often (especially in rt2400pci and rt2500pci,
      the arguments are hardcoded, and the result value
      is passed into other hardcoded values.
      
      By making the functions a macro GCC can
      optimize the entire thing much better.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      bad13639
    • I
      rt2x00: Cleanup TX/RX entry handling · 798b7adb
      Ivo van Doorn 提交于
      Merge the callback functions init_txentry() and
      init_rxentry(). This makes life in rt2x00lib a
      lot simpler and we can cleanup several functions.
      
      rt2x00pci contained "fake" FIELD definitions for
      descriptor words. This is not flexible since it
      assumes the driver will always have the same field
      to indicate if a driver is available or not.
      This should be dependent on the driver, and we
      should add a callback function for this.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      798b7adb
  6. 11 11月, 2008 2 次提交
    • I
      rt2x00: Remove debugfs CSR access wrappers · 743b97ca
      Ivo van Doorn 提交于
      Move calculation of CSR register offset into rt2x00debug.c
      and remove the wrapper functions from each individual driver.
      (Except rt2500usb, which still needs to wrap for the
      different value type argument).
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      743b97ca
    • I
      rt2x00: Optimize configuration handling · e4ea1c40
      Ivo van Doorn 提交于
      Implement latest changed from mac80211 configuration
      handling to optmize configuration handling in rt2x00.
      
       * Remove set_retry_limit callback function, handled
         through config()
       * Move config_antenna to its own callback function,
         it isn't handled by mac80211 anymore
       * Use IEEE80211_CONF_CHANGED_* flags and remove manual
         checks
       * Removed deprecated short slot setting through config()
         and put it in config_erp() through which mac80211 now
         configures it
       * Remove config_phymode() and move contents to config_erp()
         since it only managed the basic rates which is now
         determined by mac80211 through config_erp().
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      e4ea1c40
  7. 28 10月, 2008 1 次提交
  8. 16 9月, 2008 1 次提交
  9. 12 9月, 2008 2 次提交
  10. 30 8月, 2008 3 次提交
  11. 23 8月, 2008 1 次提交
  12. 05 8月, 2008 1 次提交
    • I
      rt2x00: Disable link tuning in rt2500usb · d06193f3
      Ivo van Doorn 提交于
      In the legacy rt2570 driver the link tuner was never
      really called. And now the reason has finally become
      apparent: It breaks TX capabilities
      
      As soon as the device has been associated all following
      TX frames will be queued in the hardware and never transmitted
      to the air. Disabling sections of the link tuner did not
      have the expected result, but completely disabling the
      link tuner did have the right result (Both of my rt2570 devices
      came back to life).
      
      This should fix Fedora bug: 411481
      
      v2: Fix typos
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      d06193f3
  13. 02 8月, 2008 1 次提交
  14. 30 7月, 2008 2 次提交
  15. 15 7月, 2008 2 次提交
  16. 10 7月, 2008 1 次提交
  17. 27 6月, 2008 2 次提交
  18. 25 6月, 2008 1 次提交
    • I
      rt2x00: Fix unbalanced mutex locking · 99ade259
      Ivo van Doorn 提交于
      The usb_cache_mutex was not correctly released
      under all circumstances. Both rt73usb as rt2500usb
      didn't release the mutex under certain conditions
      when the register access failed. Obviously such
      failure would lead to deadlocks.
      
      In addition under similar circumstances when the
      bbp register couldn't be read the value must be
      set to 0xff to indicate that the value is wrong.
      This too didn't happen under all circumstances.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      99ade259
  19. 15 6月, 2008 6 次提交
  20. 22 5月, 2008 3 次提交