1. 14 Jul, 2013 6 commits
    • Maarten Lankhorst's avatar
      drm/radeon: add missing ttm_eu_backoff_reservation to radeon_bo_list_validate · 1b6e5fd5
      Maarten Lankhorst authored
      Op 10-07-13 12:03, Markus Trippelsdorf schreef:
      > On 2013.07.10 at 11:56 +0200, Maarten Lankhorst wrote:
      >> Op 10-07-13 11:46, Markus Trippelsdorf schreef:
      >>> On 2013.07.10 at 11:29 +0200, Maarten Lankhorst wrote:
      >>>> Op 10-07-13 11:22, Markus Trippelsdorf schreef:
      >>>>> By simply copy/pasting a big document under LibreOffice my system hangs
      >>>>> itself up. Only a hard reset gets it working again.
      >>>>> see also: https://bugs.freedesktop.org/show_bug.cgi?id=66551
      >>>>>
      >>>>> I've bisected the issue to:
      >>>>>
      >>>>> commit ecff665f
      >>>>> Author: Maarten Lankhorst <m.b.lankhorst@gmail.com>
      >>>>> Date:   Thu Jun 27 13:48:17 2013 +0200
      >>>>>
      >>>>>     drm/ttm: make ttm reservation calls behave like reservation calls
      >>>>>
      >>>>>     This commit converts the source of the val_seq counter to
      >>>>>     the ww_mutex api. The reservation objects are converted later,
      >>>>>     because there is still a lockdep splat in nouveau that has to
      >>>>>     resolved first.
      >>>>>
      >>>>>     Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
      >>>>>     Reviewed-by: Jerome Glisse <jglisse@redhat.com>
      >>>>>     Signed-off-by: Dave Airlie <airlied@redhat.com>
      >>>> Hey,
      >>>>
      >>>> Can you try current head with CONFIG_PROVE_LOCKING set and post the
      >>>> lockdep splat from dmesg, if any? If there is any locking issue
      >>>> lockdep should warn about it.  Lockdep will turn itself off after the
      >>>> first splat, so if the lockdep splat happens before running the
      >>>> affected parts those will have to be fixed first.
      >>> There was an unrelated EDAC lockdep splat, so I simply disabled it.
      
      > >>> This is what I get:
      
      >>> Jul 10 11:40:44 x4 kernel: ================================================
      >>> Jul 10 11:40:44 x4 kernel: [ BUG: lock held when returning to user space! ]
      >>> Jul 10 11:40:44 x4 kernel: 3.10.0-08587-g496322bc #35 Not tainted
      >>> Jul 10 11:40:44 x4 kernel: ------------------------------------------------
      >>> Jul 10 11:40:44 x4 kernel: X/211 is leaving the kernel with locks still held!
      >>> Jul 10 11:40:44 x4 kernel: 2 locks held by X/211:
      >>> Jul 10 11:40:44 x4 kernel: #0:  (reservation_ww_class_acquire){+.+.+.}, at: [<ffffffff813279f0>] radeon_bo_list_validate+0x20/0xd0
      >>> Jul 10 11:40:44 x4 kernel: #1:  (reservation_ww_class_mutex){+.+.+.}, at: [<ffffffff81309306>] ttm_eu_reserve_buffers+0x126/0x4b0
      >>> Jul 10 11:40:52 x4 kernel: SysRq : Emergency Sync
      >>> Jul 10 11:40:53 x4 kernel: Emergency Sync complete
      >>>
      >> Thanks, exactly what I thought. I missed a backoff somewhere..
      >>
      >> Does the below patch fix it?
      > Yes. Thank you for your quick reply.
      
      8<------
      If radeon_cs_parser_relocs fails ttm_eu_backoff_reservation doesn't get called.
      This left open a bug where ttm_eu_reserve_buffers succeeded but the bo's were
      not unlocked afterwards:
      
      Jul 10 11:40:44 x4 kernel: ================================================
      Jul 10 11:40:44 x4 kernel: [ BUG: lock held when returning to user space! ]
      Jul 10 11:40:44 x4 kernel: 3.10.0-08587-g496322bc #35 Not tainted
      Jul 10 11:40:44 x4 kernel: ------------------------------------------------
      Jul 10 11:40:44 x4 kernel: X/211 is leaving the kernel with locks still held!
      Jul 10 11:40:44 x4 kernel: 2 locks held by X/211:
      Jul 10 11:40:44 x4 kernel: #0:  (reservation_ww_class_acquire){+.+.+.}, at: [<ffffffff813279f0>] radeon_bo_list_validate+0x20/0xd0
      Jul 10 11:40:44 x4 kernel: #1:  (reservation_ww_class_mutex){+.+.+.}, at: [<ffffffff81309306>] ttm_eu_reserve_buffers+0x126/0x4b0
      Jul 10 11:40:52 x4 kernel: SysRq : Emergency Sync
      Jul 10 11:40:53 x4 kernel: Emergency Sync complete
      
      This is a regression caused by commit ecff665f.
      "drm/ttm: make ttm reservation calls behave like reservation calls"
      Reported-by: default avatarMarkus Trippelsdorf <markus@trippelsdorf.de>
      Tested-by: default avatarMarkus Trippelsdorf <markus@trippelsdorf.de>
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@canonical.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      1b6e5fd5
    • Alex Deucher's avatar
      drm/radeon: use CP DMA on r6xx for bo moves · bfea6a68
      Alex Deucher authored
      Lighter weight than using the 3D engine.
      Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      bfea6a68
    • Alex Deucher's avatar
      drm/radeon: implement bo copy callback using CP DMA (v2) · 072b5acc
      Alex Deucher authored
      Lighter weight than using the 3D engine.
      
      v2: fix ring count
      Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      072b5acc
    • Alex Deucher's avatar
      drm/radeon: Disable dma rings for bo moves on r6xx · aeea40cb
      Alex Deucher authored
      They still seem to cause instability on some r6xx parts.
      As a follow up, we can switch to using CP DMA for bo
      moves on r6xx as a lighter weight alternative to using
      the 3D engine.
      
      A version of this patch should also go to stable kernels.
      Tested-by: default avatarJ.N. <golden.fleeced@gmail.com>
      Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      aeea40cb
    • Alex Deucher's avatar
      drm/radeon/dpm: disable gfx PG on PALM · 9847b36a
      Alex Deucher authored
      Gfx PG doesn't seem to work properly when UVD is initialized
      on certain PALM boards.  Disable gfx PG for now until we sort
      out a proper fix.
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      9847b36a
    • Alex Deucher's avatar
      drm/radeon/hdmi: make sure we have an afmt block assigned · c2b4cacf
      Alex Deucher authored
      Prevents a segfault if an afmt block is not assigned to the
      encoder such as in the LVDS or eDP case.
      
      Fixes:
      https://bugs.freedesktop.org/show_bug.cgi?id=66714Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      c2b4cacf
  2. 09 Jul, 2013 2 commits
    • Dave Airlie's avatar
      Merge branch 'drm-next-3.11' of git://people.freedesktop.org/~agd5f/linux into drm-next · 774d8e34
      Dave Airlie authored
      A few more DPM fixes based on user testing.
      
      * 'drm-next-3.11' of git://people.freedesktop.org/~agd5f/linux:
        drm/radeon/dpm: implement vblank_too_short callback for si
        drm/radeon/dpm: implement vblank_too_short callback for cayman
        drm/radeon/dpm: implement vblank_too_short callback for btc
        drm/radeon/dpm: implement vblank_too_short callback for evergreen
        drm/radeon/dpm: implement vblank_too_short callback for 7xx
        drm/radeon/dpm: add checks against vblank time
        drm/radeon/dpm: add helper to calculate vblank time
        drm/radeon: remove stray line in old pm code
        drm/radeon/dpm: fix display_gap programming on rv7xx
        drm/radeon/dpm: implement force performance level for TN
        drm/radeon/dpm: implement force performance level for ON/LN
        drm/radeon/dpm: implement force performance level for SI
        drm/radeon/dpm: implement force performance level for cayman
        drm/radeon/dpm: implement force performance levels for 7xx/eg/btc
        drm/radeon/dpm: add infrastructure to force performance levels
        drm/radeon: fix surface setup on r1xx
        drm/radeon: add support for 3d perf states on older asics
        drm/radeon: set default clocks for SI when DPM is disabled
      774d8e34
    • Dave Airlie's avatar
      Merge branch 'drm-nouveau-next' of... · fd0932d7
      Dave Airlie authored
      Merge branch 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-next
      
      Two minor fixes for regressions.
      
      * 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6:
        drm/nvc0/gr: fix gpc firmware regression
        drm/nouveau: fix minor thinko causing bo moves to not be async on kepler
      fd0932d7
  3. 08 Jul, 2013 11 commits
  4. 05 Jul, 2013 21 commits