OpenCloudOS-Kernel/drivers/gpu/drm/radeon
Lucas Stach 537b4b462c drm/radeon: drop register readback in cayman_cp_int_cntl_setup
The read is taking a considerable amount of time (about 50us on this
machine). The register does not ever hold anything other than the ring
ID that is updated in this exact function, so there is no need for
the read modify write cycle.

This chops off a big chunk of the time spent in hardirq disabled
context, as this function is called multiple times in the interrupt
handler. With this change applied radeon won't show up in the list
of the worst IRQ latency offenders anymore, where it was a regular
before.

Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
2016-10-25 13:57:22 -04:00
..
reg_srcs drm/radeon: allow geom rings to be setup on r600/r700 (v2) 2014-02-06 12:13:52 +10:00
.gitignore
Kconfig drm/radeon: remove UMS support 2015-12-02 12:45:54 -05:00
Makefile drm/radeon: remove UMS support 2015-12-02 12:45:54 -05:00
ObjectID.h
atom-bits.h
atom-names.h
atom-types.h
atom.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04:00
atom.h 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
atombios_crtc.c drm/radeon: Prevent races on pre DCE4 between flip submission and completion. 2016-10-04 11:15:58 -04:00
atombios_dp.c drm/radeon: Don't retry 7 times in radeon_dp_dpcd() 2016-08-08 13:28:26 -04:00
atombios_encoders.c drm/radeon: support backlight control for UNIPHY3 2016-07-14 16:46:06 -04:00
atombios_i2c.c drm/radeon: add locking around atombios scratch space usage 2014-11-11 17:22:26 -05:00
avivod.h
btc_dpm.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -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 add comment to document intentionally unreachable code 2016-07-29 14:36:45 -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: fix indentation. 2016-03-16 18:08:06 -04:00
cik.c drm/radeon: squash lines for simple wrapper functions 2016-09-15 10:39:37 -04:00
cik_blit_shaders.c
cik_blit_shaders.h
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: Avoid double gpu reset by adding a timeout on IB ring tests. 2016-02-10 14:17:15 -05:00
cikd.h drm/radeon: switch UVD code to use UVD_NO_OP for padding 2016-08-24 16:25:05 -04: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
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: fix indentation. 2016-03-16 18:08:06 -04:00
cypress_dpm.h
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: Add a common function for DFS handling 2016-01-27 12:48:32 -05:00
evergreen.c drm/radeon: switch UVD code to use UVD_NO_OP for padding 2016-08-24 16:25:05 -04: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: allow PACKET3_PFP_SYNC_ME on evergreen 2016-07-07 14:50:59 -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: fix indentation. 2016-03-16 18:08:06 -04:00
evergreen_reg.h drm/radeon: fix vertical bars appear on monitor (v2) 2016-04-27 12:27:08 -04:00
evergreen_smc.h drm/radeon/dpm: fix typo in EVERGREEN_SMC_FIRMWARE_HEADER_softRegisters 2014-03-06 16:46:58 -05:00
evergreend.h drm/radeon: switch UVD code to use UVD_NO_OP for padding 2016-08-24 16:25:05 -04:00
kv_dpm.c drm/radeon: fix array out of bounds 2016-05-16 10:25:13 -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
mkregtable.c Replace mentions of "list_struct" to "list_head" 2014-11-20 14:45:15 +01:00
ni.c drm/radeon: drop register readback in cayman_cp_int_cntl_setup 2016-10-25 13:57:22 -04: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: fix indentation. 2016-03-16 18:08:06 -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/mst: port some MST setup code from DAL. 2016-04-06 14:57:46 -04:00
nid.h drm/radeon: switch UVD code to use UVD_NO_OP for padding 2016-08-24 16:25:05 -04:00
nislands_smc.h
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.c drm/radeon: squash lines for simple wrapper functions 2016-09-15 10:39:37 -04:00
r100_track.h
r100d.h
r200.c drm/radeon: rename radeon_cs_reloc to radeon_bo_list 2014-12-03 14:26:47 -05:00
r300.c drm/radeon: allow to force hard GPU reset. 2016-05-02 13:08:54 -04:00
r300_reg.h
r300d.h
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.c drm/radeon: squash lines for simple wrapper functions 2016-09-15 10:39:37 -04:00
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_cs.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04:00
r600_dma.c drm/radeon: Avoid double gpu reset by adding a timeout on IB ring tests. 2016-02-10 14:17:15 -05:00
r600_dpm.c drm/radeon: change vblank_time's calculation method to reduce computational error. 2016-10-13 18:25:49 -04: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 indentation. 2016-03-16 18:08:06 -04:00
r600_reg.h
r600d.h drm/radeon: add support for UVD_NO_OP register 2016-08-24 16:25:04 -04:00
radeon.h drm/radeon: Provide page_flip_target hook 2016-08-10 14:28:07 -04:00
radeon_acpi.c drm/radeon/atif: Send a hotplug event when we get dgpu display request 2016-09-22 10:30:58 -04:00
radeon_acpi.h drm/radeon: update radeon acpi header 2016-02-26 14:16:58 -05:00
radeon_agp.c add blacklist for thinkpad T40p 2015-11-30 14:44:34 -05:00
radeon_asic.c drm/radeon: add driver option to disable vce block. 2016-05-02 13:08:53 -04:00
radeon_asic.h drm/radeon: Support DRM_MODE_PAGE_FLIP_ASYNC 2016-05-04 20:19:03 -04:00
radeon_atombios.c drm/radeon: fix firmware info version checks 2016-07-28 10:07:07 -04:00
radeon_atpx_handler.c Linux 4.8-rc8 2016-09-28 12:08:49 +10:00
radeon_audio.c drm/radeon: Add a common function for DFS handling 2016-01-27 12:48:32 -05:00
radeon_audio.h drm/radeon: Add a common function for DFS handling 2016-01-27 12:48:32 -05: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
radeon_combios.c PCI: Remove includes of asm/pci-bridge.h 2016-02-05 16:29:28 -06:00
radeon_connectors.c drm/radeon: fix up dp aux tear down (v2) 2016-10-12 15:44:13 -04:00
radeon_cs.c drm: remove unused dev variables 2016-05-18 19:16:24 +02:00
radeon_cursor.c drm: Remove unused drm_device from drm_gem_object_lookup() 2016-05-17 08:47:30 +02:00
radeon_device.c drm/radeon: narrow asic_init for virtualization 2016-09-22 10:24:15 -04:00
radeon_display.c drm/radeon: fix modeset tear down code 2016-10-12 15:44:13 -04:00
radeon_dp_auxch.c Revert "drm/radeon: fix DP link training issue with second 4K monitor" 2016-10-24 17:00:26 -04:00
radeon_dp_mst.c drm/radeon: use helper for mst connector dpms. 2016-04-06 14:58:42 -04:00
radeon_drv.c drm/radeon: allow TA_CS_BC_BASE_ADDR on SI 2016-10-12 15:44:15 -04:00
radeon_drv.h drm/radeon: remove UMS support 2015-12-02 12:45:54 -05: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 Merge branch 'drm-next-4.9' of git://people.freedesktop.org/~agd5f/linux into drm-next 2016-09-20 06:17:38 +10:00
radeon_fence.c drm/radeon: Avoid double gpu reset by adding a timeout on IB ring tests. 2016-02-10 14:17:15 -05: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: Remove unused drm_device from drm_gem_object_lookup() 2016-05-17 08:47:30 +02:00
radeon_i2c.c drm/radeon: fix up dp aux tear down (v2) 2016-10-12 15:44:13 -04:00
radeon_ib.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04: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: Nuke ->vblank_disable_allowed 2016-05-21 07:03:31 +10:00
radeon_kfd.c drm/radeon: Return -EPROBE_DEFER when amdkfd not loaded 2016-02-27 22:52:40 +02:00
radeon_kfd.h drm/radeon: Return -EPROBE_DEFER when amdkfd not loaded 2016-02-27 22:52:40 +02:00
radeon_kms.c drm/radeon: handle runtime pm in drm pre/post close 2016-09-02 10:34:49 -04:00
radeon_legacy_crtc.c drm/radeon: use drm_crtc_vblank_{on,off}() 2016-06-13 18:38:00 +02:00
radeon_legacy_encoders.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04:00
radeon_legacy_tv.c
radeon_mn.c drm/radeon: make radeon_mn_get wait for mmap_sem killable 2016-05-23 17:04:14 -07:00
radeon_mode.h Merge branch 'drm-next-4.5' of git://people.freedesktop.org/~agd5f/linux into drm-next 2015-12-23 14:15:26 +10:00
radeon_object.c drm/ttm: remove lazy parameter from ttm_bo_wait 2016-05-04 20:21:26 -04:00
radeon_object.h drm/ttm: remove use_ticket parameter from ttm_bo_reserve 2016-05-04 20:21:21 -04:00
radeon_pm.c drm/radeon: use drm_crtc_vblank_{get,put}() 2016-06-06 18:05:08 +02:00
radeon_prime.c drm/radeon: export reservation_object from dmabuf to ttm 2014-10-03 09:19:17 -04:00
radeon_reg.h
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: hold reference to fences in radeon_sa_bo_new 2016-02-10 14:07:44 -05:00
radeon_semaphore.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04: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.h tracing/drm: Remove unused TRACE_SYSTEM_STRING define 2015-04-07 12:29:23 -04:00
radeon_trace_points.c
radeon_ttm.c mm: replace get_user_pages() write/force parameters with gup_flags 2016-10-19 08:11:43 -07: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: switch UVD code to use UVD_NO_OP for padding 2016-08-24 16:25:05 -04:00
radeon_vce.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04:00
radeon_vm.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04: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: Support DRM_MODE_PAGE_FLIP_ASYNC 2016-05-04 20:19:03 -04:00
rs600d.h
rs690.c drm/radeon: Fixup hw vblank counter/ts for new drm_update_vblank_count() (v2) 2015-12-18 17:29:47 -05:00
rs690d.h
rs780_dpm.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04:00
rs780_dpm.h
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: fix indentation. 2016-03-16 18:08:06 -04:00
rv6xx_dpm.h
rv6xxd.h
rv200d.h
rv250d.h
rv350d.h
rv515.c drm/radeon: Prevent races on pre DCE4 between flip submission and completion. 2016-10-04 11:15:58 -04:00
rv515d.h
rv730_dpm.c drm/radeon: make some dpm errors debug only 2015-11-25 11:28:42 -05:00
rv730d.h
rv740_dpm.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04:00
rv740d.h
rv770.c drm/radeon: switch UVD code to use UVD_NO_OP for padding 2016-08-24 16:25:05 -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: fix indentation. 2016-03-16 18:08:06 -04: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
rv770d.h drm/radeon: switch UVD code to use UVD_NO_OP for padding 2016-08-24 16:25:05 -04:00
si.c drm/radeon: allow TA_CS_BC_BASE_ADDR on SI 2016-10-12 15:44:15 -04:00
si_blit_shaders.c
si_blit_shaders.h
si_dma.c drm/radeon: Remove rdev->gart.pages_addr array 2015-01-22 11:48:03 -05:00
si_dpm.c drm/radeon/si_dpm: Limit clocks on HD86xx part 2016-10-21 11:11:32 -04: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
si_smc.c drm/radeon/si: Add support for new ucode format (v3) 2014-08-05 08:53:23 -04:00
sid.h drm/radeon: allow TA_CS_BC_BASE_ADDR on SI 2016-10-12 15:44:15 -04:00
sislands_smc.h drm/radeon/si/dpm: fix phase shedding setup 2016-09-28 16:13:16 -04:00
smu7.h drm/radeon/kms: add dpm support for KB/KV 2013-08-30 16:30:28 -04: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
sumo_dpm.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -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
trinity_dpm.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -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
uvd_v1_0.c drm/radeon: handle more than 10 UVD sessions 2016-05-04 20:19:43 -04:00
uvd_v2_2.c drm/radeon: handle more than 10 UVD sessions 2016-05-04 20:19:43 -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: handle more than 10 UVD sessions 2016-05-04 20:19:43 -04:00
vce_v1_0.c drm/radeon: properly byte swap vce firmware setup 2016-01-22 10:50:24 -05:00
vce_v2_0.c drm/radeon: fix indentation. 2016-03-16 18:08:06 -04:00