diff options
author | Dave Airlie <airlied@redhat.com> | 2013-09-01 19:31:40 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2013-09-01 19:31:40 -0400 |
commit | 9c725e5bcdae59d5383d4aec33a34c822582dda5 (patch) | |
tree | 3d55827f5f44f16cb0aada2713029f7490f557d4 /drivers/gpu/drm/i915/intel_ringbuffer.c | |
parent | efa27f9cec09518c9b574e3ab4a0a41717237429 (diff) | |
parent | 679fe80fbe964ea7f9f71781c2ca65b630949da3 (diff) |
Merge branch 'drm-next-3.12' of git://people.freedesktop.org/~agd5f/linux into drm-next
Alex writes:
This is the radeon drm-next request. Big changes include:
- support for dpm on CIK parts
- support for ASPM on CIK parts
- support for berlin GPUs
- major ring handling cleanup
- remove the old 3D blit code for bo moves in favor of CP DMA or sDMA
- lots of bug fixes
[airlied: fix up a bunch of conflicts from drm_order removal]
* 'drm-next-3.12' of git://people.freedesktop.org/~agd5f/linux: (898 commits)
drm/radeon/dpm: make sure dc performance level limits are valid (CI)
drm/radeon/dpm: make sure dc performance level limits are valid (BTC-SI) (v2)
drm/radeon: gcc fixes for extended dpm tables
drm/radeon: gcc fixes for kb/kv dpm
drm/radeon: gcc fixes for ci dpm
drm/radeon: gcc fixes for si dpm
drm/radeon: gcc fixes for ni dpm
drm/radeon: gcc fixes for trinity dpm
drm/radeon: gcc fixes for sumo dpm
drm/radeonn: gcc fixes for rv7xx/eg/btc dpm
drm/radeon: gcc fixes for rv6xx dpm
drm/radeon: gcc fixes for radeon_atombios.c
drm/radeon: enable UVD interrupts on CIK
drm/radeon: fix init ordering for r600+
drm/radeon/dpm: only need to reprogram uvd if uvd pg is enabled
drm/radeon: check the return value of uvd_v1_0_start in uvd_v1_0_init
drm/radeon: split out radeon_uvd_resume from uvd_v4_2_resume
radeon kms: fix uninitialised hotplug work usage in r100_irq_process()
drm/radeon/audio: set up the sads on DCE3.2 asics
drm/radeon: fix handling of variable sized arrays for router objects
...
Conflicts:
drivers/gpu/drm/i915/i915_dma.c
drivers/gpu/drm/i915/i915_gem_dmabuf.c
drivers/gpu/drm/i915/intel_pm.c
drivers/gpu/drm/radeon/cik.c
drivers/gpu/drm/radeon/ni.c
drivers/gpu/drm/radeon/r600.c
Diffstat (limited to 'drivers/gpu/drm/i915/intel_ringbuffer.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_ringbuffer.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c index 7de29d40d1ad..f05cceac5a52 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c | |||
@@ -962,6 +962,18 @@ void intel_ring_setup_status_page(struct intel_ring_buffer *ring) | |||
962 | 962 | ||
963 | I915_WRITE(mmio, (u32)ring->status_page.gfx_addr); | 963 | I915_WRITE(mmio, (u32)ring->status_page.gfx_addr); |
964 | POSTING_READ(mmio); | 964 | POSTING_READ(mmio); |
965 | |||
966 | /* Flush the TLB for this page */ | ||
967 | if (INTEL_INFO(dev)->gen >= 6) { | ||
968 | u32 reg = RING_INSTPM(ring->mmio_base); | ||
969 | I915_WRITE(reg, | ||
970 | _MASKED_BIT_ENABLE(INSTPM_TLB_INVALIDATE | | ||
971 | INSTPM_SYNC_FLUSH)); | ||
972 | if (wait_for((I915_READ(reg) & INSTPM_SYNC_FLUSH) == 0, | ||
973 | 1000)) | ||
974 | DRM_ERROR("%s: wait for SyncFlush to complete for TLB invalidation timed out\n", | ||
975 | ring->name); | ||
976 | } | ||
965 | } | 977 | } |
966 | 978 | ||
967 | static int | 979 | static int |