1. 04 5月, 2010 1 次提交
  2. 22 12月, 2009 1 次提交
  3. 20 11月, 2009 1 次提交
    • J
      mac80211: request TX status where needed · 7351c6bd
      Johannes Berg 提交于
      Right now all frames mac80211 hands to the driver
      have the IEEE80211_TX_CTL_REQ_TX_STATUS flag set to
      request TX status. This isn't really necessary, only
      the injected frames need TX status (the latter for
      hostapd) so move setting this flag.
      
      The rate control algorithms also need TX status, but
      they don't require it.
      
      Also, rt2x00 uses that bit for its own purposes and
      seems to require it being set for all frames, but
      that can be fixed in rt2x00.
      
      This doesn't really change anything for any drivers
      but in the future drivers using hw-rate control may
      opt to not report TX status for frames that don't
      have the IEEE80211_TX_CTL_REQ_TX_STATUS flag set.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Acked-by: Ivo van Doorn <IvDoorn@gmail.com> [rt2x00 bits]
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      7351c6bd
  4. 12 11月, 2009 1 次提交
  5. 20 8月, 2009 1 次提交
  6. 25 7月, 2009 1 次提交
  7. 07 5月, 2009 3 次提交
  8. 30 1月, 2009 4 次提交
  9. 05 12月, 2008 2 次提交
  10. 26 11月, 2008 1 次提交
    • I
      rt2x00: Detect USB BULK in/out endpoints · f1ca2167
      Ivo van Doorn 提交于
      Instead of hardcoding the used in/out endpoints
      we should detect them by walking through all
      available endpoints.
      
      rt2800usb will gain the most out of this, because
      the legacy drivers indicate that there are multiple
      endpoints available.
      However this code might benefit at least rt73usb as
      well for the MIMO queues, and if we are really lucky
      rt2500usb will benefit because for the TX and PRIO
      queues.
      
      Even if rt2500usb and rt73usb do not get better performance
      after this patch, the endpoint detection still belongs to
      rt2x00usb, and it shouldn't hurt to always try to detect
      the available endpoints.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      f1ca2167
  11. 01 11月, 2008 1 次提交
  12. 30 8月, 2008 2 次提交
  13. 23 8月, 2008 1 次提交
    • I
      rt2x00: Implement HW encryption · 2bb057d0
      Ivo van Doorn 提交于
      Various rt2x00 devices support hardware encryption.
      
      Most of them require the IV/EIV to be generated by mac80211,
      but require it to be provided seperately instead of within
      the frame itself. This means that rt2x00lib should extract
      the data from the frame and place it in the frame descriptor.
      During RX the IV/EIV is provided in the descriptor by the
      hardware which means that it should be inserted into the
      frame by rt2x00lib.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      2bb057d0
  14. 18 8月, 2008 1 次提交
  15. 30 7月, 2008 1 次提交
    • I
      rt2x00: Fix QOS sequence counting · 5adf6d63
      Ivo van Doorn 提交于
      When IEEE80211_TX_CTL_ASSIGN_SEQ is not set,
      the driver should disable hardware sequence counting
      to make sure the mac80211 provided counter is used.
      This fixes QOS sequence counting, since that is one
      of the cases where mac80211 provides a seperate
      sequence counter.
      
      By moving the sequence counting code to rt2x00queue
      we make sure that _all_ frames get the sequence counter,
      including RTS/CTS and Beacon frames.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      5adf6d63
  16. 09 7月, 2008 1 次提交
  17. 27 6月, 2008 3 次提交
  18. 15 6月, 2008 3 次提交
  19. 22 5月, 2008 7 次提交
    • J
      mac80211: use multi-queue master netdevice · e2530083
      Johannes Berg 提交于
      This patch updates mac80211 and drivers to be multi-queue aware and
      use that instead of the internal queue mapping. Also does a number
      of cleanups in various pieces of the code that fall out and reduces
      internal mac80211 state size.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      e2530083
    • J
      mac80211: move TX info into skb->cb · e039fa4a
      Johannes Berg 提交于
      This patch converts mac80211 and all drivers to have transmit
      information and status in skb->cb rather than allocating extra
      memory for it and copying all the data around. To make it fit,
      a union is used where only data that is necessary for all steps
      is kept outside of the union.
      
      A number of fixes were done by Ivo, as well as the rt2x00 part
      of this patch.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Acked-by: NDavid S. Miller <davem@davemloft.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      e039fa4a
    • I
      rt2x00: Split rt2x00lib_write_tx_desc() · 7050ec82
      Ivo van Doorn 提交于
      Split rt2x00lib_write_tx_desc() up into a TX descriptor initializor
      and TX descriptor writer.
      
      This split is required to properly allow mac80211 to move its
      tx_control structure into the skb->cb array.
      The rt2x00queue_create_tx_descriptor() function will read all tx control
      information and convert it into a rt2x00 TX descriptor information structure.
      After that function is complete, we have all information we needed from the
      tx control structure and are free to start writing into the skb->cb array
      for our own purposes.
      rt2x00queue_write_tx_descriptor() will be in charge of really sending
      the TX descriptor to the hardware and kicking the TX queue.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      7050ec82
    • G
      rt2x00: Fix queue related oops in case of deselected mac80211 multi-queue feature. · 61448f88
      Gertjan van Wingerde 提交于
      With the integration of the mac80211 multiqueue patches it has become possible that the
      mac80211 layer modifies the number of TX queues that is stored inside the ieee80211_hw
      structure, especially when multi-queue is not selected.
      
      The rt2x00 drivers are not well suited to handle that situation, as they allocate the
      queue structures before mac80211 has modified the number of queues it is going to use,
      and also expect the number of allocated queues to match the hardware implementation.
      
      Hence, ensure that rt2x00 maintains by itself the number of queues that the hardware
      supports, and, at the same time, making is not dependent on the preservation of contents
      inside a mac80211 structure.
      Signed-off-by: NGertjan van Wingerde <gwingerde@kpnplanet.nl>
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      61448f88
    • I
      rt2x00: Remove ieee80211_tx_control argument from write_tx_desc() · 61486e0f
      Ivo van Doorn 提交于
      Move the last remaining information details read from ieee80211_tx_control
      in the drivers to the txentry_desc structure. After this we can
      remove ieee80211_tx_control from the argument list for the callback function,
      which makes it easier when the control information is moved into skb->cb
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      61486e0f
    • I
      rt2x00: Fix TX status reporting · fb55f4d1
      Ivo van Doorn 提交于
      The tx_status enumeration was broken since the introduction
      of rt61pci. That driver uses different values to report the
      status of the tx action.
      This would lead to frames that were reported as success but
      actually failed to be send out, or frames that were neither
      successfull or failure which were reported as failure.
      
      Fix this by change the TX status reporting and more explicitely
      check for failure or success. Note that a third possibility is
      added "unknown". Not all hardware (USB) can report the actual
      TX status, for rt61pci some frames will receive this status
      because the TXdone handler is never called for those frames.
      This unknown will now be handled as neither success or failure,
      so we no longer increment the failure counter while this conclusion
      could not be determined from the real status of the frame.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      fb55f4d1
    • I
      rt2x00: trim skb_frame_desc to 32 bytes · 5a6e5999
      Ivo van Doorn 提交于
      Remove frame_type from skb_frame_desc and pass it
      as argument to rt2x00debug_dump_frame().
      
      Change data_len and desc_len to unsigned short
      to save another 4 bytes in skb_frame_desc. Note that
      this was the only location where the data_len and
      desc_len was not yet treated as unsigned short.
      
      This trim is required to help mac80211 with adding
      the TX control and TX status informtation into the
      skb->cb structure. When that happens, drivers will
      have approximately 40 bytes left to use freely.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      5a6e5999
  20. 08 5月, 2008 2 次提交
  21. 26 3月, 2008 1 次提交
  22. 14 3月, 2008 1 次提交
    • I
      rt2x00: Fix rt2400pci signal · 89993890
      Ivo van Doorn 提交于
      After sampling hundreds of RX frame descriptors,
      the results were conclusive:
      - The Ralink documentation regarding the SIGNAL and RSSI are wrong.
      
      It turns out that of the 5 BBR registers, we should not use BBR0 and BBR1
      for SIGNAL and RSSI respectively, but actually BBR1 and BBR2.
      BBR0 does show values, but the exact meaning remains unclear,
      but they cannot be translated into a SIGNAL or RSSI field.
      BBR3, BBR4 and BBR5 are always 0, so their meaning is unknown.
      
      As it turns out, the reported SIGNAL is the PLCP value, this
      in contradiction to what was expected looking at rt2500pci which
      only reported the PLCP values for OFDM rates and bitrate values
      for CCK rates.
      
      This means we should let the driver raise the flag about the contents
      of the SIGNAL field so rt2x00lib can always do the right thing based
      on what the driver reports.
      Signed-off-by: NIvo van Doorn <IvDoorn@gmail.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      89993890