Michel Dänzer
5b726b6390
radeon: Improve vblank counter.
...
The frame counter seems to increase only at the end of vertical blank, so we
need to add 1 while in vertical blank.
2007-07-06 09:50:50 +02:00
Jesse Barnes
7f2a1cf275
Merge branch 'vblank-rework' into vblank
2007-06-22 11:12:02 -07:00
Jesse Barnes
97dcd7fd25
more vblank rework
...
- use a timer for disabling vblank events to avoid enable/disable calls too
often
- make i915 work with pre-965 chips again (would like to structure this
better, but this hack works on my test system)
2007-06-22 11:06:51 -07:00
Michel Dänzer
d2d53024fb
Fix vblank wait condition.
...
Sync-to-vblank actually works again for me with radeon.
2007-06-22 11:45:23 +02:00
Michel Dänzer
2738bca6f5
Use drm_calloc instead of assigning 0.
2007-06-22 11:44:38 +02:00
Michel Dänzer
6e2cd7c163
drm_modeset_ctl_t fixes.
...
s/u64/drm_u64_t/ to allow userspace code using drm.h to compile.
Move 64 bit arg member to the beginning to avoid alignment issues with 32
bit userspace on 64 bit kernels.
2007-06-22 11:44:19 +02:00
Michel Dänzer
b8dd314875
Remove mask parameter from radeon_acknowledge_irqs().
...
Simply always acknowledge all interrupts we're interested in, to avoid hard
hangs when an unexpected interrupt is flagged.
2007-06-22 11:42:54 +02:00
Jesse Barnes
24c09faec1
Merge branch 'vblank-rework' into vblank
2007-06-21 15:26:34 -07:00
Jesse Barnes
afe842297f
RADEON: fix race in vblank interrupt handling
...
It's possible that we disable vblank interrupts and clear the
corresponding flag in irq_enable_reg, but receive an interrupt at just
the wrong time, causing us to not ack it properly, nor report to the
core kernel that it was handled. Fix that case by always handling
vblank interrupts, even if the irq_enable_reg field is clear.
2007-06-21 15:23:20 -07:00
Jesse Barnes
2d24455ed8
Remove broken CRTC enable checks and incorrect user irq enable in set_pipe
...
routine.
2007-06-18 17:43:58 -07:00
Michel Dänzer
d8ed021d29
radeon: VBlank rework fixups.
...
Fix range of frame counter registers.
Use DRM_ERR() instead of Linux specific error codes in shared code.
Remove duplicate register definitions and superfluous local variables.
2007-06-18 13:10:37 +02:00
Jesse Barnes
741d1c8031
Remove broken crtc enable checks, radeon does it slightly differently
...
(this makes get_vblank_counter return an actual value).
2007-06-15 17:06:46 -07:00
Jesse Barnes
b6610363e3
First cut at radeon support for the vblank rework.
2007-06-15 11:21:57 -07:00
Michel Dänzer
0f5334be2b
Remove DRIVER_IRQ_VBL(2).
...
If the driver doesn't support vertical blank interrupts, it won't call
drm_vblank_init(), and dev->num_crtcs will be 0.
Also fix an off-by-one test against dev->num_crtcs.
2007-06-15 11:01:51 +02:00
Michel Dänzer
fbee089aca
Make vblank waitqueue per CRTC.
2007-06-15 10:50:22 +02:00
Michel Dänzer
82e2c3304d
Wake up vblank waitqueue in drm_handle_vblank().
2007-06-15 10:25:50 +02:00
Michel Dänzer
914a810a82
i915: Fix tests for vblank interrupts being enabled on CRTC by X server.
2007-06-15 10:21:44 +02:00
Michel Dänzer
7f95a06c61
Return current sequence number to userspace after blocking wait for vblank.
2007-06-15 10:12:23 +02:00
Michel Dänzer
1000d88ddf
Fix memory leaks in vblank error paths.
...
Also use drm_calloc instead of drm_alloc and memset, and use the size of the
struct instead of the size of the pointer for allocation...
2007-06-15 10:10:33 +02:00
Jesse Barnes
b06268294a
Comment new vblank routines and fixup several issues:
...
- use correct refcount variable in get/put routines
- extract counter update from drm_vblank_get
- make signal handling callback per-crtc
- update interrupt handling logic, drivers should use drm_handle_vblank
- move wakeup and counter update logic to new drm_handle_vblank routine
- fixup usage of get/put in light of counter update extraction
- fix longstanding bug in signal code, update pending counter only
*after* we're sure we'll setup signal handling
2007-06-14 11:32:31 -07:00
Jesse Barnes
1a4b9294a2
Remove unnecessary (and uncommented!) read barrier from the interrupt
...
path. It doesn't appear to serve any useful purpose.
2007-06-12 16:29:09 -07:00
Jesse Barnes
ca47fa90b7
Update vblank code:
...
- move pre/post modeset ioctl to core
- fixup i915 buffer swap
- fix outstanding signal count code
- create new core vblank init routine
- test (works with glxgears)
- simplify i915 interrupt handler
2007-06-12 13:35:41 -07:00
Jesse Barnes
db689c7b95
Initial checkin of vblank rework. Code attempts to reduce the number
...
of vblank interrupt in order to save power.
2007-06-12 10:44:21 -07:00
Dave Airlie
280083d4a2
use krh's idr mods to remove lists from idr code
2007-06-10 15:40:21 +10:00
Oliver McFadden
3181573073
r300: Added the CP maximum fetch size and ring rptr update variables.
2007-06-08 19:40:57 +00:00
Dave Airlie
7426da7538
oops must fix this properly at some point
2007-06-07 18:45:00 +10:00
Dave Airlie
e22f428f5f
drm: fix radeon setparam alignment issues on 32/64-bit
2007-06-07 18:41:18 +10:00
Oliver McFadden
39625f9621
r300: Small correction to the previous commit.
2007-06-05 19:19:42 +00:00
Alex Deucher
9e0bd88c61
r300: Document more of the RADEON_RBBM_STATUS register.
2007-06-05 19:05:49 +00:00
Wang Zhenyu
109e2a10f2
Add support for the G33, Q33, and Q35 chipsets.
...
These require that the status page be referenced by a pointer in GTT, rather
than phsyical memory. So, we have the X Server allocate that memory and tell
us the address, instead.
2007-06-05 11:15:29 -07:00
Dave Airlie
5bd0ca125e
remove include of linux ioctl32.h from drm drivers
2007-06-05 18:16:44 +10:00
Maurice van der Pot
4327d7f314
nouveau: fix RAMHT wrapping
2007-06-04 10:49:30 +10:00
Dave Airlie
a05d4fecd3
radeon: refine irq acking for vbl on crtc 2
2007-06-03 18:30:52 +10:00
root
a4cddc6596
Revert "drm: add new drm_wait_on function to replace macro"
...
This reverts commit 6e860d08d0
.
As I said not a good plan - this macro will have to stay for now,
trying to do the vbl code with the inline was a bit messy - may need specialised
drm wait on functions
2007-06-03 18:12:28 +10:00
root
8d95f4bd91
Revert "move i915 to new drm_wait_on function"
...
This reverts commit feb6803778
.
This was a bad idea, the macro is actually a bit harder to convert
to a static for the other use cases
2007-06-03 18:11:44 +10:00
Dave Airlie
4e9d215bdf
radeon: add support for vblank on crtc2
...
This add support for CRTC2 vblank on radeon similiar to the i915 support
2007-06-03 16:28:21 +10:00
Dave Airlie
638c8087de
drm: fixup initialisation of list heads and idr
2007-06-01 19:00:24 +10:00
Wang Zhenyu
5c394b309d
i915: Add support for 945GME chip
2007-05-31 11:09:15 +01:00
Wang Zhenyu
3917f85c73
i915: Add support for 965GME/GLE chip.
2007-05-31 11:09:07 +01:00
Jung-uk Kim
b0c8d885ce
Update a bunch of FreeBSD port code.
...
Tested on r200/r300. i915 updates still remain to be done.
2007-05-29 15:02:44 -07:00
Brian
fdc293d40c
reformatting, clean-ups
2007-05-29 14:56:17 -06:00
Brian
ccd7b6e8dd
Clean-ups and reformatting.
...
Use 4-space indentation consistently.
Replace occurances of:
if (cond) code;
with:
if (cond)
code;
to facilitate putting breakpoints on code.
2007-05-29 14:54:00 -06:00
Dave Airlie
056c2f249a
drm: move context handling code to use linux idr
2007-05-27 08:44:38 +10:00
Dave Airlie
f64674743a
drm: convert drawable handling to use Linux idr
...
This cleans this code up a lot and uses the generic Linux idr which is
designed for this.
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-05-27 07:26:52 +10:00
Thomas Gleixner
2bb7703698
drm: spinlock initializer cleanup
2007-05-26 05:20:59 +10:00
Michel Dänzer
8e083c522e
drm: make sure the drawable code doesn't call malloc(0).
...
Signed-off-by: Michel Dänzer <michel@tungstengraphics.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-05-26 04:35:54 +10:00
Dave Airlie
ad02c536df
radeon: add other IGP chipsets
2007-05-26 04:02:55 +10:00
Dave Airlie
58b2ed7832
Revert "drm/ttm: cleanup mm_ioctl ioctls to be separate ioctls."
...
This reverts commit 3fdef0dc20
.
ditto not on master yet
2007-05-26 03:48:08 +10:00
Dave Airlie
375f3f2884
Revert "drm/ttm: cleanup most of fence ioctl split out"
...
This reverts commit 3dfc1400e9
.
this shouldn't have gone on master yet
2007-05-26 03:47:48 +10:00
Dave Airlie
ce58e53a01
whitespace fixups from kernel
2007-05-26 03:32:34 +10:00