1. 16 9月, 2016 1 次提交
  2. 30 8月, 2016 1 次提交
  3. 06 7月, 2016 3 次提交
  4. 01 7月, 2016 1 次提交
  5. 11 5月, 2016 1 次提交
  6. 10 3月, 2016 1 次提交
    • S
      iwlwifi: pcie: fine tune number of rxbs · 7b542436
      Sara Sharon 提交于
      We kick the allocator when we have 2 RBDs that don't have
      attached RBs, and the allocator allocates 8 RBs meaning
      that it needs another 6 RBDs to attach the RBs to.
      The design is that allocator should always have enough RBDs
      to fulfill requests, so we give in advance 6 RBDs to the
      allocator so that when it is kicked, it gets additional 2 RBDs
      and has enough RBDs.
      These RBDs were taken from the Rx queue itself, meaning
      that each Rx queue didn't have the maximal number of
      RBDs, but MAX - 6.
      Change initial number of RBDs in the system to include both
      queue size and allocator reserves.
      Note the multi-queue is always 511 instead of 512 to avoid a
      full queue since we cannot detect this state easily enough in
      the 9000 arch.
      Signed-off-by: NSara Sharon <sara.sharon@intel.com>
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      7b542436
  7. 28 2月, 2016 1 次提交
  8. 31 1月, 2016 1 次提交
    • S
      iwlwifi: pcie: add 9000 series multi queue rx DMA support · 96a6497b
      Sara Sharon 提交于
      The 9000 series introduces several changes in the device
      DMA operation.
      As the device now supports multi-queue rx, several DMA channels
      should be configured.
      The flows of providing the device with the allocated RBDs now
      changes as well - the device maintains a separate table of used
      and free table.
      
      The hardware may use the free table to feed RBDs to any queue.
      This requires maintaing a shared table to map returned RBDs to
      the original RXB - for that purpose the VID is introduced - an
      internal identifier of the RB placed in the lower 12 bits and
      returned by HW in the used data.
      
      Another change is the support of 64 bit DMA address.
      Signed-off-by: NSara Sharon <sara.sharon@intel.com>
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      96a6497b
  9. 02 12月, 2015 1 次提交
  10. 18 11月, 2015 1 次提交
  11. 05 8月, 2015 1 次提交
    • S
      iwlwifi: pcie: New RBD allocation model · 26d535ae
      Sara Sharon 提交于
      As a preperation for multiple RX queues change the RBD
      allocation model.
      
      The new model includes a background allocator. The allocator is
      called by the interrupt handler when there are two released
      buffers by the queue, and the allocator starts allocating eight
      pages per request.
      When the queue has released 8 pages it tries claiming the
      request. If the pages are not ready - it keeps claiming.
      This new model should make sure that RBDs are always available
      across the multiple queues.
      
      The RBDs are transferred between the allocator and the queue.
      The queue moves the free RBDs upon freeing them to the allocator.
      The allocator moves them back to the queue's possession when the
      request is claimed.
      The allocator has an initial pool to make sure there are always RBDs
      available for the request completion.
      Release of the buffers at exit is done per pools - the allocator
      frees its own initial pool and the queue frees its own pool.
      
      Existing code refactor -
      -Queue's initial pool is the size of the queue only as the allocation
      of the new buffers no longer uses this pool.
      -Removal of replenish background work, and replenish calls in the
      interrupt handler and restock().
      -The replenish() and the rxq used_list are used only during
      initialization.
      -Moved page allocation to a new function for code reuse.
      
      New code -
      Allocator code - new structure and functions.
      Interrupt handler uses the allocator functions for replenishing buffers.
      Reuse of the restock() method.
      Signed-off-by: NSara Sharon <sara.sharon@intel.com>
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      26d535ae
  12. 13 7月, 2015 1 次提交
  13. 03 6月, 2015 1 次提交
    • S
      iwlwifi: pcie: New RBD allocation model · 5f175703
      Sara Sharon 提交于
      As a preperation for multiple RX queues change the RBD
      allocation model.
      
      The new model includes a background allocator. The allocator is
      called by the interrupt handler when there are two released
      buffers by the queue, and the allocator starts allocating eight
      pages per request.
      When the queue has released 8 pages it tries claiming the
      request. If the pages are not ready - it keeps claiming.
      This new model should make sure that RBDs are always available
      across the multiple queues.
      
      The RBDs are transferred between the allocator and the queue.
      The queue moves the free RBDs upon freeing them to the allocator.
      The allocator moves them back to the queue's possession when the
      request is claimed.
      The allocator has an initial pool to make sure there are always RBDs
      available for the request completion.
      Release of the buffers at exit is done per pools - the allocator
      frees its own initial pool and the queue frees its own pool.
      
      Existing code refactor -
      -Queue's initial pool is the size of the queue only as the allocation
      of the new buffers no longer uses this pool.
      -Removal of replenish background work, and replenish calls in the
      interrupt handler and restock().
      -The replenish() and the rxq used_list are used only during
      initialization.
      -Moved page allocation to a new function for code reuse.
      
      New code -
      Allocator code - new structure and functions.
      Interrupt handler uses the allocator functions for replenishing buffers.
      Reuse of the restock() method.
      Signed-off-by: NSara Sharon <sara.sharon@intel.com>
      Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      5f175703
  14. 02 4月, 2015 1 次提交
  15. 14 12月, 2014 1 次提交
  16. 01 1月, 2014 1 次提交
  17. 06 3月, 2013 1 次提交
  18. 31 1月, 2013 1 次提交
  19. 24 1月, 2013 1 次提交
  20. 16 1月, 2013 1 次提交
  21. 19 11月, 2012 1 次提交
  22. 13 6月, 2012 1 次提交
  23. 25 4月, 2012 1 次提交
    • J
      iwlwifi: fix hardware queue programming · 5ef4acd5
      Johannes Berg 提交于
      Newer devices have 20 (5000 series) or 30 (6000 series)
      hardware queues, rather than the 16 that 4965 had. This
      was added to the driver a long time ago, but improperly:
      the queue registers for the higher queues aren't just
      continuations of the registers for the first 16 queues,
      they are in other places. Therefore, the hardware would
      lock up when trying to activate queue 16 or above and
      the device would have to be restarted.
      
      Thanks goes to Emmanuel who identified this and told me
      how the queue programming should be done.
      
      Note that we don't use queues 20 and higher today and
      doing so needs more work than this.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      5ef4acd5
  24. 25 1月, 2012 1 次提交
  25. 07 1月, 2012 1 次提交
  26. 30 8月, 2011 2 次提交
  27. 12 7月, 2011 1 次提交
  28. 08 4月, 2011 3 次提交
  29. 31 3月, 2011 1 次提交
  30. 10 7月, 2010 1 次提交
  31. 03 6月, 2010 1 次提交
  32. 20 1月, 2010 2 次提交
  33. 30 1月, 2009 2 次提交