Michel Dänzer [Fri, 1 Sep 2006 09:48:07 +0000 (11:48 +0200)]
Only return EBUSY after we've established we need to schedule a new swap.
Michel Dänzer [Fri, 1 Sep 2006 09:35:31 +0000 (11:35 +0200)]
Core vsync: Don't clobber target sequence number when scheduling signal.
It looks like this would have caused signals to always get sent on the next
vertical blank, regardless of the sequence number.
Michel Dänzer [Fri, 1 Sep 2006 09:27:14 +0000 (11:27 +0200)]
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.
Michel Dänzer [Fri, 1 Sep 2006 09:24:38 +0000 (11:24 +0200)]
Fix 'sequence has passed' condition in i915_vblank_swap().
Michel Dänzer [Thu, 31 Aug 2006 16:33:04 +0000 (18:33 +0200)]
Add SAREA fileds for determining which pipe to sync window buffer swaps to.
Michel Dänzer [Thu, 31 Aug 2006 16:32:08 +0000 (18:32 +0200)]
Add definition of DRM_VBLANK_SECONDARY.
Michel Dänzer [Thu, 31 Aug 2006 16:30:55 +0000 (18:30 +0200)]
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.
Michel Dänzer [Wed, 30 Aug 2006 17:33:28 +0000 (19:33 +0200)]
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().
Michel Dänzer [Wed, 30 Aug 2006 17:24:04 +0000 (19:24 +0200)]
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.
Michel Dänzer [Mon, 28 Aug 2006 16:19:58 +0000 (18:19 +0200)]
Add copyright notice.
Michel Dänzer [Fri, 25 Aug 2006 17:01:05 +0000 (19:01 +0200)]
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.
Michel Dänzer [Fri, 25 Aug 2006 16:55:55 +0000 (18:55 +0200)]
Locking and memory management fixes.
Michel Dänzer [Fri, 25 Aug 2006 16:55:06 +0000 (18:55 +0200)]
Drop tasklet locked driver callback when uninstalling IRQ.
Michel Dänzer [Wed, 23 Aug 2006 17:00:26 +0000 (19:00 +0200)]
Export drm_get_drawable_info symbol from core.
Michel Dänzer [Wed, 23 Aug 2006 14:05:47 +0000 (16:05 +0200)]
Hook up DRM_IOCTL_UPDATE_DRAW ioctl.
Michel Dänzer [Wed, 23 Aug 2006 14:04:41 +0000 (16:04 +0200)]
Only reallocate cliprect memory if the number of cliprects changes.
Also improve diagnostic output.
Michel Dänzer [Tue, 22 Aug 2006 14:40:07 +0000 (16:40 +0200)]
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.
Michel Dänzer [Wed, 16 Aug 2006 13:47:22 +0000 (15:47 +0200)]
Add support for interrupt triggered driver callback with lock held to DRM core.
Michel Dänzer [Fri, 11 Aug 2006 16:06:46 +0000 (18:06 +0200)]
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.
Michel Dänzer [Fri, 11 Aug 2006 15:57:59 +0000 (17:57 +0200)]
Add support for secondary vertical blank interrupt to DRM core.
Felix Kuhling [Thu, 21 Sep 2006 17:46:54 +0000 (03:46 +1000)]
bug 5942: add stubs for drm_mtrr_add/del for non-MTRR configured linux
Anish Mistry [Thu, 21 Sep 2006 17:43:34 +0000 (03:43 +1000)]
bug 7092 : add pci ids for mach64 in Dell poweredge 4200
Roland Scheidegger [Wed, 20 Sep 2006 17:44:57 +0000 (19:44 +0200)]
do a TCL state flush before accessing VAP_CNTL to prevent lockups on r200 when enabling/disabling vertex programs
Dave Airlie [Mon, 18 Sep 2006 11:22:12 +0000 (21:22 +1000)]
drm: put domain number back to 0, domain support is seriously fubar..
Michel Dänzer [Fri, 15 Sep 2006 14:37:47 +0000 (16:37 +0200)]
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.
Dave Airlie [Mon, 11 Sep 2006 20:13:14 +0000 (06:13 +1000)]
drm: use radeon specific names for radeon flags
Eric Anholt [Thu, 7 Sep 2006 06:26:50 +0000 (23:26 -0700)]
Use the DRM_INIT_WAITQUEUE argument (needed on Linux) to avoid a warning.
Eric Anholt [Thu, 7 Sep 2006 06:25:14 +0000 (23:25 -0700)]
Put the PCI device/vendor id in the drm_device_t.
This helps us unbreak FreeBSD DRM from the 965 changes.
Eric Anholt [Thu, 7 Sep 2006 06:08:29 +0000 (23:08 -0700)]
Add a typedef for u64.
Dave Airlie [Sat, 19 Aug 2006 07:59:18 +0000 (17:59 +1000)]
drm: lots of small cleanups and whitespace issues fixed up
remove a mach64 warning, align a lot of things from linux kernel
Dave Airlie [Sat, 19 Aug 2006 06:56:03 +0000 (16:56 +1000)]
add static function, and remove bad attributions
Dave Airlie [Sat, 19 Aug 2006 06:55:30 +0000 (16:55 +1000)]
fix const pointer warnings with file_operations
Dave Airlie [Sat, 19 Aug 2006 06:55:00 +0000 (16:55 +1000)]
remove local copies of pci domain/bus/slot/num
Dave Airlie [Sat, 19 Aug 2006 06:43:16 +0000 (16:43 +1000)]
remove some DRM_ARRAY_SIZE from linux core code
Dave Airlie [Sat, 19 Aug 2006 06:36:26 +0000 (16:36 +1000)]
fixup some of the comments in drm_context.c
Dave Airlie [Sat, 19 Aug 2006 06:31:34 +0000 (16:31 +1000)]
drm: i810_dma.c: fix pointer arithmetic for 64-bit target
First warning result from open-coded PTR_ERR,
the rest is caused by code like this:
*(u32 *) ((u32) buf_priv->kernel_virtual + used)
I've also fixed a missing PTR_ERR in i830_dma.c
From: Denis Vlasenko <vda.linux@googlemail.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
Michel Dänzer [Sat, 26 Aug 2006 10:21:11 +0000 (12:21 +0200)]
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.
Thomas Hellstrom [Wed, 23 Aug 2006 11:49:13 +0000 (13:49 +0200)]
Fix previous commit: Only fall back to hashed handles
when there is a duplicate handle error. Not for other errors.
Thomas Hellstrom [Wed, 23 Aug 2006 09:31:10 +0000 (11:31 +0200)]
Allow multiple addMaps with the same 32-bit map offset.
(Reported by Dave Airlie)
Thomas Hellstrom [Wed, 23 Aug 2006 09:21:33 +0000 (11:21 +0200)]
Fix hashtab implementation leaking illegal error codes to user space.
(Reported by Dave Airlie)
Thomas Hellstrom [Wed, 16 Aug 2006 14:36:56 +0000 (16:36 +0200)]
Remove hash tables on DRM exit.
Thomas Hellstrom [Mon, 14 Aug 2006 15:11:14 +0000 (17:11 +0200)]
Avoid kernel oops in some error paths calling drm_lastclose().
Dave Airlie [Mon, 14 Aug 2006 01:52:34 +0000 (11:52 +1000)]
remove all TRUE instances as well
Dave Airlie [Mon, 14 Aug 2006 01:49:52 +0000 (11:49 +1000)]
remove all TRUE/FALSE no need for this in the drm, use 0 or 1
Dave Airlie [Thu, 10 Aug 2006 04:38:50 +0000 (14:38 +1000)]
i965 code and Linux coding style < 0
smack my whitespace up.
Dave Airlie [Thu, 10 Aug 2006 04:32:18 +0000 (14:32 +1000)]
cleanup some whitespace issue and move compat code to compat header
Dave Airlie [Thu, 10 Aug 2006 04:31:56 +0000 (14:31 +1000)]
clean up script to create an lk drm directory
Dave Airlie [Thu, 10 Aug 2006 04:31:22 +0000 (14:31 +1000)]
drm: ati_pcigart cleanup
use NULL instead of 0, cleanup some whitespace
Alan Hourihane [Tue, 8 Aug 2006 22:05:54 +0000 (15:05 -0700)]
Add support for Intel i965G chipsets.
This is a patch prepared by Guangdeng Liao based off of Tungsten Graphics's
final code drop.
Dave Airlie [Mon, 7 Aug 2006 11:34:40 +0000 (21:34 +1000)]
drm: whitespace cleanup in new files
Dave Airlie [Mon, 7 Aug 2006 11:00:13 +0000 (21:00 +1000)]
drm: remove extra whitespace from drm_mm.c
Dave Airlie [Mon, 7 Aug 2006 10:56:38 +0000 (20:56 +1000)]
drm: fixup whitespace and style for Linux kernel import
Michel Dänzer [Wed, 26 Jul 2006 16:21:32 +0000 (18:21 +0200)]
Revert "Make sure busmastering gets disabled on module unload."
This reverts
af7b89d7246efbed7d05c38fcaa6a13c4b89db90 commit. It causes an oops
on X server shutdown here, and for the reporter of bug #7629 as well.
Michel Dänzer [Wed, 26 Jul 2006 16:14:20 +0000 (18:14 +0200)]
Bug #7629: Fix for CHIP_IS_AGP getting 'restored' with non-AGP cards
Commit
2a47f6bfecea5dabcbf79d5e1aaf271f50070b89 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.
Dave Airlie [Mon, 24 Jul 2006 01:09:41 +0000 (11:09 +1000)]
remove incorrect exit marking on cleanup pci as this is called from other paths
Dave Airlie [Mon, 24 Jul 2006 00:51:27 +0000 (10:51 +1000)]
switch drm to use Linux mutexes instead of semaphore.
I hope the fallback compat code works if not shout at me.
Adam Jackson [Wed, 19 Jul 2006 20:19:25 +0000 (16:19 -0400)]
Delete the pre-core DRM code with extreme prejudice.
Adam Jackson [Wed, 19 Jul 2006 19:35:31 +0000 (15:35 -0400)]
Make sure busmastering gets disabled on module unload.
Michel Dänzer [Wed, 19 Jul 2006 17:18:32 +0000 (19:18 +0200)]
Use RADEON_RB3D_DSTCACHE_CTLSTAT instead of RADEON_RB2D_DSTCACHE_CTLSTAT.
The latter seems to be a read-only mirror of the former.
Michel Dänzer [Wed, 19 Jul 2006 17:16:26 +0000 (19:16 +0200)]
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.
Michel Dänzer [Wed, 19 Jul 2006 17:13:00 +0000 (19:13 +0200)]
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.
Michel Dänzer [Wed, 19 Jul 2006 17:07:06 +0000 (19:07 +0200)]
Implement RADEON_PARAM_SCRATCH_OFFSET getparam.
When this succeeds, userspace can read the scratch register contents from the
mapped writeback page directly.
Michel Dänzer [Wed, 19 Jul 2006 17:01:33 +0000 (19:01 +0200)]
Some debug output when the getparam ioctl is called with an unknown parameter.
Michel Dänzer [Wed, 19 Jul 2006 16:31:43 +0000 (18:31 +0200)]
.cvsignore -> .gitignore
Sort the merged file, remove the redundant explicit .ko lines and add
some generated symlinks.
Thomas Hellstrom [Tue, 11 Jul 2006 14:37:37 +0000 (14:37 +0000)]
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.
Thomas Hellstrom [Mon, 10 Jul 2006 13:00:21 +0000 (13:00 +0000)]
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.
Thomas Hellstrom [Wed, 5 Jul 2006 15:52:35 +0000 (15:52 +0000)]
SiS 315 Awareness.
Thomas Hellstrom [Wed, 5 Jul 2006 14:39:22 +0000 (14:39 +0000)]
Add missing semaphore release.
Adam Jackson [Tue, 27 Jun 2006 21:04:50 +0000 (21:04 +0000)]
Disable building static libraries. Bump to 2.0.2 for header updates.
Alan Hourihane [Fri, 23 Jun 2006 16:29:39 +0000 (16:29 +0000)]
Fix compilation problem on 2.6.9 kernels (bug #6211)
Keith Packard [Thu, 22 Jun 2006 21:34:44 +0000 (21:34 +0000)]
Remove spurious debug messages from i915 vblank config paths
Keith Packard [Wed, 21 Jun 2006 00:15:10 +0000 (00:15 +0000)]
i915: Save vblank pipe configuration to restore on resume
Keith Packard [Mon, 19 Jun 2006 20:15:53 +0000 (20:15 +0000)]
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.
Thomas Hellstrom [Mon, 19 Jun 2006 09:12:50 +0000 (09:12 +0000)]
Fix buffer cleanup on close. Move memory manager reset from final_context
to lastclose.
Thomas Hellstrom [Mon, 19 Jun 2006 09:01:31 +0000 (09:01 +0000)]
via: Bump version number and date.
Thomas Hellstrom [Fri, 16 Jun 2006 15:20:20 +0000 (15:20 +0000)]
via: Return the requested size instead of the correct size of the allocated
regions. The 2D driver and XvMC lib has problems when the returned size
is not the same as the allocated size.
Thomas Hellstrom [Thu, 15 Jun 2006 18:37:05 +0000 (18:37 +0000)]
via:
-Remove out of memory error message.
-Move sman cleanup from final_context to lastclose.
-Add the P4VM800PRO (?) PCI ID.
Thomas Hellstrom [Tue, 6 Jun 2006 17:52:03 +0000 (17:52 +0000)]
s/list_entry/drm_hash_entry/ for "drm_hash_item"s.
Thomas Hellstrom [Tue, 6 Jun 2006 17:46:17 +0000 (17:46 +0000)]
Fix drm_remove_magic potential memory leak / corruption. Move drm
authentication token hashing to new generic hash table implementation.
Thomas Hellstrom [Tue, 6 Jun 2006 14:19:00 +0000 (14:19 +0000)]
Merge in the drm-sman-branch
Thomas Hellstrom [Sun, 28 May 2006 16:20:29 +0000 (16:20 +0000)]
file via_mm.c was initially added on branch drm-sman-branch.
Thomas Hellstrom [Sun, 28 May 2006 16:20:29 +0000 (16:20 +0000)]
file drm_sman.h was initially added on branch drm-sman-branch.
Thomas Hellstrom [Sun, 28 May 2006 16:20:29 +0000 (16:20 +0000)]
file sis_mm.c was initially added on branch drm-sman-branch.
Thomas Hellstrom [Sun, 28 May 2006 16:20:29 +0000 (16:20 +0000)]
file drm_sman.c was initially added on branch drm-sman-branch.
Thomas Hellstrom [Fri, 26 May 2006 19:33:02 +0000 (19:33 +0000)]
file drm_hashtab.h was initially added on branch drm-ttm-branch.
Roland Scheidegger [Wed, 24 May 2006 18:36:24 +0000 (18:36 +0000)]
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)
Roland Scheidegger [Sat, 20 May 2006 09:20:05 +0000 (09:20 +0000)]
add forgotten register define for previous commit
Roland Scheidegger [Sat, 20 May 2006 09:08:18 +0000 (09:08 +0000)]
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.
Dave Airlie [Fri, 19 May 2006 04:11:22 +0000 (04:11 +0000)]
rip out unneeded back compat code
Dave Airlie [Thu, 18 May 2006 07:32:37 +0000 (07:32 +0000)]
add consts to radeon microcode.
From: tilman
Eric Anholt [Wed, 17 May 2006 06:07:57 +0000 (06:07 +0000)]
Set entry->virtual for sg maps, fixing ATI PCI/PCIE GART support.
PR: kern/97056 Submitted by: Stanislav Sedov <ssedov@mbsd.msk.ru>
Eric Anholt [Wed, 17 May 2006 05:44:39 +0000 (05:44 +0000)]
Add the bits for vblank support on FreeBSD, which most importantly avoids
chasing a NULL pointer at the first 3d app invocation.
Eric Anholt [Wed, 17 May 2006 05:41:48 +0000 (05:41 +0000)]
Add the workaround that's in the kernel to suppress GCC's warning about
refusal to inline functions that (in some cases, at least) aren't that
large.
Dave Airlie [Sun, 23 Apr 2006 09:05:05 +0000 (09:05 +0000)]
fixup GFP_COMP for older kernels and get_page/put_page for newer
Dave Airlie [Sun, 23 Apr 2006 08:07:57 +0000 (08:07 +0000)]
Fix from Benh for ppc r300 scratch
Brian Paul [Thu, 20 Apr 2006 14:26:59 +0000 (14:26 +0000)]
check for __FreeBSD_kernel__ (bug 3810)
Eric Anholt [Tue, 18 Apr 2006 06:12:22 +0000 (06:12 +0000)]
Err, use "ifndef" rather than "if !", to avoid compiler warning.
Eric Anholt [Tue, 18 Apr 2006 06:08:17 +0000 (06:08 +0000)]
Reorder the DRM_*_AGP enum to match linux's numbers (oops). Fixes i915
attachment. Make our mga_drv.c use them, while I'm here.
Submitted by: Jonathan Fosburgh <jonathan@fosburgh.org>
Eric Anholt [Tue, 18 Apr 2006 05:57:28 +0000 (05:57 +0000)]
Use __LP64__ instead of checking the linux-specific BITS_PER_LONG.
Eric Anholt [Sun, 9 Apr 2006 20:10:32 +0000 (20:10 +0000)]
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.