Michel Dänzer
2627131e5d
i915: Bump minor for swap scheduling ioctl and secondary vblank support.
2006-09-28 15:41:36 +02:00
Michel Dänzer
0356fe260d
i915_vblank_swap: Add support for DRM_VBLANK_NEXTONMISS.
2006-09-28 15:41:36 +02:00
Michel Dänzer
50a0284a61
Only return EBUSY after we've established we need to schedule a new swap.
2006-09-28 15:41:36 +02:00
Michel Dänzer
89e323e490
Core vsync: Add flag DRM_VBLANK_NEXTONMISS.
...
When this flag is set and the target sequence is missed, wait for the next
vertical blank instead of returning immediately.
2006-09-28 15:41:36 +02:00
Michel Dänzer
7f09f957d9
Fix 'sequence has passed' condition in i915_vblank_swap().
2006-09-28 15:41:36 +02:00
Michel Dänzer
c2bdb76814
Add SAREA fileds for determining which pipe to sync window buffer swaps to.
2006-09-28 15:41:36 +02:00
Michel Dänzer
87c57cba1a
Make handling of dev_priv->vblank_pipe more robust.
...
Initialize it to default value if it hasn't been set by the X server yet.
In i915_vblank_pipe_set(), only update dev_priv->vblank_pipe and call
i915_enable_interrupt() if the argument passed from userspace is valid to avoid
corrupting dev_priv->vblank_pipe on invalid arguments.
2006-09-28 15:41:36 +02:00
Michel Dänzer
d5a0f10751
DRM_I915_VBLANK_SWAP ioctl: Take drm_vblank_seq_type_t instead of pipe number.
...
Handle relative as well as absolute target sequence numbers.
Return error if target sequence has already passed, so userspace can deal with
this situation as it sees fit.
On success, return the sequence number of the vertical blank when the buffer
swap is expected to take place.
Also add DRM_IOCTL_I915_VBLANK_SWAP definition for userspace code that may want
to use ioctl() instead of drmCommandWriteRead().
2006-09-28 15:41:36 +02:00
Michel Dänzer
df7551ef73
Change first valid DRM drawable ID to be 1 instead of 0.
...
This makes it easier for userspace to know when it needs to allocate an ID.
Also free drawable information memory when it's no longer needed.
2006-09-28 15:41:36 +02:00
Michel Dänzer
d04751face
Add copyright notice.
2006-09-28 15:41:36 +02:00
Michel Dänzer
257771fa29
i915: Add ioctl for scheduling buffer swaps at vertical blanks.
...
This uses the core facility to schedule a driver callback that will be called
ASAP after the given vertical blank interrupt with the HW lock held.
2006-09-28 15:41:36 +02:00
Michel Dänzer
23d2833aaa
Locking and memory management fixes.
2006-09-28 15:41:36 +02:00
Michel Dänzer
43f8675534
Export drm_get_drawable_info symbol from core.
2006-09-28 15:41:35 +02:00
Michel Dänzer
af48be1096
Only reallocate cliprect memory if the number of cliprects changes.
...
Also improve diagnostic output.
2006-09-28 15:41:35 +02:00
Michel Dänzer
29598e5253
Add support for tracking drawable information to core
...
Actually make the existing ioctls for adding and removing drawables do
something useful, and add another ioctl for the X server to update drawable
information. The only kind of drawable information tracked so far is cliprects.
2006-09-28 15:41:35 +02:00
Michel Dänzer
0c7d7f4361
Add support for secondary vertical blank interrupt to i915 driver.
...
When the vertical blank interrupt is enabled for both pipes, pipe A is
considered primary and pipe B secondary. When it's only enabled for one pipe,
it's always considered primary for backwards compatibility.
2006-09-28 15:41:35 +02:00
Michel Dänzer
ab351505f3
Add support for secondary vertical blank interrupt to DRM core.
2006-09-28 15:41:35 +02:00
Thomas Hellstrom
c52fafa628
Don't enable fence / buffer objects on non-linux systems.
...
Bump driver minor and date.
2006-09-28 11:33:03 +02:00
Thomas Hellstrom
273eb7833d
Add /proc filesystem buffer / fence object accounting.
...
Check for NULL pointer in the i915 flush handler.
Remove i915_sync_flush declaration.
2006-09-25 11:51:08 +02:00
Anish Mistry
255f3e6f76
bug 7092 : add pci ids for mach64 in Dell poweredge 4200
2006-09-22 03:43:34 +10:00
Roland Scheidegger
1f71b8d7a4
do a TCL state flush before accessing VAP_CNTL to prevent lockups on r200 when enabling/disabling vertex programs
2006-09-20 19:44:57 +02:00
Thomas Hellstrom
fa511a3ff5
Allow for 64-bit map handles of ttms and buffer objects.
2006-09-20 16:31:15 +02:00
Michel Dänzer
6ba9127753
Use register writes instead of BITBLT_MULTI packets for buffer swap blits.
...
This takes up two more ring buffer entries per rectangle blitted but makes sure
the blit is performed top to bottom, reducing the likelyhood of tearing.
2006-09-15 16:55:40 +02:00
Thomas Hellstrom
f613022cee
Allow a "native type" to be associated with a fence sequence.
...
In the intel case, we can associate a flush with a sequence.
2006-09-15 16:47:09 +02:00
Thomas Hellstrom
49fbeb339c
Some bugfixes.
...
Change the fence object interface somewhat to allow some more flexibility.
Make list IOCTLS really restartable.
Try to avoid busy-waits in the kernel using immediate return to user-space with an -EAGAIN.
2006-09-15 11:18:35 +02:00
Thomas Hellstrom
191e284709
More bugfixes.
...
Disable the i915 IRQ turnoff for now since it seems to be causing problems.
2006-09-12 12:01:00 +02:00
Dave Airlie
3cc64a943a
drm: use radeon specific names for radeon flags
2006-09-12 06:13:14 +10:00
Thomas Hellstrom
99acb79366
Various bugfixes.
2006-09-08 17:24:38 +02:00
Eric Anholt
55057660f0
Put the PCI device/vendor id in the drm_device_t.
...
This helps us unbreak FreeBSD DRM from the 965 changes.
2006-09-06 23:25:14 -07:00
Thomas Hellstrom
6042153968
Fence all unfenced buffers function.
2006-09-05 18:00:25 +02:00
Thomas Hellstrom
034fc31292
i915: Only turn on user IRQs when they are needed.
2006-09-05 14:23:18 +02:00
Thomas Hellstrom
550f51b4bf
Buffer object wait IOCTL operation.
...
Remove option to wait for fence / buffers and block signals.
2006-09-04 21:50:12 +02:00
Thomas Hellstrom
405b5d9ca8
Flag bit pattern bugfixes. Remove some error messages.
2006-09-01 18:11:05 +02:00
Thomas Hellstrom
ef8e618cf3
Export buffer info on map and validate ioctls.
...
Add an info ioctl operation.
2006-09-01 16:38:06 +02:00
Thomas Hellstrom
44f6d08988
Validation and fencing.
2006-08-31 21:42:29 +02:00
Thomas Hellstrom
ec8c79b79d
More mapping synchronization.
...
libdrm validate and fencing functions.
2006-08-31 14:10:13 +02:00
Thomas Hellstrom
d39055174b
Remove the buffer object hint field and use it only
...
as an argument.
Validate stub.
2006-08-30 17:40:07 +02:00
Thomas Hellstrom
e47a4fda2e
Memory manager init and takedown.
2006-08-30 13:04:08 +02:00
Thomas Hellstrom
033bda07e9
Buffer object reply fill in.
...
Lindent of drm_bo.c drm_ttm.c
2006-08-30 09:57:35 +02:00
Thomas Hellstrom
de144ba23c
Part of buffer object libdrm interface.
2006-08-29 21:57:37 +02:00
Thomas Hellstrom
23f01c9fe8
Checkpoint commit. Buffer object flags and IOCTL argument list.
2006-08-29 18:40:08 +02:00
Thomas Hellstrom
0dedfc2cd0
Checkpoint ttm addition to buffer objects.
2006-08-29 14:52:02 +02:00
Thomas Hellstrom
279e8d26c6
64-bit IOCTL integer (Michel Dnzer & Brian Paul)
2006-08-29 10:45:34 +02:00
Thomas Hellstrom
2057406470
Buffer object creation.
2006-08-28 17:51:53 +02:00
Thomas Hellstrom
0d67356de4
Proper TTM dereferencing
...
Initial buffer object creation.
2006-08-28 16:36:37 +02:00
Thomas Hellstrom
e181f594a4
Add a 64-bit drm unsigned type for 64-bit clean IOCTLS.
...
Conversion functions in drmP.h and xf86drm.c.
2006-08-28 09:49:09 +02:00
Thomas Hellstrom
4ddabd1562
Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into drm-ttm-0-2-branch
...
Conflicts:
linux-core/drmP.h
2006-08-28 09:28:10 +02:00
Dave Airlie
9b984b34e9
drm: lots of small cleanups and whitespace issues fixed up
...
remove a mach64 warning, align a lot of things from linux kernel
2006-08-28 11:31:43 +10:00
Thomas Hellstrom
928bdc6c1c
Initialize i915 saved flush flags.
2006-08-27 21:21:06 +02:00
Thomas Hellstrom
b4b7b99760
Remove the ioctl multiplexing, and instead allow for generic
...
drm ioctls 0x80 - 0xFF.
2006-08-27 21:16:13 +02:00
Thomas Hellstrom
65e7274008
ttm create / destroy / ref / unref ioctl.
2006-08-27 19:03:20 +02:00
Michel Dänzer
b99e332236
Bug #7595 : Avoid u32 overflows in radeon_check_and_fixup_offset().
...
The overflows could cause valid offsets to get rejected under some
circumstances, e.g. when the framebuffer resides at the very end of the card's
address space.
2006-08-26 12:23:47 +02:00
Thomas Hellstrom
c488e25ceb
More ioctl stubs.
...
Buffer object locking order documentation.
2006-08-25 20:03:39 +02:00
Thomas Hellstrom
35c8ce6c29
ttm and buffer objects ioctl stubs.
2006-08-25 19:03:42 +02:00
Thomas Hellstrom
4c03030b12
Checkpoint commit
...
Buffer object code.
2006-08-25 18:05:35 +02:00
Thomas Hellstrom
a6535c8db4
Add a fence object class field for future use (For example VSYNC fence objects)
2006-08-22 10:44:09 +02:00
Thomas Hellstrom
7058d06317
Initial i915 buffer object driver
2006-08-22 10:24:48 +02:00
Thomas Hellstrom
700bf80ca9
Bring in stripped TTM functionality.
2006-08-22 09:47:33 +02:00
Thomas Hellstrom
e089de33e8
i915 fence object driver implementing 2 fence object types:
...
0x00 EXE fence. Signals when command stream interpreter has reached the point
where the fence was emitted.
0x01 FLUSH fence. Signals when command stream interpreter has reached the point
where the fence was emitted, and all previous drawing operations have been
completed and flushed.
Implements busy wait (for fastest response time / high CPU) and
lazy wait (User interrupt or timer driven).
2006-08-21 21:36:00 +02:00
Thomas Hellstrom
166da9355d
User / Kernel space fence objects (device-independent part).
2006-08-21 21:02:08 +02:00
Dave Airlie
7a46d41399
i965 code and Linux coding style < 0
...
smack my whitespace up.
2006-08-10 14:38:50 +10:00
Alan Hourihane
48cb9aceed
Add support for Intel i965G chipsets.
...
This is a patch prepared by Guangdeng Liao based off of Tungsten Graphics's
final code drop.
2006-08-08 15:05:54 -07:00
Michel Dänzer
35066b51ef
Revert "Make sure busmastering gets disabled on module unload."
...
This reverts af7b89d724
commit. It causes an oops
on X server shutdown here, and for the reporter of bug #7629 as well.
2006-07-26 18:21:32 +02:00
Michel Dänzer
645453ce11
Bug #7629 : Fix for CHIP_IS_AGP getting 'restored' with non-AGP cards
...
Commit 2a47f6bfec
caused the CHIP_IS_AGP flag to
get 'restored' with PCI(e) cards. I can't think of a way to fix this without
introducing a (otherwise redundant) CHIP_IS_PCI flag.
2006-07-26 18:19:27 +02:00
Adam Jackson
af7b89d724
Make sure busmastering gets disabled on module unload.
2006-07-19 15:35:31 -04:00
Michel Dänzer
d5e0f8bdaf
Use RADEON_RB3D_DSTCACHE_CTLSTAT instead of RADEON_RB2D_DSTCACHE_CTLSTAT.
...
The latter seems to be a read-only mirror of the former.
2006-07-19 19:18:32 +02:00
Michel Dänzer
2a47f6bfec
Make sure CHIP_IS_AGP flag is set when not overriding to PCI mode.
...
This allows using AGP after overriding to PCI mode in a previous session
without reloading the DRM.
2006-07-19 19:16:26 +02:00
Michel Dänzer
c91748e702
When writeback isn't used, actually disable it in the hardware.
...
Not doing this might waste bus bandwidth or even cause memory corruption or
system crashes on systems that check bus transfers. No such incident has been
reported though.
2006-07-19 19:13:00 +02:00
Michel Dänzer
e337eadcec
Implement RADEON_PARAM_SCRATCH_OFFSET getparam.
...
When this succeeds, userspace can read the scratch register contents from the
mapped writeback page directly.
2006-07-19 19:07:06 +02:00
Michel Dänzer
7dea64677b
Some debug output when the getparam ioctl is called with an unknown parameter.
2006-07-19 19:01:33 +02:00
Michel Dänzer
b9243ce3d5
.cvsignore -> .gitignore
...
Sort the merged file, remove the redundant explicit .ko lines and add
some generated symlinks.
2006-07-19 18:31:43 +02:00
Thomas Hellstrom
126673d62a
Keep hashed user tokens, with the following changes:
...
32-bit physical device addresses are mapped directly to user-tokens. No
duplicate maps are allowed, and the addresses are assumed to be outside
of the range 0x10000000 through 0x30000000. The user-token is identical
to the 32-bit physical start-address of the map.
64-bit physical device addressed are mapped to user-tokens in the range
0x10000000 to 0x30000000 with page-size increments. The user_token should
not be interpreted as an address.
Other map types, like upcoming TTM maps are mapped to user-tokens in the
range
0x10000000 to 0x30000000 with page-size increments. The user_token should
not be interpreted as an address.
This keeps compatibility with buggy drivers, while still implementing a
hashed map lookup. The SiS and via device driver major bumps are
reverted.
2006-07-11 14:37:37 +00:00
Thomas Hellstrom
a392349691
Change drm Map handles to be arbitrary 32-bit hash tokens in the range
...
0x10000000 to 0x90000000 in PAGE_SIZE increments.
Implement hashed map lookups.
This potentially breaks both 2D and 3D drivers. If so, the corresponding
2D and 3D driver should be fixed, and it's corresponding drm device driver
should have its major bumped as soon as possible.
Bump sis and via drm device driver majors.
The SiS and Unichrome 3D drivers are fixed in Mesa CVS HEAD and
mesa_6_4_branch.
2006-07-10 13:00:21 +00:00
Thomas Hellstrom
c21a7b763a
SiS 315 Awareness.
2006-07-05 15:52:35 +00:00
Keith Packard
da143d0606
Remove spurious debug messages from i915 vblank config paths
2006-06-22 21:34:44 +00:00
Keith Packard
f8891ef802
i915: Save vblank pipe configuration to restore on resume
2006-06-21 00:15:10 +00:00
Keith Packard
83f256e60e
Add i915 ioctls to configure pipes for vblank interrupt.
...
i915 vblanks can be generated from either pipe a or b, however a disabled
pipe generates no interrupts. This change allows the X server to select
which pipe generates vblank interrupts.
2006-06-19 20:15:53 +00:00
Thomas Hellstrom
58b63ee5cc
Fix buffer cleanup on close. Move memory manager reset from final_context
...
to lastclose.
2006-06-19 09:12:50 +00:00
Thomas Hellstrom
96f272884d
via: Bump version number and date.
2006-06-19 09:01:31 +00:00
Thomas Hellstrom
ca1a77683d
via:
...
-Remove out of memory error message.
-Move sman cleanup from final_context to lastclose.
-Add the P4VM800PRO (?) PCI ID.
2006-06-15 18:37:05 +00:00
Thomas Hellstrom
6bacb180ce
Merge in the drm-sman-branch
2006-06-06 14:19:00 +00:00
Roland Scheidegger
f4e6e4499c
Add support for r200 vertex programs (R200_EMIT_VAP_PVS_CNTL, and new
...
packet type for making it possible to address whole tcl vector space
and have a larger count)
2006-05-24 18:36:24 +00:00
Roland Scheidegger
9e0320a0ad
add forgotten register define for previous commit
2006-05-20 09:20:05 +00:00
Roland Scheidegger
e1b627c17e
Do a tcl state flush before accessing tcl vector space. This fixes some
...
more problems with flickering (bug #6637 ). drm may not be appropriate
place for this, since doing that flush there might both be overkill and
insufficient in some cases. However, it's hard to figure out when that
flush is needed, so this has to suffice. There does not seem to be a
performance penalty associated with it.
2006-05-20 09:08:18 +00:00
Dave Airlie
b1a64b8136
add consts to radeon microcode.
...
From: tilman
2006-05-18 07:32:37 +00:00
Dave Airlie
30a5787d36
Fix from Benh for ppc r300 scratch
2006-04-23 08:07:57 +00:00
Brian Paul
4a49e6c366
check for __FreeBSD_kernel__ (bug 3810)
2006-04-20 14:26:59 +00:00
Eric Anholt
1327222f9b
Err, use "ifndef" rather than "if !", to avoid compiler warning.
2006-04-18 06:12:22 +00:00
Eric Anholt
40b70e3244
Use __LP64__ instead of checking the linux-specific BITS_PER_LONG.
2006-04-18 05:57:28 +00:00
Eric Anholt
63c4d02576
Revert a change that accidentally went in with whitespace changes from
...
Linux, which broke on FreeBSD. DRM_COPY_*_IOCTL checks for the size
parameter matching the ioctl's command size there, since the copin/out
happened earlier.
2006-04-09 20:10:32 +00:00
Eric Anholt
6cb366b5a8
Compile fixes for FreeBSD.
2006-04-08 09:45:43 +00:00
Dave Airlie
299aad03c2
coverity bugfix from the kernel
2006-04-05 08:34:24 +00:00
Dave Airlie
985738f203
radeon fix up the PCI ids for new memory map like the kernel one.. not
...
perfect but should be very safe... align some other kernel bits i810
align with kernel
2006-03-25 07:16:14 +00:00
Adam Jackson
9c92b55953
Bump driver date to reflect airlied's last fix.
2006-03-20 21:40:54 +00:00
Dave Airlie
8c8f937b3d
make some functions static in via driver
2006-03-19 07:52:53 +00:00
Roland Scheidegger
38376c7fa6
Add missing pci ids for new radeons (most but not all are pcie, r420,
...
rv380, rv410), with the exception of the rs400 igps. Hopefully they no
longer lock up with new ddx, but no guarantees... (bug #5413 )
2006-03-17 01:35:34 +00:00
Dave Airlie
ea40d3dd41
Fix bug I reintroduced
2006-03-08 23:01:32 +00:00
Dave Airlie
ef835973b2
fix some use before NULL check
2006-03-08 06:03:45 +00:00
Aapo Tahkola
4436ab86d8
ia64 support for r300_scratch. (not tested)
2006-03-07 01:08:35 +00:00
Aapo Tahkola
b3fdf9bb7a
Add general-purpose packet for manipulating scratch registers (r300)
2006-03-06 20:08:50 +00:00