1. 29 Feb, 2008 7 commits
    • Ivo van Doorn's avatar
      rt2x00: Add per-interface structure · 6bb40dd1
      Ivo van Doorn authored
      
      
      Rework the interface handling. Delete the interface structure
      and replace it with a per-interface structure. This changes the
      way rt2x00 handles the active interface drastically.
      
      Copy ieee80211_bss_conf to the this rt2x00_intf structure during
      the bss_info_changed() callback function. This will allow us to
      reference it later, and removes the requirement for the device flag
      SHORT_PREAMBLE flag which is interface specific.
      
      Drivers receive the option to give the maximum number of virtual
      interfaces the device can handle. Virtual interface support:
      rt2400pci: 1 sta or 1 ap, * monitor interfaces
      rt2500pci: 1 sta or 1 ap, * monitor interfaces
      rt2500usb: 1 sta or 1 ap, * monitor interfaces
      rt61pci: 1 sta or 4 ap, * monitor interfaces
      rt73usb: 1 sta or 4 ap, * monitor interfaces
      
      At the moment none of the drivers support AP and STA interfaces
      simultaneously, this is a hardware limitation so future support
      will be very unlikely.
      
      Each interface structure receives its dedicated beacon entry,
      with this we can easily work with beaconing while multiple master
      mode interfaces are currently active.
      
      The configuration handlers for the MAC, BSSID and type are
      often called together since they all belong to the interface
      configuration. Merge the 3 configuration calls and cleanup
      the API between rt2x00lib and the drivers. While we are cleaning
      up the interface configuration anyway, we might as well clean up
      the configuration handler as well.
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      6bb40dd1
    • Ivo van Doorn's avatar
      rt2x00: Driver requiring firmware should select crc algo · 9404ef34
      Ivo van Doorn authored
      
      
      The driver should select what CRC algorithm is required
      when performing a checksum on the firmware.
      
      rt61pci & rt73usb require crc-itu-t
      rt2800pci & rt2800usb require crc-ccitt
      
      Legacy 2800pci/usb driver uses crc-itu-t + bit order reversion,
      but that is just inefficient especially since the end result is
      the same as a different algorithm which is also available as library. ;)
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      9404ef34
    • Ivo van Doorn's avatar
      rt2x00: Enable master and adhoc mode again · adfdbb79
      Ivo van Doorn authored
      
      
      This will enable the creation of master mode and adhoc
      interfaces again. This does not mean the issues surrounding
      beaconing have been resolved, but this will make testing
      easier and perhaps we can discover which cards are actually
      working and which ones not.
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      adfdbb79
    • Ivo van Doorn's avatar
      rt2x00: Fix tx parameter initialization · 3b3618ad
      Ivo van Doorn authored
      
      
      Check if the aifs, cw_min and cw_max are above 0
      when determining if the default should be used.
      Tor aifs a negative number is used to determine
      if the default should be used or not.
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      3b3618ad
    • Adam Baker's avatar
      rt2x00: don't write past the end when writing short descriptors on rt61 · d7bafff3
      Adam Baker authored
      
      
      The space allocated in the skb for a descriptor is only 24 bytes when
      setting up beacons in rt61 so make sure we don't write to the descriptor
      words beyond that and corrupt the beacon packet.
      Signed-off-by: default avatarAdam Baker <linux@baker-net.org.uk>
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      d7bafff3
    • 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
  2. 28 Feb, 2008 4 commits
  3. 15 Feb, 2008 1 commit
  4. 31 Jan, 2008 1 commit
  5. 28 Jan, 2008 27 commits