Commit Graph

271 Commits (78e753d03314e3aa92af8ec601e9dbb869a938d5)

Author SHA1 Message Date
Jakob Bornecrantz 9d8ba2d0d4 drm: remove unnecessary NULL checks, and fix some indents.. 2007-02-25 10:48:26 +11:00
Michel Dänzer 5a40c043cc Add DRM_VBLANK_FLIP.
Used to request that a scheduled buffer swap be done as a flip instead of a
blit.
2007-02-22 17:19:30 +01:00
Thomas Hellstrom a78f70faad Merge branch 'ttm-vram-0-1-branch' 2007-02-14 15:33:40 +01:00
Thomas Hellstrom abc14ddfb5 Update flags and comments. 2007-02-12 21:40:42 +01:00
Eric Anholt ef9a9d3cd1 Define __iomem for systems without it. 2007-02-07 21:26:01 -08:00
Thomas Hellstrom c1fbd8a566 Checkpoint commit.
Flag handling and memory type selection cleanup.
glxgears won't start.
2007-02-07 17:25:13 +01:00
Thomas Hellstrom 3024f23c65 memory manager: Make device driver aware of different memory types.
Memory types are either fixed (on-card or pre-bound AGP) or not fixed
(dynamically bound) to an aperture. They also carry information about:

1) Whether they can be mapped cached.
2) Whether they are at all mappable.
3) Whether they need an ioremap to be accessible from kernel space.

In this way VRAM memory and, for example, pre-bound AGP appear
identical to the memory manager.

This also makes support for unmappable VRAM simple to implement.
2007-01-31 14:50:57 +01:00
Eric Anholt 584acab6d6 Add drm_u64_t typedef on non-linux to fix libdrm build. 2006-11-07 09:36:40 -08:00
Thomas Hellstrom decacb2e64 Reserve the new IOCTLs also for *bsd.
Bump libdrm version number to 2.2.0
2006-10-27 13:08:31 +02:00
Thomas Hellstrom f6d5fecdd2 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.
2006-10-27 11:28:37 +02:00
Thomas Hellstrom d70347bfc0 Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm 2006-10-19 17:07:26 +02:00
Thomas Hellstrom e22b04f807 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
2006-10-18 17:33:19 +02:00
Thomas Hellstrom c34faf224b Remove max number of locked pages check and call, since
that is now handled by the memory accounting.
2006-10-17 20:03:26 +02:00
Thomas Hellstrom 5881ce1b91 Extend generality for more memory types.
Fix up init and destruction code.
2006-10-17 11:05:37 +02:00
Dave Airlie 1bab514c0a remove config.h from build no longer exists kbuild does it 2006-10-14 23:38:20 +10:00
Thomas Hellstrom f2db76e2f2 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.
2006-10-11 13:40:35 +02:00
George Sapountzis f3deef730d 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.
2006-10-02 22:47:23 +03:00
Michel Dänzer ed82172378 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 89e323e490 commit)
2006-09-29 12:55:08 +02:00
Michel Dänzer 9810ec2737 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.
(cherry picked from 29598e5253 commit)
2006-09-29 12:55:08 +02:00
Michel Dänzer 2735f9e290 Add support for secondary vertical blank interrupt to DRM core.
(cherry picked from ab351505f3 commit)
2006-09-29 12:55:08 +02:00
Thomas Hellstrom ae96e26419 Add a new buffer flag.
Fix up some comments.
2006-09-29 11:46:45 +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 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 ab351505f3 Add support for secondary vertical blank interrupt to DRM core. 2006-09-28 15:41:35 +02:00
Thomas Hellstrom fa511a3ff5 Allow for 64-bit map handles of ttms and buffer objects. 2006-09-20 16:31:15 +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
Thomas Hellstrom 99acb79366 Various bugfixes. 2006-09-08 17:24:38 +02:00
Thomas Hellstrom 6042153968 Fence all unfenced buffers function. 2006-09-05 18:00:25 +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 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
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 700bf80ca9 Bring in stripped TTM functionality. 2006-08-22 09:47:33 +02:00
Thomas Hellstrom 166da9355d User / Kernel space fence objects (device-independent part). 2006-08-21 21:02:08 +02:00
Brian Paul 4a49e6c366 check for __FreeBSD_kernel__ (bug 3810) 2006-04-20 14:26:59 +00:00
Dave Airlie 2a9dbb2895 make max minor more rational 2006-01-02 05:55:31 +00:00
Dave Airlie 279e7c113c commit toggle switch to make Linux drm_handle_t unsigned int 2005-08-17 00:14:18 +00:00
Jon Smirl bb9502ab01 Mark some radeon init variables deprecated. These used to be passed in but
the driver already knew their correct value. For example the physical
    address of the framebuffer and registers.
2005-08-04 13:59:48 +00:00
Dave Airlie 3585bdf7d8 fix up drm.h for C++ include as this can be included in user programs 2005-06-11 10:08:39 +00:00
Dave Airlie f4aa8ab715 add dragonfly #define from Xorg CVS 2005-06-10 01:21:23 +00:00
Dave Airlie bd72c6990f wrap config.h include with defined for KERNEL 2005-05-15 10:19:21 +00:00
Dave Airlie 354dd17d25 The patch makes drmAddBufs/drmMapBufs can handle buffers in video memory
The attached patch adds a new buffer type DRM_FB_BUFFER. It works like AGP
    memory but uses video memory.
From: austinyuan@viatech.com.cn (fd.o bug 1668) Signed-off-by: Dave Airlie
    <airlied@linux.ie>
2005-01-16 05:40:12 +00:00
Felix Kuehling ed165a2529 Added a new DRM map type _DRM_CONSISTENT for consistent PCI memory. It uses
drm_pci_alloc/free for allocating/freeing the memory. Only implemented
    in the Linux DRM so far.
2005-01-01 20:03:15 +00:00
Jon Smirl 9f9a8f1382 Lindent of core build. Drivers checked for no binary diffs. A few files
weren't Lindent's because their comments didn't convert very well. A
    bunch of other minor clean up with no code implact included.
2004-09-30 21:12:10 +00:00
Jon Smirl c7c9d3ef7b Let's try adding the dyn-minor patch again. This patch will reuse minor
numbers if a card is hotplugged in/out instead of just having them
    increase.
2004-09-16 18:42:03 +00:00
Jon Smirl eeb0ef1a70 Back dyn-minor patch out for now. fops handling is broken on some cards 2004-09-15 17:44:30 +00:00
Jon Smirl 64ef12c55c Dynamic device minor support. Minor device numbers will be reused if the
device is hotplugged in/out of the system
2004-09-15 00:20:21 +00:00
Jose Fonseca 1fb27632c3 Update doxygen configuration file. Minor documentation updates/fixes. 2004-09-08 20:57:39 +00:00
Dave Airlie bd71ba6428 patch from RH xorg-x11 tree ported to drm.h 2004-07-31 08:38:39 +00:00
Dave Airlie 862fcee057 check for __user if not there define it 2004-07-25 08:57:15 +00:00
Dave Airlie 02df04d71d sync up with current 2.6 kernel bk tree - mostly __user annotations 2004-07-25 08:47:38 +00:00
Ian Romanick 52e3a8a5d9 Added some comments copied from xf86drm.h. 2004-06-02 17:41:52 +00:00
Ian Romanick f994b1f31b Replace size_t with an ugly, ugly hack. This was done so that code in the
core X-server would compile. Hopefully, this will soon be replaced with
    explicitly sized types (i.e., uint32_t) and everyone will be happy.
2004-06-01 16:17:32 +00:00
Jon Smirl 24115068e4 Fixes need to clean up the mess I made with the mesa merge. This code
allows the mesa drivers to use a single definition of the DRM
    sarea/IOCTLS located in the drm driver directory. Adjustments were made
    to the 2D drivers to not include these changes. Changes to the mesa
    copy of DRM were copied to the DRI copy. XFree86 bug: Reported by:
    Submitted by: Reviewed by: Obtained from:
2004-03-12 21:22:52 +00:00
Eric Anholt e8f5b01a40 __linux__ is spelled with a lowercase 'l' 2003-11-05 02:08:31 +00:00
Eric Anholt 5864101ab4 Repo-copy linux/drm/kernel/drm.h to shared/drm/kernel/drm.h and use it on
both Linux and *BSD.
2003-11-05 01:43:47 +00:00
Eric Anholt 06cb132e86 - Introduce a new ioctl, DRM_IOCTL_SET_VERSION. This ioctl allows the
server or client to notify the DRM that it expects a certain version of
    the device dependent or device independent interface. If the major
    doesn't match or minor is too large, EINVAL is returned. A major of -1
    means that the requestor doesn't care about that portion of the
    interface. The ioctl returns the actual versions in the same struct.
- Introduce DRM DI interface version 1.1. If the server requests version
    1.1, then the DRM sets the unique itself according to the busid of the
    device it probed, which may then be accessed as normal using getunique.
- Request version 1.1 in libdrm's drmOpenByBusID, allowing the X Server to
    request based on a BusID. Introduce a wrapper for DRM_IOCTL_SET_VERSION
    and bump libdrm minor version.
- Pass the busid in DRIScreenInit if libdrm can handle both a busid and
    name. This allows drmOpenByBusID to be used to find the DRM instead of
    just the driver name, which allows us in the future to tie a DRM more
    strongly to the device it probed to. Introduce a function
    DRICreatePCIBusID which creates a busid in the form pci:oooo:bb:dd.f
    similar to linux's pci_name() function. This matches the format used by
    the DRM in version 1.1. libdrm knows how to match both this format and
    the old PCI🅱️d:f format.
- Use the new DRICreatePCIBusID function in the *_dri.c to request the new,
    more exact busid format.
2003-10-23 02:23:31 +00:00
Alan Hourihane 85c16d962d resolve merge conflicts 2003-09-12 14:24:17 +00:00
Leif Delgass 518db771de Restore change to _DRM_VBLANK_SIGNAL from rev. 1.41, which was reverted
with the documentation merge.
2003-05-28 02:03:37 +00:00
Jose Fonseca d2443b2186 Merged DRM documentation. 2003-05-27 00:37:33 +00:00
David Dawes 2134577e31 Support for building DRM module on OpenBSD (Wilbern Cobb, Matthieu Herrb).
(resync with XFree86 trunk)
2003-05-20 22:42:24 +00:00
David Dawes 05f761fa4f enums should be ints 2002-12-12 22:20:30 +00:00
Michel Daenzer 40891ac190 vertical blank ioctl can send signal instead of blocking 2002-11-30 14:24:07 +00:00
Michel Daenzer 55acd0d5a6 common ioctl to wait for vertical blank IRQs 2002-09-25 17:18:19 +00:00
Alan Hourihane 74ef13fd00 merged bsd-3-0-0-branch 2002-07-05 08:31:11 +00:00
Keith Whitwell 2dcada361d merged tcl-0-0-branch 2002-06-12 15:50:28 +00:00
Jens Owen 3903e5ac94 Merged drmcommand-0-0-1 2002-04-09 21:54:56 +00:00
David Dawes ab87c5d0d1 First pass of mesa-4-0 branch merge into trunk. 2002-02-14 02:00:26 +00:00
David Dawes 44aa4d6297 First pass merge of XFree86 4.2.0 import. 2002-01-27 20:05:42 +00:00
Jeff Hartmann 4eafeec960 Add module version name at a lower layer of the code, allows things to be
more flexible and allow older module versions to still work. Might not
    be final code if we move over to DRI kernel module version, but will be
    if we use XFree86 version. + Only build tdfx.o instead of tdfx-4_1_0.o
    since tdfx.o has never changed its API.
2001-07-18 21:02:58 +00:00
Jeff Hartmann d5749d7603 Added version string to the end of the kernel module name. This allows
multiple versions of the kernel module to co-exist on one machine.
2001-07-16 22:42:36 +00:00
Gareth Hughes 7ccc528911 Fix typo in XFREE86_VERSION(). 2001-07-13 01:42:48 +00:00
David Dawes d87c873df0 First pass of 4.1.0 merge. 2001-06-14 22:23:44 +00:00
Alan Hourihane 18ce40c9d3 Make the SiS module work again. At least glxinfo reports it's working, yet
trying to run the simple apps return 'out of video memory'
2001-05-17 15:20:40 +00:00
Alan Hourihane 94c6d951a2 Make SiS driver compile with the new templated format. Not tested. minor
cleanups
2001-05-03 14:51:01 +00:00
Kevin E Martin 5d6ddbca26 Merged ati-pcigart-1-0-0 2001-04-05 22:16:12 +00:00
David Dawes 301a1ad315 Move #include <linux/config.h> inside the __linux__ #ifdef, so that it
doesn't break non-Linux builds.
2001-03-21 20:22:16 +00:00
Kevin E Martin 74e19a4018 Merged sarea-1-0-0 2001-03-14 22:22:50 +00:00
Gareth Hughes 3a74d3a371 Merge tdfx-3-1-0 branch. 2001-03-06 04:37:37 +00:00
Rik Faith 88dbee54ed Implement drmOpen* without /proc dependence (Fallback to /proc is included
for backward compatibility.) Move statistic-gathering drm* calls from
    dristat.c to xf86drm.c
2001-02-28 09:27:44 +00:00
Gareth Hughes 360475376c Merge mga-1-0-0-branch into trunk. 2001-02-15 08:12:14 +00:00
Kevin E Martin 0994e635b2 Merged ati-5-0-0 2001-01-05 22:57:55 +00:00
Rik Faith 833af23c5d Sync with Linux 2.4.0-prerelease 2001-01-04 18:41:41 +00:00
Keith Whitwell c7c6156aec add blit ioctl, fix plnwt handling 2000-12-30 23:28:53 +00:00
Gareth Hughes e15a24e154 Merged ati-4-1-1-branch into trunk. 2000-12-02 06:14:18 +00:00
David Dawes 94071289a4 merge with 4.0.1d 2000-11-08 00:07:17 +00:00
Rik Faith 52f0bc3c9e More changes for sync with Linux 2.4.0-test9-pre7 2000-09-29 02:05:41 +00:00
Rik Faith 39a659e877 Audit calls to schedule() Remove tags from files shared with Linux kernel
tree Remove debugging statements to make debugging more useful Other
    minor cleanups in preparation for sync with Linux 2.4.0-test9-pre7
2000-09-29 01:47:11 +00:00
Alan Hourihane c7558d8fa4 commit xfree86 4.0.1d-pre update 2000-09-24 09:34:10 +00:00
Brian Paul 7b888f87fa applied Jeff's xf86cvs-I810copy.patch 2000-07-13 18:47:48 +00:00
Doug Rabson d399dbcd56 Merged bsd-1-0-1 2000-06-13 17:38:09 +00:00
Rik Faith 2fbd4bf018 Unify code with kernel: Change some spacing in comments Add #include
<linux/config.h> to all *_drv.c files
2000-06-13 14:34:13 +00:00
Gareth Hughes d5348efe25 Merging the ati-4-1-0 branch onto the trunk. 2000-06-12 15:47:31 +00:00
Brian Paul 569da5a42e Merged glxmisc-3-0-0 2000-06-08 14:38:22 +00:00
Doug Rabson fa0a35a25f Merged bsd-1-0-0 2000-05-30 17:13:31 +00:00
Keith Whitwell ddcb28259f Merged mga-0-0-3-branch
- New security model for i810
- Enable i810 dri by default
- New indexed vertex path for mga
- Mga kernel driver rework
- Removed dead files in i810 driver
2000-05-25 21:06:02 +00:00
Kevin E Martin 99efe3c247 Merged ati-4-0-1 2000-05-18 06:14:27 +00:00
Jeff Hartmann ba1b1ae380 Merged mga branch with trunk 2000-04-04 22:08:14 +00:00
Jeff Hartmann 5bd8014f27 Merge with 4.0 2000-03-16 03:37:30 +00:00
Kevin E Martin 7a9b291ab5 Import of XFree86 3.9.18 2000-02-22 15:43:59 +00:00
Rik Faith 1c33c69095 Import of XFree86 3.9.17 2000-01-06 12:55:00 +00:00
Daryll Strauss e1dba5c3a7 Move Mesa to xc/extras Update to the latest Mesa 3.2 code Fix the Q3Demo
bugs (white railgun and texture mapping) Simplify driver texture
    mapping routines Fix device driver for 2.3 kernels Improve performance
1999-12-07 03:37:16 +00:00
Daryll Strauss b6a28bfe98 First DRI release of 3dfx driver. 1999-12-05 23:10:37 +00:00