linux/drivers/gpu/drm/radeon
Mario Kleiner f5a8020903 drm/kms/radeon: Add support for precise vblank timestamping.
This patch adds new functions for use by the drm core:

.get_vblank_timestamp() provides a precise timestamp
for the end of the most recent (or current) vblank
interval of a given crtc, as needed for the DRI2
implementation of the OML_sync_control extension.

It is a thin wrapper around the drm function
drm_calc_vbltimestamp_from_scanoutpos() which does
almost all the work and is shared across drivers.

.get_scanout_position() provides the current horizontal
and vertical video scanout position and "in vblank"
status of a given crtc, as needed by the drm for use by
drm_calc_vbltimestamp_from_scanoutpos().

The function is also used by the dynamic gpu reclocking
code to determine when it is safe to reclock inside vblank.

For that purpose radeon_pm_in_vbl() is modified to
accomodate a small change in the function prototype of
the radeon_get_crtc_scanoutpos() which is hooked up to
.get_scanout_position().

This code has been tested on AVIVO hardware, a RV530
(ATI Mobility Radeon X1600) in a Intel Core-2 Duo MacBookPro
and some R600 variant (FireGL V7600) in a single cpu
AMD Athlon 64 PC.

Signed-off-by: Mario Kleiner <mario.kleiner@tuebingen.mpg.de>
Reviewed-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-11-22 11:48:26 +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 drm/radeon: introduce kernel modesetting for radeon hardware 2009-06-15 12:01:53 +10:00
atom.c
atom.h
atombios.h drm: radeon cleanup fixes... 2010-09-24 10:12:49 +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
avivod.h
evergreen.c drm/radeon/kms: fix tiling info on evergreen 2010-11-18 14:56:59 +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
evergreen_reg.h
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/kms: change Kconfig text to reflect the new option. 2010-02-08 15:05:58 +10:00
Makefile drm/radeon/kms: add drm blit support for evergreen 2010-10-06 11:46:30 +10:00
mkregtable.c
ObjectID.h
r100.c drivers/gpu/drm: Update WARN uses 2010-11-09 13:37:15 +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
r100d.h
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.c drivers/gpu/drm: Update WARN uses 2010-11-09 13:37:15 +10:00
r300_cmdbuf.c
r300_reg.h
r300d.h
r420.c drm/radeon/kms: enable writeback (v2) 2010-10-06 11:38:08 +10:00
r420d.h
r500_reg.h
r520.c drm/radeon/kms: enable writeback (v2) 2010-10-06 11:38:08 +10:00
r520d.h
r600.c drm/radeon/kms: fix alignment when allocating buffers 2010-11-18 14:56:53 +10:00
r600_audio.c
r600_blit.c
r600_blit_kms.c drm/radeon/kms: fix alignment when allocating buffers 2010-11-18 14:56:53 +10:00
r600_blit_shaders.c
r600_blit_shaders.h drm/radeon: add some missing copyright headers 2010-09-13 20:26:04 +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
r600_reg.h
r600d.h drm/radeon/kms: fix and unify tiled buffer alignment checking for r6xx/7xx 2010-11-18 14:55:37 +10:00
radeon.h drm/radeon/kms/atom: cleanup and unify DVO handling 2010-11-18 14:56:31 +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
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/kms/radeon: Add support for precise vblank timestamping. 2010-11-22 11:48:26 +10:00
radeon_drv.c drm/kms/radeon: Add support for precise vblank timestamping. 2010-11-22 11:48:26 +10: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 drm: convert drm_ioctl to unlocked_ioctl 2009-12-18 11:22:31 +10:00
radeon_irq.c drm: radeon: fix error value sign 2010-11-18 14:55:46 +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_kms.c drm/kms/radeon: Add support for precise vblank timestamping. 2010-11-22 11:48:26 +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
radeon_mem.c
radeon_mode.h drm/kms/radeon: Add support for precise vblank timestamping. 2010-11-22 11:48:26 +10:00
radeon_object.c drm/radeon/kms: fix alignment when allocating buffers 2010-11-18 14:56:53 +10:00
radeon_object.h drm/radeon/kms: fix alignment when allocating buffers 2010-11-18 14:56:53 +10:00
radeon_pm.c drm/kms/radeon: Add support for precise vblank timestamping. 2010-11-22 11:48:26 +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
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