1. 01 3月, 2008 12 次提交
    • I
      rt2x00: Cleanup mode registration · 31562e80
      Ivo van Doorn 提交于
      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: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      31562e80
    • I
      rt2x00: Release rt2x00 2.1.1 · d3f5feaa
      Ivo van Doorn 提交于
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      d3f5feaa
    • I
      rt2x00: make csr_cache and csr_addr an union · 21795094
      Ivo van Doorn 提交于
      The csr_cache and csr_addr pointers are both the same size
      and they are never used both by the same driver. This makes
      them a nice candidate for an union.
      We could merge into 1 pointer, but that would either upset sparse,
      or require a lot of __force casts.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      21795094
    • I
      rt2x00: Release rt2x00 2.1.0 · b86af631
      Ivo van Doorn 提交于
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      b86af631
    • I
      rt2x00: Make use of MAC80211_LED_TRIGGERS · a9450b70
      Ivo van Doorn 提交于
      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: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      a9450b70
    • I
      rt2x00: Remove HWMODE_{A,B,G} · f5507ce9
      Ivo van Doorn 提交于
      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: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      f5507ce9
    • J
      cfg80211 API for channels/bitrates, mac80211 and driver conversion · 8318d78a
      Johannes Berg 提交于
      This patch creates new cfg80211 wiphy API for channel and bitrate
      registration and converts mac80211 and drivers to the new API. The
      old mac80211 API is completely ripped out. All drivers (except ath5k)
      are updated to the new API, in many cases I expect that optimisations
      can be done.
      
      Along with the regulatory code I've also ripped out the
      IEEE80211_HW_DEFAULT_REG_DOMAIN_CONFIGURED flag, I believe it to be
      unnecessary if the hardware simply gives us whatever channels it wants
      to support and we then enable/disable them as required, which is pretty
      much required for travelling.
      
      Additionally, the patch adds proper "basic" rate handling for STA
      mode interface, AP mode interface will have to have new API added
      to allow userspace to set the basic rate set, currently it'll be
      empty... However, the basic rate handling will need to be moved to
      the BSS conf stuff.
      
      I do expect there to be bugs in this, especially wrt. transmit
      power handling where I'm basically clueless about how it should work.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      8318d78a
    • I
      rt2x00: Move beacon and atim queue defines into rt2x00 · 5957da4c
      Ivo van Doorn 提交于
      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: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      5957da4c
    • I
      rt2x00: Add per-interface structure · 6bb40dd1
      Ivo van Doorn 提交于
      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: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      6bb40dd1
    • I
      rt2x00: Driver requiring firmware should select crc algo · 9404ef34
      Ivo van Doorn 提交于
      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: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      9404ef34
    • I
      rt2x00: Queue handling overhaul · 181d6902
      Ivo van Doorn 提交于
      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: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      181d6902
    • I
      rt2x00: Update copyright notice · 811aa9ca
      Ivo van Doorn 提交于
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      811aa9ca
  2. 29 1月, 2008 23 次提交
  3. 19 11月, 2007 1 次提交
  4. 15 11月, 2007 1 次提交
    • I
      rt2x00: Fix chipset revision validation · 755a957d
      Ivo van Doorn 提交于
      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: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      755a957d
  5. 11 10月, 2007 3 次提交