Merge branch 'drm-next-4.6' of git://people.freedesktop.org/~agd5f/linux into drm...
authorDave Airlie <airlied@redhat.com>
Wed, 16 Mar 2016 22:25:04 +0000 (08:25 +1000)
committerDave Airlie <airlied@redhat.com>
Wed, 16 Mar 2016 22:25:04 +0000 (08:25 +1000)
A few more fixes and cleanups for 4.6:
- DCE code cleanups
- HDP flush/invalidation fixes
- GPUVM fixes
- switch to drm_vblank_[on|off]
- PX fixes
- misc bug fixes

* 'drm-next-4.6' of git://people.freedesktop.org/~agd5f/linux: (50 commits)
  drm/amdgpu: split pipeline sync out of SDMA vm_flush() as well
  drm/amdgpu: Revert "add mutex for ba_va->valids/invalids"
  drm/amdgpu: Revert "add lock for interval tree in vm"
  drm/amdgpu: Revert "add spin lock to protect freed list in vm (v3)"
  drm/amdgpu: reserve the PD during unmap and remove
  drm/amdgpu: Fix two bugs in amdgpu_vm_bo_split_mapping
  drm/radeon: Don't drop DP 2.7 Ghz link setup on some cards.
  MAINTAINERS: update radeon entry to include amdgpu as well
  drm/amdgpu: disable runtime pm on PX laptops without dGPU power control
  drm/radeon: disable runtime pm on PX laptops without dGPU power control
  drm/amd/amdgpu: Fix indentation in do_set_base() (DCEv8)
  drm/amd/amdgpu: make afmt_init cleanup if alloc fails (DCEv8)
  drm/amd/amdgpu: Move config init flag to bottom of sw_init (DCEv8)
  drm/amd/amdgpu: Don't proceed into audio_fini if audio is disabled (DCEv8)
  drm/amd/amdgpu: Fix identation in do_set_base() (DCEv10)
  drm/amd/amdgpu: Make afmt_init cleanup if alloc fails (DCEv10)
  drm/amd/amdgpu: Move initialized flag to bottom of sw_init (DCEv10)
  drm/amd/amdgpu: Don't proceed in audio_fini if disabled (DCEv10)
  drm/amd/amdgpu: Fix indentation in dce_v11_0_crtc_do_set_base()
  drm/amd/amdgpu: Make afmt_init() cleanup if alloc fails (DCEv11)
  ...

15 files changed:
1  2 
MAINTAINERS
drivers/gpu/drm/amd/amdgpu/amdgpu.h
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
drivers/gpu/drm/amd/amdgpu/ci_dpm.c
drivers/gpu/drm/amd/amdgpu/cik.c
drivers/gpu/drm/amd/amdgpu/cik_sdma.c
drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
drivers/gpu/drm/amd/amdgpu/vi.c
drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c
drivers/gpu/drm/radeon/radeon_device.c

diff --cc MAINTAINERS
Simple merge
index d0489722fc7e4ddc3e2cc344b5277b5a18cf7645,9a03d566bf6d939216395f64e7ddf03d57a832ba..a80c8cea760998cca5ab4c0b5f8de3bd8e8f2795
@@@ -2314,9 -2365,9 +2324,10 @@@ int amdgpu_cs_get_ring(struct amdgpu_de
                       struct amdgpu_ring **out_ring);
  void amdgpu_ttm_placement_from_domain(struct amdgpu_bo *rbo, u32 domain);
  bool amdgpu_ttm_bo_is_amdgpu_bo(struct ttm_buffer_object *bo);
+ int amdgpu_ttm_tt_get_user_pages(struct ttm_tt *ttm, struct page **pages);
  int amdgpu_ttm_tt_set_userptr(struct ttm_tt *ttm, uint64_t addr,
                                     uint32_t flags);
 +bool amdgpu_ttm_tt_has_userptr(struct ttm_tt *ttm);
  struct mm_struct *amdgpu_ttm_tt_get_usermm(struct ttm_tt *ttm);
  bool amdgpu_ttm_tt_affect_userptr(struct ttm_tt *ttm, unsigned long start,
                                  unsigned long end);
Simple merge
Simple merge
Simple merge
index 4411b94775dbf0fdd831af4a80068244e362b160,a4913ebb673c236d8c0960f2689545ba6e64a2da..a06045f040f159939abd72eeb8ffda4fd4e61e30
@@@ -3041,27 -3079,7 +3079,19 @@@ static void gfx_v7_0_ring_emit_vm_flush
                                        unsigned vm_id, uint64_t pd_addr)
  {
        int usepfp = (ring->type == AMDGPU_RING_TYPE_GFX);
 +      uint32_t seq = ring->fence_drv.sync_seq;
 +      uint64_t addr = ring->fence_drv.gpu_addr;
 +
 +      amdgpu_ring_write(ring, PACKET3(PACKET3_WAIT_REG_MEM, 5));
 +      amdgpu_ring_write(ring, (WAIT_REG_MEM_MEM_SPACE(1) | /* memory */
 +                               WAIT_REG_MEM_FUNCTION(3) | /* equal */
 +                               WAIT_REG_MEM_ENGINE(usepfp)));   /* pfp or me */
 +      amdgpu_ring_write(ring, addr & 0xfffffffc);
 +      amdgpu_ring_write(ring, upper_32_bits(addr) & 0xffffffff);
 +      amdgpu_ring_write(ring, seq);
 +      amdgpu_ring_write(ring, 0xffffffff);
 +      amdgpu_ring_write(ring, 4); /* poll interval */
  
-       if (usepfp) {
-               /* synce CE with ME to prevent CE fetch CEIB before context switch done */
-               amdgpu_ring_write(ring, PACKET3(PACKET3_SWITCH_BUFFER, 0));
-               amdgpu_ring_write(ring, 0);
-               amdgpu_ring_write(ring, PACKET3(PACKET3_SWITCH_BUFFER, 0));
-               amdgpu_ring_write(ring, 0);
-       }
        amdgpu_ring_write(ring, PACKET3(PACKET3_WRITE_DATA, 3));
        amdgpu_ring_write(ring, (WRITE_DATA_ENGINE_SEL(usepfp) |
                                 WRITE_DATA_DST_SEL(0)));
Simple merge
Simple merge
index b72cf063df1ada924a08ee5662b5ccc8d7cc5b02,9163f5968a2fcea955e71fea602f0e21ce9e1384..1c120efa292cef9f1c718cc0705cfe83414995b4
@@@ -1090,9 -1087,9 +1087,8 @@@ static int vi_common_early_init(void *h
                break;
        case CHIP_CARRIZO:
        case CHIP_STONEY:
-               adev->has_uvd = true;
                adev->cg_flags = 0;
 -              /* Disable UVD pg */
 -              adev->pg_flags = /* AMDGPU_PG_SUPPORT_UVD | */AMDGPU_PG_SUPPORT_VCE;
 +              adev->pg_flags = 0;
                adev->external_rev_id = adev->rev_id + 0x1;
                break;
        default: