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 drm: create gitignore file for radeon 2009-09-25 13:08:21 +10:00
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 [rfc] drm/radeon/kms: pm debugging check for vbl. 2010-02-23 09:46:21 +10:00
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 drm/radeon: fix power supply kconfig interaction. 2010-05-21 15:41:20 +10:00
Makefile drm/radeon/kms: add drm blit support for evergreen 2010-10-06 11:46:30 +10:00
mkregtable.c drm/radeon: mkregtable.c: close a file before exit 2010-01-08 13:11:55 +10:00
ObjectID.h drm/radeon/kms: pull in the latest upstream ObjectID.h changes 2010-01-08 13:03:57 +10:00
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 drm/radeon: Fix sparc regression in r300_scratch() 2010-04-27 09:40:57 +10:00
r300_reg.h drm/radeon/kms: add support for square microtiles on r3xx-r5xx 2010-02-25 11:36:12 +10:00
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 drm/radeon/kms: Convert RS400/RS480 to new init path & fix legacy VGA (V3) 2009-10-02 08:51:46 +10:00
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 drm/radeon/kms: Convert R520 to new init path and associated cleanup 2009-09-29 11:15:56 +10:00
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 drm/radeon/kms: HDMI irq support 2010-04-23 14:12:17 +10:00
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 include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
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 drm: Remove drm_resource wrappers 2010-06-01 10:07:24 +10:00
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 drm/radeon: bump the UMS driver version for r6xx/r7xx const buffer support 2010-03-31 13:12:28 +10:00
radeon_encoders.c drm/radeon/kms/atom: add proper external encoders support 2010-11-18 14:56:36 +10:00
radeon_family.h drm/radeon/kms: print GPU family and device id when loading 2010-04-19 11:25:24 +10:00
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 drm: convert drm_ioctl to unlocked_ioctl 2009-12-18 11:22:31 +10:00
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 drm/radeon/kms: Convert R100 to new init path (V2) 2009-10-02 08:51:49 +10:00
rs400.c drivers/gpu/drm: Update WARN uses 2010-11-09 13:37:15 +10:00
rs400d.h drm/radeon/kms: Convert RS400/RS480 to new init path & fix legacy VGA (V3) 2009-10-02 08:51:46 +10:00
rs600.c drivers/gpu/drm: Update WARN uses 2010-11-09 13:37:15 +10:00
rs600d.h drm/radeon/kms: enable misc pm power state features on r5xx, rs6xx 2010-05-18 18:21:42 +10:00
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 drm/radeon/kms: display watermark updates (v2) 2010-03-31 14:54:47 +10:00
rv200d.h drm/radeon/kms: Convert R100 to new init path (V2) 2009-10-02 08:51:49 +10:00
rv250d.h drm/radeon/kms: Convert R100 to new init path (V2) 2009-10-02 08:51:49 +10:00
rv350d.h drm/radeon/kms: Convert RS400/RS480 to new init path & fix legacy VGA (V3) 2009-10-02 08:51:46 +10:00
rv515.c drm/radeon/kms: enable writeback (v2) 2010-10-06 11:38:08 +10:00
rv515d.h drm/radeon/kms: simplify & improve GPU reset V2 2010-04-06 11:21:11 +10:00
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