1. 30 1月, 2009 19 次提交
  2. 23 1月, 2009 1 次提交
  3. 17 1月, 2009 1 次提交
    • R
      rt2x00: fix a wrong parameter for __test_and_clear_bit() in rt2x00rfkill_free(). · e223b6dc
      Rami Rosen 提交于
      When running modprobe rt73usb, and then rmmod rt73usb, and then
      iwconfig, the wlan0 device does not disappear. When repeating this
      process again, we get a kernel Oops errors and "BUG: unable to handle
      kernel paging request..." message in the kernel log.
      
      The reason for this is that there is an error in rt2x00rfkill_free(),
      which is called in the process of removing the device
      (rt2x00lib_remove_dev() in rt2x00dev.c).
      rt2x00rfkill_free() clears the RFKILL_STATE_ALLOCATED bit , which is
      bit number 1 () in rt2x00dev->flags instead of in
      rt2x00dev->rfkill_state. As a result, when checking the
      DEVICE_STATE_REGISTERED_HW bit (bit number 1 in rt2x00dev->flags) in
      rt2x00lib_remove_hw() it is **unset**, and we wrongly **don't** call
      ieee80211_unregister_hw().
      
      This patch corrects this: the parameter for __test_and_clear_bit() in
      rt2x00rfkill_free() should be &rt2x00dev->rfkill_state and not
      &rt2x00dev->flags.
      Signed-off-by: NRami Rosen <ramirose@gmail.com>
      Acked-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      e223b6dc
  4. 13 1月, 2009 6 次提交
  5. 06 1月, 2009 1 次提交
  6. 05 12月, 2008 9 次提交
  7. 26 11月, 2008 3 次提交
    • I
      rt2x00: Don't switch off LED on initialization · d507748a
      Ivo van Doorn 提交于
      When we switch off the LEDS during initialization
      we kill rt73usb from proper functioning. The immediate
      result after the first LED command are MCU failures
      and a complete breakdown of TX/RX.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      d507748a
    • 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: Fix TX failure path · 0e3de998
      Ivo van Doorn 提交于
      The callback function write_tx_data() can only fail
      when our ENTRY_OWNER_DEVICE_DATA flag on a queue entry
      failed to determine the entry was not available and
      it is in fact still owned by the hardware.
      This means that if that function fails the queue
      must be stopped in mac80211.
      
      When rt2x00queue_get_queue() returns NULL in the TX
      path, it means mac80211 has passed us an invalid queue,
      although this should be impossible, it shouldn't hurt
      if we send mac80211 a signal to stop the queue either.
      
      Both issues can simply be resolved by removing their
      manual failure handler and making them use the failure path
      provided in rt2x00mac_tx().
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      0e3de998