1. 29 Feb, 2008 12 commits
    • 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: Cleanup mode registration · 31562e80
      Ivo van Doorn authored
      
      
      Don't wildly pass any number for num_rates to rt2x00lib,
      instead pass which type of rates are supported (CCK, OFDM).
      Same for num_modes but then for the 2GHZ and 5GHZ band.
      
      This makes the interface look much nicer and makes
      extending it later easier.
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      31562e80
    • Ivo van Doorn's avatar
      rt2x00: Don't report driver generated frames to tx_status() · baf26a7e
      Ivo van Doorn authored
      
      
      This adds a new flag for the skb_frame_desc structure which is used to tag
      rts/cts frames that are generated by the driver. Through the tag we can
      recognize frames we have generated ourselves, so we don't report their tx
      status to mac80211.
      
      This patch is based on the original patch by
      Mattias Nissler <mattias.nissler@gmx.de>.
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      baf26a7e
    • Ivo van Doorn's avatar
      rt2x00: Fix skbdesc->data_len initialization · 647d0ca9
      Ivo van Doorn authored
      
      
      skbdesc->data_len was not initialized correctly
      in rt2x00pci, rt2x00usb, rt2500usb and rt73usb.
      
      The value was set to queue->data_size which
      means that the incorrect frame size was pased
      to the upper layers.
      
      Correctly base the value on either the skb->len,
      or the rx frame size passed to the driver by the
      device.
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      647d0ca9
    • Ivo van Doorn's avatar
      rt2x00: Make rt2x00 less verbose · 25fd893d
      Ivo van Doorn authored
      
      
      Remove the debug messages regarding initialization from
      EEPROM. The values are vendor specific, and are not really
      needed for debug purposes. If they ever become usefull we
      still have access to them through debugfs which also
      prints the exact same values...
      Signed-off-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
      25fd893d
    • 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 4 commits