Skip to content
Snippets Groups Projects
  1. May 02, 2011
  2. Apr 19, 2011
    • Gertjan van Wingerde's avatar
      rt2x00: Allow dynamic addition of PCI/USB IDs. · e01ae27f
      Gertjan van Wingerde authored
      
      Both USB and PCI drivers allow a system administrator to dynamically add
      USB/PCI IDs to the device table that a driver supports via the
      /sys/bus/{usb,pci,pci_express}/drivers/<driver-name>/new_id files.
      
      However, for the rt2x00 drivers using this method currently crashes the
      system with a NULL pointer failure.
      
      This is due to the set-up of rt2x00 where the probe functions require a
      rt2x00_ops structure in the driver_info field of the probed device. As
      this field is empty for the dynamically added devices this fails for
      these devices.
      
      Fix this by introducing driver-specific probe wrappers that do nothing
      but calling the bus-specific probe functions with the rt2x00_ops structure
      as an argument, rather than depending on the driver_info field.
      
      Signed-off-by: default avatarGertjan van Wingerde <gwingerde@gmail.com>
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      e01ae27f
    • Ivo van Doorn's avatar
      rt2x00: Decrease association time for USB devices · 152a5992
      Ivo van Doorn authored
      
      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: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Acked-by: default avatarGertjan van Wingerde <gwingerde@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      152a5992
    • Johannes Stezenbach's avatar
      rt2800usb: read TX_STA_FIFO asynchronously · 0e0d39e5
      Johannes Stezenbach authored
      
      Trying to fix the "TX status report missed" warnings
      by reading the TX_STA_FIFO entries as quickly as possible.
      The TX_STA_FIFO is too small in hardware, thus reading
      it only from the workqueue is too slow and entries get lost.
      
      Start an asynchronous read of the TX_STA_FIFO directly from
      the TX URB completion callback (atomic context, thus it cannot
      use the blocking rt2800_register_read()). If the async
      read returns a valid FIFO entry, it is pushed into a larger
      FIFO inside struct rt2x00_dev, until rt2800_txdone() picks
      it up.
      
      A .tx_dma_done callback is added to struct rt2x00lib_ops
      to trigger the async read from the URB completion callback.
      
      Signed-off-by: default avatarJohannes Stezenbach <js@sig21.net>
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      0e0d39e5
  3. Dec 13, 2010
  4. Aug 25, 2010
  5. Jul 12, 2010
    • Ivo van Doorn's avatar
      rt2x00: Implement watchdog monitoring · c965c74b
      Ivo van Doorn authored
      
      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: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      c965c74b
  6. Jun 30, 2010
  7. Jun 03, 2010
  8. Apr 16, 2010
  9. Nov 11, 2009
  10. Nov 06, 2009
  11. Nov 04, 2009
  12. Feb 09, 2009
  13. Jan 29, 2009
  14. Nov 25, 2008
  15. Nov 21, 2008
    • Ivo van Doorn's avatar
      rt2x00: Cleanup TX/RX entry handling · 798b7adb
      Ivo van Doorn authored
      
      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: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      798b7adb
  16. Aug 02, 2008
    • Ivo van Doorn's avatar
      rt2x00: Fix compile warning · 82f97b8d
      Ivo van Doorn authored
      
      rt2x00usb_vendor_request_large_buff is write-only, so it is
      safe to make the argument a const.
      
      Fixes compile warning:
      drivers/net/wireless/rt2x00/rt73usb.c: In function 'rt73usb_load_firmware':
      drivers/net/wireless/rt2x00/rt73usb.c:916: warning: passing argument 5 of 'rt2x00usb_vendor_request_large_buff' discards qualifiers from pointer target typ
      
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      82f97b8d
  17. Jul 29, 2008
  18. Jun 26, 2008
  19. Jun 14, 2008
  20. May 21, 2008
  21. May 07, 2008
  22. Feb 29, 2008
    • Ivo van Doorn's avatar
      rt2x00: Remove async vendor request calls from rt2x00usb · 47b10cd1
      Ivo van Doorn authored
      
      The async vendor requests are a ugly hack which is not working correctly.
      The proper fix for the scheduling while atomic issue is finding out why
      we can't use led classes for USB drivers and fix that.
      
      Just replace all async calls with the regular ones and print an
      error for the disallowed LED configuration attempts. That will
      help in determining which led class is causing the problem.
      
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      47b10cd1
    • Ivo van Doorn's avatar
      rt2x00: Enable LED class support for rt2500usb/rt73usb · 3b640f21
      Ivo van Doorn authored
      
      Add kerneldoc for vendor request functions in rt2x00usb.
      Add asynchroneous vendor request function in rt2x00usb.
      
      With the availability of the asynchroneuous vendor request
      we can now enable LED class support for rt2500usb and rt73usb.
      Since LED handling is not important, it doesn't really matter
      if a register call fails (This solution is better then no
      LED class support at all).
      
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      3b640f21
    • Ivo van Doorn's avatar
      rt2x00: Queue handling overhaul · 181d6902
      Ivo van Doorn authored
      
      This introduces a big queue handling overhaul, this also
      renames "ring" to "queues".
      
      Move queue handling into rt2x00queue.c and the matching header,
      use Kerneldoc to improve rt2x00 library documentation.
      
      Access to the queues is now protected under a spinlock, this
      to prevent race conditions which could corrupt the indexing
      system of the queue.
      
      Each queue entry allocates x bytes for driver/device specific data,
      this cleans up the queue structure significantly and improves
      code readability.
      
      rt2500usb no longer needs 2 entries in the beacon queue to correctly
      send out the guardian byte. This is now handled in the entry specific
      structure.
      
      rt61 and rt73 now use the correct descriptor size for beacon frames,
      since this data is written into the registers not the entire TXD
      descriptor was used but instead of a subset of it named TXINFO.
      
      Finally this also fixes numerous other bugs related to incorrect
      beacon handling or beacon related code.
      
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      181d6902
    • Ivo van Doorn's avatar
      rt2x00: Update copyright notice · 811aa9ca
      Ivo van Doorn authored
      
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      811aa9ca
  23. Jan 28, 2008
  24. Oct 10, 2007
Loading