1. 23 8月, 2008 2 次提交
  2. 02 8月, 2008 1 次提交
  3. 30 7月, 2008 2 次提交
    • I
      rt2x00: Force full register config after start() · 74c0ee9b
      Ivo van Doorn 提交于
      rt2x00 will only perform configuration changes from
      mac80211 when the configuration option has changed.
      This means it keeps track of the current active configuration
      and will check these values when the config() callback function
      is used.
      
      However this causes breakage when the interface has been
      brought down and up again, since all stored active values
      aren't reset while the registers might have.
      This is for example the case with rt61pci antenna registers which
      will jump to invalid values when the interface has been started.
      
      To make sure a full configuration takes place after the start()
      callback function, a new flag is added which will be checked
      during config() and skips the "what's changed" phase.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      74c0ee9b
    • I
      rt2x00: Fix EIFS timing value · f2fdbc48
      Ivo van Doorn 提交于
      Olivier reported a difference between the EIFS
      values used in the legacy driver and the one in
      the rt2x00 drivers.
      
      In rt2x00 the value was
      	( SIFS + (8 * (IEEE80211_HEADER + ACK_SIZE)) )
      which comes down to 314us while the legacy driver uses the value 364us
      
      This was caused because EIFS is: SIFS + DIFS + AckTime
      This patch will fix this by adding the DIFS by the above value,
      and creating a SHORT_EIFS define which uses the SHORT_DIFS.
      Reported-by: NOlivier Cornu <o.cornu@gmail.com>
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      f2fdbc48
  4. 15 7月, 2008 4 次提交
  5. 10 7月, 2008 1 次提交
  6. 09 7月, 2008 2 次提交
  7. 28 6月, 2008 1 次提交
    • I
      rt2x00: Fix lock dependency errror · 980dfcb9
      Ivo van Doorn 提交于
      This fixes a circular locking dependency in the workqueue handling.
      The interface work task uses the mac80211 function
      ieee80211_iterate_active_interfaces() which grabs the RTNL lock.
      
      However when the interface is brough down, this happens under the RTNL
      lock as well, this causes problems because mac80211 will flush the workqueue
      during the ifdown event. This causes mac80211 to wait until the driver has
      completed all work which can't finish because it is waiting on the RTNL lock.
      
      This is fixed by moving rt2x00 workqueue tasks on a different workqueue,
      this workqueue can be flushed when the ieee80211_hw structure is removed
      by the driver (when the driver is unloaded) which does not happen under the
      RTNL lock.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      980dfcb9
  8. 27 6月, 2008 6 次提交
  9. 15 6月, 2008 4 次提交
  10. 29 5月, 2008 1 次提交
  11. 22 5月, 2008 5 次提交
  12. 08 5月, 2008 5 次提交
  13. 02 4月, 2008 2 次提交
  14. 26 3月, 2008 1 次提交
    • I
      rt2x00: Fix in_atomic() usage · 3a643d24
      Ivo van Doorn 提交于
      rt73usb and rt2500usb used in_atomic to determine
      if a configuration step should be rescheduled or not.
      Since in_atomic() is not a valid method to determine
      if sleeping is allowed we should fix the way this is handled
      by adding a new flag to rt2x00.
      
      In addition mark LED class support for the drivers broken
      since that also uses the broken in_atomic() method but
      so far no solution exists to have LED triggers work only
      in scheduled context.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      3a643d24
  15. 14 3月, 2008 3 次提交