linux/drivers/gpu/drm/radeon
Mario Kleiner 5b5561b366 drm/radeon: Fixup hw vblank counter/ts for new drm_update_vblank_count() (v2)
commit 4dfd6486 "drm: Use vblank timestamps to guesstimate how many
vblanks were missed" introduced in Linux 4.4-rc1 makes the drm core
more fragile to drivers which don't update hw vblank counters and
vblank timestamps in sync with firing of the vblank irq and
essentially at leading edge of vblank.

This exposed a problem with radeon-kms/amdgpu-kms which do not
satisfy above requirements:

The vblank irq fires a few scanlines before start of vblank, but
programmed pageflips complete at start of vblank and
vblank timestamps update at start of vblank, whereas the
hw vblank counter increments only later, at start of vsync.

This leads to problems like off by one errors for vblank counter
updates, vblank counters apparently going backwards or vblank
timestamps apparently having time going backwards. The net result
is stuttering of graphics in games, or little hangs, as well as
total failure of timing sensitive applications.

See bug #93147 for an example of the regression on Linux 4.4-rc:

https://bugs.freedesktop.org/show_bug.cgi?id=93147

This patch tries to align all above events better from the
viewpoint of the drm core / of external callers to fix the problem:

1. The apparent start of vblank is shifted a few scanlines earlier,
so the vblank irq now always happens after start of this extended
vblank interval and thereby drm_update_vblank_count() always samples
the updated vblank count and timestamp of the new vblank interval.

To achieve this, the reporting of scanout positions by
radeon_get_crtc_scanoutpos() now operates as if the vblank starts
radeon_crtc->lb_vblank_lead_lines before the real start of the hw
vblank interval. This means that the vblank timestamps which are based
on these scanout positions will now update at this earlier start of
vblank.

2. The driver->get_vblank_counter() function will bump the returned
vblank count as read from the hw by +1 if the query happens after
the shifted earlier start of the vblank, but before the real hw increment
at start of vsync, so the counter appears to increment at start of vblank
in sync with the timestamp update.

3. Calls from vblank irq-context and regular non-irq calls are now
treated identical, always simulating the shifted vblank start, to
avoid inconsistent results for queries happening from vblank irq vs.
happening from drm_vblank_enable() or vblank_disable_fn().

4. The radeon_flip_work_func will delay mmio programming a pageflip until
the start of the real vblank iff it happens to execute inside the shifted
earlier start of the vblank, so pageflips now also appear to execute at
start of the shifted vblank, in sync with vblank counter and timestamp
updates. This to avoid some races between updates of vblank count and
timestamps that are used for swap scheduling and pageflip execution which
could cause pageflips to execute before the scheduled target vblank.

The lb_vblank_lead_lines "fudge" value is calculated as the size of
the display controllers line buffer in scanlines for the given video
mode: Vblank irq's are triggered by the line buffer logic when the line
buffer refill for a video frame ends, ie. when the line buffer source read
position enters the hw vblank. This means that a vblank irq could fire at
most as many scanlines before the current reported scanout position of the
crtc timing generator as the number of scanlines the line buffer can
maximally hold for a given video mode.

This patch has been successfully tested on a RV730 card with DCE-3 display
engine and on a evergreen card with DCE-4 display engine, in single-display
and dual-display configuration, with different video modes.

A similar patch is needed for amdgpu-kms to fix the same problem.

Limitations:

- Line buffer sizes in pixels are hard-coded on < DCE-4 to a value
  i just guessed to be high enough to work ok, lacking info on the true
  sizes atm.

Fixes: fdo#93147

Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Michel Dänzer <michel.daenzer@amd.com>
Cc: Harry Wentland <Harry.Wentland@amd.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>

(v1) Tested-by: Dave Witbrodt <dawitbro@sbcglobal.net>

(v2) Refine radeon_flip_work_func() for better efficiency:

     In radeon_flip_work_func, replace the busy waiting udelay(5)
     with event lock held by a more performance and energy efficient
     usleep_range() until at least predicted true start of hw vblank,
     with some slack for scheduler happiness. Release the event lock
     during waits to not delay other outputs in doing their stuff, as
     the waiting can last up to 200 usecs in some cases.

     Retested on DCE-3 and DCE-4 to verify it still works nicely.

(v2) Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2015-12-04 13:11:41 -05:00
..
reg_srcs drm/radeon: allow geom rings to be setup on r600/r700 (v2) 2014-02-06 12:13:52 +10:00
.gitignore
atom-bits.h
atom-names.h
atom-types.h
atom.c drm/radeon: add locking around atombios scratch space usage 2014-11-11 17:22:26 -05:00
atom.h drm/radeon: add locking around atombios scratch space usage 2014-11-11 17:22:26 -05:00
atombios_crtc.c Revert "drm/radeon: adjust pll when audio is not enabled" 2015-06-11 10:27:01 -04:00
atombios_dp.c drm/radeon: Handle DP_AUX_I2C_WRITE_STATUS_UPDATE 2015-09-08 20:12:53 +02:00
atombios_encoders.c drm/radeon: fix dpms when driver backlight control is disabled 2015-10-29 11:13:40 -04:00
atombios_i2c.c drm/radeon: add locking around atombios scratch space usage 2014-11-11 17:22:26 -05:00
atombios.h drm/radeon: fix comment 2015-05-26 15:09:03 +02:00
avivod.h
btc_dpm.c drm/radeon: remove some rv7xx leftovers from btc dpm code 2015-03-19 12:26:31 -04:00
btc_dpm.h Revert "drm/radeon: drop btc_get_max_clock_from_voltage_dependency_table" 2014-10-13 11:34:13 -04:00
btcd.h drm/radeon/dpm: use the driver state for dpm debugfs 2014-02-06 12:22:46 -05:00
cayman_blit_shaders.c drm: fix trivial typos 2015-10-21 11:35:11 -04:00
cayman_blit_shaders.h
ci_dpm.c drm/radeon/ci: silence a harmless PCC warning 2015-07-16 12:39:43 -04:00
ci_dpm.h drm/radeon: bind fan control on CI cards to hwmon interface (v2) 2015-01-22 10:38:48 -05:00
ci_smc.c drm/radeon: comment out some currently unused ci dpm code 2015-01-22 10:38:53 -05:00
cik_blit_shaders.c drm/radeon: Add CP init for CIK (v7) 2013-06-25 17:50:28 -04:00
cik_blit_shaders.h drm/radeon: Add CP init for CIK (v7) 2013-06-25 17:50:28 -04:00
cik_reg.h drm/radeon: Add H/W debugger kfd->kgd functions 2015-06-03 11:31:12 +03:00
cik_sdma.c drm/radeon: SDMA fix hibernation (CI GPU family). 2015-06-29 11:21:41 -04:00
cik.c drm/radeon: Fixup hw vblank counter/ts for new drm_update_vblank_count() (v2) 2015-12-04 13:11:41 -05:00
cikd.h drm/radeon: Add ATC VMID<-->PASID functions to kfd->kgd 2015-06-03 11:34:46 +03:00
clearstate_cayman.h drm/radeon: use NULL instead of zero in clearstate headers 2014-06-02 10:25:07 -04:00
clearstate_ci.h drm/radeon: use NULL instead of zero in clearstate headers 2014-06-02 10:25:07 -04:00
clearstate_defs.h drm/radeon: properly set up the RLC on ON/LN/TN (v3) 2013-06-27 10:49:18 -04:00
clearstate_evergreen.h drm/radeon: convert SI,CIK to use sumo_rlc functions 2013-08-30 16:30:08 -04:00
clearstate_si.h drm/radeon: use NULL instead of zero in clearstate headers 2014-06-02 10:25:07 -04:00
cypress_dpm.c drm/radeon: comment out some currently unused eg dpm code 2015-01-22 10:38:58 -05:00
cypress_dpm.h drm/radeon/dpm: add pre/post_set_power_state callback (BTC) 2013-06-27 19:16:19 -04:00
dce3_1_afmt.c drm/radeon: use proper ACR regisiter for DCE3.2 2015-06-01 23:16:22 -04:00
dce6_afmt.c drm/radeon/dce6: assign different audio pins to each encoder 2015-08-17 09:43:37 -04:00
drm_buffer.c drm/radeon: move drm_buffer to drm/radeon/ 2014-09-10 17:11:21 +10:00
drm_buffer.h drm/radeon: move drm_buffer to drm/radeon/ 2014-09-10 17:11:21 +10:00
evergreen_blit_shaders.c drm: fix trivial typos 2015-10-21 11:35:11 -04:00
evergreen_blit_shaders.h
evergreen_cs.c drm/radeon: remove volatile qualifier 2015-10-02 16:08:30 -04:00
evergreen_dma.c drm/radeon: split semaphore and sync object handling v2 2014-11-20 13:00:16 -05:00
evergreen_hdmi.c drm/radeon/audio: make sure connector is valid in hotplug case 2015-05-27 13:14:59 -04:00
evergreen_reg.h radeon/audio: enable DP audio 2015-01-22 10:42:19 -05:00
evergreen_smc.h drm/radeon/dpm: fix typo in EVERGREEN_SMC_FIRMWARE_HEADER_softRegisters 2014-03-06 16:46:58 -05:00
evergreen.c drm/radeon: Fixup hw vblank counter/ts for new drm_update_vblank_count() (v2) 2015-12-04 13:11:41 -05:00
evergreend.h drm/radeon: add get_allowed_info_register for EG/BTC 2015-03-19 12:26:39 -04:00
Kconfig drm/radeon: add userptr config option 2015-04-13 11:17:58 -04:00
kv_dpm.c drm/radeon/kv: implement get_current_sclk/mclk 2015-03-19 12:26:36 -04:00
kv_dpm.h drm/radeon/dpm: handle bapm on kb/kv 2013-09-11 11:44:38 -04:00
kv_smc.c drm/radeon/dpm: handle bapm on kb/kv 2013-09-11 11:44:38 -04:00
Makefile drm/radeon: add DisplayPort MST support (v2) 2015-03-19 12:26:51 -04:00
mkregtable.c Replace mentions of "list_struct" to "list_head" 2014-11-20 14:45:15 +01:00
ni_dma.c drm/radeon: Remove rdev->gart.pages_addr array 2015-01-22 11:48:03 -05:00
ni_dpm.c drm/radeon/ni: implement get_current_sclk/mclk 2015-03-19 12:26:32 -04:00
ni_dpm.h drm/radeon/dpm: implement vblank_too_short callback for si 2013-07-08 17:41:11 -04:00
ni_reg.h drm/radeon: add DisplayPort MST support (v2) 2015-03-19 12:26:51 -04:00
ni.c drm/radeon: disable vce init on cayman (v2) 2015-07-09 11:40:12 -04:00
nid.h drm/radeon: implement tn_set_vce_clocks 2015-05-26 10:31:21 -04:00
nislands_smc.h drm/radeon/kms: add dpm support for cayman (v5) 2013-06-27 19:16:10 -04:00
ObjectID.h drm/radeon: upstream ObjectID.h updates (v2) 2013-06-26 16:11:34 -04:00
ppsmc.h drm/radeon/dpm: add thermal dpm support for CI 2014-11-20 13:00:10 -05:00
pptable.h drm/radeon/dpm: add smc fan control for CI (v2) 2014-11-20 13:00:10 -05:00
r100_track.h drm/radeon: use common next_reloc function 2013-01-31 16:24:45 -05:00
r100.c drm/radeon: Fixup hw vblank counter/ts for new drm_update_vblank_count() (v2) 2015-12-04 13:11:41 -05:00
r100d.h drm/radeon: consolidate redundant macros and constants 2013-01-31 16:24:46 -05:00
r200.c drm/radeon: rename radeon_cs_reloc to radeon_bo_list 2014-12-03 14:26:47 -05:00
r300_cmdbuf.c drm/radeon: move drm_buffer to drm/radeon/ 2014-09-10 17:11:21 +10:00
r300_reg.h
r300.c radeon: Deinline indirect register accessor functions 2015-05-28 14:52:40 -04:00
r300d.h drm/radeon: consolidate redundant macros and constants 2013-01-31 16:24:46 -05:00
r420.c drm/radeon: Only flush HDP cache for indirect buffers from userspace 2014-08-18 17:09:44 -04:00
r420d.h
r500_reg.h drm/radeon: Bypass hw lut's for > 8 bpc framebuffer scanout. 2014-06-13 12:22:30 -04:00
r520.c drm/radeon: resume old pm late 2014-03-06 16:46:56 -05:00
r520d.h
r600_blit_shaders.c drm: fix trivial typos 2015-10-21 11:35:11 -04:00
r600_blit_shaders.h drm/radeon/kms: remove r6xx+ blit copy routines 2013-08-30 16:29:57 -04:00
r600_blit.c drm/radeon/kms: remove r6xx+ blit copy routines 2013-08-30 16:29:57 -04:00
r600_cp.c drm: Remove __OS_HAS_AGP 2015-09-30 10:44:48 +02:00
r600_cs.c drm/radeon: use pointers instead of indexes for CS chunks 2014-12-03 18:26:53 -05:00
r600_dma.c Linux 3.18-rc7 2014-12-02 10:58:33 +10:00
r600_dpm.c drm/radeon: use drm_mode_vrefresh() rather than mode->vrefresh 2015-02-25 16:06:05 -05:00
r600_dpm.h drm/radeon/dpm: add smc fan control for SI (v2) 2014-11-20 13:00:09 -05:00
r600_hdmi.c drm/radeon: fix ordering of AVI packet setup 2015-04-27 09:54:52 -04:00
r600_reg.h drm/radeon: add indirect accessors for UVD CTX registers 2013-06-27 19:16:30 -04:00
r600.c drm/radeon: Retry DDC probing on DVI on failure if we got an HPD interrupt 2015-12-04 13:09:12 -05:00
r600d.h Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2014-10-14 09:39:08 +02:00
radeon_acpi.c drm/radeon: Drop unnecessary #include <linux/vga_switcheroo.h> 2015-10-14 16:16:37 -04:00
radeon_acpi.h drm/radeon: implement handler for ACPI event 2012-09-20 13:10:36 -04:00
radeon_agp.c add blacklist for thinkpad T40p 2015-11-30 14:44:34 -05:00
radeon_asic.c drm/radeon: Drop unnecessary #include <linux/vga_switcheroo.h> 2015-10-14 16:16:37 -04:00
radeon_asic.h drm/radeon: add VCE 1.0 support v4 2015-05-26 10:31:23 -04:00
radeon_atombios.c drm/radeon: add DisplayPort MST support (v2) 2015-03-19 12:26:51 -04:00
radeon_atpx_handler.c vga_switcheroo: Constify vga_switcheroo_handler 2015-10-20 20:19:29 +02:00
radeon_audio.c drm/radeon: fix HDMI quantization_range for pre-DCE5 asics 2015-08-28 15:04:16 -04:00
radeon_audio.h drm/radeon: rework audio detect (v4) 2015-07-29 15:48:05 -04:00
radeon_benchmark.c drm/radeon: fix the crash in benchmark functions 2015-02-02 11:39:35 -05:00
radeon_bios.c drm/radeon: Drop unnecessary #include <linux/vga_switcheroo.h> 2015-10-14 16:16:37 -04:00
radeon_clocks.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
radeon_combios.c Add radeon suspend/resume quirk for HP Compaq dc5750. 2015-09-02 12:19:52 -04:00
radeon_connectors.c drm/radeon: Retry DDC probing on DVI on failure if we got an HPD interrupt 2015-12-04 13:09:12 -05:00
radeon_cp.c drm: Remove __OS_HAS_AGP 2015-09-30 10:44:48 +02:00
radeon_cs.c drm/radeon: Use drm_calloc_ab for CS relocs 2015-04-27 09:54:50 -04:00
radeon_cursor.c drm/radeon: Fold radeon_set_cursor() into radeon_show_cursor() 2015-07-09 11:40:02 -04:00
radeon_device.c drm/radeon: Spell vga_switcheroo consistently 2015-10-02 16:08:24 -04:00
radeon_display.c drm/radeon: Fixup hw vblank counter/ts for new drm_update_vblank_count() (v2) 2015-12-04 13:11:41 -05:00
radeon_dp_auxch.c drm/radeon/native: Send out the full AUX address 2015-08-31 11:38:30 -04:00
radeon_dp_mst.c drm/radeon: attach tile property to mst connector 2015-10-15 09:05:17 +10:00
radeon_drv.c drm/irq: Use unsigned int pipe in public API 2015-10-06 12:57:47 +02:00
radeon_drv.h drm/irq: Use unsigned int pipe in public API 2015-10-06 12:57:47 +02:00
radeon_encoders.c drm/radeon: move bl encoder assignment into bl init 2015-10-29 11:13:18 -04:00
radeon_family.h drm/radeon: add Mullins chip family 2014-05-06 12:19:57 +02:00
radeon_fb.c drm/radeon: restore the fbdev mode in lastclose 2015-10-05 09:44:18 -04:00
radeon_fence.c drm/radeon: fix wait to actually occur after the signaling callback 2015-03-11 08:30:35 -04:00
radeon_gart.c drm/radeon: Don't flush the GART TLB if rdev->gart.ptr == NULL 2015-07-16 12:39:37 -04:00
radeon_gem.c drm/radeon: fix user ptr race condition 2015-07-16 12:39:37 -04:00
radeon_i2c.c drm/radeon/radeon_i2c: Remove unused function 2015-01-22 10:38:51 -05:00
radeon_ib.c drm/radeon: track VM update fences separately 2014-11-20 13:00:17 -05:00
radeon_ioc32.c drm: Remove DRM_ARRAY_SIZE() for ARRAY_SIZE() 2014-06-10 09:36:17 +10:00
radeon_irq_kms.c drm/radeon: Retry DDC probing on DVI on failure if we got an HPD interrupt 2015-12-04 13:09:12 -05:00
radeon_irq.c drm/irq: Use unsigned int pipe in public API 2015-10-06 12:57:47 +02:00
radeon_kfd.c drm/radeon: Modify kgd_engine_type enum to match CZ 2015-07-20 09:16:47 +03:00
radeon_kfd.h drm/radeon: Don't use relative paths in #include 2015-01-02 23:32:49 +02:00
radeon_kms.c drm/radeon: Fixup hw vblank counter/ts for new drm_update_vblank_count() (v2) 2015-12-04 13:11:41 -05:00
radeon_legacy_crtc.c drm/radeon: Re-show the cursor after a modeset 2014-12-03 14:26:44 -05:00
radeon_legacy_encoders.c drm/radeon: move bl encoder assignment into bl init 2015-10-29 11:13:18 -04:00
radeon_legacy_tv.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
radeon_mem.c drm: Kill DRM_COPY_(TO|FROM)_USER 2013-12-18 11:35:01 +10:00
radeon_mn.c drm/radeon: fix userptr lockup 2015-05-07 11:00:15 -04:00
radeon_mode.h drm/radeon: Fixup hw vblank counter/ts for new drm_update_vblank_count() (v2) 2015-12-04 13:11:41 -05:00
radeon_object.c drm/radeon: Only prompt for enabling PAT when we'd allow write-combining 2015-11-16 11:05:45 -05:00
radeon_object.h gpu: drm: radeon: radeon_object: Remove unused function 2015-01-22 10:38:52 -05:00
radeon_pm.c drm/radeon: Fixup hw vblank counter/ts for new drm_update_vblank_count() (v2) 2015-12-04 13:11:41 -05:00
radeon_prime.c drm/radeon: export reservation_object from dmabuf to ttm 2014-10-03 09:19:17 -04:00
radeon_reg.h drm/radeon/cik: add hw cursor support (v2) 2013-06-26 16:11:38 -04:00
radeon_ring.c drm/radeon: always dump the ring content if it's available 2015-03-27 10:17:43 -04:00
radeon_sa.c drm/radeon: export reservation_object from dmabuf to ttm 2014-10-03 09:19:17 -04:00
radeon_semaphore.c drm/radeon: split semaphore and sync object handling v2 2014-11-20 13:00:16 -05:00
radeon_state.c drm/radeon: integer underflow in radeon_cp_dispatch_texture() 2015-01-05 12:10:08 -05:00
radeon_sync.c drm/radeon: track VM update fences separately 2014-11-20 13:00:17 -05:00
radeon_test.c drm/radeon: fix the crash in test functions 2015-02-02 11:39:36 -05:00
radeon_trace_points.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
radeon_trace.h tracing/drm: Remove unused TRACE_SYSTEM_STRING define 2015-04-07 12:29:23 -04:00
radeon_ttm.c drm: Remove __OS_HAS_AGP 2015-09-30 10:44:48 +02:00
radeon_ucode.c drm/radeon: add new firmware header definitions (v3) 2014-08-05 08:53:22 -04:00
radeon_ucode.h drm/radeon: add new firmware header definitions (v3) 2014-08-05 08:53:22 -04:00
radeon_uvd.c drm/radeon: stop trying to suspend UVD sessions 2015-05-07 11:00:18 -04:00
radeon_vce.c drm/radeon: add VCE 1.0 support v4 2015-05-26 10:31:23 -04:00
radeon_vm.c drm/radeon: check if BO_VA is set before adding it to the invalidation list 2015-07-09 11:40:10 -04:00
radeon.h drm/radeon: Retry DDC probing on DVI on failure if we got an HPD interrupt 2015-12-04 13:09:12 -05:00
rs100d.h
rs400.c drm/radeon: Split off gart_get_page_entry ASIC hook from set_page_entry 2015-01-22 11:46:17 -05:00
rs400d.h
rs600.c drm/radeon: Retry DDC probing on DVI on failure if we got an HPD interrupt 2015-12-04 13:09:12 -05:00
rs600d.h drm/radeon/kms: add register definitions for audio 2012-04-24 09:50:13 +01:00
rs690.c drm/radeon: Fixup hw vblank counter/ts for new drm_update_vblank_count() (v2) 2015-12-04 13:11:41 -05:00
rs690d.h drm/radeon: Use direct mapping for fast fb access on RS690 2013-04-09 10:31:31 -04:00
rs780_dpm.c drm/radeon/rs780: implement get_current_sclk/mclk 2015-03-19 12:26:29 -04:00
rs780_dpm.h drm/radeon/kms: add dpm support for rs780/rs880 2013-06-27 10:49:25 -04:00
rs780d.h drm/radeon/dpm: add debugfs support for RS780/RS880 (v3) 2013-07-17 16:47:52 -04:00
rv6xx_dpm.c drm/radeon/rv6xx: implement get_current_sclk/mclk 2015-03-19 12:26:29 -04:00
rv6xx_dpm.h drm/radeon/kms: add dpm support for rv6xx (v3) 2013-06-27 10:50:08 -04:00
rv6xxd.h drm/radeon/kms: add dpm support for rv6xx (v3) 2013-06-27 10:50:08 -04:00
rv200d.h
rv250d.h
rv350d.h
rv515.c drm/radeon: make sure mode init is complete in bandwidth_update 2014-11-06 15:42:44 -05:00
rv515d.h drm/radeon: consolidate redundant macros and constants 2013-01-31 16:24:46 -05:00
rv730_dpm.c drm/radeon: make some dpm errors debug only 2015-11-25 11:28:42 -05:00
rv730d.h drm/radeon/kms: add dpm support for rv7xx (v4) 2013-06-27 19:14:59 -04:00
rv740_dpm.c drm/radeon/dpm/rv7xx: restructure code 2013-06-27 19:16:12 -04:00
rv740d.h drm/radeon/kms: add dpm support for rv7xx (v4) 2013-06-27 19:14:59 -04:00
rv770_dma.c drm/radeon: split semaphore and sync object handling v2 2014-11-20 13:00:16 -05:00
rv770_dpm.c drm/radeon: make some dpm errors debug only 2015-11-25 11:28:42 -05:00
rv770_dpm.h drm/radeon: comment out some currently unused 7xx dpm code 2015-01-22 10:38:58 -05:00
rv770_smc.c drm/radeon: protect concurrent smc register access with a spinlock 2013-09-11 11:44:28 -04:00
rv770_smc.h drm/radeon: protect concurrent smc register access with a spinlock 2013-09-11 11:44:28 -04:00
rv770.c drm/radeon: partially revert "fix VM_CONTEXT*_PAGE_TABLE_END_ADDR handling" 2015-05-28 09:54:43 -04:00
rv770d.h drm/radeon: disable semaphores for UVD V1 (v2) 2015-05-04 15:03:56 -04:00
si_blit_shaders.c The following text was taken from the original review request: 2012-03-24 10:08:39 -07:00
si_blit_shaders.h drm/radeon/kms: add support for CP setup on SI 2012-03-21 06:55:54 +00:00
si_dma.c drm/radeon: Remove rdev->gart.pages_addr array 2015-01-22 11:48:03 -05:00
si_dpm.c drm/radeon: fix quirk for MSI R7 370 Armor 2X 2015-11-16 11:05:54 -05:00
si_dpm.h drm/radeon: bind fan control on SI cards to hwmon interface 2015-01-22 10:38:48 -05:00
si_reg.h drm/radeon: SI tiling fixes for display 2012-06-20 19:55:56 +01:00
si_smc.c drm/radeon/si: Add support for new ucode format (v3) 2014-08-05 08:53:23 -04:00
si.c drm/radeon: Fixup hw vblank counter/ts for new drm_update_vblank_count() (v2) 2015-12-04 13:11:41 -05:00
sid.h drm/radeon: add support for vce 1.0 clock gating 2015-05-26 10:31:24 -04:00
sislands_smc.h drm/radeon/dpm: add smc fan control for SI (v2) 2014-11-20 13:00:09 -05:00
smu7_discrete.h drm/radeon/dpm: add smc fan control for CI (v2) 2014-11-20 13:00:10 -05:00
smu7_fusion.h drm/radeon/kms: add dpm support for KB/KV 2013-08-30 16:30:28 -04:00
smu7.h drm/radeon/kms: add dpm support for KB/KV 2013-08-30 16:30:28 -04:00
sumo_dpm.c drm/radeon/sumo: implement get_current_sclk/mclk 2015-03-19 12:26:34 -04:00
sumo_dpm.h drm/radeon: comment out some currently unused sumo dpm code 2015-01-22 10:38:57 -05:00
sumo_smc.c drm/radeon/dpm: make some functions static for sumo 2014-01-07 12:55:50 -05:00
sumod.h drm/radeon: add dpm UVD handling for sumo asics 2013-06-27 19:15:48 -04:00
trinity_dpm.c drm/radeon/tn/si: enable/disable vce cg when encoding v2 2015-05-26 10:31:25 -04:00
trinity_dpm.h drm/radeon/dpm: add bapm callback for trinity 2013-09-11 11:44:39 -04:00
trinity_smc.c drm/radeon/dpm: make some functions static for TN 2014-01-07 12:55:57 -05:00
trinityd.h drm/radeon: add dpm UVD handling for TN asics (v2) 2013-06-27 19:15:48 -04:00
uvd_v1_0.c drm/radeon: disable semaphores for UVD V1 (v2) 2015-05-04 15:03:56 -04:00
uvd_v2_2.c drm/radeon: disable semaphores for UVD V1 (v2) 2015-05-04 15:03:56 -04:00
uvd_v3_1.c drm/radeon: allow semaphore emission to fail 2013-11-15 15:56:09 -05:00
uvd_v4_2.c drm/radeon: split out radeon_uvd_resume from uvd_v4_2_resume 2013-08-30 16:31:12 -04:00
vce_v1_0.c drm/radeon: add support for vce 1.0 clock gating 2015-05-26 10:31:24 -04:00
vce_v2_0.c drm/radeon: rework VCE FW size calculation 2015-05-26 10:31:20 -04:00