platform/upstream/libdrm.git
17 years agoMerge branch 'master' of git+ssh://marcheu@git.freedesktop.org/git/mesa/drm into...
Stephane Marchesin [Sat, 11 Nov 2006 00:57:05 +0000 (01:57 +0100)]
Merge branch 'master' of git+ssh://marcheu@git.freedesktop.org/git/mesa/drm into nouveau-1

17 years agoFix memory detection on TNT2 M64/TNT2 vanta.
Stephane Marchesin [Fri, 10 Nov 2006 01:18:38 +0000 (02:18 +0100)]
Fix memory detection on TNT2 M64/TNT2 vanta.

17 years agolibdrm: add drmOpenOnce + drmCloseOnce to libdrm
Dave Airlie [Wed, 8 Nov 2006 21:55:58 +0000 (08:55 +1100)]
libdrm: add drmOpenOnce + drmCloseOnce to libdrm

17 years agolibdrm: add support for server side functionality in libdrm
Dave Airlie [Wed, 8 Nov 2006 04:08:09 +0000 (15:08 +1100)]
libdrm: add support for server side functionality in libdrm

This adds APIs to allow the X server to use libdrm from the system
rather than its own in-built copy.

17 years agoAdd drm_u64_t typedef on non-linux to fix libdrm build.
Eric Anholt [Tue, 7 Nov 2006 17:36:40 +0000 (09:36 -0800)]
Add drm_u64_t typedef on non-linux to fix libdrm build.

18 years agodrm: fixup page alignment on SAREA map on ppc64
Dave Airlie [Mon, 6 Nov 2006 00:44:36 +0000 (11:44 +1100)]
drm: fixup page alignment on SAREA map on ppc64

18 years agofixup fifo size so it is page aligned
Dave Airlie [Mon, 6 Nov 2006 00:42:15 +0000 (11:42 +1100)]
fixup fifo size so it is page aligned

18 years agouse a uint64_t for this not a pointer
Dave Airlie [Mon, 6 Nov 2006 00:41:51 +0000 (11:41 +1100)]
use a uint64_t for this not a pointer

18 years agoMerge branch 'master' into nouveau-1
Dave Airlie [Sun, 5 Nov 2006 21:03:18 +0000 (08:03 +1100)]
Merge branch 'master' into nouveau-1

Conflicts:

linux-core/Makefile.kernel

18 years agoLeave the bottom 64kb of RAMIN untouched.
Ben Skeggs [Sun, 5 Nov 2006 18:46:03 +0000 (05:46 +1100)]
Leave the bottom 64kb of RAMIN untouched.

The binary driver will screw up either it's init or shutdown, leaving the
screen(s) in an unusable state without this.  Something important in there?

18 years agonouveau: add compat ioc32 support
Dave Airlie [Sun, 5 Nov 2006 09:38:44 +0000 (20:38 +1100)]
nouveau: add compat ioc32 support

18 years agoadd powerpc mmio swapper to NV_READ/WRITE macros
Dave Airlie [Sun, 5 Nov 2006 08:46:53 +0000 (19:46 +1100)]
add powerpc mmio swapper to NV_READ/WRITE macros

18 years agoremove config.h
Dave Airlie [Sun, 5 Nov 2006 08:46:30 +0000 (19:46 +1100)]
remove config.h

18 years agoAdd some getparams.
Stephane Marchesin [Sat, 4 Nov 2006 19:39:59 +0000 (20:39 +0100)]
Add some getparams.

18 years agoMove the context object creation flag handling to the drm.
Stephane Marchesin [Sat, 4 Nov 2006 15:56:10 +0000 (16:56 +0100)]
Move the context object creation flag handling to the drm.

18 years agoFix bug #8839 - a comment
Alan Hourihane [Tue, 31 Oct 2006 10:01:53 +0000 (10:01 +0000)]
Fix bug #8839 - a comment

18 years agoBugzilla Bug #8819
Thomas Hellstrom [Mon, 30 Oct 2006 10:18:44 +0000 (11:18 +0100)]
Bugzilla Bug #8819
Build fixes for powerpc.
Reported by Katerina Barone-Adesi

18 years agoMinor bugfix, indentation and removal of unnused variables.
Thomas Hellstrom [Sun, 29 Oct 2006 14:39:11 +0000 (15:39 +0100)]
Minor bugfix, indentation and removal of unnused variables.

18 years agoReserve the new IOCTLs also for *bsd.
Thomas Hellstrom [Fri, 27 Oct 2006 11:08:31 +0000 (13:08 +0200)]
Reserve the new IOCTLs also for *bsd.
Bump libdrm version number to 2.2.0

18 years agoLast minute changes to support multi-page size buffer offset alignments.
Thomas Hellstrom [Fri, 27 Oct 2006 09:28:37 +0000 (11:28 +0200)]
Last minute changes to support multi-page size buffer offset alignments.
This will come in very handy for tiled buffers on intel hardware.
Also add some padding to interface structures to allow future binary backwards
compatible changes.

18 years agoNew mm function names. Update header.
Thomas Hellstrom [Thu, 26 Oct 2006 19:20:34 +0000 (21:20 +0200)]
New mm function names. Update header.

18 years agoAdd improved alignment functionality to the core memory manager.
Thomas Hellstrom [Thu, 26 Oct 2006 19:17:43 +0000 (21:17 +0200)]
Add improved alignment functionality to the core memory manager.
This makes an allocated block actually align itself and returns any
wasted space to the manager.

Also add some functions to grow and shrink the managed area.
This will be used in the future to manage the buffer object swap cache.

18 years agoAdd a one-page hole in the file offset space between buffers.
Thomas Hellstrom [Thu, 26 Oct 2006 19:14:23 +0000 (21:14 +0200)]
Add a one-page hole in the file offset space between buffers.

18 years agoMerge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm
Thomas Hellstrom [Sat, 21 Oct 2006 12:20:28 +0000 (14:20 +0200)]
Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm

18 years agoThe CPU cache must be flushed _before_ we start modifying the kernel map ptes,
Thomas Hellstrom [Sat, 21 Oct 2006 12:17:51 +0000 (14:17 +0200)]
The CPU cache must be flushed _before_ we start modifying the kernel map ptes,
otherwise data will be missing, which becomes apparent when the kernel evicts
batch buffers which are likely to be written into in the evicted state,
and then rebound to the AGP aperture.
This means we cannot rely on the AGP module to flush the
cache for us.

18 years agoBug #1746: Set dev_priv_size for the MGA driver.
Tilman Sauerbeck [Fri, 20 Oct 2006 15:05:07 +0000 (17:05 +0200)]
Bug #1746: Set dev_priv_size for the MGA driver.

18 years agoWe apparently need this global cache flush anyway.
Thomas Hellstrom [Fri, 20 Oct 2006 13:07:21 +0000 (15:07 +0200)]
We apparently need this global cache flush anyway.

18 years agoBug #8707, 2.6.19-rc compatibility for memory manager code.
Thomas Hellstrom [Fri, 20 Oct 2006 13:06:31 +0000 (15:06 +0200)]
Bug #8707, 2.6.19-rc compatibility for memory manager code.

18 years agoMerge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm
Thomas Hellstrom [Thu, 19 Oct 2006 15:07:26 +0000 (17:07 +0200)]
Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm

18 years agoImporting fixes from drm-ttm-0-2-branch
Thomas Hellstrom [Thu, 19 Oct 2006 15:00:03 +0000 (17:00 +0200)]
Importing fixes from drm-ttm-0-2-branch

18 years agoMake sure delayed delete list is empty on lastclose.
Thomas Hellstrom [Thu, 19 Oct 2006 14:58:00 +0000 (16:58 +0200)]
Make sure delayed delete list is empty on lastclose.
Fix some refcounting errors.
Fix some error messages.

18 years agoMerging drm-ttm-0-2-branch
Thomas Hellstrom [Wed, 18 Oct 2006 15:33:19 +0000 (17:33 +0200)]
Merging drm-ttm-0-2-branch

Conflicts:

linux-core/drmP.h
linux-core/drm_drv.c
linux-core/drm_irq.c
linux-core/drm_stub.c
shared-core/drm.h
shared-core/i915_drv.h
shared-core/i915_irq.c

18 years agoRemove stray softlink.
Thomas Hellstrom [Wed, 18 Oct 2006 15:18:23 +0000 (17:18 +0200)]
Remove stray softlink.

18 years agoAvoid driver-specific AGP user-populated types, since we don't know what AGP
Thomas Hellstrom [Wed, 18 Oct 2006 14:54:17 +0000 (16:54 +0200)]
Avoid driver-specific AGP user-populated types, since we don't know what AGP
driver we're on.
Avoid global cache flushes before inserting pages.
In general, they are never mapped, and not accessed through the kernel map, so
a cache flush should not be necessary. The exception is pages that are bound
cached. We might need a cache flush for those.

18 years agoRemove some debugging messages.
Thomas Hellstrom [Tue, 17 Oct 2006 18:04:41 +0000 (20:04 +0200)]
Remove some debugging messages.

18 years agoRemove max number of locked pages check and call, since
Thomas Hellstrom [Tue, 17 Oct 2006 18:03:26 +0000 (20:03 +0200)]
Remove max number of locked pages check and call, since
that is now handled by the memory accounting.

18 years agoLindent.
Thomas Hellstrom [Tue, 17 Oct 2006 17:57:06 +0000 (19:57 +0200)]
Lindent.

18 years agoAdd vma list memory usage to memory accounting.
Thomas Hellstrom [Tue, 17 Oct 2006 17:52:34 +0000 (19:52 +0200)]
Add vma list memory usage to memory accounting.
Use byte unit for /proc printout of memory usage for small sizes to be
able to detect memory allocation bugs more easily.

18 years agoAdd memory usage accounting to avoid DOS problems.
Thomas Hellstrom [Tue, 17 Oct 2006 17:40:57 +0000 (19:40 +0200)]
Add memory usage accounting to avoid DOS problems.

18 years agoRemove hack which delays activation of a additional channel. The previously active...
Ben Skeggs [Tue, 17 Oct 2006 15:37:19 +0000 (02:37 +1100)]
Remove hack which delays activation of a additional channel.  The previously active channel's state is saved to RAMFC before PFIFO gets clobbered.

18 years agoOops, we have more than 4 subchannels..
Ben Skeggs [Tue, 17 Oct 2006 14:07:48 +0000 (01:07 +1100)]
Oops, we have more than 4 subchannels..

18 years agoImplement mm_lock and mm_unlock functions.
Thomas Hellstrom [Tue, 17 Oct 2006 14:00:25 +0000 (16:00 +0200)]
Implement mm_lock and mm_unlock functions.
The mm_lock function is used when leaving vt. It evicts _all_ buffers.
Buffers with the DRM_BO_NO_MOVE attribute set will be guaranteed to
get the same offset when / if they are rebound.

18 years agoUseful output on a FIFO error interrupt.
Ben Skeggs [Tue, 17 Oct 2006 12:44:05 +0000 (23:44 +1100)]
Useful output on a FIFO error interrupt.

18 years agotypo
Ben Skeggs [Tue, 17 Oct 2006 12:08:03 +0000 (23:08 +1100)]
typo

18 years agoRemove the memory manager parameter from the put_block function, as this
Thomas Hellstrom [Tue, 17 Oct 2006 09:28:48 +0000 (11:28 +0200)]
Remove the memory manager parameter from the put_block function, as this
makes the client code a lot cleaner. Prepare buffer manager for lock and
unlock calls.

18 years agoExtend generality for more memory types.
Thomas Hellstrom [Tue, 17 Oct 2006 09:05:37 +0000 (11:05 +0200)]
Extend generality for more memory types.
Fix up init and destruction code.

18 years agodev->agp_buffer_map is not initialized for AGP DMA on savages
Michael Karcher [Tue, 17 Oct 2006 02:06:58 +0000 (22:06 -0400)]
dev->agp_buffer_map is not initialized for AGP DMA on savages
bug 8662

18 years agoNV40: *Now* fifo ctx switching works for me..
Ben Skeggs [Tue, 17 Oct 2006 01:33:49 +0000 (12:33 +1100)]
NV40: *Now* fifo ctx switching works for me..
Ok, I lied before.. it was a fluke it worked and required magic to repeat it..
It actually helps to fill in RAMFC entries in the correct place.

The code also clears RAMIN entirely instead of just the hash-table.

18 years agoNV40: FIFO context switching now WorksForMe(tm)
Ben Skeggs [Mon, 16 Oct 2006 20:29:31 +0000 (07:29 +1100)]
NV40: FIFO context switching now WorksForMe(tm)

18 years agoSetup NV40 RAMFC (in wrong location.. but anyway), rearrange the RAMFC setup code...
Ben Skeggs [Mon, 16 Oct 2006 19:37:40 +0000 (06:37 +1100)]
Setup NV40 RAMFC (in wrong location.. but anyway), rearrange the RAMFC setup code a bit.

18 years agoSome info on NV40's RAMFC
Ben Skeggs [Mon, 16 Oct 2006 19:12:18 +0000 (06:12 +1100)]
Some info on NV40's RAMFC

18 years agoChange Intel AGP memory type numbers.
Thomas Hellstrom [Mon, 16 Oct 2006 12:22:27 +0000 (14:22 +0200)]
Change Intel AGP memory type numbers.

18 years agoMerge branch 'master' of git://anongit.freedesktop.org/git/mesa/drm into nouveau-1
Stephane Marchesin [Sat, 14 Oct 2006 22:12:13 +0000 (00:12 +0200)]
Merge branch 'master' of git://anongit.freedesktop.org/git/mesa/drm into nouveau-1

18 years agoAgain more work on context switches. They work, sometimes. And when they do they...
Stephane Marchesin [Sat, 14 Oct 2006 14:36:11 +0000 (16:36 +0200)]
Again more work on context switches. They work, sometimes. And when they do they seem to screw up the PGRAPH state.

18 years agoremove config.h from build no longer exists kbuild does it
Dave Airlie [Sat, 14 Oct 2006 13:38:20 +0000 (23:38 +1000)]
remove config.h from build no longer exists kbuild does it

18 years agoAdd the missing breaks.
Stephane Marchesin [Fri, 13 Oct 2006 23:21:31 +0000 (01:21 +0200)]
Add the missing breaks.

18 years agoFix the fifo context size on nv10, nv20 and nv30.
Stephane Marchesin [Fri, 13 Oct 2006 20:35:22 +0000 (22:35 +0200)]
Fix the fifo context size on nv10, nv20 and nv30.

18 years agoFix some randomness in activating a second channel on NV40 (odd GET/PUT vals). Ch...
Ben Skeggs [Fri, 13 Oct 2006 19:57:49 +0000 (06:57 +1100)]
Fix some randomness in activating a second channel on NV40 (odd GET/PUT vals).  Ch 1 GET now advances, but no ctx_switch.

18 years agoOops.
Stephane Marchesin [Thu, 12 Oct 2006 19:18:55 +0000 (21:18 +0200)]
Oops.

18 years agoStill more work on the context switching code.
Stephane Marchesin [Thu, 12 Oct 2006 15:31:49 +0000 (17:31 +0200)]
Still more work on the context switching code.

18 years agoBugfixes.
Thomas Hellstrom [Thu, 12 Oct 2006 14:10:47 +0000 (16:10 +0200)]
Bugfixes.

18 years agoSimplify the AGP backend interface somewhat.
Thomas Hellstrom [Thu, 12 Oct 2006 10:09:16 +0000 (12:09 +0200)]
Simplify the AGP backend interface somewhat.

Fix buffer bound caching policy changing, Allow
on-the-fly changing of caching policy on bound buffers if the hardware
supports it.

Allow drivers to use driver-specific AGP memory types for TTM AGP pages.
Will make AGP drivers much easier to migrate.

18 years agoMore work on the context switch code. Still doesn't work. I'm mostly convinced it...
Stephane Marchesin [Wed, 11 Oct 2006 23:08:15 +0000 (01:08 +0200)]
More work on the context switch code. Still doesn't work. I'm mostly convinced it's an initialization issue.

18 years agoCompatibility code for 2.6.15-2.6.18. It is ugly but a little comfort is that
Thomas Hellstrom [Wed, 11 Oct 2006 20:21:01 +0000 (22:21 +0200)]
Compatibility code for 2.6.15-2.6.18. It is ugly but a little comfort is that
it will go away in the mainstream kernel.
Some bugfixes, mainly in error paths.

18 years agoBig update:
Thomas Hellstrom [Wed, 11 Oct 2006 11:40:35 +0000 (13:40 +0200)]
Big update:
Adapt for new functions in the 2.6.19 kernel.
Remove the ability to have multiple regions in one TTM.
   This simplifies a lot of code.
Remove the ability to access TTMs from user space.
   We don't need it anymore without ttm regions.
Don't change caching policy for evicted buffers. Instead change it only
   when the buffer is accessed by the CPU (on the first page fault).
   This tremendously speeds up eviction rates.
Current code is safe for kernels <= 2.6.14.
Should also be OK with 2.6.19 and above.

18 years agoContext switching work.
Stephane Marchesin [Tue, 10 Oct 2006 22:28:15 +0000 (00:28 +0200)]
Context switching work.
Added preliminary support for context switches (triggers the interrupts, but hangs after the switch ; something's not quite right yet).
Removed the PFIFO_REINIT ioctl. I hope it's that a good idea...
Requires the upcoming commit to the DDX.

18 years agoUse a nopage-based approach to fault in pfns.
Thomas Hellstrom [Tue, 10 Oct 2006 08:37:26 +0000 (10:37 +0200)]
Use a nopage-based approach to fault in pfns.

18 years agoonly allow specific type-3 packets to pass the verifier instead of all for r100/r200...
Roland Scheidegger [Tue, 10 Oct 2006 00:24:19 +0000 (02:24 +0200)]
only allow specific type-3 packets to pass the verifier instead of all for r100/r200 as others might be unsafe (r300 already does this), and add checking for these we need but aren't safe. Check the RADEON_CP_INDX_BUFFER packet on both r200 and r300 as it isn't safe neither.

18 years agoGet rid of all ugly PTE hacks.
Thomas Hellstrom [Tue, 3 Oct 2006 10:08:07 +0000 (12:08 +0200)]
Get rid of all ugly PTE hacks.

18 years agoBug 6242: [mach64] Use private DMA buffers, part #4.
George Sapountzis [Mon, 2 Oct 2006 03:13:38 +0000 (06:13 +0300)]
Bug 6242: [mach64] Use private DMA buffers, part #4.

mach64_state.c: convert the DRM_MACH64_BLIT ioctl to submit a pointer to
user-space memory rather than a DMA buffer index, similar to DRM_MACH64_VERTEX.

This change allows the DDX to map the DMA buffers read-only and eliminate a
security problem where a client can alter the contents of the DMA buffer after
submission to the DRM.

This change also affects the DRI/DRM interface. Performace-wise, it basically
affects PCI mode where I get a ~12% speedup for some Mesa demos I tested.
This is mainly due to eliminating an ioctl for allocating the DMA buffer.

mach64_dma.c: move the responsibility for allocating memory for the DMA ring
in PCI mode to the DDX.

This change affects the DDX/DRM interface and unifies a couple of PCI/AGP code
paths for ring memory in the DRM.

Bump the mach64 DRM version major and date.

18 years agoBug 6242: [mach64] Use private DMA buffers, part #3.
George Sapountzis [Mon, 2 Oct 2006 02:46:42 +0000 (05:46 +0300)]
Bug 6242: [mach64] Use private DMA buffers, part #3.

Add DRM_PCI_BUFFER_RO flag for mapping PCI DMA buffer read-only. An additional
flag is needed, since PCI DMA buffers do not have an associated map.

18 years agoBug 6242: [mach64] Use private DMA buffers, part #2.
George Sapountzis [Mon, 28 Aug 2006 02:44:37 +0000 (05:44 +0300)]
Bug 6242: [mach64] Use private DMA buffers, part #2.

Factor out from mach64_dma_dispatch_vertex() the code to reclaim an unsed
buffer, in preperation for using it in mach64_dma_dispatch_blit() also.

18 years agoBug 6242: [mach64] Use private DMA buffers, part #1.
George Sapountzis [Sat, 15 Jul 2006 23:15:02 +0000 (02:15 +0300)]
Bug 6242: [mach64] Use private DMA buffers, part #1.

Factor out from mach64_freelist_get() the code to reclaim a completed buffer,
this is to improve readability for me.

18 years agoBug 6209: [mach64] AGP DMA buffers not mapped correctly.
George Sapountzis [Sat, 15 Jul 2006 22:02:06 +0000 (01:02 +0300)]
Bug 6209: [mach64] AGP DMA buffers not mapped correctly.

Map the DMA buffers from the same linear address as the vertex bufs. If
dev->agp_buffer_token is not set, mach64 drm maps the DMA buffers from
linear address 0x0.

18 years agoFix type of second argument to spin_lock_irqsave().
Michel Dänzer [Mon, 2 Oct 2006 13:33:19 +0000 (15:33 +0200)]
Fix type of second argument to spin_lock_irqsave().
(cherry picked from f6238cf6244b32bd84e3d2819963d7f5473867c8 commit)

18 years agoFix type of second argument to spin_lock_irqsave().
Michel Dänzer [Mon, 2 Oct 2006 13:33:19 +0000 (15:33 +0200)]
Fix type of second argument to spin_lock_irqsave().

18 years agoMake the user_token 44-bit for TTMs, and have them occupy a unique file space
Thomas Hellstrom [Mon, 2 Oct 2006 13:06:35 +0000 (15:06 +0200)]
Make the user_token 44-bit for TTMs, and have them occupy a unique file space
starting at 0x00100000000. This will hopefully allow us to use
unmap_mapping_range(). Note that user-space will need
64-bit file offset support.

18 years agoAdd a buffer object manager for TTM maps.
Thomas Hellstrom [Mon, 2 Oct 2006 12:03:15 +0000 (14:03 +0200)]
Add a buffer object manager for TTM maps.

18 years agoAllow for 44 bit user-tokens (or drm_file offsets)
Thomas Hellstrom [Mon, 2 Oct 2006 11:49:43 +0000 (13:49 +0200)]
Allow for 44 bit user-tokens (or drm_file offsets)

18 years agoAdd a comment to previos commit.
Thomas Hellstrom [Mon, 2 Oct 2006 11:37:54 +0000 (13:37 +0200)]
Add a comment to previos commit.

18 years agoTrap and be verbose about a deadlock that occurs with AIGLX and drivers that
Thomas Hellstrom [Mon, 2 Oct 2006 11:34:30 +0000 (13:34 +0200)]
Trap and be verbose about a deadlock that occurs with AIGLX and drivers that
use drm_reclaim_buffers_locked().

18 years agodrm_rmdraw: Declare id and idx as signed so testing for < 0 works as intended.
Felix Kühling [Mon, 2 Oct 2006 08:50:40 +0000 (10:50 +0200)]
drm_rmdraw: Declare id and idx as signed so testing for < 0 works as intended.
(cherry picked from d58389968124191a546a14b42ef84edc224be23d commit)

18 years agoMake locked tasklet handling more robust.
Michel Dänzer [Mon, 2 Oct 2006 09:04:42 +0000 (11:04 +0200)]
Make locked tasklet handling more robust.

Initialize the spinlock unconditionally when struct drm_device is filled in,
and return early in drm_locked_tasklet() if the driver doesn't support IRQs.

18 years agodrm_rmdraw: Declare id and idx as signed so testing for < 0 works as intended.
Felix Kühling [Mon, 2 Oct 2006 08:50:40 +0000 (10:50 +0200)]
drm_rmdraw: Declare id and idx as signed so testing for < 0 works as intended.

18 years agoBump driver date.
Thomas Hellstrom [Fri, 29 Sep 2006 12:21:51 +0000 (14:21 +0200)]
Bump driver date.

18 years agoi915: Only schedule vblank tasklet if there are scheduled swaps pending.
Michel Dänzer [Fri, 29 Sep 2006 08:27:29 +0000 (10:27 +0200)]
i915: Only schedule vblank tasklet if there are scheduled swaps pending.

This fixes issues on X server startup with versions of xf86-video-intel that
enable the IRQ before they have a context ID.
(cherry picked from 7af93dd9849442270ec89cb4bbeef5bfd4f9e424 commit)

18 years agoi915: Only initialize IRQ fields in postinstall, not the PIPE_SET ioctl.
Michel Dänzer [Thu, 28 Sep 2006 17:13:59 +0000 (19:13 +0200)]
i915: Only initialize IRQ fields in postinstall, not the PIPE_SET ioctl.

Some other minor changes in preparation for actually disabling user interrupts.

18 years agoi915: Bump minor again to differentiate from vsync changes.
Michel Dänzer [Thu, 28 Sep 2006 17:05:58 +0000 (19:05 +0200)]
i915: Bump minor again to differentiate from vsync changes.

18 years agoi915: Avoid mis-counting vblank interrupts when they're only enabled for pipe A.
Michel Dänzer [Wed, 27 Sep 2006 16:22:10 +0000 (18:22 +0200)]
i915: Avoid mis-counting vblank interrupts when they're only enabled for pipe A.

It looks like 'after a while', I915REG_INT_IDENTITY_R for some reason always has
VSYNC_PIPEB_FLAG set in the interrupt handler, even though pipe B is disabled.
So we only increase dev->vbl_received if the corresponding bit is also set in
dev->vblank_pipe.
(cherry picked from 881ba569929ceafd42e3c86228b0172099083d1d commit)

18 years agoi915: Bump minor for swap scheduling ioctl and secondary vblank support.
Michel Dänzer [Mon, 18 Sep 2006 10:15:38 +0000 (12:15 +0200)]
i915: Bump minor for swap scheduling ioctl and secondary vblank support.

(cherry picked from 2627131e5d0c8cd5e3f0db06451c2e7ae7569b1b commit)

18 years agoi915_vblank_swap: Add support for DRM_VBLANK_NEXTONMISS.
Michel Dänzer [Wed, 13 Sep 2006 06:59:35 +0000 (08:59 +0200)]
i915_vblank_swap: Add support for DRM_VBLANK_NEXTONMISS.

(cherry picked from 0356fe260dcf80f6d2d20e3384f2a1f4ee7f5b30 commit)

18 years agoOnly return EBUSY after we've established we need to schedule a new swap.
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.

(cherry picked from 50a0284a61d4415c0ebdb02decee76ef3115007a commit)

18 years agoCore vsync: Don't clobber target sequence number when scheduling signal.
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.
(cherry picked from cf6b2c5299e9be3542d4deddfd05d5811f11d2ef commit)

18 years agoCore vsync: Add flag DRM_VBLANK_NEXTONMISS.
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.
(cherry picked from 89e323e4900af84cc33219ad24eb0b435a039d23 commit)

18 years agoFix 'sequence has passed' condition in i915_vblank_swap().
Michel Dänzer [Fri, 1 Sep 2006 09:24:38 +0000 (11:24 +0200)]
Fix 'sequence has passed' condition in i915_vblank_swap().

(cherry picked from 7f09f957d9a61ac107f8fd29128d7899a3e8a228 commit)

18 years agoAdd SAREA fileds for determining which pipe to sync window buffer swaps to.
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.

(cherry picked from c2bdb76814755c9ac6e66a8815f23af0fe4f3a91 commit)

18 years agoAdd definition of DRM_VBLANK_SECONDARY.
Michel Dänzer [Thu, 31 Aug 2006 16:32:08 +0000 (18:32 +0200)]
Add definition of DRM_VBLANK_SECONDARY.

(cherry picked from 84b38b63f05e04ade8b1ddfb770047fd86de0d64 commit)

18 years agoMake handling of dev_priv->vblank_pipe more robust.
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.
(cherry picked from 87c57cba1a70221fc570b253bf3b24682ef6b894 commit)

18 years agoDRM_I915_VBLANK_SWAP ioctl: Take drm_vblank_seq_type_t instead of pipe number.
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().
(cherry picked from d5a0f107511e128658e2d5e15bd7e6215c507f29 commit)

18 years agoChange first valid DRM drawable ID to be 1 instead of 0.
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.
(cherry picked from df7551ef7334d728ec0371423661bb403d3e270a commit)