1. 15 Sep, 2020 1 commit
    • Julien's avatar
      libxdma: fix next adjacent descriptors · f1e834be
      Julien authored
      Fix the setting of the next adjacent fields in descriptors.
      
      Following commit 5faf23ec the next_adj field of all descriptors is set
      according to the index of the descriptor rather than its address which
      causes issues when dma_alloc_coherent doesn't return an address which is
      page aligned (which happens).
      Moreover, in the case of a transfer which number of descriptors is
      bigger than a full page, the next_adj field is set to the maximum (63)
      for all descriptors untill the last page of descriptors where it starts
      decreasing.
      Last, even before this commit, the next_adj field inside a block of
      adjacent descriptors is not decreasing untill coming near page end,
      which is not compliant with what the documentation says :
      
      "Every descriptor in the descriptor list must accurately describe the descriptor
      or block ofdescriptors that follows. In a block of adjacent descriptors, the
      Nxt_adj value decrements from the first descriptor to the second to last
      descriptor which has a value of zero. Likewise, eachdescriptor in the block
      points to the next descriptor in the block, except for the last descriptor
      which might point to a new block or might terminate the list."
      
      This commit aligns the blocks of adjacent descriptors to
      XDMA_MAX_ADJ_BLOCK_SIZE and makes the next_adj field decrease inside
      each block untill the second to last descriptor in the block or in the
      full transfer. The size of the page being a multiple of the size of the
      block (4096 = sizeof(xdma_desc) * 128 =
      sizeof(xdma_desc) * 2 * XDMA_MAX_ADJ_BLOCK_SIZE
      f1e834be
  2. 08 Sep, 2020 1 commit
  3. 01 Sep, 2020 2 commits
  4. 18 Aug, 2020 1 commit
  5. 12 Aug, 2020 1 commit
  6. 24 Jul, 2020 1 commit
  7. 30 Jun, 2020 3 commits
  8. 23 Jun, 2020 1 commit
  9. 22 Jun, 2020 2 commits
  10. 16 Jun, 2020 1 commit
  11. 09 Jun, 2020 1 commit
    • Julien's avatar
      xdma_thread: fix cpu node bug · 7fc246ee
      Julien authored
      The number of threads is arbitrarily set to 8 and we iterate over 8 cpus
      without knowing if we really have 8 cpus. This causes a call to
      cpu_to_node with an index that is out of bound, thus returning an
      undefined number, which crashes later when calling
      kthread_create_on_node.
      Fix this by iterating over the online cpus stopping when reaching the
      number of threads that is specified.
      7fc246ee
  12. 19 May, 2020 1 commit
  13. 27 Feb, 2020 3 commits
  14. 24 Feb, 2020 1 commit
    • Bryce Hathaway's avatar
      Fixes a design error revealed by running on aarch64. · d1f334b1
      Bryce Hathaway authored
      Simply put, you cannot call wait_event_interruptible_timeout while
      holding a spin_lock. The reason the driver got away with this on
      x86 is because the hardware is somehow fast enough so that the
      condition is never false and hence no scheduling ever needs to
      occur.
      d1f334b1
  15. 03 Feb, 2020 1 commit
  16. 21 Jan, 2020 1 commit
  17. 20 Jan, 2020 1 commit
  18. 17 Jan, 2020 1 commit
  19. 03 Jan, 2020 1 commit
  20. 23 Dec, 2019 5 commits
  21. 20 Dec, 2019 2 commits
  22. 18 Dec, 2019 1 commit
  23. 04 Nov, 2019 1 commit
  24. 22 Aug, 2019 1 commit
  25. 31 Jul, 2019 1 commit
  26. 22 Jul, 2019 2 commits
  27. 17 Jul, 2019 1 commit
  28. 16 Jul, 2019 1 commit