linux/drivers/gpu/drm/radeon
Thomas Hellstrom 702adba224 drm/ttm/radeon/nouveau: Kill the bo lock in favour of a bo device fence_lock
The bo lock used only to protect the bo sync object members, and since it
is a per bo lock, fencing a buffer list will see a lot of locks and unlocks.
Replace it with a per-device lock that protects the sync object members on
*all* bos. Reading and setting these members will always be very quick, so
the risc of heavy lock contention is microscopic. Note that waiting for
sync objects will always take place outside of this lock.

The bo device fence lock will eventually be replaced with a seqlock /
rcu mechanism so we can determine that a bo is idle under a
rcu / read seqlock.

However this change will allow us to batch fencing and unreserving of
buffers with a minimal amount of locking.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jerome Glisse <j.glisse@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-11-22 13:25:18 +10:00
..
reg_srcs drm/radeon/kms/evergreen: add some additional safe regs v2 2010-10-26 10:26:37 +10:00
.gitignore
atom-bits.h
atom-names.h
atom-types.h
atom.c drm/radeon/kms: add ioport register access 2010-08-02 10:00:07 +10:00
atom.h drm/radeon/kms: add ioport register access 2010-08-02 10:00:07 +10:00
atombios_crtc.c drm, kdb, kms: Change mode_set_base_atomic() enter argument to be an enum 2010-10-19 14:13:33 +10:00
atombios_dp.c drm/radeon/kms: rework encoder handling 2010-08-20 08:44:05 +10:00
atombios.h drm: radeon cleanup fixes... 2010-09-24 10:12:49 +10:00
avivod.h
evergreen_blit_kms.c drm/radeon/kms: fix alignment when allocating buffers 2010-11-18 14:56:53 +10:00
evergreen_blit_shaders.c drm/radeon/kms/evergreen: set the clear state to the blit state 2010-10-26 14:42:39 +10:00
evergreen_blit_shaders.h drm/radeon/kms: add drm blit support for evergreen 2010-10-06 11:46:30 +10:00
evergreen_cs.c drm/radeon/kms: drop taking lock around crtc lookup. 2010-07-22 09:57:13 +10:00
evergreen_reg.h drm/radeon/kms: Add crtc tiling setup support for evergreen 2010-08-02 10:00:02 +10:00
evergreen.c drm/radeon/kms: fix tiling info on evergreen 2010-11-18 14:56:59 +10:00
evergreend.h drm/radeon/kms/evergreen: set the clear state to the blit state 2010-10-26 14:42:39 +10:00
Kconfig
Makefile drm/radeon/kms: add drm blit support for evergreen 2010-10-06 11:46:30 +10:00
mkregtable.c
ObjectID.h
r100_track.h drm/radeon/kms: fix handling of tex lookup disable in cs checker on r2xx 2010-10-28 11:27:04 +10:00
r100.c drivers/gpu/drm: Update WARN uses 2010-11-09 13:37:15 +10:00
r100d.h drm/radeon: add basic zmask/hiz support (v4) 2010-08-02 11:54:26 +10:00
r200.c drm/radeon/kms: fix handling of tex lookup disable in cs checker on r2xx 2010-10-28 11:27:04 +10:00
r300_cmdbuf.c
r300_reg.h
r300.c drivers/gpu/drm: Update WARN uses 2010-11-09 13:37:15 +10:00
r300d.h drm/radeon: add basic zmask/hiz support (v4) 2010-08-02 11:54:26 +10:00
r420.c drm/radeon/kms: enable writeback (v2) 2010-10-06 11:38:08 +10:00
r420d.h
r500_reg.h drm/radeon/kms: Add crtc tiling setup support for r6xx/r7xx 2010-08-02 10:00:01 +10:00
r520.c drm/radeon/kms: enable writeback (v2) 2010-10-06 11:38:08 +10:00
r520d.h
r600_audio.c drm/radeon/kms: trivial code style fixes for audio 2010-08-02 10:17:10 +10:00
r600_blit_kms.c drm/radeon/kms: fix alignment when allocating buffers 2010-11-18 14:56:53 +10:00
r600_blit_shaders.c drm/radeon: remove viewport transform from r6xx/r7xx blit emit 2010-08-02 10:07:48 +10:00
r600_blit_shaders.h drm/radeon: add some missing copyright headers 2010-09-13 20:26:04 +10:00
r600_blit.c drm/r600: fix possible NULL pointer derefernce 2010-07-21 10:29:32 +10:00
r600_cp.c drm/radeon: Fix pci_map_page() error checking 2010-08-12 09:38:29 +10:00
r600_cs.c drm/radeon/kms: fix typo in r600 cs checker 2010-11-18 14:56:08 +10:00
r600_hdmi.c drm/radeon/kms: enable HDMI audio on RS600/RS690/RS740 2010-08-02 10:00:06 +10:00
r600_reg.h
r600.c drm/radeon/kms: fix alignment when allocating buffers 2010-11-18 14:56:53 +10:00
r600d.h drm/radeon/kms: fix and unify tiled buffer alignment checking for r6xx/7xx 2010-11-18 14:55:37 +10:00
radeon_acpi.c drm/radeon: tone down overchatty acpi debug messages. 2010-08-04 11:16:56 +10:00
radeon_agp.c drm/radeon/kms: fix agp mode setup on cards that use pcie bridges 2010-08-20 08:48:55 +10:00
radeon_asic.c drm/radeon/kms: add drm blit support for evergreen 2010-10-06 11:46:30 +10:00
radeon_asic.h drm/radeon/kms: add drm blit support for evergreen 2010-10-06 11:46:30 +10:00
radeon_atombios.c drm/radeon/kms: fix bugs in ddc and cd path router code 2010-11-09 13:43:43 +10:00
radeon_atpx_handler.c
radeon_benchmark.c drm/radeon/kms: fix alignment when allocating buffers 2010-11-18 14:56:53 +10:00
radeon_bios.c Merge branch 'drm-platform' into drm-testing 2010-07-07 18:37:35 +10:00
radeon_clocks.c drm/radeon/kms: remove useless clock code 2010-09-02 11:28:52 +10:00
radeon_combios.c drm/radeon/kms: fix i2c pad masks on rs4xx 2010-11-19 09:02:05 +10:00
radeon_connectors.c drm/radeon/kms: properly power up/down the eDP panel as needed (v4) 2010-11-18 14:56:25 +10:00
radeon_cp.c
radeon_cs.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-10-24 13:41:39 -07:00
radeon_cursor.c Merge branch 'drm-fixes' of /home/airlied/kernel/linux-2.6 into drm-core-next 2010-10-19 09:48:34 +10:00
radeon_device.c drm/radeon/kms: fix alignment when allocating buffers 2010-11-18 14:56:53 +10:00
radeon_display.c drm/radeon/kms: add support for clock/data path routers 2010-11-09 13:43:32 +10:00
radeon_drv.c Merge branch 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2010-10-26 18:57:59 -07:00
radeon_drv.h
radeon_encoders.c drm/radeon/kms/atom: add proper external encoders support 2010-11-18 14:56:36 +10:00
radeon_family.h
radeon_fb.c Merge branch 'drm-fixes' of /home/airlied/kernel/linux-2.6 into drm-core-next 2010-10-19 09:48:34 +10:00
radeon_fence.c drivers/gpu/drm: Update WARN uses 2010-11-09 13:37:15 +10:00
radeon_gart.c drm/radeon/kms: fix alignment when allocating buffers 2010-11-18 14:56:53 +10:00
radeon_gem.c drm/radeon/kms: fix alignment when allocating buffers 2010-11-18 14:56:53 +10:00
radeon_i2c.c drm/radeon/kms: i2c s/sprintf/snprintf/g for safety 2010-11-19 09:27:48 +10:00
radeon_ioc32.c
radeon_irq_kms.c drm/radeon/kms: don't enable MSIs on AGP boards 2010-08-20 08:49:37 +10:00
radeon_irq.c drm: radeon: fix error value sign 2010-11-18 14:55:46 +10:00
radeon_kms.c drm/radeon: don't allow device to be opened if powered down 2010-09-22 12:32:46 +10:00
radeon_legacy_crtc.c drm, kdb, kms: Change mode_set_base_atomic() enter argument to be an enum 2010-10-19 14:13:33 +10:00
radeon_legacy_encoders.c drm/radeon/kms/atom: cleanup and unify DVO handling 2010-11-18 14:56:31 +10:00
radeon_legacy_tv.c drm/radeon/kms: move a bunch of modesetting debug to correct debug usage. 2010-08-02 10:47:07 +10:00
radeon_mem.c
radeon_mode.h drm/radeon/kms/atom: add proper external encoders support 2010-11-18 14:56:36 +10:00
radeon_object.c drm/ttm/radeon/nouveau: Kill the bo lock in favour of a bo device fence_lock 2010-11-22 13:25:18 +10:00
radeon_object.h drm/ttm/radeon/nouveau: Kill the bo lock in favour of a bo device fence_lock 2010-11-22 13:25:18 +10:00
radeon_pm.c drm/radeon: Modify radeon_pm_in_vbl to use radeon_get_crtc_scanoutpos() 2010-10-06 11:46:28 +10:00
radeon_reg.h drm/radeon/kms: fix handling of tex lookup disable in cs checker on r2xx 2010-10-28 11:27:04 +10:00
radeon_ring.c drm/radeon/kms: fix alignment when allocating buffers 2010-11-18 14:56:53 +10:00
radeon_state.c drm: block userspace under allocating buffer and having drivers overwrite it (v2) 2010-08-17 14:52:25 +10:00
radeon_test.c drm/radeon/kms: fix alignment when allocating buffers 2010-11-18 14:56:53 +10:00
radeon_ttm.c drm/radeon/kms: fix alignment when allocating buffers 2010-11-18 14:56:53 +10:00
radeon.h drm/radeon/kms/atom: cleanup and unify DVO handling 2010-11-18 14:56:31 +10:00
rs100d.h
rs400.c drivers/gpu/drm: Update WARN uses 2010-11-09 13:37:15 +10:00
rs400d.h
rs600.c drivers/gpu/drm: Update WARN uses 2010-11-09 13:37:15 +10:00
rs600d.h
rs690.c Merge branch 'drm-fixes' of /home/airlied/kernel/linux-2.6 into drm-core-next 2010-10-19 09:48:34 +10:00
rs690d.h
rv200d.h
rv250d.h
rv350d.h
rv515.c drm/radeon/kms: enable writeback (v2) 2010-10-06 11:38:08 +10:00
rv515d.h
rv770.c drm/radeon/kms: fix alignment when allocating buffers 2010-11-18 14:56:53 +10:00
rv770d.h drm/radeon/kms/r7xx: add workaround for hw issue with HDP flush 2010-08-02 10:06:18 +10:00