1. 01 8月, 2017 3 次提交
  2. 30 6月, 2017 1 次提交
    • J
      iwlwifi: mvm: fix mac80211's hw_queue in DQA mode · 32026e8f
      Johannes Berg 提交于
      When in non-DQA mode, mac80211 actually gets a pretty much perfect
      idea (in vif->hw_queue/cab_queue) of which queues we're using. But
      in DQA mode, this isn't true - nonetheless, we were adding all the
      queues, even the ones stations are using, to the queue allocation
      bitmap.
      
      Fix this, we should only add the queues we really are using in DQA
      mode:
       * IWL_MVM_OFFCHANNEL_QUEUE, as we use this in both modes
       * mvm->aux_queue, as we use this in both modes - mac80211
         never really knows about it but we use it as a cookie
         internally, so can't reuse it
       * possibly the GCAST queue (cab_queue)
       * all the "queues" we told mac80211 about we were using on each
         interface (vif->hw_queue), these are entirely virtual in this
         mode
      
      Also add back the failure now when we can't allocate any more of
      these - now virtual - queues; this was skipped in DQA mode and
      would lead to having multiple ACs or even interfaces use the same
      queue number in mac80211 (10, since that's the limit), which would
      stop far too many queues if stopped.
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      32026e8f
  3. 23 6月, 2017 2 次提交
  4. 16 6月, 2017 1 次提交
    • J
      networking: introduce and use skb_put_data() · 59ae1d12
      Johannes Berg 提交于
      A common pattern with skb_put() is to just want to memcpy()
      some data into the new space, introduce skb_put_data() for
      this.
      
      An spatch similar to the one for skb_put_zero() converts many
      of the places using it:
      
          @@
          identifier p, p2;
          expression len, skb, data;
          type t, t2;
          @@
          (
          -p = skb_put(skb, len);
          +p = skb_put_data(skb, data, len);
          |
          -p = (t)skb_put(skb, len);
          +p = skb_put_data(skb, data, len);
          )
          (
          p2 = (t2)p;
          -memcpy(p2, data, len);
          |
          -memcpy(p, data, len);
          )
      
          @@
          type t, t2;
          identifier p, p2;
          expression skb, data;
          @@
          t *p;
          ...
          (
          -p = skb_put(skb, sizeof(t));
          +p = skb_put_data(skb, data, sizeof(t));
          |
          -p = (t *)skb_put(skb, sizeof(t));
          +p = skb_put_data(skb, data, sizeof(t));
          )
          (
          p2 = (t2)p;
          -memcpy(p2, data, sizeof(*p));
          |
          -memcpy(p, data, sizeof(*p));
          )
      
          @@
          expression skb, len, data;
          @@
          -memcpy(skb_put(skb, len), data, len);
          +skb_put_data(skb, data, len);
      
      (again, manually post-processed to retain some comments)
      Reviewed-by: NStephen Hemminger <stephen@networkplumber.org>
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      59ae1d12
  5. 06 6月, 2017 2 次提交
  6. 26 4月, 2017 2 次提交
    • S
      iwlwifi: mvm: support station type API · ced19f26
      Sara Sharon 提交于
      Support change to ADD_STA API to support station types.
      Each station is assigned its type.
      This simplifies FW handling of the broadcast and multicast
      stations:
      * broadcast station is identified by its type and not the mac
        address.
      * multicast queue is no longer treated differently. The opening
        and closing of it is done by referring to its station.
        There is no need to specify it in the MAC command.
      * When disabling TX to all station driver can disable the traffic
        on multicast station, so FW doesn't have to do it.
      Change is backward compatible.
      Change the order of adding and removing the stations according to
      FW requirements.
      Signed-off-by: NSara Sharon <sara.sharon@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      ced19f26
    • S
      iwlwifi: mvm: map cab_queue to different txq_id · e2af3fab
      Sara Sharon 提交于
      cab_queue can now get bigger than u8, since in TVQM we will support
      512 queues..
      Support it by maintaining internal mapping between the actual number
      and mac80211 queue (IWL_MVM_DQA_GCAST_QUEUE).
      For pre-a000 the internal queue will be the same as the mac80211
      queue.
      Signed-off-by: NSara Sharon <sara.sharon@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      e2af3fab
  7. 20 4月, 2017 2 次提交
  8. 11 4月, 2017 1 次提交
    • S
      iwlwifi: mvm: add multicast station · 26d6c16b
      Sara Sharon 提交于
      Currently multicast queue is associated with the broadcast
      station.
      
      This raises quite a few issues:
      
      The multicast queue has a special treatment:
      - It is sent in the MAC context command
      - It is excluded from tfd_queue_mask
      
      In DQA mode we end up enabling two queues - the probe response
      queue and the multicast queue - with the same station (broadcast)
      and TID while in DQA mode it should be unique RA-TID.
      Firmware will enforce it for a000 devices, so this allocation
      will fail.
      
      In addition, in a000 devices the FW will set the FIFO and not
      the driver. So there is a need for FW to know when we enable
      the queue that it is multicast queue so it will be bound to
      the multicast FIFO. There is no such way in current design.
      
      In order to simplify driver and firmware handling of this queue
      create a multicast station.
      This solves the unique RA-TID issue in the short term and serves
      as preparation for the long term.
      
      In the long term we will also add a flag marking this station for
      the FW as the multicast station.
      Once we will do that the FW will know this is the multicast queue
      immediately when it is added and bind it to the correct FIFO.
      It will also enable removing the special treatment of the
      queue in the MAC context command.
      Signed-off-by: NSara Sharon <sara.sharon@intel.com>
      Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
      26d6c16b
  9. 24 3月, 2017 1 次提交
  10. 07 2月, 2017 2 次提交
  11. 26 1月, 2017 1 次提交
  12. 19 10月, 2016 2 次提交
  13. 19 9月, 2016 2 次提交
  14. 01 7月, 2016 1 次提交
  15. 10 5月, 2016 2 次提交
  16. 12 4月, 2016 1 次提交
  17. 06 4月, 2016 1 次提交
  18. 30 3月, 2016 3 次提交
  19. 28 2月, 2016 1 次提交
    • S
      iwlwifi: mvm: update rx_status with mactime flag · 77fe7395
      Sara Sharon 提交于
      When forming IBSS, mac80211 scans in order to find an already
      existing cell to join.
      In case the scan does not find any existing cell a new IBSS
      cell is formed.
      When receiving the beacons of another IBSS cell we should
      merge if the other IBSS cell's TSF is higher than ours.
      However, currently iwlmvm does not set any timestamp flag in
      rx_status so there is no valid rx timestamp to compare the
      beacon's TSF to.
      The reason for that is that TSF as indicated by the firmware
      is at INA time, but up till now mac80211 expected the TSF at
      the beginning or end of the MPDU.
      Set the flag to the newly added RX_FLAG_MACTIME_PLCP_START flag.
      Signed-off-by: NSara Sharon <sara.sharon@intel.com>
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      77fe7395
  20. 01 2月, 2016 2 次提交
  21. 08 1月, 2016 2 次提交
  22. 21 12月, 2015 1 次提交
  23. 20 12月, 2015 1 次提交
  24. 02 12月, 2015 1 次提交
  25. 18 11月, 2015 1 次提交
  26. 25 10月, 2015 1 次提交