1. 22 1月, 2015 2 次提交
  2. 15 1月, 2015 1 次提交
  3. 13 1月, 2015 1 次提交
    • B
      drm/amdkfd: Fix for-loop when allocating HQD (non-HWS) · f0ec5b99
      Ben Goz 提交于
      This patch fixes a minor bug in allocate_hqd(), where the loop run from the
      next-to-allocate pipe until the number of pipes.
      
      This is wrong because we need to consider the possibility where
      next-to-allocate pipe is not 0, and thus, the for-loop only checks part of the
      pipes and doesn't wrap-around, as it supposed to do.
      
      Therefore, we add another counting variable to make sure we go over all the
      pipes, regardless of where we start to look at the first iteration of the loop.
      
      This bug only affected non-HWS mode. In HWS mode, the CP fw is responsible for
      allocating the HQD.
      Signed-off-by: NBen Goz <ben.goz@amd.com>
      Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
      Acked-by: NAlex Deucher <alexander.deucher@amd.com>
      f0ec5b99
  4. 10 1月, 2015 3 次提交
  5. 08 1月, 2015 1 次提交
  6. 05 1月, 2015 2 次提交
  7. 08 12月, 2014 1 次提交
  8. 12 1月, 2015 2 次提交
    • B
      drm/amdkfd: Add initial VI support for DQM · a22fc854
      Ben Goz 提交于
      This patch starts to add support for the VI APU in the DQM module.
      
      Because most (more than 90%) of the DQM code is shared among AMD's APUs, we
      chose a design that performs most/all the code in the shared DQM file
      (kfd_device_queue_manager.c). If there is H/W specific code to be executed,
      than it is written in an asic-specific extension function for that H/W.
      
      That asic-specific extension function is called from the shared function at the
      appropriate time. This requires that for every asic-specific extension function
      that is implemented in a specific ASIC, there will be an equivalent
      implementation in ALL ASICs, even if those implementations are just stubs.
      
      That way we achieve:
      
      - Maintainability: by having one copy of most of the code, we only need to
        fix bugs at one locations
      
      - Readability: very clear what is the shared code and what is done per ASIC
      
      - Extensibility: very easy to add new H/W specific files/functions
      Signed-off-by: NBen Goz <ben.goz@amd.com>
      Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
      Reviewed-by: NAlex Deucher <alexander.deucher@amd.com>
      a22fc854
    • O
      drm/amdkfd: Encapsulate DQM functions in ops structure · 45c9a5e4
      Oded Gabbay 提交于
      This patch does some re-org on the device_queue_manager structure. It takes out
      all the function pointers from the structure and puts them in a new structure,
      called device_queue_manager_ops. Then, it puts an instance of that structure
      inside device_queue_manager.
      
      This re-org is done to prepare the DQM module to support more than one AMD APU
      (Kaveri).
      Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
      Reviewed-by: NAlex Deucher <alexander.deucher@amd.com>
      45c9a5e4
  9. 25 11月, 2014 1 次提交
  10. 19 11月, 2014 1 次提交
  11. 21 11月, 2014 1 次提交
  12. 20 11月, 2014 1 次提交
  13. 18 8月, 2014 1 次提交
  14. 04 1月, 2015 1 次提交
  15. 03 1月, 2015 1 次提交
  16. 27 10月, 2014 1 次提交
  17. 17 7月, 2014 1 次提交
    • B
      amdkfd: Add device queue manager module · 64c7f8cf
      Ben Goz 提交于
      The queue scheduler divides into two sections, one section is process bounded
      and the other section is device bounded.
      The device bounded section is handled by this module.
      The DQM module handles queue setup, update and tear-down from the device side.
      It also supports suspend/resume operation.
      
      v3: Changed device_init, added the use of the new gart allocation functions an
      Added documentation.
      
      v4:
      
      Fixed a race in DQM queue scheduler where dqm->lock must be held when accessing
      dqm->queue_count and dqm->processes_count. This fixes runlist IB allocation
      failures when DQM is under load.
      
      Fixed race in DQM queue destruction where queues being destroyed must be
      removed from qpd->queues_list prior to preemption, or concurrent queue
      creation activity may reschedule them while their MQD is destroyed.
      
      Fixed EOP queue size setting in CP_HPD_EOP_CONTROL, because the size is
      specified as (log2(size_dwords)-1). The previous calculation assumed the
      size was specified in bytes, which caused interference between EOP queues
      when multiple MEC pipelines were active.
      
      v5:
      
      Move amdkfd from drm/radeon/ to drm/amd/
      Change format of mqd structure to match latest KV firmware
      Add support for AQL queues creation to enable working with open-source HSA
      runtime
      Remove unused unmap_queue function
      Various fixes (Style, typos)
      Signed-off-by: NBen Goz <ben.goz@amd.com>
      Signed-off-by: NJay Cornwall <jay.cornwall@amd.com>
      Signed-off-by: NOded Gabbay <oded.gabbay@amd.com>
      64c7f8cf