1. 21 9月, 2012 1 次提交
    • S
      drm/radeon: Prevent leak of scratch register on resume from suspend · 16c58081
      Simon Kitching 提交于
      Cards typically have 5-7 scratch registers; one of these is reserved for
      rdev->rptr_save_reg. Unfortunately the reservation is done in function
      r100_cp_init, which is called by all drivers except r600 - and this
      function is also invoked on resume from suspend. After several resumes,
      no scratch registers are free and graphics acceleration is disabled.
      
      Dmesg then reports either:
         *ERROR* radeon: cp failed to get scratch reg (-22).
         *ERROR* radeon: cp isn't working(-22).
         radeon 0000:01:00.0: failed initializing CP (-22).
      or:
         *ERROR* radeon: failed to get scratch reg (-22).
         *ERROR* radeon: failed testing IB on GFX ring (-22).
         *ERROR* ib ring test failed (-22).
      
      The chain of calls on boot for all except r600 is:
      radeon_init -> ... -> (rXXX_init) -> rXXX_startup -> r100_cp_init
      
      The chain of calls on resume for all except r600 is:
      rXXX_resume -> rXXX_startup -> r100_cp_init.
      
      R600 correctly allocates rptr_save_reg in r600_init (ie once only, not
      in resume). However moving the code into the init functions for all
      drivers means touching 4 drivers. So instead, this patch just adds a
      test in r100_cp_init to avoid reallocating on resume. As the rdev
      structure is allocated via kzalloc in radeon_driver_load_kms, and zero
      is not a valid registerid, zero safely implies not-yet-allocated.
      
      This issue appears to have been introduced in c7eff978 (3.6.0-rcN)
      Signed-off-by: NSimon Kitching <skitching@vonos.net>
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      16c58081
  2. 18 7月, 2012 3 次提交
  3. 17 7月, 2012 2 次提交
  4. 29 6月, 2012 2 次提交
  5. 21 6月, 2012 3 次提交
  6. 17 5月, 2012 1 次提交
  7. 10 5月, 2012 1 次提交
  8. 03 5月, 2012 5 次提交
  9. 12 4月, 2012 1 次提交
  10. 10 4月, 2012 1 次提交
  11. 29 2月, 2012 3 次提交
  12. 27 2月, 2012 1 次提交
  13. 22 2月, 2012 1 次提交
  14. 14 2月, 2012 1 次提交
  15. 03 2月, 2012 2 次提交
  16. 13 1月, 2012 1 次提交
  17. 06 1月, 2012 1 次提交
  18. 05 1月, 2012 1 次提交
  19. 21 12月, 2011 9 次提交