1. 29 Feb, 2008 7 commits
    • 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: Make use of MAC80211_LED_TRIGGERS · a9450b70
      Ivo van Doorn authored
      
      
      Make use of the led triggers provided by mac80211 to control
      the led status. This can be enabled through a per-driver
      configuration option which will automatically enable the
      generic handler in rt2x00lib.
      
      This has been enabled for rt2500usb and rt73usb for the moment
      since the led class will call set_brightness in irq context which
      will not work correctly with the usb drivers who need to sleep.
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      a9450b70
    • Ivo van Doorn's avatar
      rt2x00: Remove HWMODE_{A,B,G} · f5507ce9
      Ivo van Doorn authored
      
      
      rt2500usb initialized the SIFS and EIFS without using the
      values coming from rt2x000lib. After this is fixed HWMODE_{A,B,G}
      is now unused and can be removed in favour of the ieee80211_band
      enumeration which could still be usefull later.
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      f5507ce9
    • Ivo van Doorn's avatar
      rt2x00: Move beacon and atim queue defines into rt2x00 · 5957da4c
      Ivo van Doorn authored
      
      
      As Johannes Berg indicated the BEACON and AFTER_BEACON
      queue indeces in mac80211 should be removed because they
      are too hardware specific. This patch adds the queue index
      defines into rt2x00queue.h and removes the dependency of
      the defines inside mac80211.h.
      
      Also move rt2x00pci_beacon_update() into rt2400pci and
      rt2500pci individually since it is no longer a generic
      function since rt61 and rt2800 no longer use that.
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      5957da4c
    • 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: 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 1 commit
  3. 15 Feb, 2008 1 commit
  4. 28 Jan, 2008 19 commits
  5. 10 Jan, 2008 1 commit
  6. 18 Nov, 2007 1 commit
  7. 14 Nov, 2007 1 commit
    • Ivo van Doorn's avatar
      rt2x00: Fix chipset revision validation · 755a957d
      Ivo van Doorn authored
      
      
      The validation of the chipset revision was broken
      since for rt2500usb and rt73usb different registers
      should be read. When rt2500usb was loaded for a rt73
      device it would false think the chipset was correct
      because the wrong register was read and validated.
      
      This has been fixed by expanding the check to also
      see if the first 4 bits of the revision is not-0
      (When reading the wrong register offset the returned
      value is usually 0 which can be interpreted as invalid)
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      755a957d
  8. 10 Oct, 2007 9 commits